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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Запись объекта в файл, большая проблемма с С++  
V
    Опции темы
LexRus
Дата 2.6.2007, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ребята, кто шарит в С++, пожалуйста, помогите мне. Дело в том что я учусь в колледже. Нам дали задание (ассаймент) куоторое решит вылетишь\ не вылетишь. У меня уже было все практически готово. Шел по улице на занятия, напали 2-е арабов. Один лупит по голове какой-то хренью и пинает меня лежащего ногами, второй в это время забирает все что есть. Забрали в том числе и ноут со всей инфой. Сегодня только из больницы (4 дня) с чуть ли не проломленным черепом. Я даже на монитор смотреть не могу - больно да и не смогу сделать физически. 4-го нужно сдать.Не сдам - теряю год обучения и более 2тыс евро. Я за границей, студент - я не выдержу уже просто 2-го года ни материально, ни физически\морально. 

Учимся мы по книге " C++ How to program,Fifth edition. DEITEL" скачать можно запросто, что я и сделал. Сайт их www.deitelkcom или http://www.prenhall.com/deitel/cyberclassroom .

Задание простое!! :

Write a C++ prog that creates a class named BankAccount, containing the followimg variables: string accountOwnerFirstName, string accountOwnerLastName, long int accountNumberint accountPIN? double accountBalance. Then, the prog should open thr file for wrriting (file can be named "account.dat"? promt the user to enter ( through the keyboard) at least 5 different records for bank accounts? and save the data into 5 doifferemt BankAccount objects, and at the same time write the data into the file account.dat ( use 1 new line for each account record).

Furthermore? the program should open a new file for appending (named "newAccount.dat"), promt the user to enter a new bank account record and write it, together with the existing bank accounts? to the newAccount.dat. Therefore, the newAccount.dat should contane at least one more bank account record compared to account. Lastly, open for reading the file newAccount.dat and output its contents to the screen/

Put comments into the BankAccount files (BankAccount.h, BankAccount.cpp) and in the testing file (BankAccountTest.cpp, which also opens files for writing and reading).

РЕБЯТА! Это со стороны (и не знающему) кажется тяжкло-долго о тп. Это элементарно! Я только начал С++. В книге есть даже похожий пример. Человек который разбирается или хоть чуть знает с++ (студент) сдклает это не напрягаясь маесимум за час думаю, если не меньше.

Пожалуйста помогите!!! Очень прошу! может и не туда пишу и не по-теме, но выхода\вариантов нет. С почти проломленным черепом и без копейки задание не напишу\получу. Помогите хоть чем-то, кто как может! Буду очень благодарен. Спасибо за внимание. 

Помогите!!!!!!! Прошу вас! может эди не вы - знакомвй может.


M
Alexeis
Модератор: Название темы должно отражать ее суть!




Это сообщение отредактировал(а) Alexeis - 2.6.2007, 21:39
PM MAIL   Вверх
MAKCim
Дата 2.6.2007, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
apook
Дата 3.6.2007, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Можешь и поиском воспользоваться здесь похожих заданий было много
сам то переделаешь наверно


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
Alexeis
Дата 3.6.2007, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



h файл
Код


#include <iostream.h>
#include <string.h>
#include <fstream.h>

#ifndef _03062007
#define _03062007

class CBankAccount;

operator<< (ostream &IS, const CBankAccount &BA);

class CBankAccount
{
private:
  string   accountOwnerFirstName;
  string   accountOwnerLastName;
  long int accountNumber;
  int      accountPIN;
public:
  friend operator<< (ostream &IS, const CBankAccount &BA);
  void ReadFromScreen();
  void ReadFromFile(ifstream &f);
};

#endif


cpp файл

Код

#include "BankAccount.h"


  operator<< (ostream &IS, const CBankAccount &BA)
  {
     IS << (char *)BA.accountOwnerFirstName.c_str() << ' '
        << (char *)BA.accountOwnerLastName.c_str()  << ' '
        << BA.accountNumber                         << ' '
        << BA.accountPIN                            
        << endl;
     return 0;
  }

  void CBankAccount::ReadFromScreen()
  {
     accountOwnerFirstName.resize(100);
     cout << "-------------------------------------" << endl;
     cout << "Input Account Owner First Name" << endl;
     cin  >> &accountOwnerFirstName[0];
     accountOwnerLastName.resize(100);
     cout << "Account Owner Last Name" << endl;
     cin  >> &accountOwnerLastName[0];
     cout << "Input Account Number" << endl;
     cin  >> accountNumber;
     cout << "Input Account PIN" << endl;
     cin  >> accountPIN;
  }

  void CBankAccount::ReadFromFile(ifstream &f)
  {
     cout << "-------------------------------------" << endl;
     accountOwnerFirstName.resize(100);
     cout << "Account Owner First Name : ";
     f    >> &accountOwnerFirstName[0];
     cout << accountOwnerFirstName.c_str() << endl;

     cout << "Account Owner Last Name : ";
     accountOwnerLastName.resize(100);
     f    >> &accountOwnerLastName[0];
     cout << accountOwnerLastName.c_str() << endl;

     cout << "Account Number : ";
     f    >> accountNumber;
     cout << accountNumber << endl;

     cout << "Account PIN : ";
     f    >> accountPIN;
     cout << accountPIN << endl;

     char endline;
     f    >> endline;
  }

int main(void)
{
    cout << "intut records count ";
    int n;
    cin >> n;  

    CBankAccount *BA = new CBankAccount[n];
    ofstream f("account.dat", ios::out);

    for (int i = 0; i < n; i++)
    {
       BA[i].ReadFromScreen();
       f << BA[i];
    }
    f.close();
    delete[] BA;

    cout << endl;
    cout << "additional accaunt" << endl;
    cout << endl;

    f.open("newAccount.dat", ios::app);
    CBankAccount NewBA;
    NewBA.ReadFromScreen();
    f << NewBA;
    f.close();

    cout << endl;
    cout << "Contient of \"newAccount.dat\"" << endl;
    cout << endl;

    ifstream file2("newAccount.dat", ios::in);
    while (!file2.eof())
    {
        CBankAccount ReadBA;
        ReadBA.ReadFromFile(file2);
    }

    file2.close();

    char end[20];
    cin >> end;
    return 0;
}


Содержимое файла newAccount.dat (2 записи)

Код

Name1 sName1 23523 2353
Name2 sName2 346734 5233


Ну и весь проект (в билдере)

Это сообщение отредактировал(а) Alexeis - 3.6.2007, 17:05

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  BankAccount.zip 13,52 Kb


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
apook
Дата 3.6.2007, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

#include <stdlib.h>

#include <fstream.h>
#include <iostream.h>

#define MAXSZ 1024


using namespace std;

class BankAccount
{
public:
    BankAccount();

    char surname[ 80 ]; //Фамилия
    int penny;          //денег

    void BDentry();
    ~BankAccount();
    friend ostream &operator <<( ostream &stream, BankAccount &Object );
    };

BankAccount::BankAccount()
{
cout << "Enter Surname: ";
cin >> this->surname;
cout << "Enter amount of money: ";
cin >> this->penny;
}


BankAccount::~BankAccount()
{
    ;
} 

ostream &operator <<( ostream &stream, BankAccount &Object )
{
stream << "SurNAme: " << Object.surname << endl
       << "Amount of money: " << Object.penny << endl;
return stream; 
}


void main()
{
BankAccount BA;

fstream bd;
bd.open( ".\\BankAccount.DAT", ios::out );
if( !bd )
{ 
    perror( "Error: Cant open file BankAccount.DAT" );
    exit( 1 ); 
    }

//Запись обьекта в файл
bd << BA; 

return;
}



--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
Scope
Дата 4.6.2007, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Приношу свои извенения за столь необоснованный пост (теперь это мне уже стало ясно), если кого обидел- искренне извиняюсь- это я не со зла.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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