Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.11 KB | None | 0 0
  1. #include <fstream>
  2. #include <iostream>
  3. #include <vector>
  4. #include <stdlib.h>
  5. #include <string>
  6. #include <cstring>
  7. #include <sstream>
  8.  
  9. using namespace std;
  10. vector<string> names;
  11. vector<string> last_name;
  12. vector<string> absences;
  13. vector<string> unatoned;
  14. vector<int> abscences_convert;
  15. vector<int> unatoned_convert;
  16. void write(int n,string data)
  17. { ofstream outfile;
  18. outfile.open("afile.dat");
  19. for(int i=0; i<n; i++){
  20. cout << "Enter your name:";
  21. getline(cin, data);
  22. outfile << data<<" ";
  23. cout<<"Enter last name: ";
  24. getline(cin,data);
  25. outfile<<data<<" ";
  26. cout << "Enter atoned absenses: ";
  27. getline(cin,data);
  28. outfile<<data<<" ";
  29. cout << "Enter unatoned absenses: ";
  30. getline(cin,data);
  31. outfile<<data<<endl;}
  32. outfile.close();
  33. }
  34. void apply(string b)
  35. {
  36. ifstream read;
  37. read.open("afile.dat");
  38. int i=0;
  39. while(!read.eof())
  40. {
  41. if(i==4)
  42. {
  43. i=0;
  44. }
  45. read>>b;
  46. if(i==0)
  47. {
  48. names.push_back(b);
  49. }
  50. if(i==1)
  51. {
  52. last_name.push_back(b);
  53. }
  54. if(i==2)
  55. {
  56. absences.push_back(b);
  57. }
  58. if(i==3)
  59. {
  60. unatoned.push_back(b);
  61. }
  62. i++;
  63. }
  64. }
  65. void convert(int n)
  66. {
  67. int x;
  68. for(int i=0; i<n; i++)
  69. {
  70. stringstream geek(absences[i]);
  71. stringstream convert(unatoned[i]);
  72. geek>>x;
  73. abscences_convert.push_back(x);
  74. convert>>x;
  75. unatoned_convert.push_back(x);
  76. }
  77. }
  78.  
  79. void smetai(int n)
  80.  
  81. {
  82. int otsustviq=0;
  83. int neizvineni=0;
  84. for(int i=0; i<n; i++)
  85. {
  86. otsustviq=otsustviq+abscences_convert[i];
  87. neizvineni=neizvineni+unatoned_convert[i];
  88.  
  89. }
  90. cout<<otsustviq<<" "<<neizvineni<<endl;
  91. }
  92. void max_otsustviq(int n)
  93. {
  94. int max=0;
  95. string name;
  96. for(int i=1; i<n; i++)
  97. {
  98. if(abscences_convert[max]<abscences_convert[i])
  99. {
  100. max=i;
  101. }
  102. }
  103. name=names[max];
  104. cout<<name<<endl;
  105. }
  106. void sort(int n)
  107. {
  108. for(int i=1; i<5; i++)
  109. {
  110. for(int j=1; j<5; j++)
  111. {
  112. if(names[j-1]>names[j])
  113. {
  114. swap(names[j-1], names[j]);
  115. swap(last_name[j-1], last_name[j]);
  116. swap(absences[j-1], absences[j]);
  117. swap(unatoned[j-1], unatoned[j]);
  118. }
  119. }
  120. }
  121. ofstream outfile;
  122. outfile.open("afile.dat");
  123. for(int i=0; i<n; i++){outfile<<names[i]<<" "<<last_name[i]<<" "<<absences[i]<<" "<<unatoned[i]<<endl;}}
  124.  
  125.  
  126. void info(int n)
  127. {
  128. string ime;
  129. getline(cin,ime);
  130. for(int i=0; i<n; i++)
  131. {
  132. if(ime==names[i])
  133. {
  134. cout<<names[i]<<" "<<last_name[i]<<" "<<absences[i]<<" "<<unatoned[i]<<endl;
  135. break;
  136. }
  137. }
  138. }
  139.  
  140.  
  141. void remove(int n)
  142. {
  143. string ime1;
  144. getline(cin,ime1);
  145. for(int i=0; i<n; i++)
  146. {
  147. if(ime1==names[i])
  148. {
  149. names[i].erase();
  150. last_name[i].erase();
  151. absences[i].erase();
  152. unatoned[i].erase();
  153. break;
  154.  
  155. }
  156.  
  157. }
  158. ofstream outfile;
  159. outfile.open("afile.dat");
  160. for(int i=0; i<n; i++){outfile<<names[i]<<" "<<last_name[i]<<" "<<absences[i]<<" "<<unatoned[i]<<endl;}
  161. }
  162. int main ()
  163. {
  164. string data;
  165. int k;
  166. int n;
  167. cin>>n;
  168. cin.ignore();
  169. while(k){
  170. cout<<"1. zapishete v fail"<<endl;
  171. cout<<"2. izvdei info za uchenik"<<endl;
  172. cout<<"3. sort"<<endl;
  173. cout<<"4. delete"<<endl;
  174. cout<<"5. izvedi uchenik sus nai-mnogo otsustviq"<<endl;
  175. cout<<"6. izvineni i neizvineni otsustviq"<<endl;
  176. cout<<"7. exit"<<endl;
  177. cin>>k;
  178. cin.ignore();
  179. if(k==1){write(n,data); string b; apply(b); convert(n);}
  180. if(k==2){info(n);}
  181. if(k==3){sort(n);}
  182. if(k==4){remove(n);n=n-1;}
  183. if(k==5){cout<<"uchenikat s nai mnogo neizvineni: "; max_otsustviq(n);}
  184. if(k==6){cout<<"broi izvineni i neizvineni otsusviq: ";smetai(n);}
  185. if(k==7){return 0;}
  186.  
  187. }
  188. return 0;
  189. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement