Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <map>
- #include <fstream>
- #include <vector>
- using namespace std;
- void start(vector <string>& names) {
- vector <int> numbers;
- int num;
- ofstream fout;
- ifstream fin;
- fin.open("file.txt");
- if (!fin.is_open() || fin.peek() == EOF) {
- fout.open("file.txt");
- for (size_t i = 0; i < names.size(); i++)
- {
- fout « names[i] « ":" « 0 « endl;
- }
- fout.close();
- fin.close();
- }
- else {
- //fin.close();
- string na;
- for (size_t i = 0; i < names.size(); i++)
- {
- num = 0;
- fin.open("file.txt");
- while (fin.peek() != EOF) {
- getline(fin, na);
- if (names[i] == na.substr(0, na.find(':'))) {
- num = num + stoi(na.substr(na.find(':') + 1));
- //cout « names[i] « " " « num « endl;
- }
- }
- numbers.push_back(num);
- fin.close();
- }
- fout.open("file.txt");
- for (size_t i = 0; i < names.size(); i++)
- {
- fout « names[i] « ":" « numbers[i] « endl;
- }
- fout.close();
- }
- //fin.close();
- }
- void add(vector <string>& names) {
- ofstream fout;
- ifstream fin;
- vector <int> numbers;
- int num;
- int num1;
- int index;
- string na;
- cout « "Введите номер детали:\n";
- for (size_t i = 0; i < names.size(); i++)
- {
- cout « i « " " « names[i] « endl;
- }
- cin » index;
- cout « "Сколько деталей добавить?\n";
- cin » num1;
- cout « "OK" « endl « endl;
- fin.open("file.txt");
- while (fin.peek() != EOF) {
- num = 0;
- getline(fin, na);
- num = stoi(na.substr(na.find(':') + 1));
- if (names[index] == na.substr(0, na.find(':'))) {
- num += num1;
- }
- numbers.push_back(num);
- }
- fin.close();
- fout.open("file.txt");
- for (size_t i = 0; i < names.size(); i++)
- {
- fout « names[i] « ":" « numbers[i] « endl;
- }
- fout.close();
- }
- void vivod(vector <string>& names) {
- ifstream fin;
- int index;
- string na;
- cout « "Введите номер детали:\n";
- for (size_t i = 0; i < names.size(); i++)
- {
- cout « i « " " « names[i] « endl;
- }
- cin » index;
- cout « endl;
- fin.open("file.txt");
- while (fin.peek() != EOF) {
- getline(fin, na);
- if (names[index] == na.substr(0, na.find(':'))) {
- cout « "Имеется " « stoi(na.substr(na.find(':') + 1)) « " штук" « endl « endl;
- }
- }
- fin.close();
- }
- void vivod_vsego(vector <string>& names) {
- string na;
- ifstream fin;
- fin.open("file.txt");
- while (!fin.eof()) {
- getline(fin, na);
- cout « na « endl;
- }
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- vector <string> names = { "Втулка", "Корпус", "Кронштейн", "Манжета", "Фланец", "Панель", "Шток", "Винт", "Гайка" };
- start(names);
- int n = 10;
- while (n != 0) {
- cout « "Меню:\n" « "1- добавить детали\n" « "2- посмотреть кол-во\n" « "3- посмотреть кол-во всех деталей\n" « "0- выход\n";
- cin » n;
- cout « endl;
- switch (n) {
- case 1:
- add(names);
- break;
- case 2:
- vivod(names);
- break;
- case 3:
- vivod_vsego(names);
- break;
- case 0:
- break;
- default:
- cout « "Введите подходящее число\n";
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement