Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <iostream>
- #include <vector>
- #include <stdlib.h>
- #include <string>
- #include <cstring>
- #include <sstream>
- using namespace std;
- vector<string> names;
- vector<string> last_name;
- vector<string> absences;
- vector<string> unatoned;
- vector<int> abscences_convert;
- vector<int> unatoned_convert;
- void write(int n,string data)
- { ofstream outfile;
- outfile.open("afile.dat");
- for(int i=0; i<n; i++){
- cout << "Enter your name:";
- getline(cin, data);
- outfile << data<<" ";
- cout<<"Enter last name: ";
- getline(cin,data);
- outfile<<data<<" ";
- cout << "Enter atoned absenses: ";
- getline(cin,data);
- outfile<<data<<" ";
- cout << "Enter unatoned absenses: ";
- getline(cin,data);
- outfile<<data<<endl;}
- outfile.close();
- }
- void apply(string b)
- {
- ifstream read;
- read.open("afile.dat");
- int i=0;
- while(!read.eof())
- {
- if(i==4)
- {
- i=0;
- }
- read>>b;
- if(i==0)
- {
- names.push_back(b);
- }
- if(i==1)
- {
- last_name.push_back(b);
- }
- if(i==2)
- {
- absences.push_back(b);
- }
- if(i==3)
- {
- unatoned.push_back(b);
- }
- i++;
- }
- }
- void convert(int n)
- {
- int x;
- for(int i=0; i<n; i++)
- {
- stringstream geek(absences[i]);
- stringstream convert(unatoned[i]);
- geek>>x;
- abscences_convert.push_back(x);
- convert>>x;
- unatoned_convert.push_back(x);
- }
- }
- void smetai(int n)
- {
- int otsustviq=0;
- int neizvineni=0;
- for(int i=0; i<n; i++)
- {
- otsustviq=otsustviq+abscences_convert[i];
- neizvineni=neizvineni+unatoned_convert[i];
- }
- cout<<otsustviq<<" "<<neizvineni<<endl;
- }
- void max_otsustviq(int n)
- {
- int max=0;
- string name;
- for(int i=1; i<n; i++)
- {
- if(abscences_convert[max]<abscences_convert[i])
- {
- max=i;
- }
- }
- name=names[max];
- cout<<name<<endl;
- }
- void sort(int n)
- {
- for(int i=1; i<5; i++)
- {
- for(int j=1; j<5; j++)
- {
- if(names[j-1]>names[j])
- {
- swap(names[j-1], names[j]);
- swap(last_name[j-1], last_name[j]);
- swap(absences[j-1], absences[j]);
- swap(unatoned[j-1], unatoned[j]);
- }
- }
- }
- ofstream outfile;
- outfile.open("afile.dat");
- for(int i=0; i<n; i++){outfile<<names[i]<<" "<<last_name[i]<<" "<<absences[i]<<" "<<unatoned[i]<<endl;}}
- void info(int n)
- {
- string ime;
- getline(cin,ime);
- for(int i=0; i<n; i++)
- {
- if(ime==names[i])
- {
- cout<<names[i]<<" "<<last_name[i]<<" "<<absences[i]<<" "<<unatoned[i]<<endl;
- break;
- }
- }
- }
- void remove(int n)
- {
- string ime1;
- getline(cin,ime1);
- for(int i=0; i<n; i++)
- {
- if(ime1==names[i])
- {
- names[i].erase();
- last_name[i].erase();
- absences[i].erase();
- unatoned[i].erase();
- break;
- }
- }
- ofstream outfile;
- outfile.open("afile.dat");
- for(int i=0; i<n; i++){outfile<<names[i]<<" "<<last_name[i]<<" "<<absences[i]<<" "<<unatoned[i]<<endl;}
- }
- int main ()
- {
- string data;
- int k;
- int n;
- cin>>n;
- cin.ignore();
- while(k){
- cout<<"1. zapishete v fail"<<endl;
- cout<<"2. izvdei info za uchenik"<<endl;
- cout<<"3. sort"<<endl;
- cout<<"4. delete"<<endl;
- cout<<"5. izvedi uchenik sus nai-mnogo otsustviq"<<endl;
- cout<<"6. izvineni i neizvineni otsustviq"<<endl;
- cout<<"7. exit"<<endl;
- cin>>k;
- cin.ignore();
- if(k==1){write(n,data); string b; apply(b); convert(n);}
- if(k==2){info(n);}
- if(k==3){sort(n);}
- if(k==4){remove(n);n=n-1;}
- if(k==5){cout<<"uchenikat s nai mnogo neizvineni: "; max_otsustviq(n);}
- if(k==6){cout<<"broi izvineni i neizvineni otsusviq: ";smetai(n);}
- if(k==7){return 0;}
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement