Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как исправить ошибку? 
:(
    Опции темы
КУЗЬМИЧ
  Дата 28.5.2011, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 2.5.2011

Репутация: нет
Всего: нет



как исправить ошибку в коде?

Код
#include <fstream>
#include <string>
#include <stdio.h>
#include <vector>
#include <iostream>
#include <conio.h>
using namespace std;

class Deposits
{
public:
    Deposits(int _number = 00, int _summa = 00);
private:
    int    number;
    int    summa;
    friend ostream&  operator << (ostream&, Deposits&);
    friend ifstream& operator >> (ifstream&, Deposits&);
    friend ofstream& operator << (ofstream&, Deposits&);
};

Deposits::Deposits(int _number, int _summa)
{
    
    number = _number;
    summa  = _summa;
}

ostream& operator<< (ostream& str, Deposits& b)
{
    str << b.number << " - " << b.summa;
    return str;
}

ifstream& operator>> (ifstream& str, Deposits& b)
{
    str >> b.number >> b.summa;
    return str;
}

ofstream& operator<< (ofstream& str, Deposits& b)
{
    str << b.number << " " << b.summa;
    return str;
}
class Deposit_MaxBank
{
public:
    Deposit_MaxBank();
    void Add (Deposits);
    int find();
    void Print();
    //void Replenishment ();  //пополнение
    //void Withdrawal ();     //снятие
    ~Deposit_MaxBank();
private:
    int b;
    vector <Deposits> dep;
};

/*class interest_1 : public Deposit_MaxBank
{
public:
    interest_1();
};

class interest_2 : public Deposit_MaxBank
{
public:
    interest_2();
};*/
int Deposit_MaxBank::find()
{    
    int number;
    for (vector<Deposits>::iterator it = dep.begin(); it != dep.end(); it++)
    {    
        if((*it).number == number) 
            return b;
    }
    cout << "вклада с таким номером не существует" << endl;
}
void Deposit_MaxBank::Add(Deposits b)
{
    dep.push_back(b);
}
void Deposit_MaxBank::Print()
{    
    cout << "Номер счета - Сумма на счету" << endl;
    for (vector<Deposits>::iterator it = dep.begin(); it != dep.end(); it++)
    {    cout.width(11);
        cout << (*it) << endl;
    }
}

Deposit_MaxBank::Deposit_MaxBank()
{    
    ifstream file("list.txt");
    Deposits b;
    while (file >> b)
    {
        Add(b);
    }

    file.close();
}
Deposit_MaxBank::~Deposit_MaxBank()
{
    ofstream file("list.txt");

    for (vector<Deposits>::iterator it = dep.begin(); it != dep.end(); it++)
    {
        file << (*it) << endl;
    }

    file.close();
}

int showMenu()
{
    int number;
    system("cls");
    cout << "Чтобы создать вклад ,нажмите 1"<<endl;
    cout << "Чтобы вывести состояние вклада на текущий момент ,нажмите 2"<<endl;
    cout << "Чтобы снять деньги ,нажмите 3"<<endl;
    cout << "Чтобы показать доход ,нажмите 4"<<endl;
    cout << "Если вы хотите выйти,нажмите 0"<<endl;
    cin  >> number;
    system("cls");
    return number;
}
int MenuDeposit()
{
    int number;
    system("cls");
    cout << "Здравствуйте, выберите одну из нижеперечисленных программу по вкладам и " << endl;
    cout << "введите соответствующую ей цыфру" << endl;
    cout << endl;
    cout << "#Максимальный доход# - цыфра 1" << endl;
    cout << "#Вклады для народа# - цыфра 2" << endl;
    cout << "#Благотворительные вклады# - цыфра 3" << endl;
    cout << endl;
    cout << "Если вы хотите выйти,нажмите 0"<<endl;
    cin  >> number;
    system("cls");
    return number;
}
void realmenu()
{
    int q = 0;
    Deposit_MaxBank myDeposit_MaxBank;
    while (1) 
            {
            switch( showMenu() )
            {
                case 1:
                {    
                int number, summa;
                cout << "Введите номер вашего вклада-  ";
                cin  >> number;
                cout << "Введите сумму которую вы хотите зачислить в вклад-  ";
                cin  >> summa;
                Deposits b (number, summa);
                myDeposit_MaxBank.Add(b);
                }break;
                case 2:
                {
                myDeposit_MaxBank.Print();
                cout << "Вы хотите вернуться в меню, если да то нажмите 1"<<endl;
                cin  >> q;    
                }break;
                
                case 3:
                {
                int num;
                cout << "Введите номер своего счета" << endl;
                cin  >> num;
                myDeposit_MaxBank.find(num);
                myDeposit_MaxBank.Print();
                cout << "Сколько денег вы хотите снять со счета" << endl;


                }break;
                /*case 4:
                {

                }break;*/
            case 0:return;
            default:break;
            }
    }
        
}
void main ()
{    
    setlocale(0, "");
    system("color 0A");
    int q = 0;
    Deposit_MaxBank myDeposit_MaxBank;
    cout << "********************************************************************************" ;
    cout << "*Мы рады что вы выбрали электронный терминал именно нашего банка. У нас вы мож-*" ;
    cout << "*ете открыть вклад на любую сумму и с любым сроком хранения, под разные процен-*" ;
    cout << "*ты. Мы предложим вам несколько накопительных программ выбрав одну из которых  *" ;
    cout << "*вы сможете приумножать свой капитал без лишних усилий. Приятного пользования  *" ;
    cout << "*программой.                                                                   *" ;
    cout << "********************************************************************************" << endl;
    cout << endl << "Для продолженя введите 1" << endl;
    cin  >> q;
    switch( MenuDeposit() )
    {
        case 1:realmenu();break;
        case 2:realmenu();break;    
        case 3:realmenu();break;
    }
getch();
}



 ! 
bsa
Не забываем пользоваться кнопочкой "Код"


Это сообщение отредактировал(а) bsa - 30.5.2011, 13:54
PM MAIL   Вверх
JЕT
Дата 28.5.2011, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 30.9.2010

Репутация: нет
Всего: нет



Код

if((*it).number == number) 


разыменовав итератор вы получаете объект класса Deposits, а затем пытаетесь получить доступ к его закрытому элементу, что есть не верным. сделайте get-функцию, например.

Код

int find();


Код

myDeposit_MaxBank.find(num);


по задумке метод find не должен принимает аргументов.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0738 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.