Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cstring>
- using namespace std;
- struct data
- {
- int date;
- int month;
- int year;
- };
- struct gsm
- {
- int nomer;
- char vid[20];
- char marka[20];
- data DataNaPoluchavane;
- char cvqt[20];
- int broi;
- double cena;
- }a;
- fstream f;
- int is;
- void Input()
- {
- cout<<"Nomer na artikul: "; cin>>a.nomer;
- is=getchar();
- cout<<"Vid: "; cin.getline(a.vid,20);
- cout<<"Marka: "; cin.getline(a.marka,20);
- cout<<"Data na poluchavane: "; cin>>a.DataNaPoluchavane.date>>a.DataNaPoluchavane.month>>a.DataNaPoluchavane.year;
- is=getchar();
- cout<<"Cvqt: "; cin.getline(a.cvqt,20);
- cout<<"Broi: "; cin>>a.broi;
- cout<<"Cena: "; cin>>a.cena;
- }
- void Print()
- {
- cout<<"Nomer na artikul: "; cout<<a.nomer<<endl;
- is=getchar();
- cout<<"Vid: "; cout<<a.vid<<endl;
- cout<<"Marka: "; cout<<a.marka<<endl;
- cout<<"Data na poluchavane: "; cout<<a.DataNaPoluchavane.date<<"."<<a.DataNaPoluchavane.month<<"."<<a.DataNaPoluchavane.year<<endl;
- cout<<"Cvqt: "; cout<<a.cvqt<<endl;
- cout<<"Broi: "; cout<<a.broi<<endl;
- cout<<"Cena: "; cout<<a.cena<<endl<<endl;
- }
- void Create ()
- {
- f.open("gsm.dat",ios::out);
- if (!f)
- {
- cout<<"Error!"<<endl;
- return;
- }
- int n=1;
- while (n==1)
- {
- Input();
- f.write((const char*)&a,sizeof(struct gsm));
- cout<<"Za da produljite da zapisvate natisnete 1, a za da sprete drug buton"<<endl;
- cin>>n;
- }
- f.close();
- }
- void Append()
- {
- f.open("gsm.dat",ios::app);
- if (!f)
- {
- cout<<"Error!"<<endl;
- return;
- }
- int n=1;
- while (n==1)
- {
- Input();
- f.write((const char*)&a,sizeof(struct gsm));
- cout<<"Za da produljite da zapisvate natisnete 1, a za da sprete drug buton"<<endl;
- cin>>n;
- }
- f.close();
- }
- void Update ()
- {
- f.open("curier.dat",ios::in|ios::out);
- if (!f)
- {
- cout<<"Error!"<<endl;
- return;
- }
- unsigned long pos;
- int nomer;
- cout<<"Vuvedi turseniq nomer na artikul za promqna: ";
- cin>>nomer;
- f.seekg(0);
- while (f.read((char*)&a,sizeof(struct gsm)))
- {
- if (a.nomer==nomer)
- {
- cout<<"Vuvedi novi danni:"<<endl;
- Input();
- pos=f.tellg();
- pos=pos-sizeof(struct gsm);
- f.seekg(pos);
- f.write((const char*)&a,sizeof(struct gsm));
- }
- }
- f.close();
- }
- void DeleteNomer()
- {
- f.open("gsm.dat",ios::in);
- if (!f)
- {
- cout<<"Error!"<<endl;
- return;
- }
- fstream f1;
- f1.open("gsm1.dat",ios::out);
- if (!f1)
- {
- cout<<"Error!"<<endl;
- return;
- }
- int nomer;
- cout<<"Vuvedi turseniq nomer za iztrivane na artikul:";
- cin>>nomer;
- f.seekg(0);
- while(f.read((char*)&a,sizeof(gsm)))
- {
- if (a.nomer!=nomer)
- {
- f1.write((const char*)&a,sizeof(struct gsm));
- cout<<endl;
- }
- }
- f.close();
- f1.close();
- f.open("gsm.dat",ios::out);
- if (!f)
- {
- cout<<"Error!"<<endl;
- return;
- }
- f1.open("gsm1.dat",ios::in);
- if (!f1)
- {
- cout<<"Error!"<<endl;
- return;
- }
- while (f1.read((char*)&a,sizeof(gsm)))
- {
- f.write((const char*)&a,sizeof(struct gsm));
- }
- f.close();
- f1.close();
- }
- void DeleteMarka()
- {
- f.open("gsm.dat",ios::in);
- if (!f)
- {
- cout<<"Error!"<<endl;
- return;
- }
- fstream f1;
- f1.open("gsm1.dat",ios::out);
- if (!f1)
- {
- cout<<"Error!"<<endl;
- return;
- }
- char marka[20];
- is=getchar();
- cout<<"Vuvedi turseniq nomer za iztrivane na pratka:";
- cin.getline(marka,20);
- f.seekg(0);
- while(f.read((char*)&a,sizeof(gsm)))
- {
- if (strcmp(marka,a.marka))
- {
- f1.write((const char*)&a,sizeof(struct gsm));
- cout<<endl;
- }
- }
- f.close();
- f1.close();
- f.open("curier.dat",ios::out);
- if (!f)
- {
- cout<<"Error!"<<endl;
- return;
- }
- f1.open("currier1.dat",ios::in);
- if (!f1)
- {
- cout<<"Error!"<<endl;
- return;
- }
- while (f1.read((char*)&a,sizeof(gsm)))
- {
- f.write((const char*)&a,sizeof(struct gsm));
- }
- f.close();
- f1.close();
- }
- void MaxCena()
- {
- float max;
- max=a.cena;
- f.open("gsm.dat",ios::in);
- if (!f) {cout<<"Error"<<"\n"; return ;}
- while (f.read((char*)&a,sizeof(struct gsm)))
- if(a.cena>=max) max=a.cena;
- f.close();
- f.open("gsm.dat",ios::in);
- if (!f) {cout<<"Error"<<"\n"; return ;}
- while (f.read((char*)&a,sizeof(struct gsm)))
- if(a.cena==max)
- {
- cout<<"Nomer: "<<a.nomer<<endl;
- cout<<"Data na poluchavane: "; cout<<a.DataNaPoluchavane.date<<"."<<a.DataNaPoluchavane.month<<"."<<a.DataNaPoluchavane.year<<endl;
- cout<<"Vid: "<<a.cvqt<<endl;
- cout<<"Cvqt: "<<a.cvqt<<endl<<endl;
- }
- f.close();
- }
- void PrintVid()
- {
- f.open("gsm.dat",ios::in);
- if (!f) {cout<<"Error"<<"\n"; return ;}
- char vid[20];
- is=getchar();
- cout<<"Vuvedi tursen vid: "; cin>>vid;
- while (f.read((char*)&a,sizeof(struct gsm)))
- {
- if(!strcmp(a.vid,vid))
- {
- Print();
- }
- }
- f.close();
- }
- void PrintObshtaSuma()
- {
- f.open("gsm.dat",ios::in);
- if (!f) {cout<<"Error"<<"\n"; return ;}
- double suma=0;
- while (f.read((char*)&a,sizeof(struct gsm)))
- {
- suma+=a.cena*a.broi;
- }
- cout<<"Obshta suma na vsichki artikuli: "<<suma<<endl;
- f.close();
- }
- void PrintData()
- {
- f.open("gsm.dat",ios::in);
- if (!f) {cout<<"Error"<<"\n"; return ;}
- data data;
- cout<<"Vuvedi data: "; cin>>data.date>>data.month>>data.year;
- while (f.read((char*)&a,sizeof(struct gsm)))
- {
- if(a.DataNaPoluchavane.date==data.date&&a.DataNaPoluchavane.month==data.month&&a.DataNaPoluchavane.year==data.year)
- {
- Print();
- }
- }
- f.close();
- }
- void PrintIntervalDati()
- {
- f.open("gsm.dat",ios::in);
- if (!f) {cout<<"Error"<<"\n"; return ;}
- data data1,data2;
- cout<<"Vuvedi purva data: ";cin>>data1.date>>data1.month>>data1.year;
- cout<<"Vuvedi vtora data: ";cin>>data2.date>>data2.month>>data2.year;
- while(f.read((char*)&a,sizeof(gsm)))
- {
- if (data1.year<a.DataNaPoluchavane.year&&data2.year>a.DataNaPoluchavane.year)
- {
- Print();
- }
- else if (data1.year<=a.DataNaPoluchavane.year&&data2.year>=a.DataNaPoluchavane.year&&data1.month<a.DataNaPoluchavane.month&&data2.month>a.DataNaPoluchavane.month)
- {
- Print();
- }
- else if (data1.year<=a.DataNaPoluchavane.year&&data2.year>=a.DataNaPoluchavane.year&&data1.month<=a.DataNaPoluchavane.month&&data2.month>=a.DataNaPoluchavane.month&&data1.date<=a.DataNaPoluchavane.date&&data2.date>=a.DataNaPoluchavane.date)
- {
- Print();
- }
- }
- f.close();
- }
- void PrintAll()
- {
- f.open("gsm.dat",ios::in);
- if (!f) {cout<<"Error"<<"\n"; return ;}
- while (f.read((char*)&a,sizeof(struct gsm)))
- {
- Print();
- }
- f.close();
- }
- void DeleteAll()
- {
- f.open("gsm.dat",ios::out);
- f.close();
- }
- int main()
- {
- int command = 1 ;
- while (command!=0)
- {
- cout<<"INFORMACIONNA SISTEMA - KURIERI"<<endl;
- cout<<"******************************************************************************************\n";
- cout<<"\n izberete chislo ot 1 do 12 spored funkciqta:\n"<<endl;
- cout<<"\t 1 -> create \t /sazdavane na fail/\n"<<endl;
- cout<<"\t 2 -> append \t /dobavqne na pratki/\n"<<endl;
- cout<<"\t 3 -> update \t /promqna na danni na pratka po nomer/\n"<<endl;
- cout<<"\t 4 -> delete nomer \t /iztrivane na artikul po nomer/\n"<<endl;
- cout<<"\t 5 -> delete marka \t /iztrivane na artikuli po marka/\n"<<endl;
- cout<<"\t 6 -> print max cena \t /izvejda nai-skupite artikuli/\n"<<endl;
- cout<<"\t 7 -> print vid\t /izvejdane na artikuli po vid/\n"<<endl;
- cout<<"\t 8 -> obshta suma \t /obshtata suma na vsichki artiklu/\n"<<endl;
- cout<<"\t 9 -> print data \t /izvejda artikuli, dostaveni na dadena data/\n"<<endl;
- cout<<"\t 10 -> print mejdu 2 dati \t /izvejda artikuli, polucheni v interval mejdu 2 dadeni dati/\n"<<endl;
- cout<<"\t 11 -> print all \t /izvejda vsichki pratki/\n"<<endl;
- cout<<"\t 12 -> delete all \t /iztriva vsichki danni/\n"<<endl;
- cout<<" drug simvol -> izhod\n"<<endl;
- cout<<"******************************************************************************************\n";
- cin>>command;
- switch (command)
- {
- case 1: Create(); break;
- case 2: Append(); break;
- case 3: Update(); break;
- case 4: DeleteNomer(); break;
- case 5: DeleteMarka(); break;
- case 6: MaxCena(); break;
- case 7: PrintVid(); break;
- case 8: PrintObshtaSuma(); break;
- case 9: PrintData(); break;
- case 10: PrintIntervalDati(); break;
- case 11: PrintAll(); break;
- case 12: DeleteAll(); break;
- default: command=0; break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement