0 / 0 / 0
Регистрация: 10.09.2014
Сообщений: 1
1

Ввод данных с конструктором

10.09.2014, 02:10. Показов 3055. Ответов 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
81
82
83
84
85
86
87
88
89
#include <iostream>
using namespace std;
 
class Student
{
public:
    char name[20];
    int age;
 
    Student()
    {
        strcpy_s(name, 20, "Ivanov");
        age = 18;
    }
    
    Student(char* name, int age)
    {
        strcpy_s(this->name, 20, name);
        this->age = age;
    }
 
    void print()
    {
        cout << "Student: " << name
            << "\tage: " << age << endl;
    }
};
 
class Group
{
    Student *students;
    int count;
public:
    Group()
    {
        cout << "Constructor" << endl;
        count = 0;
        students = NULL;
    }
 
    ~Group()
    {
        cout << "Destructor" << endl;
        if (students != NULL)
            delete[] students;
    }
 
    void addStudent(Student s)
    {
        Student* tmp = new Student[count + 1];
 
        for (int i = 0; i < count; i++)
            tmp[i] = students[i];
 
        tmp[count] = s;
 
        if (students != NULL)
            delete[] students;
 
        students = tmp;
        count++;
    }
 
    void print()
    {
        for (int i = 0; i < count; i++)
            students[i].print();
    }
};
 
void foo()
{
    Student s1;
    //s1.print();
 
    Student s2("Petrov", 19);
    //s2.print();
 
    Group g;
    g.addStudent(s1);
    g.addStudent(s2);
    g.print();
 
}
 
void main()
{
    foo();
}
Я изменил значения student по умолчанию, что-бы можно было вводить с клавиатуры, но возникла проблема: ввожу данные, после просит ввести в поле конструктора еще раз, которые никуда не вносятся.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
Student()
    {
        cout << "Enter Name: ";
        cin >> name;
        cout << "Enter Age: ";
        cin >> age;
        strcpy_s(this->name, 20, name);
        this->age = age;
 
    }
Скрин:
Миниатюры
Ввод данных с конструктором  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2014, 02:10
Ответы с готовыми решениями:

В чем разница между конструктором по умолчанию и конструктором с параметрами?
Объясните пожалуйста в чем разница между конструктором по умолчанию и конструктором с параметрами,...

Как правильно заменить ввод данных простой на ввод с клавиатуры?
#include &quot;stdafx.h&quot; #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; int...

Потоковый ввод и ввод данных. Работа с числами
Ввести с экрана два нат. числа. Найти частное первого на второе и определить, встречается ли среду...

Ввод структурированных данных в файл и вывод данных из этого файла на экран (сделать хранилище данных в файле)
Здравствуйте) помогите написать программу, осуществляющую ввод структурированных данных в файл и...

1
48 / 37 / 27
Регистрация: 11.02.2014
Сообщений: 134
10.09.2014, 10:57 2
потому что в методе
C++
1
void addStudent(Student s)
вы создаете временный класс:
C++
1
Student* tmp = new Student[count + 1];
и для него вызывается конструктор без параметров, первый раз один (count = 0 +1) второй раз два (count = 1 +1), добавьте еще одного студента и будете еще троих вводить.
Перепишите конструктор, например без параметров - автоматом вводится, с параметром пустышкой уже ввод данных ручками, ну или метод для ввода напишите. Можно еще думаю над логикой void addStudent(Student s) чего-то подумать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2014, 10:57
Помогаю со студенческими работами здесь

Пропускает ввод данных в консоли. Не работает часть кода. Пропускает ввод фио
Добрый день! Помогите пожалуйста! В void add_dinamo() пропускает cout&lt;&lt;&quot;ФИО: \t&quot; ;...

Реализовать ввод данных, вывод данных, поиск по номеру квартиры и возрасту
ввод данных, вывод данных, поиск по номеру квартиры и возрасту. Запись состоит из номера квартиры...

Реализовать ввод данных из файла, просмотр входных и выходных данных
помогите пожалуйста с вот этой программой создать программный комплекс, реализующий ввод данных...

Составьте программу, которая обеспечивает ввод данных, вывод данных, поиск по номеру
Составьте программу, которая обеспечивает ввод данных, вывод данных, поиск по номеру. Каждая запись...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru