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

Разобрать код работы с классами - C++

Восстановить пароль Регистрация
 
Парапулька
 Аватар для Парапулька
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 25
14.03.2011, 22:01     Разобрать код работы с классами #1
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
#include <iostream>
using namespace std;
class student{
char name[30];
int nzk[10];
public:
        void get_name() {for(int i=0; i<3; i++) cin>>name[i];}
        void vyv_name() {for(int i=0; i<3; i++) cout<<name[i];}
        void get_nzk() {for(int i=0; i<4; i++) cin>>nzk[i];}
        void vyv_nzk() {for(int i=0; i<4; i++) cout<<nzk[i];}
        };
class student_platn: public student{
        int stoim;
        int data;
public:
        void spvv(){
                cout<<"Vvedite imya: ";
                get_name();
                cout<<"Vvedite nomer zachetnoi knizhki: ";
                get_nzk();
                cout<<"Vvedite stoimost' obucheniya: ";
                cin>>stoim;
                cout<<"Vvedite datu poslednego platezha: ";
                cin>>data;}
        void spvyv(){
                vyv_name();
                vyv_nzk();
                cout<<"\t"<<stoim<<"\t"<<data;}};
 
class student_budzhet:public student{
        int sum_step;
public:
        void sbvv(){
                cout<<"Vvedite imya: ";
                get_name();
                cout<<"Vvedite nomer zachetnoi knizhki: ";
                get_nzk();
                cout<<"Vvedite summu stependii: ";
                cin>>sum_step;}
        void sbvyv(){
                vyv_name();
                vyv_nzk();
                cout<<"\t"<<sum_step;}};
 
class student_celev:public student{
        char firma;
public:
        void scvv(){
                cout<<"Vvedite imya: ";
                get_name();
                cout<<"Vvedite nomer zachetnoi knizhki: ";
                get_nzk();
                cout<<"Vvedite firmu,napravivshuyu studenta na obuchenie: ";
                cin>>firma;}
        void scvyv(){
                vyv_name();
                vyv_nzk();
                cout<<"\t"<<firma;}};
void main (){
int n;
cout<<"\t*Baza dannyh dekanata*"<<endl;
cout<<"\t*Vvedite dannye o studentah obuchayschihsya na platnoi osnove:*\n"<<endl;
student_platn  ob1, ob2;
         ob1.spvv();cout<<endl;
         ob2.spvv();cout<<endl;
         ob1.spvyv();cout<<endl;
         ob2.spvyv();cout<<endl;
cout<<"\n\t*Vvedite dannye o studentah budzhetnikah:*\n"<<endl;
student_budzhet ob3, ob4;
         ob3.sbvv();cout<<endl;
         ob4.sbvv();cout<<endl;
         ob3.sbvyv();cout<<endl;
         ob4.sbvyv();cout<<endl;
cout<<"\n\t*Vvedite dannye o studentah celevogo nabora:*\n"<<endl;
student_celev ob5, ob6;
         ob5.scvv();cout<<endl;
         ob6.scvv();cout<<endl;
         ob5.scvyv();cout<<endl;
         ob6.scvyv();cout<<endl;
         cin>>n;}

вобщем вот
когда запускаю её
набираю имя первого студента
затем набираю № зачётной книжки
и символов ввожу например 5
ну пробел
и не выскакивает ВВедите стоимость обучения
не пойму почему(((
хэээлп люди
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2011, 22:01     Разобрать код работы с классами
Посмотрите здесь:

C++ Разобрать код на с++
Список (разобрать код) C++
Разобрать код по алгоритму C++
Разобрать логику работы приведенного кода C++
C++ Простая программа работы с классами и строками, очистка буфера
Разобрать код C++
Доработка программы для работы с классами C++
C++ Найти ошибки в программе работы с классами

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
15.03.2011, 02:14     Разобрать код работы с классами #2
Для чего вы используете циклы при вводе в student::get_name(), student::get_nzk(), ну, и, соответсвенно, при выводе student::vyv_nzk(), student::vyv_name()?
cin >> name записывает в name сразу всю строку. Тоже самое для числа cin >> nzk.
Если хотите хранить каждый символ номера зачетки отдельно, то объявите char nzk[сколько_там_у_вас_символов_в_номере + 1]

Короче, исправьте базовый класс примерно так:
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
class student
{
    char name[100];
    char nzk[10];
      // или так, если хотите хранить число, но, в общем случае, номер зачетки может включать и не цифровые символы
//    int nzk;
public:
    void get_name()
    {
            cin>>name;
    }
    void vyv_name()
    {
            cout << name;
    }
    void get_nzk()
    {
            cin>>nzk;
    }
    void vyv_nzk()
    {
            cout<<nzk;
    }
};
Yandex
Объявления
15.03.2011, 02:14     Разобрать код работы с классами
Ответ Создать тему
Опции темы

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