Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: cheops   (08.02.2012 в 18:55)
1. Во-первых в современном C++, если вы хотите пользоваться потоками ввода cin и вывода cout из стандартного пространства имен, без префикса std::, следует в начало программы добавить следующую строку
using namespace 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);
 }


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: