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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Федорец
1 / 1 / 1
Регистрация: 02.02.2014
Сообщений: 65
#1

Динамический массив в классе - C++

04.04.2014, 20:48. Просмотров 684. Ответов 3
Метки нет (Все метки)

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include <iostream>
#include <string>
#include <conio.h>
 
using namespace std;
 
class person{
    string name;
    int year;
    char pol;
    
    public:
        person() { name=""; year=0; pol=' ';}
        person(string,char);
        int GetYear(){return year;}
        string GetName() { return name;}
        char GetPol() {return pol;}
        void SetName (string Name) {name=Name;}
        void SetYear(int Year){year=Year;}              
        void SetPol(char Pol) {pol=Pol;}
        void scan() { cout<<"Enter FIO: \n"; getline(cin,name); getline (cin,name); cout<<"Enter the year of birth:\n"; 
        cin>>year; cout<<"Enter pol:\n"; cin>>pol;}
        void print() { cout<<"FIO: "<<name<<endl<<"The year of birth: "<<year<<endl<<"Pol:"<<pol<<endl;}
        };
        
        class client_library:public person{
            int number_b;
            int vnesok; 
            string deta;
            string *books;
            int k_b;
            
 
            public:
                
                
                int getnumber_b() {return number_b;}
                string getdeta() {return deta;}
                int getvnesok() {return vnesok;}
                string getbooks () {return *books ;}
                
                void setnumber_b(int nBil) {number_b=nBil;}
                void setdeta (string d) {deta=d;}
                void setvnesok (int Vn) {vnesok=Vn;}
                void setbooks (string bk) {*books=bk;}
                
                void Zn ();
                void scan();
                void print();
            };
                 
                 void client_library::Zn()
                 {  
                    int Zn=0;
                    if(k_b<=5)
                    Zn=5;
                    if (k_b>5&&k_b<20)
                    Zn=10;
                    if (k_b>=20)
                    Zn=15;
                    cout<<"\nDiscount: "<<Zn<<"%\n\n";
                 }
                 
                 void client_library::scan()
                    { 
                     
                      person::scan();
                      cout<<"Enter the number of tickets: "; 
                      cin>>number_b; 
                      cout<<"Enter the date of issue: "; 
                      getline(cin,deta);
                      getline (cin,deta);
                        cout<<"Enter the amount of the monthly payment to the club: "; 
                        cin>>vnesok; 
                        cout<<"Enter the number of books: "; 
                        cin>>k_b; 
                        cout<<"Enter names of the books: \n";
                        string *books=new string [k_b];
                        for(int i=0;i<k_b;i++) 
                         { 
                             getline(cin,books[i]);
                             getline (cin,books[i]);
                             
                         } 
                         cout<<endl;
                         
                    }
                                
                void client_library::print()
                {
                    
                    person::print();
                    cout<<"The number of tickets: "<<number_b<<endl;
                    cout<<"The date of issue: "<<deta<<endl;
                    cout<<"Annual installment: "<<vnesok*12<<endl;
                    cout<<"Books: ";
                    for (int i=0;i<k_b;i++)
                    {
                        cout<<books[i];
                    }
                    
                }
        
        
        int main()
        {   
            int n;
            
            cout<<"Enter the number of persons: ";
            cin>>n;
            cout<<endl;
            client_library a;
            for (int i=0; i<n; i++)
            {
            a.scan();
            a.print();
            a.Zn();
            }
            return 0;
            getch();
    }

Проблема в динамическом массиве книг, он не выводится в функции принт, почему?

Добавлено через 51 минуту
ну помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2014, 20:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамический массив в классе (C++):

Можно ли в классе создавать массив переменной длинны. Например динамический массив? - C++
Динамические массивы привлекают больше. :)

Динамический массив в классе - C++
Существует пример создания динамического двумерного массива: float **Matrix = new float*; for(i = 0; i &lt;SizeOfMatrix;i++) { ...

Динамический массив в классе - C++
Здравствуйте! Я пишу программу, в ней мне необходимо сделать иерархию, и в произвольных классах сделать контейнер - динамический массив....

Динамический массив в классе - C++
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;cmath&gt; using namespace std; class Matrix { int **matrix; int i,...

Не работает динамический массив в классе: что раньше, указатель или размер? - C++
Подскажите пожалуйста где ошибка class arar { int*arr, size; public: arar() :arr(new int()), size(10) { for (int i(0); i...

Двумерный динамический массив в классе. Зависание при вводе и вызове деструктора - C++
Объект класса содержит двумерный массив строк фиксированного размера(80) и длины n. При обращении к ф-ции ввода программа зависает и...

3
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
23668 / 15668 / 4707
Регистрация: 22.10.2011
Сообщений: 27,764
Записей в блоге: 5
04.04.2014, 20:55 #2
Строка 78
C++
1
                       books=new string [k_b];
, используй поле класса, а не локальную переменную...
0
Федорец
1 / 1 / 1
Регистрация: 02.02.2014
Сообщений: 65
04.04.2014, 21:39  [ТС] #3
Почему если я ввожу 2 книги, оно требует ввести 3?
0
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
05.04.2014, 00:48 #4
Замените на
C++
1
2
3
4
5
6
7
8
9
    cout<<"Enter names of the books: \n";
    books=new string [k_b];
    cin.ignore(INT_MAX,'\n');
    for(int i=0;i<k_b;i++) 
    { 
        getline (cin,books[i]);
 
    } 
    cout<<endl;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2014, 00:48
Привет! Вот еще темы с ответами:

В классе инициализировать массив, в классе создать функцию вывода массива на экран - C++
Прошу помоши с выводом данных, которые содержаться в массиве, на экраy: Задача: В классе инициализировать массив, в классе создать...

динамический массив (Целое число разложить на массив простых множителей) - C++
Доброго времени суток всем. Целое число необходимо разложить на массив простых множителей. Столкнулся с проблемой, мне нужно, чтобы...

Заполнить динамический массив из файла и записать массив обратно в файл - C++
Подскажите пожалуйста функцию которая будет заполнять Динамический массив из файла и обратную которая этот массив запишет в файл=)

Написать функцию принимающую массив и возвращающую указатель на динамический массив - C++
Написать функцию принимающую массив и возвращающую указатель на динамический массив содержащий первые n нaибольших чисел. Как сделать...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
05.04.2014, 00:48
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru