Untitled

mail@pastecode.io avatar
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);
    
}