Ещё раз здравствуйте! У меня есть программа, но её нужно доработать, а конкретнее сделать так, чтобы таблица сохранялось и загружалось, там есть алгоритм ввода и вывода, но чего то не пашет, добавьте пожалуйста то, чего не хватает Огромная просьба: сделать нужно как можно быстрее, тем более, что это пустячок, а иначе скоро будет ещё одна жертва науки
Вот:
| Код | #include<conio.h> #include<iostream.h> #include<stdlib.h> #include<iomanip.h> #include<fstream.h> struct stud { char Name[20],Tel[10]; int Age; int Sex; };
char*fname() {char*s=new char[40]; cout<<"Enter FileName:"; cin>>s;return s;}
void save (fstream&x, stud y) { x<<y.Age<<' '<<y.Sex<<' ';} void save (char fn[], stud x[], int n) {int i; fstream f; f.open (fn, ios::out); f<<n<<' '; for (i=0;i<n;i++) save (f, x[i]);f.close();}
void load (fstream&x, stud&y){x>>y.Age>>y.Sex>>y.Tel;}
void load (char fn[], stud x[], int&n) {int i;fstream f; f.open (fn, ios::in); f>>n; for (i=0; i<n;i++) load(f,x[i]); f.close();}
void input (stud&record) { cout<<"input Name:";cin>>record.Name; cout<<"input Age:";cin>>record.Age; cout<<"input Sex:"; cin>>record.Sex;
//record.Sex=(sex=='m'||sex=='M')?1:0;// это преподу не понравилось и он убрал cout<<"input Tel:";cin>>record.Tel; }
void output(stud& record) { cout<<record.Name<<'\t'; cout<<record.Age<<'\t'; cout<<record.Sex<<'\t'; cout<<record.Tel<<endl; }
void output_all(stud records[], int cout) { for (int i=0;i<cout;i++) output(records[i]); }
void the_tel(stud records[], int count) { char new_tel[3]; cout<<"new_tel="; cin>>new_tel; int flag=0; for (int i=0;i<count;i++) { flag=1; for (int j=0;j<3;j++) if (new_tel[j]!=records[i].Tel[j]) { flag=0; break; } if(flag) output(records[i]); } }
void the_name(stud records[], int count) { char new_bukva; cout<<"new_bukva="; cin>>new_bukva;
for(int i=0;i<count; i++) { if(new_bukva==records[i].Name[1]) output(records[i]); } }
char menu() { char b; cout<<"1-new record"<<endl; cout<<"2-show all record"<<endl; cout<<"3-the_telefon"<<endl; cout<<"4-the_name"<<endl; cout<<"5-Exit"<<endl; cout<<"6-Save"<<endl; cout<<"7-Load"<<endl;
cout<<"input:"; cin>>b; return b; }
int main() { stud table[20]; int cur=0; char key=0; clrscr(); for(;;) { key=menu(); clrscr(); switch (key) { case'1': if (cur<20) { input(table[cur]); cur++; } else cout<<"error:input max record"<<endl; break; case'2': output_all(table, cur); break; case'3': the_tel(table, cur); break; case'4': the_name(table, cur); break; case'5': return 0; } } }
| |