Fptr=fopen(filename,”r”);
if (fptr = = 0)
printf(“\n Файл %s невозможно открыть”,filename);
exit 1;
line
shapka
line
while(fread(&zap,sizeof(struct anketa),1,fptr)
{printf(“\n|%5d|%-20.19s|%2c|%-20.19s|%2d|%2d|%2d|%5d|”,
zap.tnum,zap.fio,zap.pol,
zap.dd,zap.mm,zap.yy,zap.oklad);
line
}
fclose(fptr);
}
void spravka()
{
Struct anketa zap;
int vozr;
int oklad;
printf(“\n Введите нужный возраст:\t”);
scanf (“%d”,&vozr);
printf(“\n Введите нужный оклад:\t”);
scanf (“%d”,&oklad);
fptr=fopen(filename,”r”);
if (fpt r= = 0)
printf (“\n Файл %s невозможно открыть”, filename);
exit 1;
line
shapka
line
while (fread(&zap,sizeof(struct anketa),1,fptr)!=0)
if (zap.yy = = (2001-vozr)) &&(zap.oklad = =oklad))
{
printf(“\n |%5d|%-20.19s|%2c|%-20.19s|%2d|%2d|%2d|%5d|”,
zap.tnum,zap.fam,zap.pol,
zap.dd,zap.mm,zap.yy,zap.oklad);
line
}
fclose(fptr);
}
main ()
{
int key;
do {
printf(“\n *** МЕНЮ ***\n”);
printf(“\n 1-ввод данных в БД”);
printf(“\n 2-печать БД”);
printf(“\n 3-печать справки”);
printf(“\n 4-конец”);
printf (“\n Введите номер пункта”)’
scanf (“%d, &key);
switch (key)
{
case 1:vvodBD();
break;
case 2: printBD();
break;
case 3: spravka();
break;
case 4: break;
default: printf(“\n Неверный номер пункта”);
}
}
while (key!=4);
printf(“\n Конец программы”);
}
Задача №6
ДАНО: Файл данных по телеграммам следующей структуры.
дата |
адрес получателя |
ф.и.о. получателя |
сумма оплаты |
ТРЕБУЕТСЯ: Разработать программу на языке С++ для создания и обработки файла данных по телеграммам.
ОГРАНИЧЕНИЯ:
· выбрать и отпечатать из файла все телеграммы за заданный месяц текущего года,
· подсчитать сумму оплаты за все выбранные телеграммы.
РЕШЕНИЕ:
# include <stdio.h>
struct tel {
int dd,mm,yy;
char address[30];
char fio[20];
int plata;
};
int sum = 0;
FILE fptr;
#define line printf (“\n------------------------------------“);
#define shapka printf (“\n | Дата|Адрес|ФИО|Оплата|”);
void vvodBD()
{
srtuct tel z;
if ((fptr=fopen(“Baza”,”a”) = = 0)
printf (“\n Невозможно открыть файл Baza”);
exit 1;
printf(“\n Введите дату dd.mm.yy:\t”);
scanf (“%d %d %d”,&z.dd,&z.mm,&z.yy);
printf(“\n Введите адрес:\t”);
scanf (“%s”,&z.adress);
printf(“\n Введите ФИО:\t”);
scanf(“%s”,&z.fio);
printf(“\n Введите cумму оплаты:\t”);
scanf(“%в”,&z.plata);
fwrite(&z,sizeof(struct tel),1,fptr);
fclose(fptr);
return;
}
void otloz()
{
struct tel z;
int mm=5;
int yy=2006;
if ((fptr=fopen(“Baza”,”r”)) = = 0)
printf (“\n Невозможно открыть файл Baza”);
exit 1;
line
shapka
line
while (fread(&z,sizeof(struct tel),1,fptr)!=NULL)
{
if(z.yy = = yy) && {z.mm = = mm))
{
printf(“\n |%2d.%2d.%2d | %-30.30s| %-20.20s| %6d|”,
z.dd,z.mm,z.yy,z.adress,z.fio,z.plata);
line
sum=sum+z.plata;
}
}
fclose(fptr);
printf (“\n Сумма оплаты за все выбранные телеграммы %d”,sum);
return;
}
main()
{
int key;
do
{
printf(“\n ***МЕНЮ***”);
printf(“\n 1-ввод данных в БД”);
printf(“\n 2-Отбор телеграмм”);
printf(“\n 3-Конец”);
printf (“\n Введите номер пункта”)’
scanf (“%d, &key);
switch (key)
{
case 1:vvodBD();
break;
case 2: otbor();
break;
case 3: break;
default: printf(“\n Неверный номер пункта”);
}
}
while (key!=3);
printf(“\n Конец программы”);
}
Задача №7
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.