Файлы
Добавлено: 05 май 2011, 00:27
Нужна помощь...
Задание: Ведомость абитуриентов содержит ФИО, город проживания, суммарный балл. Вывести информацию об абитуриентах, проживающих в г. Минске и набравших бал больше 220.
код программы :
Помогите пожалуйста с выводом нужного абитуриента, вот что-то написал, в результате ничего не выдает...
Задание: Ведомость абитуриентов содержит ФИО, город проживания, суммарный балл. Вывести информацию об абитуриентах, проживающих в г. Минске и набравших бал больше 220.
код программы :
Код: Выделить всё
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
FILE *fl;
typedef struct
{
char fio[30];
char city[30];
int ball;
} abiturient;
abiturient ved[30];
char name[20];
int n=0;
int menu();
void nnf();
void newf();
void spisok();
void opf();
void resc();
void resf();
int main()
{
while (true)
{
switch (menu())
{
case 1: nnf(); break;
case 2: newf(); break;
case 3: spisok(); break;
case 4: opf(); break;
case 5: resc(); break;
case 6: resf(); break;
case 7: return 0;
default: "Viberite pravilno!";
}
puts("Press any key to continue");
getch();
system("cls");
}
}
int menu()
{
cout << "VIBERITE:" << endl;
cout << "1. Vvod file name" << endl;
cout << "2. New file" << endl;
cout << "3. Vvesti spisok" << endl;
cout << "4. Open file" << endl;
cout << "5. Vivesti result" << endl;
cout << "6. Vivesti v fail" << endl;
cout << "7. Exit" << endl;
int i;
cin >> i;
return i;
}
void nnf()
{
cout << "Vvedite file name" << endl;
cin >> name;
}
void newf()
{
if ((fl = fopen(name,"wb"))==NULL)
{
cout << "Oshibka pri sozdanii"<<endl;
exit(1);
}
cout << "OK" << endl;
fclose(fl);
}
void spisok()
{
if ((fl = fopen(name,"rb+"))==NULL)
{
cout << "Oshibka pri sozdanii"<<endl;
exit(1);
}
cout << "Vvedite chislo abiturientov " << endl;
cin >> n;
for (int i=0; i<n; i++)
{
cout << "Vvedite fio: ";
cin >> ved[i].fio;
cout << "Vvedite summarni ball: ";
cin >> ved[i].ball;
cout << "Vvedite gorod: ";
cin >> ved[i].city;
fwrite( &ved[i], sizeof(abiturient), 1, fl );
}
fclose(fl);
}
void opf()
{
if ((fl = fopen(name,"rb"))==NULL)
{
cout << "Oshibka pri otkritii"<<endl;
exit(1);
}
n=0; abiturient t;
while(true)
{
int nwrt = fread( &t, sizeof(abiturient), 1, fl );
if (nwrt!=1) break;
ved[n]=t;
cout << ved[n].fio << " " << ved[n].ball << " " << ved[n].city<<endl;
n++;
}
fclose(fl);
}
void resc()
{
for (int i=0; i<n; i++)
if (ved[i].ball>220 && ved[i].city == "minsk")
{
cout << ved[i].fio <<" "<<ved[i].ball<<" "<<ved[i].city << endl;
}
}
void resf()
{
char namet[30];
FILE *ft;
cout << "Vvedite imya faila" << endl;
cin >> namet;
if ((ft = fopen(namet,"w"))==NULL)
{
cout << "Oshibka pri sozdanii "<<endl;
exit(1);
}
char s[80];
for (int i=0; i<n; i++)
if (ved[i].ball>220 && ved[i].city == "minsk")
{
strcpy(s, ved[i].fio);
strcat(s, "\n");
fputs(s, ft);
strcpy(s, ved[i].city);
strcat(s, "\n");
fputs(s, ft);
}
fclose(ft);
}