Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.60 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. class v15
  5. {
  6. public:
  7.  
  8. int num;
  9. char name[20];
  10. char lastname[20];
  11. char ad[100];
  12. char date[15];
  13.  
  14. };
  15. v15* zap(int n)
  16. {
  17. int i;
  18.  
  19. v15* inf = new v15[n];
  20. for (i = 0; i < n; i++)
  21. {
  22. cout << "Number:";
  23. cin >> inf[i].num;
  24. cout << "Date:";
  25. cin >> inf[i].date;
  26. cout << "First Name:";
  27. cin >> inf[i].name;
  28. cout << "Last Name:";
  29. cin >> inf[i].lastname;
  30. cout << "Adress:";
  31. cin >> inf[i].ad;
  32. }
  33. return inf;
  34. }
  35. v15* zap2(int n, v15* inf)
  36. {
  37. int i;
  38.  
  39. v15* inf2 = new v15[n];
  40. for (i = 0; i < (n - 1); i++)
  41. {
  42. inf2[i] = inf[i];
  43. }
  44. delete[] inf;
  45.  
  46. for (i = n - 1; i < n; i++)
  47. {
  48. cout << "Number:";
  49. cin >> inf2[i].num;
  50. cout << "Date:";
  51. cin >> inf2[i].date;
  52. cout << "First Name:";
  53. cin >> inf2[i].name;
  54. cout << "Last Name:";
  55. cin >> inf2[i].lastname;
  56. cout << "Adress:";
  57. cin >> inf2[i].ad;
  58. }
  59. //ofstream fout;
  60. //fout.open("Info.txt"/*,ofstream::app*/);
  61. //for (i = 0; i < n; i++)
  62. //{
  63. // if (i > 0)
  64. // fout << "\n";
  65. // fout << inf2[i].num << "\n";
  66. // fout << inf2[i].date << "\n";
  67. // fout << inf2[i].name << "\n";
  68. // fout << inf2[i].lastname << "\n";
  69. // fout << inf2[i].ad;
  70.  
  71. //}
  72. //fout.close();
  73. return inf2;
  74. }
  75. void rew(int n, v15* inf)
  76. {
  77. int nu;
  78. cout << "Number:";
  79. cin >> nu;
  80. cout << "Data:\ndate\nFirst Name\nLast Name\nAdress\n";
  81. char datadel[20];
  82. cin >> datadel;
  83. int j, i;
  84. for (j = 0; j < n; j++)
  85. {
  86. if (inf[j].num == nu) i = j;
  87. }
  88. int s = 0;
  89. for (int k = 0; k < strlen(datadel); k++)
  90. {
  91. if (inf[i].date[k] == datadel[k]) s++;
  92. if (s == strlen(datadel))
  93. {
  94. for (int u = 0; u < strlen(datadel); u++)
  95. inf[i].date[u] = ' ';
  96. cin >> inf[i].date;
  97. }
  98. }
  99. s = 0;
  100. for (int k = 0; k < strlen(datadel); k++)
  101. {
  102. if (inf[i].name[k] == datadel[k]) s++;
  103. if (s == strlen(datadel))
  104. {
  105. for (int u = 0; u < strlen(datadel); u++)
  106. inf[i].name[u] = ' ';
  107. cin >> inf[i].name;
  108. }
  109. }
  110. s = 0;
  111. for (int k = 0; k < strlen(datadel); k++)
  112. {
  113. if (inf[i].lastname[k] == datadel[k]) s++;
  114. if (s == strlen(datadel))
  115. {
  116. for (int u = 0; u < strlen(datadel); u++)
  117. inf[i].lastname[u] = ' ';
  118. cin >> inf[i].lastname;
  119. }
  120. }
  121. s = 0;
  122. for (int k = 0; k < strlen(datadel); k++)
  123. {
  124. if (inf[i].ad[k] == datadel[k]) s++;
  125. if (s == strlen(datadel))
  126. {
  127. for (int u = 0; u < strlen(datadel); u++)
  128. inf[i].ad[u] = ' ';
  129. cin >> inf[i].ad;
  130. }
  131. }
  132. //ofstream fout;
  133. //fout.open("Info.txt"/*,ofstream::app*/);
  134. //for (i = 0; i < n; i++)
  135. //{
  136. // if (i > 0)
  137. // fout << "\n";
  138. // fout << inf[i].num << "\n";
  139. // fout << inf[i].date << "\n";
  140. // fout << inf[i].name << "\n";
  141. // fout << inf[i].lastname << "\n";
  142. // fout << inf[i].ad;
  143.  
  144. //}
  145. //fout.close();
  146. }
  147. void show1(int n, v15* inf)
  148. {
  149. int i;
  150. /*ifstream fin;
  151. fin.open("Info.txt");
  152. for (i = 0; i < n - 1; i++)
  153. {
  154. while (!fin.eof())
  155. {
  156. for (int j = 0; j < 20; j++)
  157. {
  158. inf[i].num = 0;
  159. inf[i].date[j] = ' ';
  160. inf[i].name[j] = ' ';
  161. inf[i].lastname[j] = ' ';
  162. inf[i].ad[j] = ' ';
  163. }
  164. fin >> inf[i].num;
  165. fin >> inf[i].date;
  166. fin >> inf[i].name;
  167. fin >> inf[i].lastname;
  168. fin >> inf[i].ad;
  169. if (inf[i].num != 0 && inf[i].date != "" && inf[i].name != "" && inf[i].lastname != "" && inf[i].ad != "")
  170. {
  171. cout << "Number:" << inf[i].num << "\n";
  172. cout << "Date:" << inf[i].date << "\n";
  173. cout << "First Name:" << inf[i].name << "\n";
  174. cout << "Last Name:" << inf[i].lastname << "\n";
  175. cout << "Adress:" << inf[i].ad << "\n";
  176. }
  177. }
  178. }
  179. fin.close();*/
  180. for (i = 0; i < n; i++)
  181. {
  182. cout << "Number:\t\t";
  183. cout<<inf[i].num<<"\n";
  184. cout << "Date:\t\t";
  185. cout<< inf[i].date << "\n";
  186. cout << "First Name:\t";
  187. cout<< inf[i].name << "\n";
  188. cout << "Last Name:\t";
  189. cout<< inf[i].lastname << "\n";
  190. cout << "Adress:\t\t";
  191. cout<< inf[i].ad << "\n";
  192. }
  193. }
  194. void del(int n, v15* inf)
  195. {
  196. int nu;
  197. cout << "Number:";
  198. cin >> nu;
  199. cout << "Data:\nDate\nFirst Name\nLast Name\nAdress\n";
  200. char datadel[20];
  201. cin >> datadel;
  202. int j, i;
  203. for (j = 0; j < n; j++)
  204. {
  205. if (inf[j].num == nu) i = j;
  206. }
  207. int s = 0;
  208. for (int k = 0; k < strlen(datadel); k++)
  209. {
  210. if (inf[i].date[k] == datadel[k]) s++;
  211. if (s == strlen(datadel))
  212. {
  213. for (int u = 0; u < strlen(datadel); u++)
  214. inf[i].date[u] = '_';
  215.  
  216. }
  217. }
  218. s = 0;
  219. for (int k = 0; k < strlen(datadel); k++)
  220. {
  221. if (inf[i].name[k] == datadel[k]) s++;
  222. if (s == strlen(datadel))
  223. {
  224. for (int u = 0; u < strlen(datadel); u++)
  225. inf[i].name[u] = '_';
  226.  
  227. }
  228. }
  229. s = 0;
  230. for (int k = 0; k < strlen(datadel); k++)
  231. {
  232. if (inf[i].lastname[k] == datadel[k]) s++;
  233. if (s == strlen(datadel))
  234. {
  235. for (int u = 0; u < strlen(datadel); u++)
  236. inf[i].lastname[u] = '_';
  237.  
  238. }
  239. }
  240. s = 0;
  241. for (int k = 0; k < strlen(datadel); k++)
  242. {
  243. if (inf[i].ad[k] == datadel[k]) s++;
  244. if (s == strlen(datadel))
  245. {
  246. for (int u = 0; u < strlen(datadel); u++)
  247. inf[i].ad[u] = '_';
  248.  
  249. }
  250. }
  251. //ofstream fout;
  252. //fout.open("Info.txt"/*,ofstream::app*/);
  253. //for (i = 0; i < n; i++)
  254. //{
  255. // if (i > 0)
  256. // fout << "\n";
  257. // fout << inf[i].num << "\n";
  258. // fout << inf[i].date << "\n";
  259. // fout << inf[i].name << "\n";
  260. // fout << inf[i].lastname << "\n";
  261. // fout << inf[i].ad;
  262.  
  263. //}
  264. //fout.close();
  265. }
  266. void endd(int n,v15* inf)
  267. {
  268. int i;
  269. ofstream fout;
  270. fout.open("End.txt");
  271. for (i = 0; i < n; i++)
  272. {
  273. if (i > 0)
  274. fout << "\n";
  275. fout << inf[i].num << "\n";
  276. fout << inf[i].date << "\n";
  277. fout << inf[i].name << "\n";
  278. fout << inf[i].lastname << "\n";
  279. fout << inf[i].ad;
  280.  
  281. }
  282. fout.close();
  283. //ifstream fin;
  284. //fin.open("End.txt");
  285. //for (i = 0; i < n - 1; i++)
  286. //{
  287. // while (!fin.eof())
  288. // {
  289. // for (int j = 0; j < 20; j++)
  290. // {
  291. // inf[i].num = 0;
  292. // inf[i].date[j] = ' ';
  293. // inf[i].name[j] = ' ';
  294. // inf[i].lastname[j] = ' ';
  295. // inf[i].ad[j] = ' ';
  296. // }
  297. // fin >> inf[i].num;
  298. // fin >> inf[i].date;
  299. // fin >> inf[i].name;
  300. // fin >> inf[i].lastname;
  301. // fin >> inf[i].ad;
  302. // /*if (inf[i].num != 0 && inf[i].date != ' ' && inf[i].name != ' ' && inf[i].lastname != ' ' && inf[i].ad != ' ')
  303. // {*/
  304. // cout << "Number:" << inf[i].num << "\n";
  305. // cout << "Date:" << inf[i].date << "\n";
  306. // cout << "First Name:" << inf[i].name << "\n";
  307. // cout << "Last Name:" << inf[i].lastname << "\n";
  308. // cout << "Adress:" << inf[i].ad << "\n";
  309. // /*}*/
  310. // }
  311. //}
  312. //fin.close();
  313. }
  314. void show2(int n, v15* inf)
  315. {
  316. int i;
  317. v15 *inf2 = new v15[n];
  318. ifstream fin;
  319. fin.open("Info.txt");
  320. for (i = 0; i < n - 1; i++)
  321. {
  322. while (!fin.eof())
  323. {
  324. /*for (int j = 0; j < 20; j++)
  325. {
  326. inf[i].num = 0;
  327. inf[i].date[j] = ' ';
  328. inf[i].name[j] = ' ';
  329. inf[i].lastname[j] = ' ';
  330. inf[i].ad[j] = ' ';
  331. }*/
  332. fin >> inf2[i].num;
  333. fin >> inf2[i].date;
  334. fin >> inf2[i].name;
  335. fin >> inf2[i].lastname;
  336. fin >> inf2[i].ad;
  337. /*if (inf[i].num != 0 && inf[i].date != "" && inf[i].name != "" && inf[i].lastname != "" && inf[i].ad != "")
  338. {*/
  339. cout << "Number:" << inf2[i].num << "\n";
  340. cout << "Date:" << inf2[i].date << "\n";
  341. cout << "First Name:" << inf2[i].name << "\n";
  342. cout << "Last Name:" << inf2[i].lastname << "\n";
  343. cout << "Adress:" << inf2[i].ad << "\n";
  344. /* }*/
  345. }
  346. }
  347. fin.close();
  348. cout << "==============================\n";
  349. ifstream fin2;
  350. fin2.open("End.txt");
  351. for (i = 0; i < n - 1; i++)
  352. {
  353. while (!fin2.eof())
  354. {
  355.  
  356. fin2 >> inf2[i].num;
  357. fin2 >> inf2[i].date;
  358. fin2 >> inf2[i].name;
  359. fin2 >> inf2[i].lastname;
  360. fin2 >> inf2[i].ad;
  361.  
  362. cout << "Number:" << inf2[i].num << "\n";
  363. cout << "Date:" << inf2[i].date << "\n";
  364. cout << "First Name:" << inf2[i].name << "\n";
  365. cout << "Last Name:" << inf2[i].lastname << "\n";
  366. cout << "Adress:" << inf2[i].ad << "\n";
  367.  
  368. }
  369. }
  370. fin2.close();
  371. }
  372. void delet(int &n, v15* inf)
  373. {
  374. int i, q = 0, w = 0, e = 0;
  375.  
  376. for (i = 0; i < n; i++)
  377. {
  378. for (int u =i+1; u < n; u++)
  379. {
  380. q = 0; w = 0; e = 0;
  381. for (int j = 0; j <= (strlen(inf[i].name)); j++)
  382. if (inf[i].name[j] == inf[u].name[j]) q++;
  383. for (int j = 0; j <= strlen(inf[i].lastname); j++)
  384. if (inf[i].lastname[j] == inf[u].lastname[j]) w++;
  385. for (int j = 0; j <= strlen(inf[i].ad); j++)
  386. if (inf[i].ad[j] == inf[u].ad[j]) e++;
  387. if ((q-1) == strlen(inf[i].name) && (w-1) == strlen(inf[i].lastname) && (e-1) == strlen(inf[i].ad))
  388. {
  389.  
  390. for (u; u < n; u++)
  391. {
  392. inf[u] = inf[u + 1];
  393. }
  394. n = n - 1;
  395. }
  396. }
  397.  
  398. }
  399. }
  400. int main()
  401. {
  402. int i,n;
  403. cout << "Kol-vo:";
  404. cin >> n;
  405. v15* inf = zap(n);
  406. ofstream fout;
  407. fout.open("Info.txt"/*,ofstream::app*/);
  408. for (i = 0; i < n; i++)
  409. {
  410. if(i>0)
  411. fout << "\n";
  412. fout << inf[i].num << "\n";
  413. fout << inf[i].date << "\n";
  414. fout << inf[i].name << "\n";
  415. fout << inf[i].lastname << "\n";
  416. fout << inf[i].ad;
  417.  
  418. }
  419. fout.close();
  420. //ifstream fin;
  421. //fin.open("Info.txt");
  422. //for (i = 0; i < n; i++)
  423. //{
  424. // while (!fin.eof())
  425. // {
  426. // fin>> inf[i].num ;
  427. // fin>>inf[i].date ;
  428. // fin>> inf[i].name;
  429. // fin>> inf[i].lastname;
  430. // fin>> inf[i].ad;
  431. // }
  432. //}
  433.  
  434. //fin.close();
  435. ln:
  436. cout << "0-End\n1-Show isx\n2-Rewrite\n3-Delete field\n4-Zfile2\n5-Dop\n6-View files\n7-Delete povt\n";
  437. int l ;
  438. cin >> l;
  439. if (l == 5)
  440. n = n + 1;
  441. switch (l)
  442. {
  443. case 0: return 0;
  444. case 1: show1(n, inf); goto ln;
  445. case 2:rew(n, inf); goto ln;
  446. case 3:del(n, inf); goto ln;
  447. case 4:endd(n, inf); goto ln;
  448. case 5:inf=zap2(n, inf); goto ln;
  449. case 6:show2(n, inf); goto ln;
  450. case 7:delet(n, inf); goto ln;
  451. default: return 0;
  452. }
  453. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement