Untitled
unknown
plain_text
3 years ago
4.9 kB
6
Indexable
#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);
}
Editor is loading...