Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2015, 17:46   #1
Андрей Иванов
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 60
Сообщение Запись данных из класса и вывод их на экран - C++

Такое задание:

Надо реализовать класс Склад. В классе хранит: название товара, производителя товара, дата производства товара, вес товара, и адрес производителя.

Нужно создать методы класса для ввода данных и для вывода данных.

Реализовать конструктор с параметрами для инициализации полей класса. Конструктор по умолчанию должен считывать информацию с файла (с проверкой на существование) если успешно то он должен считать и инициализировать поля информации с файла если нет то нет.

Реализовать методы для записи в файл и чтения данных из файла. Добавить метод записи в конструктор по умолчанию, а метод чтения в деструткор.
Андрей Иванов вне форума Ответить с цитированием
Старый 07.09.2015, 17:51   #2
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

а вопрос в чём? что не получается? или охота чтоб за тебя сделали даром?
GreenWizard вне форума Ответить с цитированием
Старый 07.09.2015, 18:02   #3
Андрей Иванов
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 60
Радость

Цитата:
Сообщение от GreenWizard Посмотреть сообщение
а вопрос в чём? что не получается? или охота чтоб за тебя сделали даром?
Нет у меня уже есть полу готовый код.

Код:
#include <iostream>
#include <string.h>
using namespace std;
 
class sklad {
    string nazwanie_towara;
    string proizwoditel_towara;
    int den;
    int mesaz;
    int god;
    int wes;
    string adress;
public:
    sklad() {
        nazwanie_towara = "Milo";
        proizwoditel_towara = "Gala";
        den = 18;
        mesaz = 10;
        god = 2015;
        wes = 150;
        adress = "Moscow, Fabrichnaj 23";
 
        cout << "Nazwanie towara: " << nazwanie_towara << endl;
        cout << "Proizwoditel towara: " << proizwoditel_towara;
        cout << "Data proizwodstwa towara (den, mesaz, god): " << den << mesaz << god;
        cout << "Wes towara: " << wes;
        cout << "Adress towara: " << adress;
 
        zapis("sklad.txt");
    }
 
    sklad(string nazwanie_towara1, string proizwoditel_towara1, int den1, int mesaz1, int god1, int wes1, string adress1) {
        cout << "Nazwanie towara: " << nazwanie_towara << endl;
        cout << "Proizwoditel towara: " << proizwoditel_towara;
        cout << "Data proizwodstwa towara (den, mesaz, god): " << den << mesaz << god;
        cout << "Wes towara: " << wes;
        cout << "Adress towara: " << adress;
    }
 
    ~sklad() { chtenie("sklad.txt");    }
 
    void vod() {
        cout << "Nazwanie towara: ";
        cin >> nazwanie_towara;
        cout << "Proizwoditel towara: ";
        cin >> proizwoditel_towara;
        cout << "Data proizwodstwa towara (den, mesaz, god): ";
        cin >> den >> mesaz >> god;
        cout << "Wes towara: ";
        cin >> wes;
        cout << "Adress towara: ";
        cin >> adress;
    }
    void wiwod() {
        cout << "Nazwanie towara: " << nazwanie_towara;
        cout << "Proizwoditel towara: " << proizwoditel_towara;
        cout << "Data proizwodstwa towara (den, mesaz, god): " << den << mesaz << god;
        cout << "Wes towara: " << wes;
        cout << "Adress towara: " << adress;
    }
    void zapis(char *imafaila) {
        FILE *s;        
 
        s = fopen(imafaila, "a"); 
 
        if (s != NULL)  {
            fprintf(f, "%s %s %d %d %d %d %s ", nazwanie_towara, proizwoditel_towara, den, mesaz, god, wes, adress);
            fclose(s);          
        }
        else {
            cout << "Oschibka";
        }
    }
    
    void chtenie(char *imafaila){
        FILE *s;
 
        s = fopen(imafaila, "r");
 
        if (s != NULL) {           
                fscanf(s, "%s %s %d %d %d %d %s ", &nazwanie_towara, &proizwoditel_towara, &den, &mesaz, &god, &wes, &adress);
                cout << "Nazwanie towara: " << nazwanie_towara << endl;
                cout << "Proizwoditel towara: " << proizwoditel_towara;
                cout << "Data proizwodstwa towara (den, mesaz, god): " << den << mesaz << god;
                cout << "Wes towara: " << wes;
                cout << "Adress towara: " << adress;            
            fclose(s);
        }
    }
};
 
int main() {    
    sklad s1;
    s1.vod();
    s1.wiwod(); 
    sklad sklad1;
    sklad sklad2("Milo2", "Gala2", 19, 11, 2016, 155, "Moscow, Fabrichnaj 29"); 
    return 0;
}
Не получается запись и чтение.
Андрей Иванов вне форума Ответить с цитированием
Старый 07.09.2015, 18:46   #4
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

вот уже др. дело)))
для начала, исправь код записи:
Код:
    void zapis(char *imafaila) {
        FILE *s;        
 
        s = fopen(imafaila, "a"); 
 
        if (s != NULL)  {
            fprintf( s , "%s %s %d %d %d %d %s ", nazwanie_towara, proizwoditel_towara, den, mesaz, god, wes, adress);
            fclose(s);          
        }
        else {
            cout << "Oschibka";
        }
    }
попробуй и отпиши работает ли
замечания по коду нужны или ещё не дорос до качественного кода?
GreenWizard вне форума Ответить с цитированием
Старый 07.09.2015, 18:54   #5
Андрей Иванов
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 60
Радость

Цитата:
замечания по коду нужны или ещё не дорос до качественного кода?
Конечно ж нужны.

Цитата:
Сообщение от GreenWizard Посмотреть сообщение
вот уже др. дело)))
для начала, исправь код записи:
Код:
    void zapis(char *imafaila) {
        FILE *s;        
 
        s = fopen(imafaila, "a"); 
 
        if (s != NULL)  {
            fprintf( s , "%s %s %d %d %d %d %s ", nazwanie_towara, proizwoditel_towara, den, mesaz, god, wes, adress);
            fclose(s);          
        }
        else {
            cout << "Oschibka";
        }
    }
Ошибку понял но все равно в файл записывает мусор.

Последний раз редактировалось Stilet; 07.09.2015 в 19:25.
Андрей Иванов вне форума Ответить с цитированием
Старый 07.09.2015, 19:07   #6
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

опять почитал код и заметил, что ты в конструкторе выполняешь запись, а деструкторе - чтение
главное замечание: транслит в именах переменных/классов/др..... если ты просто программируешь для себя и не собираешься работать программистом, то это мелочи и повлияет только на готовность других программистов тебе помогать
GreenWizard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод данных с клавиатуры на экран Shouldercannon Паскаль, Turbo Pascal, PascalABC.NET 7 03.10.2013 20:09
Вывод данных на экран в Assembler sap_ax Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 28.12.2011 20:15
Запись фразы в массив и вывод на экран Morfius01 Visual C++ 1 27.05.2011 00:29
Не получается реализовать вывод содержимого вектора класса на экран Progsenya Общие вопросы C/C++ 4 09.09.2010 21:38