Домашно 2

(За първа група: срок за изпращане на домашното - 19.04 на nkirov@nbu.bg)

Задача 1 (Exercise P9.14).
Банка съхранява всички банкови сметки във файл с произволен (пряк) достъп, в който всеки ред има формата:

account_number balance

Напишете програма
bankomat, която симулира автоматична машина за разплащане. Потребител може да депозира пари на сметка (deposit), като посочи номера на сметката и сумата, да изтегли пари (withdraw), да поиска да види баланса (query) и да прехвърли пари от една сметка  в друга (transfer). След всяка операция да се обновява файла на банката.

Да се използва класа:

class Account {
public:
    Account(string, double);
    void deposit(double);
    bool
withdraw(double);
    double query() const;
    bool transfer(Account &, double);
private:
    string acc;
    double bal;
};


 Да се направа заглавен файл (
account.h) с дефинициата на класа, файл account.cpp c дефинициите на член-функциите на класа и файл bankomat.cpp с останалата част на програмата.
 

Да се изпълни програмата със следния команден ред:

bankomat bank.txt < input.txt

Примерен файл
bank.dat с банкови сметки
ABC2389000      223.90
ZXX7098602     1290.00
VGF0987200    45098.50
CDH9998098    10100.00


Примерен файл input.txt с операции на автоматичната машина за разплащане
ABC2389000 deposit 100.00
VGF0987200 withdraw 50.00
VGF0987200 query
ABC2389000 query
ABC2389000 transfer VGF0987200 250.00
ABC2389000 withdraw 5000.00
ABC2389000 query

Отговор на машината (cout) за всяка операция
:
ABC2389000 323.90
VGF0987200 1240.00
VGF0987200 1240.00
ABC2389000 323.90
ABC2389000 73.90
VGF0987200 1490.00
ABC2389000 73.90 ERROR
ABC2389000 73.90

Пояснение: ERROR се отпечава когато операцията не може да бъде изпълнена - в сметката има по-малка сума от исканата за теглене или прехвърляне.

Задача 2 (Exercise P9.16).
Напишете програма catfiles, която свързва няколко текстови файла в един файл. Например

catfiles chapter1.txt chapter2.txt chapter3.txt book.txt

създава файл
book.txt който съдържа файловете: chapter1.txt, chapter2.txt и chapter3.txt. Новият файл винаги е последният файл на командния ред.