FILE *fl;
typedef struct
{
char fio[30];
int group;
double sr_bal;
int dohod;
} TStudent;
TStudent stud[30];
char name[20];
int i;
int n=0;
int menu();
int newf();
int spisok();
int opf();
void resc();
void resf();
int main()
{
while (true)
{
switch (menu())
{
case 1: newf(); break;
case 2: spisok(); break;
case 3: opf(); break;
case 4: resc(); break;
case 5: resf(); break;
case 6: return 0;
default: "Viberite pravilno!";
}
puts("Press any key to continue");
getch(); system("cls");
}
}
int menu()
{
cout << "VIBERITE:" << endl;
cout << "1. New file i sozdanie" << endl;
cout << "2. Vvesti spisok" << endl;
cout << "3. Open file" << endl;
cout << "4. Vivesti result" << endl;
cout << "5. Vivesti v fail" << endl;
cout << "6. Exit" << endl;
int i;
cin >> i;
return i;
}
int newf()
{
cout << "Vvedite file name" << endl;
cin >> name;
if ((fl = fopen(name,"wb"))==NULL)
{
cout << "Oshibka pri sozdanii"<<endl;
return i;
}
cout << "OK" << endl;
fclose(fl);
}
int spisok()
{
cout << "Vvedite file name" << endl;
cin >> name;
if ((fl = fopen(name,"rb+"))==NULL)
{
cout << "fail ne sozdan"<<endl;
return i;
}
cout << "Vvedite chislo studentov " << endl;
cin >> n;
for (int i=0; i<n; i++)
{
cout << "Vvedite fio: ";
cin >> stud[i].fio;
cout << "Vvedite gruppu: ";
cin >> stud[i].group;
cout << "Vvedite srednii ball: ";
cin >> stud[i].sr_bal;
cout << "Vvedite dohod: ";
cin >> stud[i].dohod;
fwrite( &stud[i], sizeof(TStudent), 1, fl );
}
fclose(fl);
}
int opf()
{
cout << "Vvedite file name" << endl;
cin >> name;
if ((fl = fopen(name,"rb"))==NULL)
{
cout << "fail ne sozdan"<<endl;
return i;
}
n=0; TStudent t;
while(true)
{
int nwrt = fread( &t, sizeof(TStudent), 1, fl );
if (nwrt!=1) break;
stud[n]=t;
cout << stud[n].fio << " " << stud[n].group << " " << stud[n].sr_bal<< " " <<stud[n].dohod<<endl;
n++;
}
fclose(fl);
}
void resc()
{
int minz;
cout<<"vvedi min zarplatu"<<endl;
cin>>minz;
for (int i=0; i<n; i++)
if (stud[i].dohod < 2*minz)
cout << stud[i].fio <<" "<<stud[i].dohod<< 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];
int minz;
cout<<"vvedi min zarplatu"<<endl;
cin>>minz;
for (int i=0; i<n; i++)
if (stud[i].dohod < 2*minz)
{
strcpy(s, stud[i].fio);
strcat(s, "\n");
fputs(s, ft);
}
fclose(ft);
}
текст программы. когда вводим не числа - программа тупит, как сделать чтобы она писала пользователю что не правильный ввод?
Примечание:
не та выразился, придираться будете в детском саду. по делу ничего не скажете? зачем отписываете тогда?
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.