Создать функции для работы с двоичными файлами. Предусмотреть создание меню со следующими пунктами:
• СОЗДАНИЕ НОВОГО ФАЙЛА (newFile)
• ПРОСМОТР ФАЙЛА (viewFile)
• ДОБАВЛЕНИЕ НОВОЙ ЗАПИСИ (addFile)
• КОРРЕКТИРОВКА ЗАПИСЕЙ ФАЙЛА (editFile)
• ВЫПОЛНЕНИЕ ЗАДАЧИ (runFile)
• УДАЛЕНИЕ УКАЗАННОЙ ЗАПИСИ (deleterecord)
На междугородней АТС информация о разговорах содержит: дату разговора; код и название города; время разговора; тариф; номер телефона в этом городе; номер телефона абонента. ВЫВЕСТИ ПО КАЖДОМУ ГОРОДУ ОБЩЕЕ ВРЕМЯ РАЗГОВОРА С НИМ И СУММУ.
Мне осталось сделать только выполнение самой задачи т.е :
ВЫВЕСТИ ПО КАЖДОМУ ГОРОДУ ОБЩЕЕ ВРЕМЯ РАЗГОВОРА С НИМ И СУММУ.
kontr_denkov.txt
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <process.h>
#include <windows.h>
#include <io.h>
typedef struct ATS {
char datecall[11]; //дата разговора
__int64 kodtown; // код города
char town[15]; // название города
int time; //длительность разговора
__int64 tariff; //тариф
__int64 numberdef; //номер ответчика
__int64 numbersub; //номер абонента
__int64 summa;
__int64 alltime; }
atsminsk;
char* Rus(const char* text);
char bufRus[255];
void func1(char*, char*);
void func2(char*, char*);
void func3(char*, char*);
void func4(char*, char*);
//int TestDate(char*,char*);
void main (void)
{
int n;
char name[30];
strcpy(name,"File.bin");
while (1)
{
printf(Rus("\nСоздание файла - 1\n"));
printf(Rus("\nПросмотр - 2\n"));
printf(Rus("\nКоррекция - 3\n"));
printf(Rus("\nВыполнение задания - 4\n"));
printf(Rus("\nВыход - 0\n"));
fflush(stdin);
switch(n=getchar())
{case '1': system("cls");
func1(name, "wb");
break;
case '2': system("cls");
func2(name, "rb");
break;
case '3': system("cls");
func3(name,"r+b");
break;
case '4': func4(name,"rb");
break;
case '0': exit(0);
default: printf(Rus("\nНет вида работы %c\n"),n);
break;
}
}
}
char* Rus(const char* text)
{
CharToOem(text,bufRus);
return bufRus;
}
//Создание файла
void func1(char* name, char* mode) {
int n, i;
FILE *f;
atsminsk ats[10];
if(!(f=fopen(name,mode))){
printf(Rus("\nСоздание файла невозможно!\n\n"));
exit(0);}
printf(Rus("\nВведите число разговоров:\n"));
scanf("%d",&n);
for( i=0; i<n; i++){
printf(Rus("\nВведите информацию о разговоре - %d.\n\n"),i+1);
printf(Rus("\nДата разговора в формате 01.01.2013:\n\n"));
fflush(stdin);
scanf("%s",&ats[i].datecall);
printf(Rus("\nКод города:\n\n"));
fflush(stdin);
scanf("%i",&ats[i].kodtown);
printf(Rus("\nНазвание города:\n\n"));
fflush(stdin);
scanf("%s",&ats[i].town);
printf(Rus("\nДлительность разговора (мин):\n\n"));
fflush(stdin);
scanf("%i",&ats[i].time);
printf(Rus("\nТариф разговора(руб.):\n\n"));
fflush(stdin);
scanf("%i",&ats[i].tariff);
printf(Rus("\nНомер телефона в этом городе (ответчик):\n\n"));
fflush(stdin);
scanf("%i",&ats[i].numberdef);
printf(Rus("\nНомер телефона абонента (звонящий):\n\n"));
fflush(stdin);
scanf("%i",&ats[i].numbersub);
fwrite(&ats[i], sizeof(ats[i]),1,f);
system("cls");
}
fclose(f);
system("cls");
}
//Просмотр файла
void func2(char* name, char* mode) {
FILE* f;
atsminsk ats[10];
int i=0;
puts(Rus("\n***Информация из файла***\n"));
if(!(f=fopen(name,mode))){
printf(Rus("\nФайл не открыт для чтения\n\n"));
exit(1);}
fread(&ats[i],sizeof(ats[i]),1,f);
printf("_________________________________________________________________________________________________________________\n");
printf(Rus("|Запись\t|Дата\t\t|Код\t|Название\t|Длительность\t|Тариф\t\t|Номер\t\t|Номер\t\t|\n"));
printf(Rus("|№\t|Разговора\t|Города\t|Города\t\t|разговора\t|Разговора\t|ответчика\t|абонента\t|\n"));
while(!feof(f))
{
printf("-----------------------------------------------------------------------------------------------------------------\n");
printf(Rus("|%d\t"), i+1);
printf(Rus("|%s\t"),ats[i].datecall);
printf(Rus("|%d\t"),ats[i].kodtown);
printf(Rus("|%s\t\t"),ats[i].town);
printf(Rus("|%d\t\t"),ats[i].time);
printf(Rus("|%d\t\t"),ats[i].tariff);
printf(Rus("|%d\t"),ats[i].numberdef);
printf(Rus("|%d\t|\n"),ats[i].numbersub);
i++;
fread(&ats[i],sizeof(ats[i]),1,f);
}
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
printf("\n\n");
}
//Коррекция
void func3(char* name, char* kod) {
//это работает просто не влажит в сообщение)
}
void func4(char* name, char* mode) {
}