|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.02.2017, 20:10 | #1 |
Новичок
Джуниор
Регистрация: 19.02.2017
Сообщений: 1
|
Файлы и структуры
Помогите,пожалуйста! Нужно написать программу на языке с++
Из заданного файла f, кожные Запись которого содержит сведения о студенте (фамилия, имя, группа, дата и место рождения, размер стипендии, место жительства) создать файл f1 с записей о студентах, которые родились и проживають в городе Киеве и файл f2 из записей о других студентов. Подсчитать число Записи в кажном файле. Все файлы вывести на печать. Есть половина кода,только не могу именно создать файлы f1 f2 struct student { char surname[15]; char name[10]; char group[4]; char birthday[20]; char birthplace[20]; char stipend[1000]; } stud1, stud2, stud3; int p=5; int OutPut(); int Dop(); int OutTextPut(); int Cor1(); int Cor2(); int Corr(); int Obr(); int main() { int q; do { cout<<"Rezimi roboti programi"<<endl; cout<<" 1 - Organizatsia fajlu z informatsieu "<<endl;; cout<<" 2 - Dopovnenja fajlu novou informatsieu "<<endl;; cout<<" 3 - Vivid informaysii iz bazi v tekstovij fajl "<<endl;; cout<<" 4 - Koriguvannja fajlu z informatsieu "<<endl;; cout<<" 5 - Obrobka fajlu z informatsieu "<<endl;; cout<<" 0- Vixid "; cin>>q; switch (q) { case 1: OutPut(); break; case 2: Dop(); break; case 3: OutTextPut(); break; case 4: Corr(); break; case 5: Obr(); break; case 0: break; default: printf("\nPomilka, vkazitj praveljno rezim roboti "); } } while (q!=0); return 0; } int OutPut() { int t,i; char name[40],s; cout<<" Vkazit imja fajlu dlja zberezennja informatsii "; cin>>name; ofstream f_out; f_out.open(name,ios::in); if(!f_out) { cerr<<"out_file ne moge buti vidkritim "<<endl; exit(1); } while(1) { cout<< "Enter the surename the students - "; cin>>sch.surname; t=stricmp(sch.surname, "zzz"); if (!t) break; cout<<"Enter the name of the student - "; cin>>sch.name; cout<<"Enter group- "; cin>>sch.group; cout<<"Enter date of birth"; cin>>sch.birthday; cout<<"Enter birthplace "; cin>>sch.birthplace; cout<<"Enter stipend "; cin>>sch.stipend; for (i=1;i<=p;i++) f_out.write((char*)&sch,sizeof(sch) ); } f_out.close(); return 0; } int OutTextPut() { char name1[40],name2[40]; int i,t,j; float s; cout<<" Vkazit imja fajlu z informatsieu "; cin>>name1; ifstream f_out; f_out.open(name1,ios:ut); if(!f_out) { cerr<<"out_file ne moge buti vidkritim "<<endl; exit(1); } cout<<"AAAA"; cin>>t; cout<<" Vkazit imja fajlu dlja zberezennja neobxidnoi informatsii "; cin>>name2; ofstream f_in; f_in.open(name2,ios::in); if(!f_in) { cerr<<"text_file ne moge buti vidkritim "<<endl; exit(1); } while (!f_out.eof()) { f_out.read((char*)&sch,sizeof(sch)) ; f_in<<sch.surname<<" "<<sch.name<<" "<<sch.group<<" "; for(i=1;i<=p; i++) f_in<<sch.a[i-1]<<" "; f_in<<"\n"; } f_out.close(); f_in.close(); return (0); } int Cor1() { int q,i; char name[100],g; clrscr(); cout<<"Vvedi imja failu dlja koriguvannja "<<endl; cin>>name; ofstream f_corr; f_corr.open(name,ios::ate); if(!f_corr){ cerr<<"file ne moge buti vidkritim "<<endl; exit(1); } cout<<"Vvedi porjadkovij nomer zapisu - "; cin>>q; while(1) { cout<< "Enter the surename the students - "; cin>>sch.surname; cout<<"Enter the name of the student - "; cin>>sch.name; cout<<"Enter group- "; cin>>sch.group; cout<<"Enter date of birth"; cin>>sch.birthday; cout<<"Enter birthplace "; cin>>sch.birthplace; cout<<"Enter stipend "; cin>>sch.stipend; cout<<"Zakinchiti koriguvanja? (y/n) "; cin>>g; if (g=='y'||g=='Y'||g=='н'||g=='Н') break; } f_corr.close(); return 0; } int Cor2() { int q,i,r; char name[100],g; clrscr(); cout<<"Vvedi imja failu dlja koriguvannja - "; cin>>name; fstream f_corr; f_corr.open(name,ios::ate|ios:ut| ios::in); if(!f_corr){ cerr<<"file ne moge buti vidkritim "<<endl; exit(1); } while(1) { cout<<"Vvedi porjadkovij nomer zapisu - "; cin>>q; f_corr.seekg((q-1)*sizeof(sch)); f_corr.read((char*)&sch,sizeof(sch) ); cout<<" Regimi koriguvannja"<<endl; cout<<" 1-surname"<<endl; cout<<" 2-name"<<endl; cout<<" 3-group"<<endl; cout<<" 4-Otsinka po 1-omu predmetu"<<endl; cout<<" 5-Otsinka po 2-omu predmetu"<<endl; cout<<" 6-Otsinka po 3-omu predmetu"<<endl; cout<<" 7-Otsinka po 4-omu predmetu"<<endl; cout<<" 8-Otsinka po 5-omu predmetu"<<endl; cout<<"Vkagiyj porjadkovij nomer regima koriguvanja "; cin>>r; switch(r) { case 1: cout<<""Enter the surename the students - "; cin>>sch.surname; break; case 2:cout<<"Enter the name of the student - "; cin>>sch.name; break; case 3: cout<< "Enter group- "; cin>>sch.clas; break; case 4:cout<<"Vkazit otsinku po 1 - mu predmetu - "; cin>>sch.a[0]; break; case 5:cout<<"Vkazit otsinku po 2 - mu predmetu - "; cin>>sch.a[1]; break; case 6:cout<<"Vkazit otsinku po 3 - mu predmetu - "; cin>>sch.a[2]; break; case 7:cout<<"Vkazit otsinku po 4 - mu predmetu - "; cin>>sch.a[3]; break; case 8:cout<<"Vkazit otsinku po 5 - mu predmetu - "; cin>>sch.a[4]; break; case 0: break; default: cout<<"Pomilka, vkazitj praveljno rezim roboti "; } f_corr.seekp((q-1)*sizeof(sch)); f_corr.write((char*)&sch,sizeof(sch )); cout<<"Zakinchiti koriguvanja? (y/n) "; cin>>g; if (g=='y'||g=='Y') break; } f_corr.close(); return 0; } int Corr() { char s; scanf("%c",&s); printf("\nKoriguvati vsu zapis ? (Y/N) "); scanf("%c",&s); printf("\ns=%c",s); if (s=='y'||s=='Y'||s=='н'||s=='Н') Cor1(); else Cor2(); return 0; } int Obr() и тут собственно загвоздка |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
С/С++, структуры и файлы!!! | gopnikdj | Помощь студентам | 0 | 25.12.2012 00:36 |
Файлы,структуры.Язык Си | tutis | Помощь студентам | 1 | 02.05.2011 20:12 |
cи структуры, файлы | neiromagick | Помощь студентам | 1 | 12.01.2011 04:05 |
[C++] Структуры, файлы | Troi666 | Помощь студентам | 1 | 09.05.2009 21:03 |
Структуры и файлы С | Nina+ | Помощь студентам | 5 | 16.04.2009 22:20 |