typedef struct Course {
char *CourseID;
char *CourseName;
struct Course* next;
} COURSE;
typedef struct Student{
int ID;
struct Student* next
}STUDENT;
Я хочу создать список курсов, а затем список студентов со следующими у каждого студента есть идентификатор и некоторые курсы из списка курсов и оценка каждого курса. но как я могу сделать это объявление внутри структуры STUDENT? я не могу этого понять
Например Студент: 3049583222 Курс: Биология (из списка курсов) класс: 30
и так далее, каждый студент мог пройти все курсы из списка.
Ну, у меня нет понимания, как мне создать структуру студентов, в которой у каждого студента есть курс, который я выберу, и оценка, я имею в виду синтаксис, как я мог написать это внутри структуры студентов?
Вам нужен связанный список курсов для каждого студента, который имеет оценку, и указатель на более подробное описание курса? не совсем понял вопрос?
Хорошо, извините за неправильное понимание, мне нужен список курсов с неограниченным количеством курсов, затем я хочу список студентов с неограниченным количеством для студентов, у каждого студента есть идентификатор и некоторые или все курсы из списка курсов, а также для каждого курса что есть у ученика, у него тоже есть оценка
В буквальном переводе: «иметь курс» -> struct Course* course
и «оценка» -> int grade
. Это свойства на Student
.
Что делать, если у студента более одного курса? и мне нужно, чтобы он имел, скажем, два курса с двумя оценками.
Это можно сделать несколькими способами, ниже показаны два подхода.
Вы можете выбрать один и построить на нем.
typedef struct Course {
char *CourseID;
char *CourseName;
struct Course* next;
} COURSE;
typedef struct Student{
int ID;
}STUDENT;
//approach 1
#define NIDS 10
#define NCOURSES 20
typedef struct Student_Course_1{
STUDENT STU_ID[NIDS]; /* to store list of student ids */
COURSE STU_Courses[NCOURSES]; /* to store list of courses */
}COURSES_OF_STUDENT_1;
//approach 2
typedef struct Student_Course_2{
STUDENT STU_ID;
COURSE STU_Courses;
}COURSES_OF_STUDENT_2;
int main()
{
COURSES_OF_STUDENT_1 cs1; /* this has list of students and courses inside it */
COURSES_OF_STUDENT_2 cs2[NIDS]; /* you can use NIDS list of students and courses info with this */
return 0;
}
Моя идея:
// Description of a course
typedef struct Course {
char *CourseID;
char *CourseName;
} COURSE;
// Struct to hold the students grade, as a linked list to generate a list of all courses the student has.
typedef struct coursesTaken {
int grade;
COURSE* courseDescription;
struct coursesTaken* nextCourse;
} COURSES_TAKEN;
// The student with ID and pointer to his first course.
typedef struct Student{
int ID;
COURSES_TAKEN* firstCourse;
struct Student* next;
}STUDENT;
Это начало. Насколько дальше вы продвинулись?