Advertisement
Bennis1

Untitled

Oct 23rd, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <map>
  4. #include <fstream>
  5. #include <vector>
  6. using namespace std;
  7.  
  8.  
  9. void start(vector <string>& names) {
  10.  
  11. vector <int> numbers;
  12. int num;
  13. ofstream fout;
  14. ifstream fin;
  15. fin.open("file.txt");
  16. if (!fin.is_open() || fin.peek() == EOF) {
  17. fout.open("file.txt");
  18. for (size_t i = 0; i < names.size(); i++)
  19. {
  20. fout « names[i] « ":" « 0 « endl;
  21. }
  22. fout.close();
  23. fin.close();
  24. }
  25.  
  26. else {
  27. //fin.close();
  28. string na;
  29. for (size_t i = 0; i < names.size(); i++)
  30. {
  31. num = 0;
  32. fin.open("file.txt");
  33. while (fin.peek() != EOF) {
  34. getline(fin, na);
  35. if (names[i] == na.substr(0, na.find(':'))) {
  36. num = num + stoi(na.substr(na.find(':') + 1));
  37. //cout « names[i] « " " « num « endl;
  38. }
  39. }
  40. numbers.push_back(num);
  41. fin.close();
  42. }
  43.  
  44. fout.open("file.txt");
  45. for (size_t i = 0; i < names.size(); i++)
  46. {
  47. fout « names[i] « ":" « numbers[i] « endl;
  48. }
  49. fout.close();
  50. }
  51.  
  52. //fin.close();
  53. }
  54.  
  55. void add(vector <string>& names) {
  56. ofstream fout;
  57. ifstream fin;
  58. vector <int> numbers;
  59. int num;
  60. int num1;
  61. int index;
  62. string na;
  63.  
  64. cout « "Введите номер детали:\n";
  65. for (size_t i = 0; i < names.size(); i++)
  66. {
  67. cout « i « " " « names[i] « endl;
  68. }
  69. cin » index;
  70. cout « "Сколько деталей добавить?\n";
  71. cin » num1;
  72. cout « "OK" « endl « endl;
  73.  
  74. fin.open("file.txt");
  75. while (fin.peek() != EOF) {
  76. num = 0;
  77. getline(fin, na);
  78. num = stoi(na.substr(na.find(':') + 1));
  79. if (names[index] == na.substr(0, na.find(':'))) {
  80. num += num1;
  81. }
  82. numbers.push_back(num);
  83. }
  84.  
  85. fin.close();
  86. fout.open("file.txt");
  87. for (size_t i = 0; i < names.size(); i++)
  88. {
  89. fout « names[i] « ":" « numbers[i] « endl;
  90. }
  91. fout.close();
  92. }
  93.  
  94.  
  95. void vivod(vector <string>& names) {
  96. ifstream fin;
  97. int index;
  98. string na;
  99.  
  100. cout « "Введите номер детали:\n";
  101. for (size_t i = 0; i < names.size(); i++)
  102. {
  103. cout « i « " " « names[i] « endl;
  104. }
  105. cin » index;
  106. cout « endl;
  107.  
  108. fin.open("file.txt");
  109. while (fin.peek() != EOF) {
  110. getline(fin, na);
  111. if (names[index] == na.substr(0, na.find(':'))) {
  112. cout « "Имеется " « stoi(na.substr(na.find(':') + 1)) « " штук" « endl « endl;
  113. }
  114. }
  115. fin.close();
  116. }
  117.  
  118. void vivod_vsego(vector <string>& names) {
  119. string na;
  120.  
  121. ifstream fin;
  122. fin.open("file.txt");
  123. while (!fin.eof()) {
  124. getline(fin, na);
  125. cout « na « endl;
  126.  
  127. }
  128. }
  129.  
  130. int main()
  131. {
  132.  
  133. setlocale(LC_ALL, "Russian");
  134. vector <string> names = { "Втулка", "Корпус", "Кронштейн", "Манжета", "Фланец", "Панель", "Шток", "Винт", "Гайка" };
  135.  
  136. start(names);
  137.  
  138.  
  139.  
  140.  
  141. int n = 10;
  142. while (n != 0) {
  143. cout « "Меню:\n" « "1- добавить детали\n" « "2- посмотреть кол-во\n" « "3- посмотреть кол-во всех деталей\n" « "0- выход\n";
  144. cin » n;
  145. cout « endl;
  146. switch (n) {
  147. case 1:
  148. add(names);
  149. break;
  150. case 2:
  151. vivod(names);
  152. break;
  153. case 3:
  154. vivod_vsego(names);
  155. break;
  156. case 0:
  157. break;
  158. default:
  159. cout « "Введите подходящее число\n";
  160. }
  161. }
  162.  
  163.  
  164.  
  165.  
  166.  
  167. return 0;
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement