-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
1

Структура и вложенная структура

13.10.2017, 16:13. Показов 3166. Ответов 10
Метки нет (Все метки)

Подскажите как сделать задание, такого рода
Иванов Математика 80
История 60
Физика 67

Сидоров Математика 80
История 60
Физика 67

Пупкин Математика 80
История 60
Физика 67
C++
1
2
3
4
5
6
7
8
9
10
Реализовать с помощью вложенной структуры. Как инициализировать структуру и заполнить рандомно оценки?
struct predmet{
    char npred;
    int *mark;
    };
struct student {
    char name[20];
    predmet prr[3];
    
};
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.10.2017, 16:13
Ответы с готовыми решениями:

Вложенная структура в класс
Привет всем, пишу шаблонный класс - кольцевой двунаправленный список, вообщем объявил структуру...

В текстовом файле структура – информация о компьютерах. Структура с полями: название, стоимость.
Ребят, помогите пожалуйста, 29 июня экзамен по "Основы программирования",кто сколько сможет сделать...

Структура «База», сущности «Универсам» и «Продукты», структура «Товар»
1. Создать структуру «База», включающую не менее 3 полей. 2. Создать сущности «Универсам» и...

структура array предназначена для хранения строки типа char. Структура имеет функцию, которая позволяет изменить символ
структура array предназначена для хранения строки типа char. Структура имеет функцию, которая...

10
3375 / 1929 / 372
Регистрация: 09.09.2017
Сообщений: 7,879
13.10.2017, 16:32 2
Пока непонятно в чем задача и что не получается.
Для хранения структур, подобных приведенным {имя; массив предметов{название; число}} я бы использовал немного другие структуры, но, повторюсь, вашего задания я не знаю.
0
Форумчанин
Эксперт CЭксперт С++
8170 / 5020 / 1436
Регистрация: 29.11.2010
Сообщений: 13,453
13.10.2017, 16:57 3
Пока получается, что студент содержит имя (что логично) и предмет (это как?). А предмет имеет какую-то букву и указывает на оценку.
Вы неверно спроектировали саму систему.
0
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
13.10.2017, 18:05  [ТС] 4
MrGluck, нужно вывести на экран Имя студента три предмета и 3 оценки рандомным способом

Добавлено через 2 минуты
COKPOWEHEU, Задача вывести на экран массив структур фамилия ученика три предмета и три оценки
непонятно как инициализировать массив и рандомно вывести оценки
0
3375 / 1929 / 372
Регистрация: 09.09.2017
Сообщений: 7,879
13.10.2017, 19:33 5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
struct Discipline{
  char *name;
  int val;
};
struct Stud3{
  char name[100];
  struct Discipline arr[3];
};
void rand_discipline(struct Discipline *d){
  int dis = rand()%3;
  switch(dis){
    case 0: d->name = "Breaking glass"; break;
    case 1: d->name = "Daemonology"; break;
    case 2: d->name = "Theory of the lazyness"; break;
    default: d->name = "<fix libastral.so !>";
  }
  d->val = rand();
}
Как-то так например
2
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
13.10.2017, 19:42  [ТС] 6
COKPOWEHEU,спасибо, а можно прокоментировать функцию rand_discipline(struct Discipline *d)
0
3375 / 1929 / 372
Регистрация: 09.09.2017
Сообщений: 7,879
13.10.2017, 19:56 7
Что именно непонятно?
Может лучше наоборот, сами попробуете прокомментировать и выложить результат сюда, если что не так поправим.
0
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
13.10.2017, 20:11  [ТС] 8
Вот как понимаю
void rand_discipline(struct Discipline *d){//передается структура с названием предмета и оценками
int dis = rand()%3;//это чтобы работал switch
switch(dis){
case 0: d->name = "Breaking glass"; break;//сработает
case 1: d->name = "Daemonology"; break; //какой-то break
case 2: d->name = "Theory of the lazyness"; break;
default: d->name = "<fix libastral.so !>";
}
d->val = rand(); //и какие цифры присвоятся предметам?
}

Добавлено через 2 минуты
COKPOWEHEU, Вот как понимаю
void rand_discipline(struct Discipline *d){//передается структура с названием предмета и оценками
int dis = rand()%3;//это чтобы работал switch
switch(dis){
case 0: d->name = "Breaking glass"; break;//сработает
case 1: d->name = "Daemonology"; break; //какой-то break
case 2: d->name = "Theory of the lazyness"; break;
default: d->name = "<fix libastral.so !>";
}
d->val = rand(); //и какие цифры присвоятся предметам?
}
0
3375 / 1929 / 372
Регистрация: 09.09.2017
Сообщений: 7,879
13.10.2017, 20:52 9
Лучший ответ Сообщение было отмечено vfhbf как решение

Решение

Что ж, понятно. Вам стоит почитать хоть какие-то книжки по С++.
C
1
2
3
4
5
6
7
8
9
10
11
void rand_discipline(struct Discipline *d){ //объявление процедуры. В качестве параметра передается указатель на структуру. Указатель нужен для того чтобы можно было изменить структуру. Иначе меняли бы локальную копию и это не применилось бы к исходной.
  int dis = rand()%3; //генерация случайного числа и получение остатка от деления на 3. Результат - случайное число от 0 до 2
  switch(dis){ //выбор из заданных вариантов
//если случайное число равно 0 - присваиваем полю name указатель на строку "Breaking glass"
    case 0: d->name = "Breaking glass"; break; //break - выход из switch. Иначе перешли бы к следующему коду
    case 1: d->name = "Daemonology"; break;
    case 2: d->name = "Theory of the lazyness"; break;
    default: d->name = "<fix libastral.so !>"; //поскольку случайное значение выбирается от 0 до 2, сюда код зайти не должен.
  }
  d->val = rand(); //это поле у вас называется mark. Если хотите оценку, можно по аналогии с dis сделать d->val = rand()%5+1;
}
0
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
13.10.2017, 21:47  [ТС] 10
COKPOWEHEU, Спасибо, что посоветуете прочитать по этой теме
0
3375 / 1929 / 372
Регистрация: 09.09.2017
Сообщений: 7,879
13.10.2017, 22:40 11
Литература C++ можно начать отсюда
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2017, 22:40

Структура DateTime, битовая структура
Условие: Структура содержит информацию о дате и времени некоторого события: struct datetime...

Структура, доступная из всех файлов проекта ("глобальная" структура)
Есть четыре структуры (body, gun, enemy, st), описанные в main.cpp. К main.cpp подключен хедер...

Тип структура. Описать, используя тип структура
Описать, используя тип структура, данные на учеников (фамилия, улица, дом, квартира). Составить...

Структура
typedef struct strs { char c; strs *next; int inset; }xx; Ошибка при компиляции:


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

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

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