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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поясните по указателям http://www.cyberforum.ru/cpp-beginners/thread693120.html
Добрый день товарищи. У меня вопрос: #include <iostream> using namespace std; int main() {
C++ Динамический массив структур Необходимо создать структуру, и сделать динамический массив структур. Фиксированный массив получается сделать, а вот с динамическим массивом где-то ошибка. Подскажите, пожалуйста, где ошибка. #include <iostream> using namespace std; int mysize=3; struct movies { http://www.cyberforum.ru/cpp-beginners/thread693096.html
C++ Состав проекта С++
Добрый вечер, Уважаемые Программисты! Возник такой вопрос, ответ на который гугл мне не дал, поиск по форумы тоже промолчал. При создание проекта весь код разноситься по разным файлам с расширением .h и .cpp. Так вот вопрос состоит в том, что писать в заголовочные файлы, а что в .cpp. Из курса колледжа помню, что мы разбивали в h - вроде писали классы и их тела. И еще вопрос как они...
C++ Самая популярная бесплатная среда С++
Какая среда C++ самая популярная и самая используемая сейчас и она бесплатная ?
C++ Скетч Arduino -> C++ http://www.cyberforum.ru/cpp-beginners/thread693079.html
Здравствуйте! Скажите, пожалуйста, можно ли как то перевести скетч Ардуино в код C++? Заранее спасибо!
C++ Найти количество делителей заданного числа n, заданного в диапазоне 1 <= n <= 10^18 Нужно узнать количество делителей числа N. Но сложность в том что N большое и перебирать все делите не вариант. подробнее

Показать сообщение отдельно
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
10.11.2012, 08:22     Структура и осуществление доступа к ее элементам
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;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru