Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
kvazim
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 6
1

Описание класса "Студенческая группа"

17.12.2009, 23:07. Просмотров 6242. Ответов 10
Метки нет (Все метки)

Добрый вечер! Нужна помощь в составлении программы.
Условие: Описать класс "студенческая группа". Предусмотреть возможность работы с переменным число студентов, поиска студента по какому-либо признаку(например, по фамилии, дате рождения или номеру телефона), добавления и удаления записей, сортировки по разным полям.
Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.
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
template <class type>
#include <stdio.h>
#include <iostream>
#include <cstring>
using namespace std;
class group{
        private:
        
        type t;
        struct date{
            int day,month,year;
        }; 
        struct student{
            char name[15];/* имя */
            char surname[20]; /* фамилия */
            int year; /* курс */
            struct date birth; /* дата рождения */
        };
        student massiv_studentov[30];
        static int i = 0;
    
        public:
        
        void vvod(){
            st = new student;
            char name[15], surname[20];
            int k,year;
            struct date birth;
            cout<<"Введите количество студентов";
            cin>>k;
            cout<<"Введите имя студента";
            cin>>name;
            cout<<"Введите фамилию студента";
            cin>>surname;
            cout<<"Введите курс обучения";
            cin>>year;
            cout<<"Введите дату рождения\n Число:%d\n Месяц:%d\n Год:\n";
            cin>>birth.day>>birth.month>>birth.year;
            
            st.name = name;
            st.surname = surname;
            st.year = year;
            st.birth.day = birth.day;
            st.birth.month = birth.month;
            st.birth.year = birth.year;
            massiv_studentov[i+1] = st;
        };
        /*void find(t){
            int i;
            for(i=1;i<30;i++){
            if(t==st[i])
            cout<<"Сведения о найденном студенте\n";
            cout<<"Имя студента "<<st[i].name<<"\n";
            cout<<"Фамилия студента"<<st[i].surname<<"\n";
            cout<<"Курс обучения"<<st[i].year<<"\n";
            сout<<"Дата рождения";
            cout<<" "<<st[i].birth.day<<"."<<st[i].birth.month<<"."<<st[i].birth.year<<"\n";}
        };*/
        
    }
Так выглядит мой класс, но он не доработан, никак не могу придумать каким образом написать функцию поиска и как правильно обеспечить заполнение полей. Буду очень благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2009, 23:07
Ответы с готовыми решениями:

Разработать класс "студенческая группа". Предусмотреть возможность работы с переменным числом студентов
Помогите доделать, пожалуйста. #include &lt;iostream.h&gt; #include &lt;conio.h&gt;...

Описать класс "студенческая группа"
Описать класс &quot;студенческая группа&quot;. Предусмотреть возможность работы с...

Составить описание класса "3D вектор". Объявить объекты класса и продемонстрировать работу методов
Возникли сложности при решении задачи. Буду признателен тем, кто поможет....

Наследование: "БГТУ", "Факультет", "Группа", "Подгруппа"
Определить иерархию классов (в соответствии с вариантом – выделить базовый и...

Составить описание класса "время"
ПОМОГИТЕ ПОЖАЛУЙСТА СДЕЛАТЬ РАБОТУ!!!! Время задается в формате...

10
niXman
Эксперт С++
3202 / 1451 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
18.12.2009, 00:14 2
убей то что сделал и некому не показывай
для начала опиши структуру представляющую студента. далее, массив этих структур, операции со студентами(добавить, удалить), поиск возвращающий итератор, и в последнюю очередь сортировку.
0
kvazim
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 6
18.12.2009, 00:16  [ТС] 3
почему убить?)) там вроде не совсем так... или совсем?))
0
niXman
Эксперт С++
3202 / 1451 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
18.12.2009, 00:17 4
там совсем не так
0
kvazim
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 6
18.12.2009, 00:20  [ТС] 5
Разве я неверно описал структуру для студента? по-другому пока не придумаю, как написать =)
0
CyBOSSeR
Эксперт С++
2310 / 1683 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
18.12.2009, 00:32 6
Никаких cin, cout и др. средств ввода/вывода класс такого рода не должен содержать, никогда, ни про каких обстоятельствах.
0
kvazim
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 6
18.12.2009, 00:36  [ТС] 7
Это же отдельная функция ввода, разве я неправильно описал её? или я что-то не так понимаю)) чего-то вы меня совсем запутали =)
0
niXman
Эксперт С++
3202 / 1451 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
18.12.2009, 00:42 8
kvazim, верно сказал CyBOSSeR, класс должен получать аргументы, а не добывать из сам.
нет, можно конечно реализовать класс правильно, чтоб он добывал значения сам, при помощи петтерна. но не думаю что тебе это доставит удовольствие.

Добавлено через 1 минуту
в с++ есть строки. для чего это: char name[15]; ??
0
kvazim
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 6
18.12.2009, 00:44  [ТС] 9
Я не знаю переменную типа строк, разве это не подойдёт?)) так в учебнике было описано)
0
niXman
Эксперт С++
3202 / 1451 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
18.12.2009, 00:53 10
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
struct student{
   std::string name;/* имя */
   std::string surname; /* фамилия */
   int year; /* курс */
   struct date birth; /* дата рождения */
};
...
...
class group:public std::vector<student> {
public:
   тут конструктор
   тут еще что-то
};
 
а работает это так:
 
student student;
group group;
std::cin >> student.name >> остальные поля...
group.push_back(student); так добавляешь
 
group::iterator iter = group.begin();
for ( ; iter != group.end(); iter++ ) { так итерируешься
   std::cout << iter->name << выводишь
}
разве так не проще?
допиши функцию поиска, сортировки, и остальное. с контейнерами это просто.
2
kvazim
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 6
18.12.2009, 00:56  [ТС] 11
Спасибо большое, завтра с этого места продолжу) посмотрю...
0
18.12.2009, 00:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2009, 00:56

Построить описание класса "Органзация"
Построить описание класса, содержащего информацию о почтовом адресе...

Раздельное объявление и описание шаблонной функции, принимающей в качестве операндов ссылку на объект класса "вектор"
Приветствую. Есть код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Классы "Студент" ,"Группа" - не работает метод ввода и вывода
Тема: Классы языка С ++: группа и студент Задание 1. Создайте класс...


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

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

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