📄 bank.cpp
字号:
#pragma hdrstop
#pragma package(smart_init)
#pragma resource "*.dfm"
#include <vcl.h>
#include <time>
#include "bank.h"
#include "uzytkownik.hpp"
#include "manager.hpp"
TFBank *FBank;
// Konstruktor formy.
__fastcall TFBank :: TFBank(TComponent* Owner) : TForm(Owner) {
// W konstruktorze formy g硂wnej alokujemy nowa pamiec dla managera
// bankowego z ktorego korzystamy - zostaje inicjowany yulko raz
m = new Manager;
// przekazujemy do nowej zmiennej (globalnej) "manager" to co znajduje sie
// w zaalokowanej pamieci - czyli oryginalnego managera.
manager = *m;
// wyswietlamy w ramce ilosc uzytkownikow
Ramka -> Caption = "U縴tkownicy banku (ilosc: " + AnsiString(manager.length) + ") ";
// a nastepnie dodajemy po kolei kazdego do naszej listy
for(int k = 0; k < manager.length; k++) {
// Tworzymy nowego uzytkownika pobierajac go przez managera z pliku
Uzytkownik u = manager.loadFromFile(manager.konta[k]);
// a nastepnie do listy dodajemy personalia uzytkownika.
Uzytkownicy -> AddItem(StringToAnsi(u.personalia), NULL);
}
}
void __fastcall TFBank::UzytkownicyClick(TObject *Sender) {
// Gdy nast阷uje klikniecie na liscie uzytkownikow to pobieramy indeks
// zaznaczonego aktualnie uzytkownika:
int poz = Uzytkownicy -> ItemIndex;
// pobieramy numer konta o podanym indeksie z managera bankowego.
string konto = manager.konta[poz];
// 砤dujemy z pliku uzytkownika odpowiadajacego temu numerowi konta
Uzytkownik u = manager.loadFromFile(konto);
// wyswietlamy personalia
Personalia -> Text = StringToAnsi(u.personalia);
// wyswietlamy adres
Adres -> Text = StringToAnsi(u.adres);
// wyswietlamy nr konta
NrKonta -> Text = StringToAnsi(u.nrkonta);
// wyswietlamy nr pin
NrPIN -> Text = StringToAnsi(u.pin);
// wyswietlamy miejsce ostatniej transakcji
Miasto -> Text = StringToAnsi(u.ostmiasto);
// wyswietlamy kwote pozostala na koncie
Kwota -> Text = AnsiString(((double)u.stankonta)/100);
// Tworzymy strukture czasu lokalnego z daty ostatniej transakcji
tm *tt = localtime(&u.ostczas);
// Pobieram,y ze struktury
int d = tt -> tm_mday; // dzien
int m = tt -> tm_mon; // miesiac
int h = tt -> tm_hour; // godzina
int i = tt -> tm_min; // minuty
// a nastepnie wyswietlamy czas odpowiednio przez nas sformatowany.
DataOst -> Text = ((d < 10) ? "0" + AnsiString(d) : AnsiString(d)) + "." +
((m < 10) ? "0" + AnsiString(m) : AnsiString(m)) + "." +
AnsiString(tt -> tm_year + 1900);
Czas -> Text = ((h < 10) ? "0" + AnsiString(h) : AnsiString(h)) + ":" +
((i < 10) ? "0" + AnsiString(i) : AnsiString(i));
// jesli konto jest zablokowane to zmieniamy wartosc CheckBoxa na true
if(u.blokada) {
Blokada -> Checked = true;
} else {
Blokada -> Checked = false;
}
}
// Klikni阠ie przycisku przeladowanie.
void __fastcall TFBank::PrzeladujClick(TObject *Sender) {
// Gdy nastapi klikniecie na przycisk przeladoweanie to usuwamy
// starego managera bankowego
delete(m);
// i tworzymy nowego
m = new Manager;
// oraz przepisujemy zawartosc pamieci do zmiennej
manager = *m;
// czyscimy liste uzytkownikow
Uzytkownicy -> Clear();
// zapisujemy nowa wartosc do ramki
Ramka -> Caption = "U縴tkownicy banku (ilosc: " + AnsiString(manager.length) + ") ";
// a nastepnie dodajemy po kolei kazdego do naszej listy
for(int k = 0; k < manager.length; k++) {
// Tworzymy nowego uzytkownika pobierajac go przez managera z pliku
Uzytkownik u = manager.loadFromFile(manager.konta[k]);
// a nastepnie do listy dodajemy personalia tego uzytkownika.
Uzytkownicy -> AddItem(StringToAnsi(u.personalia), NULL);
}
}
// Klikniecie przycisku NOWY UZYTKOWNIK.
void __fastcall TFBank::NowyClick(TObject *Sender) {
Personalia -> Text = "";
Adres -> Text = "";
NrKonta -> Text = "090000000000000000########";
NrPIN -> Text = "####";
Miasto -> Text = "Oddzia
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -