Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2013, 20:38   #1
hokkaido88
Новичок
Джуниор
 
Регистрация: 10.09.2011
Сообщений: 1
По умолчанию Структура С++

Создать функции для работы с двоичными файлами. Предусмотреть создание меню со следующими пунктами:
• СОЗДАНИЕ НОВОГО ФАЙЛА (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) {


}
hokkaido88 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура Valentina2011 Общие вопросы C/C++ 0 06.05.2012 22:40
структура на С++ yula92 Помощь студентам 0 25.05.2010 17:39
Структура Telec Помощь студентам 2 20.01.2010 12:46
Структура Superlotles Помощь студентам 5 14.09.2009 23:29
структура hungry Общие вопросы C/C++ 11 25.06.2009 20:31