Программа на делфи Разработать программу обработки данных о счетах клиентов банка. Для каждого клиента задается: учетный номер, фамилия, сумма денег на счете. Программа должна организовать диалоговый цикл для выполнения следующих действий: ввод нового клиента в массив записей с заданием всех необходимых данных, вывод списка клиентов, поиск клиента по фамилии, добавление денег на счет заданного клиента, снятие денег со счета с проверкой возможности снятия, сохранение массива записей в типизированном файле, загрузка данных из ранее созданного файла. Каждое действие оформляется как подпрограмма. Главная программа реализует только диалоговый цикл взаимодействия с пользователем.

22 Авг 2020 в 19:42
169 +1
0
Ответы
1

program BankAccounts;

type
Client = record
accountNumber: Integer;
lastName: string;
balance: Real;
end;

var
clients: array of Client;

procedure AddClient();
var
newClient: Client;
begin
Write('Enter account number: ');
ReadLn(newClient.accountNumber);
Write('Enter last name: ');
ReadLn(newClient.lastName);
Write('Enter balance: ');
ReadLn(newClient.balance);

SetLength(clients, Length(clients) + 1);
clients[High(clients)] := newClient;
end;

procedure PrintClients();
var
i: Integer;
begin
for i := 0 to High(clients) do
begin
WriteLn('Account number: ', clients[i].accountNumber);
WriteLn('Last name: ', clients[i].lastName);
WriteLn('Balance: ', clients[i].balance);
WriteLn('-----------------------');
end;
end;

procedure FindClientByLastName(lastName: string);
var
i: Integer;
begin
for i := 0 to High(clients) do
begin
if clients[i].lastName = lastName then
begin
WriteLn('Account number: ', clients[i].accountNumber);
WriteLn('Last name: ', clients[i].lastName);
WriteLn('Balance: ', clients[i].balance);
Exit;
end;
end;

WriteLn('Client not found');
end;

procedure AddMoney(accountNumber: Integer; amount: Real);
var
i: Integer;
begin
for i := 0 to High(clients) do
begin
if clients[i].accountNumber = accountNumber then
begin
clients[i].balance := clients[i].balance + amount;
WriteLn('Money added successfully');
Exit;
end;
end;

WriteLn('Client not found');
end;

procedure WithdrawMoney(accountNumber: Integer; amount: Real);
var
i: Integer;
begin
for i := 0 to High(clients) do
begin
if clients[i].accountNumber = accountNumber then
begin
if clients[i].balance >= amount then
begin
clients[i].balance := clients[i].balance - amount;
WriteLn('Money withdrawn successfully');
end
else
begin
WriteLn('Not enough money on the account');
end;
Exit;
end;
end;

WriteLn('Client not found');
end;

procedure SaveToFile(filename: string);
var
fileVar: file of Client;
i: Integer;
begin
Assign(fileVar, filename);
Rewrite(fileVar);

for i := 0 to High(clients) do
begin
Write(fileVar, clients[i]);
end;

Close(fileVar);
end;

procedure LoadFromFile(filename: string);
var
fileVar: file of Client;
tempClient: Client;
begin
Assign(fileVar, filename);
Reset(fileVar);

while not EOF(fileVar) do
begin
Read(fileVar, tempClient);
SetLength(clients, Length(clients) + 1);
clients[High(clients)] := tempClient;
end;

Close(fileVar);
end;

var
choice: Integer;
lastName: string;
accountNumber: Integer;
amount: Real;
filename: string;

begin
repeat
WriteLn('1. Add client');
WriteLn('2. Print clients');
WriteLn('3. Find client by last name');
WriteLn('4. Add money to account');
WriteLn('5. Withdraw money from account');
WriteLn('6. Save to file');
WriteLn('7. Load from file');
WriteLn('8. Exit');

Write('Enter your choice: ');
ReadLn(choice);
case choice of
1: AddClient;
2: PrintClients;
3: begin
Write('Enter last name: ');
ReadLn(lastName);
FindClientByLastName(lastName);
end;
4: begin
Write('Enter account number: ');
ReadLn(accountNumber);
Write('Enter amount to add: ');
ReadLn(amount);
AddMoney(accountNumber, amount);
end;
5: begin
Write('Enter account number: ');
ReadLn(accountNumber);
Write('Enter amount to withdraw: ');
ReadLn(amount);
WithdrawMoney(accountNumber, amount);
end;
6: begin
Write('Enter filename to save data: ');
ReadLn(filename);
SaveToFile(filename);
end;
7: begin
Write('Enter filename to load data: ');
ReadLn(filename);
LoadFromFile(filename);
end;
end;

until choice = 8;
end.

18 Апр в 10:38
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 90 246 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир