Автор: cheops (08.02.2012 в 18:55)
1. Во-первых в современном C++, если вы хотите пользоваться потоками ввода cin и вывода cout из стандартного пространства имен, без префикса std::, следует в начало программы добавить следующую строку
2. Во-вторых стандартного типа переменных doubles нет, вероятно имелось в виду просто double.
3. В третьих у вас объявлена переменная int noAccount = 0;, а далее идет обращение к noAccounts - имена не совпадают (нужно, чтобы имя было везде одинаково). Кроме того, если вы используете noAccounts в нескольких функциях, придется сделать переменную глобальной, как и maxAccounts.
Вот вариант, который компилируется
// BUDGET1.CPP — // BUDGET1.CPP — "Функциональная" программа бюджета
#include <iostream>
#include <stdio.h>
using namespace std;
// максимальное количество счетов
const int maxAccounts = 10;
// ожидаем ввод
int noAccounts = 0; // количества создаваемых счетов
// информация о счете
unsigned accountNumber [maxAccounts];
double balance [maxAccounts];
// Прототипы функций
void process (unsigned& accountNumber,double balance);
void init (unsigned& accountNumber,double balance);
// main — собирает начальные входные данные
//и вывсдит конечные суммы
int main (int nArg, char* pszArgs[])
{
// не создаем счетов больше максимального количества
while (noAccounts < maxAccounts)
{
char transactionType;
cout << "Press C to continue, X to Exit";
cin >> transactionType;
// выйти, если пользователь ввел X
if (transactionType == 'x'
|| transactionType == 'X')
{
break;
}
//если пользователь ввел С...
if (transactionType == 'c'
|| transactionType == 'C')
{
// ...начать создание нового счета...
init (accountNumber[noAccounts], balance[noAccounts]);
// ...и ввести информацию о проводке
process (accountNumber[noAccounts], balance[noAccounts]);
// подсчитать количество счетов
noAccounts++;
}
}
// показать сумму
// для каждого счета в отдельности
double total = 0;
cout << "Info o shchetah:\n";
for (int i = 0; i < noAccounts; i++)
{
cout << "Balans shcheta "
<< accountNumber[i]
<< " = "
<< balance[i]
<< "\n";
// подсчитать сумму по Есем счетам
total += balance[i];
}
// вывести сумму по всем счетам
cout << "Balans na wseh shchetam = "
<< total
<< "\n";
return 0;
}
// init — инициализирует счет, считав
// его номер к обнулив баланс
void init (unsigned& accountNumber, double balance)
{
cout << "Vpisat nomer shcheta:";
cin >> accountNumber;
balance = 0.0;
}
// process — изменяет баланс счета
// в соответствии с транзакцией пользователя
void process(unsigned& accountNumber, double balance)
{
cout << "Vpisat polozycielniu summu wklada\n"
<< "abo otjemnu dla snatia summi z shchotu\n";
double transaction;
do
{
cout << ":";
cin >> transaction;
// это вклад?
if (transaction > 0)
{
balance += transaction;
}
// или снятие?
if (transaction < 0)
{
// снятие
transaction =- transaction;
if (balance < transaction)
{
cout << "Nedostatochno deneg na shchote: balans "
<< balance
<< ", summa tranzakcii "
<< transaction
<< "\n";
}
else
{
balance -= transaction;
}
}
} while (transaction != 0);
} |