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

Структура и осуществление доступа к ее элементам - C++

Восстановить пароль Регистрация
 
bumblebeezzz
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 6
10.11.2012, 07:05     Структура и осуществление доступа к ее элементам #1
Получить программную реализацию задачи обработки таблицы дан-
ных. Таблица должна представлять собой массив элементов соответствую-
щего вида. Таблица считается заданной, то есть значения элементов табли-
цы указываются непосредственно в тексте программы.


В таблице собраны сведения об успеваемости студентов одной группы по
некоторой дисциплине. Информация об отдельном студенте включает в се-
бя ФИО студента и отметки (сдано или не сдано) по каждой из 4 лаборатор-
ных работ. Выдать список студентов, имеющих задолженности, и подсчи-
тать общее число таких студентов.

Добавлено через 14 часов 41 минуту
вверх
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2012, 07:05     Структура и осуществление доступа к ее элементам
Посмотрите здесь:

C++ Небольшая прога по методам доступа к элементам массива
Может ли объемлющий класс иметь неограниченный доступ к элементам вложенного класса? А вложенный класс — к элементам объемлющего? C++
C++ Скорость доступа к элементам вектора
C++ Время доступа к элементам вектора.
C++ В текстовом файле структура – информация о компьютерах. Структура с полями: название, стоимость.
C++ friend функции не имеют доступа к private элементам класса, почему?
C++ Использование #define для доступа к элементам класса
C++ Осуществление поиска по библиотеке

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
10.11.2012, 08:22     Структура и осуществление доступа к ее элементам #2
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
#include <stdio.h>
 
// структура студент
struct student
{
char *f0;
char *i0;
char *o0;
int marks[4];
 
student(){f0 = NULL; i0 = NULL; o0 = NULL; int i; for(i=0;i<4;i++) marks[i] = 0;}
~student(){delete []f0; delete []i0; delete []o0;}
 
// установить фамилию
void set_f(char* f1, int sz){ f0 = new char[sz+1]; int i; for(i=0;i<sz; i++) f0[i]=f1[i]; f0[i]='\0';}
void print_f(){int i; for(i=0;f0[i]!='\0'; i++) printf("%c", f0[i]); printf("\n");}
 
// установить имя
void set_i(char* i1, int sz){ i0 = new char[sz+1]; int i; for(i=0;i<sz; i++) i0[i]=i1[i]; i0[i]='\0';}
void print_i(){int i; for(i=0;i0[i]!='\0'; i++) printf("%c", i0[i]); printf("\n");}
 
// установить отчество
void set_o(char* o1, int sz){ o0 = new char[sz+1]; int i; for(i=0;i<sz; i++) o0[i]=o1[i]; o0[i]='\0';}
void print_o(){int i; for(i=0;o0[i]!='\0'; i++) printf("%c", o0[i]); printf("\n");}
 
// установить оценки: 1- сдано, 0 - несдано
void set_marks(int a,int b, int c, int d){ marks[0] = a; marks[1] = b; marks[2] = c; marks[3]=d;}
void print_marks(){int i; for (i=0;i<4;i++) printf("%d ", marks[i]);}
 
 
};
 
// структура список студентов 
struct student_list
{
student_list* next;
student_list* prev;
student* s;
 
student_list(){next = NULL; prev = NULL;}
 
// добавить следующий элемент в список
void add_next(){next = new student_list(); next->s = new student();next->prev = this;}
 
// вывод данных студента
void print_s(){ s->print_f(); s->print_i(); s->print_o(); s->print_marks();}
 
// вывод списка студентов
void print_list() { struct student_list *plst = this;while(plst->next != NULL){printf("student: 
 
");plst->print_s();printf("\n");plst=plst->next; } printf("student: ");plst->print_s();printf("\n");}
 
// определение должников
int find_list() { 
int sum=0; // счетчик должников
int i;
int b1 = 0; // есть ли задолженность
struct student_list *plst = this;
while(plst->next != NULL){
for(i=0;i<4 &&b1 == 0;i++) if(plst->s->marks[i] != 1) { b1 = 1; sum++;}
if (b1 == 1) { printf("student: ");plst->print_s();printf("\n");}
 
plst=plst->next; 
b1 = 0;
} 
 
for(i=0;i<4 &&b1 == 0;i++) if(plst->s->marks[i] != 1){b1 = 1; sum++;}
if (b1 == 1) { printf("student: ");plst->print_s();printf("\n");}
return sum;
}
 
 
};
 
 
 
int main()
{
 
struct student_list *lst= new student_list();
lst->s = new student();
 
lst->s->set_f("ab", 2);
lst->s->set_i("cd", 2);
lst->s->set_o("ef", 2);
lst->s->set_marks(1, 1, 1, 1);
 
//printf("student: ");
//lst->print_s();
//printf("\n");
 
lst->add_next();
lst->next->s->set_f("gh", 2);
lst->next->s->set_i("ij", 2);
lst->next->s->set_o("kl", 2);
lst->next->s->set_marks(1, 1, 1, 1);
 
// вывод списка студентов
lst->print_list();
 
printf("%d\n", lst->find_list() );
 
return 0;
}
Yandex
Объявления
10.11.2012, 08:22     Структура и осуществление доступа к ее элементам
Ответ Создать тему
Опции темы

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