Форум программистов, компьютерный форум CyberForum.ru

Перезапись символьных данных в массиве классов - C++

Восстановить пароль Регистрация
 
prog-hak
2 / 2 / 2
Регистрация: 08.01.2013
Сообщений: 62
11.07.2015, 15:00     Перезапись символьных данных в массиве классов #1
Есть массив классов и в него нужно записывать название книги, имя автора и цену книги.
У каждого автора свой номер от 0-5(мой массив классов).
Все пишется нормально, только при просмотре для соответствующего автора правильно показывает только цену, а имя автора и название книги у всех перезаписывается как у последнего.
Подскажите кто шарит или сталкивался.
Books.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma once
 
namespace LB
{
    typedef unsigned int ui;
    class Books
    {
    private:
        char* NameBook;
        char* NameAuthor;
        ui Price;
    public:
        Books(void);
        //Books(char*,char*,ui);
        void setBook(char*,char*,ui);
        void getBook();
        ~Books(void);
    };
}
Books.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include "Books.h"
 
using namespace std;
 
namespace LB
{
    Books::Books(void)
    {
    }
 
    //Books::Books()
    
    void Books::setBook(char* nb, char* na, ui pr)
    {
        NameBook=nb;
        NameAuthor=na;
        Price=pr;
    }
    
    void Books::getBook()
    {
        cout<<"Name book: "<<NameBook<<endl;
        cout<<"Name author: "<<NameAuthor<<endl;
        cout<<"Price: "<<Price<<endl;
    }
    Books::~Books(void)
    {
    }
}
Source.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <conio.h>
#include "Books.h"
 
using namespace std;
using LB::Books;
 
Books a[5];
 
void menu(char* nb, char* na, int n);
void AddAuthor(char* nb, char* na, int n);
void ViewAuthor();
 
int main()
{
    char nb[10];
    char na[10];
    int n=0;
    
    menu(nb,na,n);
    _getch();
    return 0;
}
 
void menu(char* nb, char* na, int n)
{
    cout<<"\t\t***Library***"<<endl;
    int index;
    bool flag=true;
    do
    {
        cout<<"1. Add author\n2. View author\n0. For exit"<<endl;
        cin>>index;
        switch(index)
        {
        case 1: AddAuthor(nb,na,n);break;
        case 2: ViewAuthor();break;
        default: flag=false; break;
        }
        if(index==1)
            n++;
        _getch();
        system("cls");
    }while(flag!=false);
}
 
void AddAuthor(char* nb, char* na, int n)
{
    //Books a[5];
    
    int pr;
    cin.get();
    cout<<"Enter name book: "; cin>>nb;
    cout<<"Enter name author: "; cin>>na;
    cout<<"Enter price: "; cin>>pr;
    a[n].setBook(nb,na,pr);
    
}
 
void ViewAuthor()
{
    int n;
    cout<<"Enter number author: "; cin>>n;
    a[n].getBook();
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2015, 15:00     Перезапись символьных данных в массиве классов
Посмотрите здесь:

C++ Обработка символьных данных
Обработка символьных данных. C++
C++ Обработка символьных данных.
C++ Обработка символьных данных
C++ Обработка символьных данных
Обработка символьных данных C++
Обработка символьных данных C++
Перезапись данных в файл C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4261 / 3692 / 1243
Регистрация: 14.04.2014
Сообщений: 14,470
11.07.2015, 15:08     Перезапись символьных данных в массиве классов #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Сделай массивы по типу char NameBook[50], так проще будет, или выделяй память в каждом объекте. А проще всего std::string.
prog-hak
2 / 2 / 2
Регистрация: 08.01.2013
Сообщений: 62
11.07.2015, 15:18  [ТС]     Перезапись символьных данных в массиве классов #3
Спасибо, сделал через string все заработало.
Yandex
Объявления
11.07.2015, 15:18     Перезапись символьных данных в массиве классов
Ответ Создать тему
Опции темы

Текущее время: 21:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru