Программа на делфи Разработать программу обработки данных о счетах клиентов банка. Для каждого клиента задается: учетный номер, фамилия, сумма денег на счете. Программа должна организовать диалоговый цикл для выполнения следующих действий: ввод нового клиента в массив записей с заданием всех необходимых данных, вывод списка клиентов, поиск клиента по фамилии, добавление денег на счет заданного клиента, снятие денег со счета с проверкой возможности снятия, сохранение массива записей в типизированном файле, загрузка данных из ранее созданного файла. Каждое действие оформляется как подпрограмма. Главная программа реализует только диалоговый цикл взаимодействия с пользователем.
procedure PrintClients; var i: Integer; begin for i := 0 to Highclientsclientsclients do begin WriteLn′Accountnumber:′,clients[i].accountNumber'Account number: ', clients[i].accountNumber′Accountnumber:′,clients[i].accountNumber; WriteLn′Lastname:′,clients[i].lastName'Last name: ', clients[i].lastName′Lastname:′,clients[i].lastName; WriteLn′Balance:′,clients[i].balance'Balance: ', clients[i].balance′Balance:′,clients[i].balance; WriteLn′−−−−−−−−−−−−−−−−−−−−−−−′'-----------------------'′−−−−−−−−−−−−−−−−−−−−−−−′; end; end;
procedure FindClientByLastNamelastName:stringlastName: stringlastName:string; var i: Integer; begin for i := 0 to Highclientsclientsclients do begin if clientsiii.lastName = lastName then begin WriteLn′Accountnumber:′,clients[i].accountNumber'Account number: ', clients[i].accountNumber′Accountnumber:′,clients[i].accountNumber; WriteLn′Lastname:′,clients[i].lastName'Last name: ', clients[i].lastName′Lastname:′,clients[i].lastName; WriteLn′Balance:′,clients[i].balance'Balance: ', clients[i].balance′Balance:′,clients[i].balance; Exit; end; end;
WriteLn′Clientnotfound′'Client not found'′Clientnotfound′; end;
procedure AddMoneyaccountNumber:Integer;amount:RealaccountNumber: Integer; amount: RealaccountNumber:Integer;amount:Real; var i: Integer; begin for i := 0 to Highclientsclientsclients do begin if clientsiii.accountNumber = accountNumber then begin clientsiii.balance := clientsiii.balance + amount; WriteLn′Moneyaddedsuccessfully′'Money added successfully'′Moneyaddedsuccessfully′; Exit; end; end;
WriteLn′Clientnotfound′'Client not found'′Clientnotfound′; end;
procedure WithdrawMoneyaccountNumber:Integer;amount:RealaccountNumber: Integer; amount: RealaccountNumber:Integer;amount:Real; var i: Integer; begin for i := 0 to Highclientsclientsclients do begin if clientsiii.accountNumber = accountNumber then begin if clientsiii.balance >= amount then begin clientsiii.balance := clientsiii.balance - amount; WriteLn′Moneywithdrawnsuccessfully′'Money withdrawn successfully'′Moneywithdrawnsuccessfully′; end else begin WriteLn′Notenoughmoneyontheaccount′'Not enough money on the account'′Notenoughmoneyontheaccount′; end; Exit; end; end;
WriteLn′Clientnotfound′'Client not found'′Clientnotfound′; end;
procedure SaveToFilefilename:stringfilename: stringfilename:string; var fileVar: file of Client; i: Integer; begin AssignfileVar,filenamefileVar, filenamefileVar,filename; RewritefileVarfileVarfileVar;
for i := 0 to Highclientsclientsclients do begin WritefileVar,clients[i]fileVar, clients[i]fileVar,clients[i]; end;
ClosefileVarfileVarfileVar; end;
procedure LoadFromFilefilename:stringfilename: stringfilename:string; var fileVar: file of Client; tempClient: Client; begin AssignfileVar,filenamefileVar, filenamefileVar,filename; ResetfileVarfileVarfileVar;
while not EOFfileVarfileVarfileVar do begin ReadfileVar,tempClientfileVar, tempClientfileVar,tempClient; SetLengthclients,Length(clients)+1clients, Length(clients) + 1clients,Length(clients)+1; clientsHigh(clients)High(clients)High(clients) := tempClient; end;
begin repeat WriteLn′1.Addclient′'1. Add client'′1.Addclient′; WriteLn′2.Printclients′'2. Print clients'′2.Printclients′; WriteLn′3.Findclientbylastname′'3. Find client by last name'′3.Findclientbylastname′; WriteLn′4.Addmoneytoaccount′'4. Add money to account'′4.Addmoneytoaccount′; WriteLn′5.Withdrawmoneyfromaccount′'5. Withdraw money from account'′5.Withdrawmoneyfromaccount′; WriteLn′6.Savetofile′'6. Save to file'′6.Savetofile′; WriteLn′7.Loadfromfile′'7. Load from file'′7.Loadfromfile′; WriteLn′8.Exit′'8. Exit'′8.Exit′;
Write′Enteryourchoice:′'Enter your choice: '′Enteryourchoice:′; ReadLnchoicechoicechoice; case choice of 1: AddClient; 2: PrintClients; 3: begin Write′Enterlastname:′'Enter last name: '′Enterlastname:′; ReadLnlastNamelastNamelastName; FindClientByLastNamelastNamelastNamelastName; end; 4: begin Write′Enteraccountnumber:′'Enter account number: '′Enteraccountnumber:′; ReadLnaccountNumberaccountNumberaccountNumber; Write′Enteramounttoadd:′'Enter amount to add: '′Enteramounttoadd:′; ReadLnamountamountamount; AddMoneyaccountNumber,amountaccountNumber, amountaccountNumber,amount; end; 5: begin Write′Enteraccountnumber:′'Enter account number: '′Enteraccountnumber:′; ReadLnaccountNumberaccountNumberaccountNumber; Write′Enteramounttowithdraw:′'Enter amount to withdraw: '′Enteramounttowithdraw:′; ReadLnamountamountamount; WithdrawMoneyaccountNumber,amountaccountNumber, amountaccountNumber,amount; end; 6: begin Write′Enterfilenametosavedata:′'Enter filename to save data: '′Enterfilenametosavedata:′; ReadLnfilenamefilenamefilename; SaveToFilefilenamefilenamefilename; end; 7: begin Write′Enterfilenametoloaddata:′'Enter filename to load data: '′Enterfilenametoloaddata:′; ReadLnfilenamefilenamefilename; LoadFromFilefilenamefilenamefilename; end; end;
program BankAccounts;
type
Client = record
accountNumber: Integer;
lastName: string;
balance: Real;
end;
var
clients: array of Client;
procedure AddClient;
var
newClient: Client;
begin
Write′Enteraccountnumber:′'Enter account number: '′Enteraccountnumber:′;
ReadLnnewClient.accountNumbernewClient.accountNumbernewClient.accountNumber;
Write′Enterlastname:′'Enter last name: '′Enterlastname:′;
ReadLnnewClient.lastNamenewClient.lastNamenewClient.lastName;
Write′Enterbalance:′'Enter balance: '′Enterbalance:′;
ReadLnnewClient.balancenewClient.balancenewClient.balance;
SetLengthclients,Length(clients)+1clients, Length(clients) + 1clients,Length(clients)+1;
clientsHigh(clients)High(clients)High(clients) := newClient;
end;
procedure PrintClients;
var
i: Integer;
begin
for i := 0 to Highclientsclientsclients do
begin
WriteLn′Accountnumber:′,clients[i].accountNumber'Account number: ', clients[i].accountNumber′Accountnumber:′,clients[i].accountNumber;
WriteLn′Lastname:′,clients[i].lastName'Last name: ', clients[i].lastName′Lastname:′,clients[i].lastName;
WriteLn′Balance:′,clients[i].balance'Balance: ', clients[i].balance′Balance:′,clients[i].balance;
WriteLn′−−−−−−−−−−−−−−−−−−−−−−−′'-----------------------'′−−−−−−−−−−−−−−−−−−−−−−−′;
end;
end;
procedure FindClientByLastNamelastName:stringlastName: stringlastName:string;
var
i: Integer;
begin
for i := 0 to Highclientsclientsclients do
begin
if clientsiii.lastName = lastName then
begin
WriteLn′Accountnumber:′,clients[i].accountNumber'Account number: ', clients[i].accountNumber′Accountnumber:′,clients[i].accountNumber;
WriteLn′Lastname:′,clients[i].lastName'Last name: ', clients[i].lastName′Lastname:′,clients[i].lastName;
WriteLn′Balance:′,clients[i].balance'Balance: ', clients[i].balance′Balance:′,clients[i].balance;
Exit;
end;
end;
WriteLn′Clientnotfound′'Client not found'′Clientnotfound′;
end;
procedure AddMoneyaccountNumber:Integer;amount:RealaccountNumber: Integer; amount: RealaccountNumber:Integer;amount:Real;
var
i: Integer;
begin
for i := 0 to Highclientsclientsclients do
begin
if clientsiii.accountNumber = accountNumber then
begin
clientsiii.balance := clientsiii.balance + amount;
WriteLn′Moneyaddedsuccessfully′'Money added successfully'′Moneyaddedsuccessfully′;
Exit;
end;
end;
WriteLn′Clientnotfound′'Client not found'′Clientnotfound′;
end;
procedure WithdrawMoneyaccountNumber:Integer;amount:RealaccountNumber: Integer; amount: RealaccountNumber:Integer;amount:Real;
var
i: Integer;
begin
for i := 0 to Highclientsclientsclients do
begin
if clientsiii.accountNumber = accountNumber then
begin
if clientsiii.balance >= amount then
begin
clientsiii.balance := clientsiii.balance - amount;
WriteLn′Moneywithdrawnsuccessfully′'Money withdrawn successfully'′Moneywithdrawnsuccessfully′;
end
else
begin
WriteLn′Notenoughmoneyontheaccount′'Not enough money on the account'′Notenoughmoneyontheaccount′;
end;
Exit;
end;
end;
WriteLn′Clientnotfound′'Client not found'′Clientnotfound′;
end;
procedure SaveToFilefilename:stringfilename: stringfilename:string;
var
fileVar: file of Client;
i: Integer;
begin
AssignfileVar,filenamefileVar, filenamefileVar,filename;
RewritefileVarfileVarfileVar;
for i := 0 to Highclientsclientsclients do
begin
WritefileVar,clients[i]fileVar, clients[i]fileVar,clients[i];
end;
ClosefileVarfileVarfileVar;
end;
procedure LoadFromFilefilename:stringfilename: stringfilename:string;
var
fileVar: file of Client;
tempClient: Client;
begin
AssignfileVar,filenamefileVar, filenamefileVar,filename;
ResetfileVarfileVarfileVar;
while not EOFfileVarfileVarfileVar do
begin
ReadfileVar,tempClientfileVar, tempClientfileVar,tempClient;
SetLengthclients,Length(clients)+1clients, Length(clients) + 1clients,Length(clients)+1;
clientsHigh(clients)High(clients)High(clients) := tempClient;
end;
ClosefileVarfileVarfileVar;
end;
var
choice: Integer;
lastName: string;
accountNumber: Integer;
amount: Real;
filename: string;
begin
Write′Enteryourchoice:′'Enter your choice: '′Enteryourchoice:′;repeat
WriteLn′1.Addclient′'1. Add client'′1.Addclient′;
WriteLn′2.Printclients′'2. Print clients'′2.Printclients′;
WriteLn′3.Findclientbylastname′'3. Find client by last name'′3.Findclientbylastname′;
WriteLn′4.Addmoneytoaccount′'4. Add money to account'′4.Addmoneytoaccount′;
WriteLn′5.Withdrawmoneyfromaccount′'5. Withdraw money from account'′5.Withdrawmoneyfromaccount′;
WriteLn′6.Savetofile′'6. Save to file'′6.Savetofile′;
WriteLn′7.Loadfromfile′'7. Load from file'′7.Loadfromfile′;
WriteLn′8.Exit′'8. Exit'′8.Exit′;
ReadLnchoicechoicechoice;
case choice of
1: AddClient;
2: PrintClients;
3: begin
Write′Enterlastname:′'Enter last name: '′Enterlastname:′;
ReadLnlastNamelastNamelastName;
FindClientByLastNamelastNamelastNamelastName;
end;
4: begin
Write′Enteraccountnumber:′'Enter account number: '′Enteraccountnumber:′;
ReadLnaccountNumberaccountNumberaccountNumber;
Write′Enteramounttoadd:′'Enter amount to add: '′Enteramounttoadd:′;
ReadLnamountamountamount;
AddMoneyaccountNumber,amountaccountNumber, amountaccountNumber,amount;
end;
5: begin
Write′Enteraccountnumber:′'Enter account number: '′Enteraccountnumber:′;
ReadLnaccountNumberaccountNumberaccountNumber;
Write′Enteramounttowithdraw:′'Enter amount to withdraw: '′Enteramounttowithdraw:′;
ReadLnamountamountamount;
WithdrawMoneyaccountNumber,amountaccountNumber, amountaccountNumber,amount;
end;
6: begin
Write′Enterfilenametosavedata:′'Enter filename to save data: '′Enterfilenametosavedata:′;
ReadLnfilenamefilenamefilename;
SaveToFilefilenamefilenamefilename;
end;
7: begin
Write′Enterfilenametoloaddata:′'Enter filename to load data: '′Enterfilenametoloaddata:′;
ReadLnfilenamefilenamefilename;
LoadFromFilefilenamefilenamefilename;
end;
end;
until choice = 8;
end.