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

Односвязный список с данными о студентах

29.09.2015, 08:40. Показов 6055. Ответов 3
Метки нет (Все метки)

Составить односвязный список на основе класса,объекты которого будут формтировать этот списо. В описание класса должны входить данные для хранения фамилии студента,номера группы,оценок по трём предметам:
функции для доступа к отдельным компонентам списка,вывод на экран элементов списк,а так же среднего балла студента,добавление элемента в конец списка ,добавление элемента в начало списка,удаление элемента из списка, использовать указатель this
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2015, 08:40
Ответы с готовыми решениями:

Односвязный список с данными студента
Здравствуйте, есть такой код #include <iostream> #include <string> #include <Windows.h> ...

Создать файл с данными о студентах и вывести список на экран
прошу помощи. Задание 2. Создать типизированный файл stud.dan, который содержит информацию: номер...

Реализовать односвязный список для хранения и операций с данными вида "Количество внешних связей"
Реализовать односвязный список для хранения и операций с данными вида: Объект Количество внешних...

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

3
55 / 48 / 13
Регистрация: 31.10.2013
Сообщений: 166
29.09.2015, 08:46 2
Представьте пожалуйста код, а там можно обсудить его.
0
836 / 639 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
29.09.2015, 17:09 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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include <iostream>
#include <cstring>
 
 
template<class T>
struct snode {
    T      val;
    snode* next;
};
 
template<class T>
class slist {
    typedef snode<T> node;
private:
    node*  head;
    node*  tail;
    size_t cnt;
public: 
    slist(void):head(NULL), tail(NULL), cnt(0){}
    slist(const slist&);
    ~slist(){
        this->clear();
    }
 
    slist& operator = (const slist&);
public:
    //вставка в начало списка
    bool add_front(const T& val){
        node* p;
        try {
            p = new node();
        } catch(...) { return false; }
 
        p->val  = val;
        p->next = NULL;
        if(head == NULL)
            head = tail = p;
        else {
            p->next = head;
            head = p;
        }
        ++cnt;
        return true;
    }
 
    //вставка в конец списка
    bool add_back(const T& val){
        node* p;
        try {
            p = new node();
        } catch(...) { return false; }
 
        p->val  = val;
        p->next = NULL;
        if(head == NULL)
            head = tail = p;
        else {
            tail->next = p;
            tail = p;
        }
        ++cnt;
        return true;
    }
 
    //удаление элемента
    node* erase(node* pos){
        node* prev = head;
        if(pos == NULL)
            return NULL;
        else if(pos == head){
            prev = head = head->next;
            if(head == NULL)
                tail = NULL;
        } else {
            for(node* p = head; p != pos; p = p->next)
                prev = p;
 
            prev->next = pos->next;
            if(pos == tail)
                tail = prev;
            prev = prev->next;
        }
        delete pos;
        --cnt;
        return prev;
    }
 
    //удаление всех
    void clear(void){
        node* tmp;
        while(head != NULL){
            tmp  = head;
            head = head->next;
            delete tmp;
        }
        tail = NULL;
        cnt  = 0;
    }
 
    //кол-во
    size_t size(void) const { return cnt; }
    node*  begin(void) const { return head; }
    node*  begin(void) { return head; }
};
 
 
//студент
struct student {
    char lname[32];
    int  group;
    //...
    student(void){}
    student(const char* s, int g){
        strcpy(lname, s);
        group = g;
    }
};
 
 
int main(void){
    slist<student> lst;
    //зполняем
    lst.add_back( student("Иванов", 10) );
    lst.add_back( student("Петров", 30) );
    lst.add_front( student("Ли Си Цин", 20) );
    lst.add_front( student("Павлов", 40) );
    lst.add_front( student("Янг", 20) );
 
    //удалить все 20-группу
    snode<student>* p = lst.begin();
    while(p != NULL){
        if(p->val.group == 20){
            p = lst.erase(p);
            continue;
        }
        p = p->next;
    }
    
    //вывести
    for(snode<student>* i = lst.begin(); i != NULL; i = i->next){
        std::cout << "фамилия: " << i->val.lname << '\t' 
                  << "группа № " << i->val.group << std::endl;
    }
    lst.clear();
    return 0;
}
Пример работы кода
1
0 / 0 / 0
Регистрация: 14.04.2015
Сообщений: 32
17.11.2015, 16:58  [ТС] 4
спасибо большое!)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2015, 16:58
Помогаю со студенческими работами здесь

Создать файл, данными которого будет информация о студентах
Плз хелп.Создать файл,данными которого является:номер зачетной книжки фио студента список и3 5...

Заполните файл данными о студентах и выведите именинников в конкретный месяц
Вариант 3 а) Создать файл, состоящий из 15 записей. Каждая запись должна иметь следующую...

Сформировать список из 10 книг, используя динамическую структуру данных односвязный список
друзья спасайте Сформировать список из 10 книг, используя динамическую структуру данных...

Создать односвязный список, затем вывести весь список в ListBox
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; class List { public: ...

Создать класс «Квартира», в котором список комнат реализовать как односвязный список
Добрый день,написал фот такой клас по заданию:Создать класс «Квартира», в котором список комнат...

Составить односвязный список на основе класса, объекты которого будут формировать этот список
Составить односвязный список на основе класса, объекты которого будут формировать этот список. В...


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

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

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