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

Добавление данных в массив объектов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать структуру с именем TRAIN http://www.cyberforum.ru/cpp-beginners/thread589125.html
Описать структуру с именем TRAIN, содержащую следующие поля: 1) название пункта назначения; 2) номер поезда; 3) время отправления. Написать программу, выполняющую следующие действия: 1. ввод с клавиатуры данных в массив, состоящий из шести элементов типа TRAIN; 2. записи должны быть упорядочены по времени отправления поезда; 3. вывод на экран информации о поездах, направляющихся в пункт,...
C++ Написать рекурсивную функцию Написать рекурсивную функцию, которая определяет, является ли симметричной часть строки, начиная с i и заканчивая j-м элементами. http://www.cyberforum.ru/cpp-beginners/thread589124.html
Описать структуру с именем Student C++
Описать структуру с именем STUDENT, содержащую следующие поля: 1) фамилия и инициалы; 2) номер группы; 3) успеваемость (массив из пяти элементов). Написать программу, выполняющую следующие действия: 1. ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; 2. записи должны быть упорядочены по возрастанию среднего балла; 3. вывод на дисплей фамилий и номеров групп...
C++ доделать программу
#include <iostream> #include <string> #include <fstream> using namespace std; int main() { setlocale(LC_ALL,"Russian"); fstream f; f.open("sashka.h", ios::in); // ios::in - открыть файл для чтения if (!f.is_open()) //если открыт возвращает 1 {
C++ Задан файл со следующей структурой: Реквизит Шаблон Номер зачетки Курс Номер группы Оценки (повторяется 5 раза) Количество экзаменов Вычислить ито http://www.cyberforum.ru/cpp-beginners/thread589099.html
Задан файл со следующей структурой: Реквизит Шаблон Номер зачетки Курс Номер группы Оценки (повторяется 5 раза) Количество экзаменов Вычислить итоговую успеваемость, на печать выдать в виде таблиц.
C++ Задан файл с записями следующей структуры: Реквизит Шаблон Номер зачетки Факультет Курс Группа Оценки Записать его как индексно - последовательный Задан файл с записями следующей структуры: Реквизит Шаблон Номер зачетки Факультет Курс Группа Оценки Записать его как индексно - последовательный файл и затем по запросу выдавать либо списки успевающих, либо списки неуспевающих, либо полностью информацию по какому - либо студенту. подробнее

Показать сообщение отдельно
daslex
1270 / 515 / 106
Регистрация: 02.08.2011
Сообщений: 2,640
29.05.2012, 12:14     Добавление данных в массив объектов
Alt_Shift,

Вы когда создаете новый объект, вы не инструктируете компилятор о том, чтобы он увеличил счетчик объектов, поэтому отображается ровно столько, сколько объектов было изначально создано. Я дам вам ваш же код, вы все наверное поймете. Только уберите ненужные setlocale (я понаписал и где не надо просто)

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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
struct  date
{
    int day;
    char month [10];
    int  year;
};
class Student
{
    private:
    char *fam;
    char *name;
    int contact;
    date br;
    public:
    Student()
    {     
        fam=new char[20];
        name=new char[20];
        date br1={1,"Января",1980};
        contact=0;
    }
    
void Info ()
{
    cout<<"\n";
    cout<<"Введите фамилию: "; cin>>fam;
    cout<<"Введите имя: ";     cin>>name;
    cout<<"Введите дату в формате 00 (ENTER)/месяц(ENTER)/0000:\n ";
    cin>>br.day;
    cin>>br.month;
    cin>>br.year;
    cout<<"Введите номер телефона: "; cin>>contact;
}
 
void show ()
{
    setlocale(LC_ALL, "Russian");
    cout<<"фамилия:\t"<<fam<<endl;
    cout<<"имя:\t\t"<<name<<endl;
    cout<<"дата рождения:\t"<<br.day<<"/"<<br.month<<"/"<<br.year<<endl;
    cout<<"телефон:\t"<<contact<<endl;
}
~Student()
    {
        delete[]fam;
        delete[]name;
    }
};
class Group: public Student
{
private:
 char* Name;
 char* Specializ;
 Student st[30];
public:
 Group()
    {
        
        Name=new char[25];
        Specializ=new char[25];
    }
 
  void Info_gr ()
{
    setlocale(LC_ALL, "Russian");
    cout<<"Введите имя группы: ";   cin>>Name;
    cout<<"Введите специальность: ";cin>>Specializ;
}
 
void Show_gr ()
{
    cout<<"имя группы::\t"<<Name<<endl;
    cout<<"специальность:\t"<<Specializ<<endl;
}
 
~Group()
    {
        delete[]Name;
        delete[]Specializ;
    }
};
 
void main()
{
    setlocale(LC_ALL, "Russian");
 
    int kol;
    Group *gr=new Group[10];
    int n=0;
    
    
   do
   {
    cout<<" 1-создать список студентов \n 2-показать список \n 3-добавить студента \n 0-выход\n";
    cin>>n;
    switch(n)
    {
    case 1:
    cout<<"Введите количество студентов в группе: ";
           cin>>kol;
 
            for(int i=0;i<kol;i++)
                {
                 gr[i].Info();
                 gr[i].Info_gr ();
                }
            
            break;
 
    case 2:
        for(int i=0;i<kol;i++)
        {
        cout<<"Студент N"<<i+1<<"\n";
        gr[i].show();
        gr[i].Show_gr();
        }
        break;
    case 3:
        int dob; int temp=kol;  //temp - Изначальное число объектов
        cout<<"Введите количество студентов которое необходимо добавить "<<endl;
        cin>>dob; kol=kol+dob; //Вычисляете сколько объектов будет и обновляете kol
 
        for (int i=temp;i<kol;i++)  
        {  
                gr[i].Info();
                gr[i].Info_gr ();
        }
 
    }
    }
    while(n!=0);
}
 
Текущее время: 03:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru