Читать «С++ для "чайников" .» онлайн - страница 231
Стефан Рэнди Дэвис
►BUDGET1...343
Главы, составляющие две первые части книги, предоставляют вам достаточно информации для написания собственной нетривиальной программы. Такой программой является рассматриваемая далее программа BUDGET 1.
В этой программе используются концепции С++, рассмотренные в первых двух частях книги. Программа BUDGET моделирует простейший банковский счёт ( в очень упрощённом виде ). Эта программа будет выполнять такие действия:
■■■
■ создавать один или несколько банковских счетов;
■ присваивать уникальный номер каждому счёту;
■ работать со счётом — создание депозита и снятие денег;
■ выводить окончательный баланс всех счетов, после того как пользователь решит выйти из программы.
■■■
Программа имитирует банковские транзакции, подчиняющиеся следующим правилам ( в процессе развития программы к этим правилам будут добавлены и другие ).
■■■
■ Баланс не может быть отрицательным ( каким бы дружественным не был к вам ваш банк, настолько дружественным он быть просто не в состоянии ).
■ Создание депозита не влечёт за собой никаких расходов.
■■■
_________________
343 стр. . Программа BUDGET
Вот как выглядит исходный текст данной программы.
/* BUDGET1.CPP — "Функциональная" программа бюджета */
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std ;
/* Максимальное количество счетов */
const int maxAccounts = 10 ;
/* Данные, описывающие счёт */
unsigned accountNumber[ maxAccounts ] ;
double balance[ maxAccounts ] ;
/* Прототипы функций */
void process( unsigned& accountNumber ,
double& balance ) ;
void init( unsigned* pAccountNumber ,
double* pBalance ) ;
/* main — собирает начальные входные данные и выводит конечные суммы */
int main( int nNumberofArgs , char* pszArgs[ ] )
{
setlocale ( LC_ALL , ".1251" ) ; /* печать кириллицы */
cout << "Нажмите С для продолжения, X для выхода:\n" ;
// Цикл ввода
int noAccounts = 0 ; /* Количество счетов */
/* Нельзя создать счетов больше, чем выделено места */
cout << "Программа создаёт банковские счета\n" << endl ;
while ( noAccounts < maxAccounts )
{
char transactionType ;
cout << "С для создания счёта, X для выхода: " ;
cin >> transactionType ;
/* Выход, если пользователь ввёл X */
if ( transactionType == 'x' ||