我坚持使用C#中的这个小项目,但基本上我的问题是: 我试图为考试统计数据创建一个数据结构...... 所以: 一个学生可以有很多科目 一个科目可以有很多学生 复杂的部分是,一个科目可以有多个考试(重考),因此一个学生将有一个科目的许多结果...... 我有点失去了如何规范这个。谁有人建议?这是我的第一个解决方案:
class StudentRec
{
string name;
string candidate_number;
string student_id;
List<Subject> modules;
}
class Subject_Record
{
string subject_code;
Exam_Record first_attempt;
Exam_Record second_attempt;
Exam_Record third_attempt;
}
class Exam_Record
{
string year;
int mark;
char grade;
}
但是,如果我这样做,每个学生都会有相同主题的不同实例。
答案 0 :(得分:2)
像
这样的东西所以学生在主题中招募 - &gt;注册。然后,对于注册,您可以有许多考试,每个考试一个,以处理重拍。
答案 1 :(得分:1)
基于Mike Q的回答。
class Student
{
string name;
string candidate_number;
string student_id;
// One to many
List<Enrollment> modules;
}
class Enrollment
{
Subject subject;
// One to many
List<Exam> exams;
}
class Subject
{
string subject_code;
}
class Exam
{
int attempt;
string year;
int mark;
char grade;
}
答案 2 :(得分:0)
您可以将学科记录添加到学生中,因此学生可以列出他正在学习的科目,并且还列出了他已经完成的当前和过去科目的成绩列表。所以代码变成了:
class StudentRec
{
string name;
string candidate_number;
string student_id;
List<Subject> modules;
List<Subject_Record> subject_results;
}
class Subject_Record
{
string subject_code;
Exam_Record first_attempt;
Exam_Record second_attempt;
Exam_Record third_attempt;
}
class Exam_Record
{
string year;
int mark;
char grade;
}
如果您想将Subject_record和Exam_Record链接回学生,可以将学生ID添加到这些记录中。