⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bank.cpp

📁 Cash point simulator. You can add/remove/block users account, withdraw and deposit money. C++ Builde
💻 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 + -