Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //laborotornaya rabota no 7
- #include<conio.h>
- #include<iostream.h>
- #include<stdlib.h>
- #include<string.h>
- #include<iomanip.h>
- #include<fstream.h>
- #include<stdio.h>
- struct stud
- {
- long nz;
- char gr[8];
- char fio[16];
- float rs;
- float bal;
- } st;
- int z=sizeof(stud);
- char*sh[]={
- " Studenti ",
- "|==========|==========|===============|==============|==========|",
- "| Nomer | Gryppa | Familiy | Stipendia rub| Bal |",
- "|==========|==========|===============|==============|==========|",
- "|==========|==========|===============|==============|==========|"};
- ifstream fin;
- ofstream fout;
- fstream io;
- void p(),cht(),sozd(),dop(),zf(),poisk1(),poisk2(),kor(),filtr(char*),
- psh(),pri(char*);
- void main()
- {
- clrscr();
- fout.open("L7.res" );
- if(!fout){pri("Oshibka pri otkritii failov rezultatov");exit(0);}
- sozd();cht();
- dop;cht();
- poisk1();
- poisk2();
- kor();cht();
- fout.close();
- }
- void pri(char*s)
- {cout<<s<<endl;
- }
- void psh()
- {
- for(int i=0;i<5;i++)
- fout<<sh[i]<<endl;
- }
- void p()
- {
- fout<<'\272'<<setiosflags(ios::left)<<setw(10)<<st.nz<<'\272'
- <<setw(10)<<st.gr<<'\272'<<setw(15)<<st.fio<<'\272'<<setw(14)<<st.rs<<'\272'
- <<setw(10)<<setprecision(2)<<st.bal<<'\272'<<endl;
- }
- void cht()
- {
- int n=0;
- float s=0;
- fout<<"\n Chtenie faila \n";
- fin.open("binary.cpp",ios::in|ios::binary);
- if(!fin){pri("Oshibka otkritia binarnogo faila dl9 chtenia");exit(0);}
- psh();
- while(fin.peek()!=EOF)
- {
- fin.read((char*)&st,z);
- p();
- s+=st.rs;
- n++;}
- fout<<sh[5]<<endl<<"Summarnay stipendia= "<<s<<endl
- <<"Srednya stipendia="<<s/n<<endl
- <<"Kolichestvo structur v faile ="<<n<<endl;
- fin.close();
- }
- void sozd()
- {struct stud;
- fout<<"\n Sozdanie faila";
- fin.open("sozd.dat");
- if(!fin) {pri("Oshibka pri otkritii faila dannix");exit(0);}
- io.open("binary.cpp",ios::out|ios::binary);
- if(!io)
- {pri("Oshibka otkritia binarnogo faila dl8 ego sozdania");exit(0);}
- psh();
- zf();
- fin.close();io.close();
- }
- void zf()
- {char T[80];
- while(!fin.eof())
- {fin>>st.nz;
- fin.getline(st.gr,11);filtr(st.gr);
- fin.getline(st.fio,17);filtr(st.fio);
- fin>>st.rs;
- fin.getline(T,80);
- io.write((char*)&st,z);
- p();
- }
- fout<<sh[5]<<endl;
- }
- void filtr(char*a)
- {int i,l=strlen(a),j;
- for(i=0;i<1;i++)
- if(a[i]!=' '&& a[i] !='\t')
- for (j=1-1;j>=i;j--)
- if(a[j]!=' '&& a[j]!='\n')
- {
- for(l=i;l<=j;l++)
- a[l-i]=a[l];
- a[l-i]='\0';
- goto m;
- }
- a[0]=0;
- m:;
- }
- void poisk1()
- {
- char name[20];
- fin.open("poisk1.dat");
- if (!fin) {pri("Oshibka pri otkritii faila dannix dl9 poiska 1");exit(1);}
- fout<<"\n\n POISK PO FAMILII STUDENTA\n";
- io.open("binary.cpp",ios::in|ios::binary);
- if(!io) {pri(" Oshibka otkritia binarnogo faila dl9 chtenia"); exit(0);}
- while(fin.peek()!=EOF)
- {fin.getline(name,20);filtr(name);
- fout<<"\nIchem dannie studenta s familiey-"
- <<"\""<<name<<"\""<<endl;
- if(!strcmp(name,"")){fout <<"Net familii dl9 poiska \n";continue;}
- io.seekg(0,ios::beg);
- while(io.peek()!=EOF)
- {
- io.read((char*)&st,z);
- if(strcmp(st.fio,name)==0)
- {p();goto m;}
- }
- fout<<"Student s familiey\""<<name<<"\"Ne nayden"<<endl;
- m:;
- }
- fin.close();io.close();
- }
- void poisk2()
- {
- char grup[15];float stip;
- fin.open("poisk2.dat",ios::in);
- if(!fin) {pri("Oshibka otkritia faila dannux dl9 poiska 2");exit(0);}
- fout<<"\n\n Poisk po naimenovaniy gryppi studenta i "
- "po razmery stipendii\n";
- while(fin.peek()!=EOF)
- {fin>>stip;
- fin.getline(grup,15);
- filtr(grup);
- int k=0;
- fout<<"\Ichem v gryppe-"<<"\""<<grup<<"\""
- <<"Studentov so stipendiey>="<<stip<<endl;
- if((!strcmp(grup,""))&&(stip==0.0))
- {fout <<"Net dl9 poiska ni gryppi, ni stipendii \n";continue;}
- io.open("binary.cpp",ios::in|ios::binary);
- if(!io) {pri("Oshibka otkritia binarnogo faila dl9 chtenia");exit(0);}
- while(io.read((char*)&st,z))
- if((!strcmp(st.gr,grup)||!strcmp(grup,""))&&(stip<=st.rs||stip==0))
- {p();k++;}
- if(!k)fout<< "Takix studentov net"<<endl;
- io.close();
- }
- fin.close();io.close();
- }
- void dop()
- {
- fout<<"\n\n DOPOLNENIA FAILA NOVIMI ZAPIS9MI"<<endl;
- fin.open("dop.dat",ios::in);
- if(!fin) {pri("Oshibka otkritia faila dannix dl9 dopolnenia");exit(0);}
- io.open("binary.cpp",ios::app|ios::binary);
- if(!io){pri("Oshibka otkritia binarnogo faila dl9 dopolnenia");exit(0);}
- for(int i=1;i<5;i++);
- fout<<sh[i]<<endl;
- zf();
- fin.close();io.close();
- }
- void kor()
- {
- char t[80];
- char name[85];
- float stip;
- fout<<"\n\n KORREKCIA FAILA\n\n";
- fin.open("kor.dat",ios::in);
- if(!fin) {pri("Oshibka otkritia faila dannix dl9 korrekcii");exit(0);}
- while(fin.peek()!=EOF)
- {fin.getline(name,17);filtr(name);
- fin>>stip;
- fin.getline(t,80);
- int k=0;
- if(!strcmp(name,""))
- {
- fout<<"\nNet familii dl9 poiska korrectiruemoy structuri\n\n";continue;
- }
- io.open("binary.cpp",ios::in|ios::out|ios::binary);
- if(!io)
- {pri("Oshibka otkitia binarnogo faila dl9 ego korrekcii");exit(0);}
- while(io.read((char*)&st,z))
- if(!strcmp(st.fio,name))
- {
- p();st.rs=stip;
- p();
- io.seekp(-z,ios::cur);
- io.write((char*)&st,z);
- k++;break;
- }
- if(!k)fout<<"Student s FIO-"<<name<<"Ne nayden"<<endl;
- io.close();
- }
- fin.close();
- io.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement