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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Идеи проектов http://www.cyberforum.ru/cpp-beginners/thread1497177.html
Доброго врмени суток форумчане! Столкнулся с такой трудностью как отсутствие практики, вроде бы начальная база знаний есть(ясное дело циклы, массивы, ф-ции, стрктуры, немного классы), но вот по проэктикам душа плачет :D В книге те проэкты которые писал, то зачастую это маленькие и сухие, для того что бы уметь и понимать. Поэтому возможно у вас будут идеи интересных проэктов, пусть и не...
C++ Синтаксические ошибки при компиляции программы Доброго времени суток ребят, у меня к вам просьба, посмотреть в чем проблема. #include<iostream> using namespace std; int main() { const double pi = 3.1415; const int Radius = "3"; double Square = 0; Square = pi * Radius * Radius; cout << Square << '\n'; http://www.cyberforum.ru/cpp-beginners/thread1497167.html
Определить, как должен быть расположен жилой комплекс по отношению к комбинату C++
При выборе места строительства жилого комплекса при металлургическом комбинате необходимо учитывать “розу ветров” (следует расположить жилой комплекс так, чтобы частота ветра со стороны металлургического комбината была бы минимальной). Для этого в течение года проводилась регистрация направления ветра в районе строительства. Данные представлены в виде массива, в котором направление ветра за...
C++ Получить массив со стоимостью всех оставшихся видов товара
В массиве записана информация о стоимости каждого из 20 видов товара, продаваемых фирмой. С 1 января очередного года фирма прекращает продавать товар, стоимость котороо записана в n-ом элементе массива. Получить массив со стоимостью всех оставшихся видов товара.
C++ Вставить заданное число в массив целых чисел перед последним четным элементом http://www.cyberforum.ru/cpp-beginners/thread1497147.html
Вставить заданное число в массив целых чисел перед последним четным элементом.
C++ Распределение памяти Как схематично показать распределение памяти для объединения? struct BYTE {int b1:4; int b2:3; int b3:1;}; union BITS{unsigned char ch; BYTE bit;}u1; подробнее

Показать сообщение отдельно
prog-hak
2 / 2 / 2
Регистрация: 08.01.2013
Сообщений: 62
11.07.2015, 15:00     Перезапись символьных данных в массиве классов
Есть массив классов и в него нужно записывать название книги, имя автора и цену книги.
У каждого автора свой номер от 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();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru