Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.68 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <conio.h>
  4. #include <string>
  5. #include <windows.h>
  6. using namespace std;
  7. #define size 30
  8.  
  9.  
  10. struct kniga
  11. {
  12. string naz;
  13. string famA;
  14. string zhanr;
  15. string years;
  16. }books;
  17.  
  18. struct otd
  19. {
  20. char nazvanie[30];
  21. char kb[20];
  22. char time[30];
  23. }otdell;
  24.  
  25. struct sotrudnik
  26. {
  27. string name;
  28. string dolzhnost;
  29. string bday;
  30. string telephone;
  31. }strud;
  32.  
  33. struct chitatel
  34. {
  35. string famil;
  36. string namee;
  37. string otchestvo;
  38. string bdayy;
  39. string dolzhnost;
  40. string telephonee;
  41. string pasport;
  42. string datar;
  43. }chit;
  44.  
  45. void Antipova();
  46. void Sobolev();
  47. void Bogdanova();
  48. void sel();
  49.  
  50.  
  51. void vxod();
  52. void book();
  53. void otdel();
  54. void sotrudniki();
  55. void vvodchitatela();
  56. void vivodchitatela();
  57.  
  58.  
  59. void sozd();
  60. void vivod();
  61. void dobav();
  62. void poisk();
  63.  
  64.  
  65.  
  66. void sozd1();
  67. void vivod1();
  68. void dobav1();
  69. void correct1();
  70.  
  71. void sozd2();
  72. void vivod2();
  73. void dobav2();
  74. void poisk2();
  75. void udalen2();
  76.  
  77. void poiskkk();
  78. void vivodkk();
  79.  
  80. void removeBookFromLibrary(string bookName);
  81.  
  82. void gotoxy(int x, int y)
  83. {
  84. HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
  85. COORD coord = { x,y };
  86. SetConsoleCursorPosition(hStdOut, coord);
  87. }
  88.  
  89. int main()
  90. {
  91. int nom;
  92. system("cls");
  93. SetConsoleCP(1251);
  94. SetConsoleOutputCP(1251);
  95.  
  96. do
  97. {
  98. system("cls");
  99. HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
  100. WORD wColour = FOREGROUND_RED;
  101. SetConsoleTextAttribute(hStdOut, wColour | FOREGROUND_INTENSITY);
  102. gotoxy(20, 4);
  103. cout << " Курсовая работа по дисциплине: ";
  104. gotoxy(20, 6);
  105. cout << " Языки и методы программирования";
  106. gotoxy(20, 8);
  107. cout << "по теме: Работа с файлами.";
  108. gotoxy(30, 9);
  109. cout << " Автоматизированная информационная система Библиотека ";
  110. gotoxy(20, 11);
  111. cout << "Выполнила:\t Антипова П.Р.";
  112. gotoxy(20, 12);
  113. cout << " \t Группа: ПМ-27Д";
  114. gotoxy(30, 14);
  115. cout << "\t 1-Вход в библиотеку\n";
  116. gotoxy(30, 15);
  117. cout << "\t 2-Выход из библиотеки\n";
  118. gotoxy(30, 16);
  119. cout << "Введите номер пункта: ";
  120. cin >> nom;
  121. cin.get();
  122. switch (nom)
  123. {
  124. case 1: vxod(); break;
  125. case 2: break;
  126. }
  127. } while (nom != 2);
  128.  
  129. }
  130.  
  131. void vxod()
  132. {
  133. unsigned short nNumber = 0;
  134. do
  135. {
  136. system("cls");
  137. cout << "1. Войти как администратор. \n" << endl;
  138. cout << "2. Войти как пользователь. \n" << endl << endl;
  139. cout << "Введите номер: ";
  140. cin >> nNumber;
  141. cin.clear();
  142. cin.get();
  143. } while (nNumber != 1 & nNumber != 2);
  144. switch (nNumber)
  145. {
  146. case 1:
  147. {
  148. cout << "Вы попытались войти как администратор." << endl;
  149. const unsigned short cnPassword = 11;
  150. unsigned short nPassword = 0;
  151. do
  152. {
  153. cout << "Введите пароль для получения прав администратора: ";
  154. cin >> nPassword;
  155. cin.clear();
  156. cin.sync();
  157. if (nPassword != cnPassword)
  158. cout << endl << endl << L"\t\t\t\t Пароль введен неверно! \n\t\t\t\t Повторите попытку." << endl;
  159. if (nPassword == cnPassword)
  160. {
  161. cout << "\n\t\t\tПароль введен верно!\r" << endl;
  162. unsigned short npunkt = 0;
  163. do
  164. {
  165. system("cls");
  166. cout << "\t\t Библиотека\n Добро пожаловать!\n";
  167. cout << "1. Книги\n";
  168. cout << "2. Отделы\n";
  169. cout << "3. Сотрудники\n";
  170. cout << "4. Ввод данных о читателях\n";
  171. cout << "5. Вывод формуляра читателя\n";
  172. cout << "6. Выход\n";
  173. cout << "Введите номер:";
  174. cin >> npunkt;
  175. cin.get();
  176. switch (npunkt)
  177. {
  178. case 1: book(); break;
  179. case 2: otdel(); break;
  180. case 3: sotrudniki(); break;
  181. case 4: vvodchitatela(); break;
  182. case 5: vivodchitatela(); break;
  183. case 6: break;
  184. }
  185. } while (npunkt != 6);
  186. }
  187. _getch();
  188. system("cls");
  189. } while (cnPassword != nPassword);
  190. break;
  191. }
  192.  
  193. case 2:
  194. {
  195. system("cls");
  196. int npunktt;
  197. do
  198. {
  199. cout << "\t\t Выберите фамилию:\n";
  200. cout << "1. Антипова П.Р.\n";
  201. cout << "2. Соболевская К.А.\n";
  202. cout << "3. Богданова Т.П.\n";
  203. cout << "4. Селиверстова Д.В.\n";
  204. cout << "5. Выход\n";
  205. cout << "Введите номер:";
  206. cin >> npunktt;
  207. cin.get();
  208. switch
  209.  
  210. (npunktt)
  211. {
  212. case 1: Antipova(); break;
  213. case 2: Sobolev(); break;
  214. case 3: Bogdanova(); break;
  215. case 4: sel(); break;
  216. case 5: break;
  217. }
  218. } while (npunktt != 5);
  219.  
  220. }
  221. case 0: break;
  222. }while (nNumber != 0);
  223. }
  224. void Antipova()
  225. {
  226. system("cls");
  227. cout << "\t\t Антипова П.Р." <<
  228.  
  229. endl;
  230. const unsigned short cnPasswords = 1234;
  231. unsigned short nPasswords = 0;
  232. do
  233. {
  234. cout << "Введите пароль : ";
  235. cin >> nPasswords;
  236. cin.clear();
  237. cin.sync();
  238. if (nPasswords != cnPasswords)
  239. cout << endl << endl << L"\t\t\t\t Пароль введен неверно! \n\t\t\t\t Повторите попытку." << endl;
  240. if (nPasswords == cnPasswords)
  241. {
  242. cout << "\n\t\t\tПароль введен верно!\r" << endl;
  243. unsigned short nomer = 0;
  244. do
  245. {
  246. system("cls");
  247. cout << "\t\t Библиотека\n Добро пожаловать!\n";
  248. cout << "1. Книги\n";
  249. cout << "2.Поиск книги\n";
  250. cout << "3.Мои книги\n";
  251. cout << "4. Отделы\n";
  252. cout << "5. Сотрудники\n";
  253. cout << "6. Выход\n";
  254. cout << "Введите номер:";
  255. cin >> nomer;
  256. cin.clear();
  257. cin.get();
  258. switch (nomer)
  259. {
  260. case 1: vivod(); break;
  261. case 2: poiskkk(); break;
  262. case 3: vivodkk(); break;
  263. case 4: vivod1(); break;
  264. case 5: vivod2(); break;
  265. case 6: break;
  266. }
  267. } while (nomer != 6);
  268. break;
  269. }
  270. } while (cnPasswords != nPasswords);
  271. }
  272. void poiskkk()
  273. {
  274. system("cls");
  275. string f;
  276. char sym;
  277. int pos;
  278.  
  279. fstream f3;
  280. f3.open("f.txt");
  281. ofstream Q;
  282. Q.open("Ant.txt");
  283. cout << "Введите книгу, которую желаете взять: ";
  284. getline(cin, f);
  285. string helper = "";
  286. bool isTook = false;
  287. kniga temp;
  288. do
  289. {
  290. getline(f3, helper);
  291. if (helper == "") {
  292. break;
  293. }
  294. pos = f3.tellg();
  295. books.naz = helper;
  296. getline(f3, books.famA);
  297. getline(f3, books.zhanr);
  298. getline(f3, books.years);
  299. if (books.naz == f)
  300. {
  301. cout << "<Будете брать книгу?";
  302. cin >> sym;
  303. cin.get();
  304. if (sym == 'y')
  305. {
  306. system("cls");
  307. /**
  308. * Если пользователь решил взять книгу то
  309. * записываем в файл Ant.txt
  310. */
  311. Q << books.naz << endl;
  312. Q << books.famA << endl;
  313. Q << books.zhanr << endl;
  314. Q << books.years << endl;
  315. temp = books;
  316. /** так же здесь логично сразу
  317. * удалить книгу из нашей библиотеки
  318. * простой способ использовать функцию
  319. * удаления как и у сотрудников но я так
  320. * понимаю для книг такой нет
  321. *
  322. * Если книгу взяли значит надо
  323. * переделать записи в библиотеке
  324. * тут нельзя потому что файл еще не закрыт
  325. * поэтому необходима эта вспомогательная
  326. * переменная
  327. */
  328. isTook = true;
  329. }
  330. }
  331. } while (f3);
  332. f3.close();
  333. if (isTook) {
  334. removeBookFromLibrary(temp.naz);
  335. remove("f.txt");
  336. rename("U.txt", "f.txt");
  337. }
  338. _getch();
  339. }
  340. void vivodkk()
  341. {
  342.  
  343. }
  344. void Sobolev()
  345. {
  346. system("cls");
  347. cout << "\t\t Соболевская К.А." << endl;
  348. const unsigned short cnpPasswords = 12345;
  349. unsigned short nnPasswords = 0;
  350. do
  351. {
  352. cout << "Введите пароль : ";
  353. cin >> nnPasswords;
  354. cin.clear();
  355. cin.sync();
  356. if (nnPasswords != cnpPasswords)
  357. cout << endl << endl << L"\t\t\t\t Пароль введен неверно! \n\t\t\t\t Повторите попытку." << endl;
  358. if (nnPasswords == cnpPasswords)
  359. {
  360. cout << "\n\t\t\tПароль введен верно!\r" << endl;
  361. unsigned short nomer = 0;
  362. do
  363. {
  364. system("cls");
  365. cout << "\t\t Библиотека\n Добро пожаловать!\n";
  366. cout << "1. Книги\n";
  367. cout << "2. Отделы\n";
  368. cout << "3. Сотрудники\n";
  369. cout << "4. Выход\n";
  370. cout << "Введите номер:";
  371. cin >> nomer;
  372. cin.clear();
  373. cin.get();
  374. switch (nomer)
  375. {
  376. case 1: vivod(); break;
  377. case 2: vivod1(); break;
  378. case 3: vivod2(); break;
  379. case 4: break;
  380. }
  381. } while (nomer != 4);
  382. break;
  383. }
  384. } while (cnpPasswords != nnPasswords);
  385. }
  386. void Bogdanova()
  387. {
  388. system("cls");
  389. cout << "\t\t Богданова Татьяна" << endl;
  390. const unsigned short cnPasswordss = 1112;
  391. unsigned short nPPasswords = 0;
  392. do
  393. {
  394. cout << "Введите пароль : ";
  395. cin >> nPPasswords;
  396. cin.clear();
  397. cin.sync();
  398. if (nPPasswords != cnPasswordss)
  399. cout << endl << endl << L"\t\t\t\t Пароль введен неверно! \n\t\t\t\t Повторите попытку." << endl;
  400. if (nPPasswords == cnPasswordss)
  401. {
  402. cout << "\n\t\t\tПароль введен верно!\r" << endl;
  403. unsigned short nomer = 0;
  404. do
  405. {
  406. system("cls");
  407. cout << "\t\t Библиотека\n Добро пожаловать!\n";
  408.  
  409. cout << "1. Книги\n";
  410. cout << "2. Отделы\n";
  411. cout << "3. Сотрудники\n";
  412. cout << "4. Выход\n";
  413. cout << "Введите номер:";
  414. cin >> nomer;
  415. cin.clear();
  416. cin.get();
  417. switch (nomer)
  418. {
  419. case 1: vivod(); break;
  420. case 2: vivod1(); break;
  421. case 3: vivod2(); break;
  422. case 4: break;
  423. }
  424. } while (nomer != 4);
  425. break;
  426. }
  427. } while (cnPasswordss != nPPasswords);
  428. }
  429. void sel()
  430. {
  431. system("cls");
  432. cout << "\t\t Селиверстова Дарья " << endl;
  433. const unsigned short cnPassWwords = 2111;
  434. unsigned short nNPasswords = 0;
  435. do
  436. {
  437. cout << "Введите пароль : ";
  438. cin >> nNPasswords;
  439. cin.clear();
  440. cin.sync();
  441. if (nNPasswords != cnPassWwords)
  442. cout << endl << endl << L"\t\t\t\t Пароль введен неверно! \n\t\t\t\t Повторите попытку." << endl;
  443. if (nNPasswords == cnPassWwords)
  444. {
  445. cout << "\n\t\t\tПароль введен верно!\r" << endl;
  446. unsigned short nomer = 0;
  447. do
  448. {
  449. system("cls");
  450. cout << "\t\t Библиотека\n Добро пожаловать!\n";
  451. cout << "1. Книги\n";
  452. cout << "2. Отделы\n";
  453. cout << "3. Сотрудники\n";
  454. cout << "4. Выход\n";
  455. cout << "Введите номер:";
  456. cin >> nomer;
  457. cin.clear();
  458. cin.get();
  459. switch (nomer)
  460. {
  461. case 1: vivod(); break;
  462. case 2: vivod1(); break;
  463. case 3: vivod2(); break;
  464. case 4: break;
  465. }
  466. } while (nomer != 4);
  467. break;
  468. }
  469. } while (cnPassWwords != nNPasswords);
  470. }
  471.  
  472. void book()
  473. {
  474. int nnomer;
  475.  
  476. system("cls");
  477. struct kniga mas[50];
  478. do
  479. {
  480. system("cls");
  481. cout << "\t\tКниги !\n";
  482. cout << "1. Создание книги\n";
  483. cout << "2. Просмотр книги\n";
  484. cout << "3. Добавление\n";
  485. cout << "4. Поиск компоненты\n";
  486. cout << "5. назад\n";
  487. cout << "Введите номер пункта:";
  488. cin >> nnomer;
  489. cin.clear();
  490. cin.get();
  491. switch (nnomer)
  492. {
  493. case 1: sozd(); break;
  494. case 2: vivod(); break;
  495. case 3: dobav(); break;
  496. case 4: poisk(); break;
  497. case 5: break;
  498. }
  499. } while (nnomer != 5);
  500. }
  501. void otdel()
  502. {
  503. int n;
  504. system("cls");
  505. do
  506. {
  507. system("cls");
  508. cout << "\t\t Отделы\n";
  509. cout << "1. Отделы \n";
  510. cout << "2. Названия отделов\n";
  511. cout << "3. Отделы корректировка\n";
  512. cout << "4. назад\n";
  513. cout << "Введите номер пункта:";
  514. cin >> n;
  515. cin.clear();
  516. cin.get();
  517. switch (n)
  518. {
  519. case 1: sozd1(); break;
  520. case 2: vivod1(); break;
  521. case 3: correct1(); break;
  522. case 4: break;
  523. }
  524. } while (n != 4);
  525. }
  526. void sotrudniki()
  527. {
  528. system("cls");
  529. int n;
  530. do
  531. {
  532. system("cls");
  533. cout << "\t\tСотрудники\n";
  534. cout << "1.Ф.И.О. \n";
  535. cout << "2.Просмотр сотрудников\n";
  536. cout << "3.Добавление сотрудников\n";
  537. cout << "4.Поиск сотрудника\n";
  538. cout << "5.Удаление сотрудников\n";
  539. cout << "6. назад\n";
  540. cout << "Введите номер пункта:";
  541. cin >> n;
  542. cin.clear();
  543. cin.get();
  544. switch (n)
  545. {
  546. case 1: sozd2(); break;
  547. case 2: vivod2(); break;
  548. case 3: dobav2(); break;
  549. case 4: poisk2(); break;
  550. case 5: udalen2(); break;
  551. case 6: break;
  552. }
  553. } while (n != 6);
  554. }
  555. void sozd2()
  556. {
  557. ofstream f2;
  558. f2.open("f2.txt");
  559. do
  560. {
  561. system("cls");
  562. cout << "Ф.И.О.: \n";
  563. getline(cin, strud.name);
  564. cout << "Должность: \n";
  565. getline(cin, strud.dolzhnost);
  566. cout << "Дата рождения: \n";
  567. getline(cin, strud.bday);
  568. cin.get();
  569. cout << "Телефон: \n";
  570. getline(cin, strud.telephone);
  571. cin.get();
  572.  
  573. cout << "Для продолжения нажмите -Enter, иначе 'n':" << endl;
  574.  
  575. f2 << strud.name << endl;
  576. f2 << strud.dolzhnost << endl;
  577. f2 << strud.bday << endl;
  578. f2 << strud.telephone << endl;
  579. } while (_getche() != 'n');
  580. f2.close();
  581. _getch();
  582. }
  583. void vivod2()
  584. {
  585. ifstream f2;
  586. f2.open("f2.txt");
  587. string helper = "";
  588. do
  589. {
  590. getline(f2, helper);
  591. if (helper == "") {
  592. break;
  593. }
  594. system("cls");
  595. cout << "Наши Сотрудники: \n";
  596. //getline(f2, strud.name);
  597. strud.name = helper;
  598. getline(f2, strud.dolzhnost);
  599. getline(f2, strud.bday);
  600. getline(f2, strud.telephone);
  601. if (f2) {
  602. cout << "Ф.И.О.: \n" << strud.name << endl;
  603. cout << "Должность: \n" << strud.dolzhnost << endl;
  604. cout << "Дата рождения: \n" << strud.bday << endl;
  605. cout << "Телефон: \n" << strud.telephone << endl;
  606. _getch();
  607. }
  608.  
  609. } while (f2);
  610. f2.close();
  611. }
  612. void dobav2()
  613. {
  614. //Открыть файл для добавления
  615. fstream f2;
  616. f2.open("f2.txt", ios::app);
  617. do
  618. {
  619. system("cls");
  620. cout << "Ф.И.О: \n";
  621. getline(cin, strud.name);
  622. cout << "Должность: \n";
  623. getline(cin, strud.dolzhnost);
  624. cout << "Дата рождения: \n";
  625. getline(cin, strud.bday);
  626. cin.get();
  627. cout << "Телефон: \n";
  628. getline(cin, strud.telephone);
  629. cin.get();
  630.  
  631. cout << "Для продолжения нажмите -Enter, иначе 'n':" << endl;
  632.  
  633. f2 << strud.name << endl;
  634. f2 << strud.dolzhnost << endl;
  635. f2 << strud.bday << endl;
  636. f2 << strud.telephone << endl;
  637.  
  638. } while (_getche() != 'n');
  639. f2.close();
  640. _getch();
  641. }
  642.  
  643. void poisk2()
  644. {
  645. //Открыть файл для поиска
  646. system("cls");
  647. char namesotr[40];
  648. int f3 = 0;
  649. string g;
  650. ifstream f2;
  651. f2.open("f2.txt");
  652. cout << "\n Введите фамилию сотрудника, которого желаете найти:";
  653. getline(cin, g);
  654. do
  655. {
  656. system("cls");
  657. cout << " Сотрудники: \n";
  658. getline(f2, strud.name);
  659. getline(f2, strud.dolzhnost);
  660. getline(f2, strud.bday);
  661. getline(f2, strud.telephone);
  662.  
  663.  
  664. if (strud.name == g)
  665. {
  666. f3 = 1;
  667. cout << "Ф.И.О.: \n" << strud.name << endl;
  668. cout << "Должность: \n" << strud.dolzhnost << endl;
  669. cout << "Дата рождения: \n" << strud.bday << endl;
  670. cout << "Телефон: \n" << strud.telephone << endl;
  671. _getch();
  672. }
  673. } while (f2);
  674. if (f3 == 0)
  675. {
  676. cout << "Извините, в списке нет такой фамилии!";
  677. }
  678. f2.close();
  679. _getch();
  680. }
  681. //void udalen2()
  682. //{
  683. // system("cls");
  684. // int i = 0;
  685. // string k;
  686. // ifstream f2;
  687. // f2.open("f2.txt");
  688. // ofstream U;
  689. // U.open("U.txt");
  690. // cout << "Сотрудники:\n";
  691. //
  692. // do
  693. // {
  694. // getline(f2, strud.name);
  695. // getline(f2, strud.dolzhnost);
  696. // getline(f2, strud.bday);
  697. // getline(f2, strud.telephone);
  698. //
  699. // cout << "Ф.И.О.: \n" << strud.name << endl;
  700. // cout << "Должность: \n" << strud.dolzhnost << endl;
  701. // cout << "Дата рождения: \n" << strud.bday << endl;
  702. // cout << "Телефон: \n" << strud.telephone << endl;
  703. // } while (f2);
  704. // f2.close();
  705. // ifstream a;
  706. // a.open("f2.txt");
  707. // cout << "\n Введите Фамилию и инициалы сотрудника, которого нужно удалить из списка:";
  708. // getline(cin, k);
  709. // do
  710. // {
  711. // getline(a, strud.name);
  712. // getline(a, strud.dolzhnost);
  713. // getline(a, strud.bday);
  714. // getline(a, strud.telephone);
  715. // if (strud.name != k)
  716. // {
  717. // U << strud.name << endl;
  718. // U << strud.dolzhnost << endl;
  719. // U << strud.bday << endl;
  720. // U << strud.telephone << endl;
  721. // }
  722. // } while (a);
  723. // U.close(); a.close();
  724. // remove("f2.txt");
  725. // rename("U.txt", "f2.txt");
  726. //}
  727. void udalen2()
  728. {
  729. system("cls");
  730. int i = 0;
  731. string k, helper = "";
  732. ifstream f2;
  733. f2.open("f2.txt");
  734. ofstream U;
  735. U.open("U.txt");
  736. cout << "Сотрудники:\n";
  737. do
  738. {
  739. getline(f2, helper);
  740. if (helper == "") {
  741. break;
  742. }
  743.  
  744. strud.name = helper;
  745. getline(f2, strud.dolzhnost);
  746. getline(f2, strud.bday);
  747. getline(f2, strud.telephone);
  748.  
  749. cout << "Ф.И.О.: \n" << strud.name << endl;
  750. cout << "Должность: \n" << strud.dolzhnost << endl;
  751. cout << "Дата рождения: \n" << strud.bday << endl;
  752. cout << "Телефон: \n" << strud.telephone << endl;
  753. } while (f2);
  754. f2.close();
  755. ifstream a;
  756. a.open("f2.txt");
  757. cout << "\n Введите Фамилию и инициалы сотрудника, которого нужно удалить из списка:";
  758. getline(cin, k);
  759. do
  760. {
  761. getline(a, helper);
  762. if (helper == "") {
  763. break;
  764. }
  765. strud.name = helper;
  766. getline(a, strud.dolzhnost);
  767. getline(a, strud.bday);
  768. getline(a, strud.telephone);
  769. if (strud.name != k)
  770. {
  771. U << strud.name << endl;
  772. U << strud.dolzhnost << endl;
  773. U << strud.bday << endl;
  774. U << strud.telephone << endl;
  775. }
  776. } while (a);
  777. U.close(); a.close();
  778. remove("f2.txt");
  779. rename("U.txt", "f2.txt");
  780. }
  781.  
  782. void sozd()
  783. {
  784. ofstream f;
  785. f.open("f.txt");
  786. do
  787. {
  788. system("cls");
  789. cout << "Название книги: \n";
  790. getline(cin, books.naz);
  791. cout << "Автор: \n";
  792. getline(cin, books.famA);
  793. cout << "Жанр: \n";
  794. getline(cin, books.zhanr);
  795. cout << "Год издания: \n";
  796. getline(cin, books.years);
  797. cin.get();
  798.  
  799. cout << "Для продолжения нажмите -Enter, иначе 'n':" << endl;
  800. f << books.naz << endl;
  801. f << books.famA << endl;
  802. f << books.zhanr << endl;
  803. f << books.years << endl;
  804. } while (_getche() != 'n');
  805. f.close();
  806. _getch();
  807. }
  808. void vivod()
  809. {
  810. struct kniga books[size];
  811. kniga temp;
  812. int i = 0, j, o, n;
  813. ifstream f;
  814. f.open("f.txt");
  815. system("cls");
  816. gotoxy(30, 0);
  817. cout << "Список книг:";
  818. do
  819. {
  820. getline(f, books[i].naz);
  821. getline(f, books[i].famA);
  822. getline(f, books[i].zhanr);
  823. getline(f, books[i].years);
  824. i++;
  825. } while (f);
  826.  
  827. for (j = 0; j < i - 1; j++)
  828. for (o = j + 1; o < i; o++)
  829. if (books[j].naz.compare(books[o].naz) > 0)
  830. {
  831. temp = books[j];
  832. books[j] = books[o];
  833. books[o] = temp;
  834. }
  835. for (j = 1; j < i; j++)
  836. {
  837. cout << "\nНазвание книги: " << books[j].naz << endl;
  838. cout << "Автор: " << books[j].famA << endl;
  839. cout << "Жанр: " << books[j].zhanr << endl;
  840. cout << "Год издания: "<< books[j].years << endl;
  841. _getch();
  842. }
  843.  
  844. f.close();
  845. }
  846.  
  847. void dobav()
  848. {
  849. //Открыть файл для добавления
  850. fstream f;
  851. f.open("f.txt", ios::app);
  852. do
  853. {
  854. system("cls");
  855. cout << "Название книги: \n";
  856. getline(cin, books.naz);
  857. cout << "Автор: \n";
  858. getline(cin, books.famA);
  859. cout << "Жанр: \n";
  860. getline(cin, books.zhanr);
  861. cout << "Год издания: \n";
  862. getline(cin, books.years);
  863. cin.get();
  864.  
  865. cout << "Для продолжения нажмите -Enter, иначе 'n':" << endl;
  866. f << books.naz << endl;
  867. f << books.famA << endl;
  868. f << books.zhanr << endl;
  869. f << books.years << endl;
  870. } while (_getche() != 'n');
  871. f.close();
  872. _getch();
  873. }
  874.  
  875. void poisk()
  876. {
  877. //Открыть файл для поиска
  878. system("cls");
  879. string n;
  880. int f1 = 0;
  881. ifstream f;
  882. f.open("f.txt");
  883. cout << "\n Введите название книги, которую хотите найти:";
  884. getline(cin, n);
  885. do
  886. {
  887. system("cls");
  888. cout << " книги: \n";
  889. getline(f, books.naz);
  890. getline(f, books.famA);
  891. getline(f, books.zhanr);
  892. getline(f, books.years);
  893. cout << "Название книги: \n" << books.naz << endl;
  894.  
  895. if (books.naz == n)
  896. {
  897. f1 = 1;
  898. cout << "Название книги: \n" << books.naz << endl;
  899. cout << "Автор: \n" << books.famA << endl;
  900. cout << "Жанр: \n" << books.zhanr << endl;
  901. cout << "Год издания: \n" << books.years << endl;
  902. _getch();
  903. }
  904. } while (f);
  905. if (f1 == 0)
  906. {
  907. cout << "Извините, в списке нет такой книги!";
  908. }
  909. f.close();
  910. _getch();
  911. }
  912. void vvodchitatela()
  913. {
  914. ofstream H;
  915. H.open("читатель.txt");
  916. cout << "Данные о читателях";
  917. do
  918. {
  919. system("cls");
  920. cout << "Фамилия: \n";
  921. getline(cin, chit.famil);
  922. cout << "Имя: \n";
  923. getline(cin, chit.namee);
  924. cout << "Отчество: \n";
  925. getline(cin, chit.otchestvo);
  926. cout << "Год рождения: \n";
  927. getline(cin, chit.bdayy);
  928. cin.get();
  929. cout << "Должность: \n";
  930. getline(cin, chit.dolzhnost);
  931. cout << "Телефон: \n";
  932. getline(cin, chit.telephonee);
  933. cin.get();
  934. cout << "Паспотные данные: \n";
  935. getline(cin, chit.pasport);
  936. cout << "Дата регистрации в библиотеки: \n";
  937. getline(cin, chit.datar);
  938. cin.get();
  939.  
  940. cout << "Для продолжения нажмите -Enter, иначе 'n':" <<
  941.  
  942. endl;
  943. H << chit.famil << endl;
  944. H << chit.namee << endl;
  945. H << chit.otchestvo << endl;
  946. H << chit.bdayy << endl;
  947. H << chit.dolzhnost << endl;
  948. H << chit.telephonee << endl;
  949. H << chit.pasport << endl;
  950. H << chit.datar << endl;
  951. } while (_getche() != 'n');
  952. H.close();
  953. _getch();
  954. }
  955. void vivodchitatela()
  956. {
  957. ifstream H;
  958. H.open("читатель.txt");
  959. do
  960. {
  961. system("cls");
  962. cout << "Формуляр читателя: \n";
  963. getline(H, chit.famil);
  964. getline(H, chit.namee);
  965. getline(H, chit.otchestvo);
  966. getline(H, chit.bdayy);
  967. getline(H, chit.dolzhnost);
  968. getline(H, chit.telephonee);
  969. getline(H, chit.pasport);
  970. getline(H, chit.datar);
  971. if (H)
  972. {
  973. cout << "Фамилия: \n" << chit.famil << endl;
  974. cout << "Имя: \n" << chit.namee << endl;
  975. cout << "Отчество: \n" << chit.otchestvo << endl;
  976. cout << "Год рождения: \n" << chit.bdayy << endl;
  977. cout << "Должность: \n" << chit.dolzhnost << endl;
  978. cout << "Телефон: \n" << chit.telephonee << endl;
  979. cout << "Паспортные данные: \n" << chit.pasport << endl;
  980. cout << "Дата регистрации: \n" << chit.datar << endl;
  981. _getch();
  982. }
  983. } while (H);
  984. H.close();
  985. _getch();
  986. }
  987.  
  988. void sozd1()
  989. {
  990. ofstream f1;
  991. f1.open("f1.txt");
  992. do
  993. {
  994. system("cls");
  995. cout << "Наименование: \n";
  996. cin.getline(otdell.nazvanie, 30);
  997. cout << "Кабинет: \n";
  998. cin.getline(otdell.kb, 20);
  999. cout << "Время работы: \n";
  1000. cin.getline(otdell.time, 30);
  1001.  
  1002. cout << "Для продолжения нажмите -Enter, иначе 'n':" << endl;
  1003. f1.width(29);
  1004. f1 << otdell.nazvanie << endl;
  1005. f1.width(19);
  1006. f1 << otdell.kb << endl;
  1007. f1.width(29);
  1008. f1 << otdell.time << endl;
  1009. } while (_getche() != 'n');
  1010. f1.close();
  1011. _getch();
  1012. }
  1013. void vivod1()
  1014. {
  1015. ifstream f1;
  1016. f1.open("f1.txt");
  1017. do
  1018. {
  1019. system("cls");
  1020. cout << " Отделы: \n";
  1021. f1.getline(otdell.nazvanie, 30); f1.get();
  1022. f1.getline(otdell.kb, 20); f1.get();
  1023. f1.getline(otdell.time, 30); f1.get();
  1024.  
  1025. cout << "Наименование: \n" << otdell.nazvanie << endl;
  1026. cout << "Кабинет: \n" << otdell.kb << endl;
  1027. cout << "Время работы: \n" << otdell.time << endl;
  1028. _getch();
  1029.  
  1030. } while (f1);
  1031. f1.close();
  1032. _getch();
  1033. }
  1034. void dobav1()
  1035. {
  1036. //Открыть файл для добавления
  1037. fstream f1;
  1038. f1.open("f1.txt", ios::app);
  1039. do
  1040. {
  1041. system("cls");
  1042. cout << "Наименование: \n";
  1043. cin.getline(otdell.nazvanie, 30);
  1044. cout << "Кабинет: \n";
  1045. cin.getline(otdell.kb, 20);
  1046. cout << "Время работы: \n";
  1047. cin.getline(otdell.time, 30); cin.get();
  1048.  
  1049. cout << "Для продолжения нажмите -Enter, иначе 'n':" << endl;
  1050. f1.width(29);
  1051. f1 << otdell.nazvanie << endl;
  1052. f1.width(19);
  1053. f1 << otdell.kb << endl;
  1054. f1.width(29);
  1055. f1 << otdell.time << endl;
  1056. } while (_getche() != 'n');
  1057. f1.close();
  1058. _getch();
  1059. }
  1060. void correct1()
  1061. {
  1062. system("cls");
  1063. char nazv[30];
  1064. char sym;
  1065. int pos;
  1066.  
  1067. fstream f1;
  1068. f1.open("f1.txt", ios::in | ios::out);
  1069. cout << "Введите искомый кабинет: ";
  1070. cin.getline(nazv, 30);
  1071. do
  1072. {
  1073. pos = f1.tellg();
  1074. f1.getline(otdell.nazvanie, 30); f1.get();
  1075. f1.getline(otdell.kb, 20); f1.get();
  1076. f1.getline(otdell.time, 30); f1.get();
  1077. cout << otdell.nazvanie;
  1078. _getch();
  1079. if (f1)
  1080. {
  1081. if (strstr(otdell.nazvanie, nazv) != 0)
  1082. {
  1083. cout << "Корректируем запись!!";
  1084. cout << "Название кабинета меняем?";
  1085. cin >> sym;
  1086. cin.get();
  1087. if (sym == 'y')
  1088. {
  1089. cout << "Введите новый кабинет:";
  1090. cin.getline(otdell.nazvanie, 30);
  1091. cin.get();
  1092. }
  1093. cout << "Номер кабинета меняем?";
  1094. cin >> sym;
  1095. cin.get();
  1096. if (sym == 'y')
  1097. {
  1098. cout << "Введите новый номер кабинета:";
  1099. cin.getline(otdell.kb, 20);
  1100. cin.get();
  1101. }
  1102. cout << "Время работы меняем?";
  1103. cin >> sym;
  1104. cin.get();
  1105. if (sym == 'y')
  1106. {
  1107. cout << "Введите новое время работы кабинета:";
  1108. cin.getline(otdell.time, 30);
  1109.  
  1110. cin.get();
  1111. }
  1112. f1.seekg(pos);
  1113. if (f1)
  1114. {
  1115. f1.width(29);
  1116. f1 << otdell.nazvanie << "\n";
  1117. f1.width(19);
  1118. f1 << otdell.kb << "\n";
  1119. f1.width(29);
  1120. f1 << otdell.time << "\n";
  1121. }
  1122. }
  1123. }
  1124. } while (f1);
  1125. f1.close();
  1126. _getch();
  1127. }
  1128.  
  1129. void removeBookFromLibrary(string bookName) {
  1130. /**
  1131. * В принциципе удаление будет как
  1132. * и у сотрудников, необходим темп(временный)
  1133. * файл куда сольем только нужный книги, а
  1134. * по итогу переименуем
  1135. */
  1136. int i = 0;
  1137. string helper = "";
  1138. ifstream f2;
  1139. f2.open("f.txt");
  1140. ofstream U;
  1141. U.open("U.txt");
  1142. do
  1143. {
  1144. getline(f2, helper);
  1145. if (helper == "") {
  1146. break;
  1147. }
  1148. books.naz = helper;
  1149. getline(f2, books.famA);
  1150. getline(f2, books.zhanr);
  1151. getline(f2, books.years);
  1152. if (books.naz != bookName)
  1153. {
  1154. U << books.naz << endl;
  1155. U << books.famA << endl;
  1156. U << books.zhanr << endl;
  1157. U << books.years << endl;
  1158. }
  1159.  
  1160. } while (f2);
  1161. U.close();
  1162. f2.close();
  1163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement