Untitled
unknown
plain_text
a year ago
4.9 kB
0
Indexable
Never
#include "table.h" int table_cnt = 0; void readFromFile(string nametf, table* R) // Заполнение исходного множества; { ifstream itf(nametf); int i = 0; while (!itf.eof()) { itf >> R[i].key; // stoi(data.substr(key_ptr, 9)); getline(itf, R[i].data, '\n'); i++; } itf.close(); table_cnt = i; } void input_elem(table R) // Заполнение элемента множества; { cin >> R.key; getline(cin, R.data, '\n'); table_cnt++; } void print_elem(table R) // Отображение элемента множества; { cout << R.key << ' ' << R.data << endl; } void print(table* R) // Отображение множества; { for (int i = 0; i < table_cnt; i++) { cout << i + 1 << ") " << R[i].key << " " << R[i].data << endl; } } void deleteFromPos(table* R, int pos) // Удалить элемент в заданной позиции; { for (int i = pos; i < --table_cnt; i++) R[i] = R[i + 1]; } void addNewElem(table* R) // Добавить новый элемент в таблицу; { input_elem(R[table_cnt++]); } void insertInPos(table* R, int pos) // Вставить элемент в заданную позицию. { for (int i = ++table_cnt; i > pos; i--) R[i] = R[i - 1]; input_elem(R[pos]); } void addBank(table* R) // Заполнение записи по отдельному банку с клавиатуры(список услуг не заполнять). { addNewElem(R); } void addBankPost(table* R, int key) // Добавить запись по банку в таблицу. { int pos = find_key(R, key); if (pos == -1) { cout << "Банк не был найден"; return; } cout << "Введите запись, которую хотите вставить: "; string add_data; cin.ignore(); getline(cin, add_data, '\n'); R[pos].data += ", " + add_data; } void insertUslugiInPos(table* R, int key) // Вставить в начало списка данные по предоставляемой услуге в список услуг банка. { int pos = find_key(R, key); if (pos == -1) { cout << "Банк не был найден"; return; } cout << "Введите запись, которую хотите вставить: "; string add_data; cin.ignore(); getline(cin, add_data, '\n'); size_t posUsl = R[pos].data.find(':') + 1; R[pos].data = R[pos].data.substr(0, posUsl) + add_data + ", " + R[pos].data.substr(posUsl); } void deleteBank(table* R, int key) // Удалить запись о заданном банке. { int pos = find_key(R, key); if (pos != -1) deleteFromPos(R, pos); else cout << "Ошибка! Такого банка не существует\n"; } void printBanksWithHypothec(table* R) // Сформировать список государственных банков, предоставляемых ипотечный { for (int i = 0; i < table_cnt; i++) } int find_key(table* R, int key) { for (int i = 0; i < MAX_SIZE_ARR; i++) { if (R[i].key == key) { return i; } } return -1; } #pragma once #define MAX_SIZE_ARR 100 #include <string> #include <fstream> #include <iostream> using namespace std; extern int table_cnt; struct table { int key; string data; }; void readFromFile(string nametf, table* R); void input_elem(table R); void print_elem(table R); void print(table* R); void deleteFromPos(table* R, int pos); void addNewElem(table* R); void insertInPos(table* R, int pos); void addBank(table* R); // Заполнение записи по отдельному банку с клавиатуры(список услуг не заполнять). ! void addBankPost(table* R, int key); // Добавить запись по банку в таблицу. ! void insertUslugiInPos(table* R, int pos); // Вставить в начало списка данные по предоставляемой услуге в список услуг банка. ! void deleteBank(table* R, int key); // Удалить запись о заданном банке. ! void printBanksWithHypothec(table* R); // Сформировать список государственных банков, предоставляемых ипотечный кредит int find_key(table* R, int key); #include "table.h" #include <Windows.h> int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); table R[MAX_SIZE_ARR]; readFromFile("data.txt", R); print(R); int key; cout << "Введите БИК банка: "; cin >> key; insertUslugiInPos(R, key); print(R); }