定制魏:QTWZPW,获取更多源码等
目录
题目
设计并实现一个学生信息和成绩管理系统,可以对学生的基本信息和成绩进行增、删、改、查等操作,并能够统计单个科目的平均分以及按照总分排行显示学生信息。该系统应具有良好的用户界面和友好的交互体验,同时要求数据持久化,能够将学生信息和成绩保存到文件中,并能够从文件中加载数据。
功能模块设计
学生信息管理模块
- 添加学生信息:输入学生的学号、姓名、班级、学院,将信息添加到学生信息数组中。
- 删除学生信息:根据学号查找学生信息,并删除该学生信息。
- 修改学生信息:根据学号查找学生信息,并修改其姓名、班级、学院等信息。
- 查看单个学生信息:根据学号查找学生信息,并显示其详细信息。
- 查看所有学生信息:显示所有学生的学号、姓名、班级、学院信息。
学生成绩管理模块
- 添加学生成绩:输入学生的学号、姓名以及各科目成绩,计算总分并将成绩添加到成绩数组中。
- 删除学生成绩:根据学号查找学生成绩,并删除该学生成绩。
- 修改学生成绩:根据学号查找学生成绩,并修改其各科目成绩,重新计算总分。
- 查看单个学生成绩:根据学号查找学生成绩,并显示其详细成绩信息。
- 查看所有学生成绩:显示所有学生的学号、姓名、总分信息。
- 查看单个科目平均分:计算并显示计算机专业课、数学、政治、英语等科目的平均分。
- 查看总分排行:按照总分从高到低或从低到高显示学生的排名及相关信息。
结构体设计
学生信息结构体
typedef struct {
char id[20]; // 学号
char name[50]; // 姓名
char class[20]; // 班级
char college[50]; // 学院
} Student;
学生成绩结构体
typedef struct {
char id[20]; // 学号
char name[50]; // 姓名
float computer; // 计算机专业课成绩
float math; // 数学成绩
float politics; // 政治成绩
float english; // 英语成绩
float total; // 总分
} Score;
函数设计
学生信息管理函数
void addStudent()
作用:向学生信息数组中添加新的学生信息。
功能:提示用户输入学生的学号、姓名、班级、学院,并将新学生信息添加到学生信息数组中。
注意:检查学生信息数组是否已满,若已满则提示无法添加。
void deleteStudent()
作用:从学生信息数组中删除指定学生的信息。
功能:提示用户输入要删除的学生的学号,根据学号在学生信息数组中查找并删除对应的学生信息。
输入:要删除的学生学号。
注意:如果找不到对应学号的学生信息,则提示未找到。
void modifyStudent()
作用:修改学生信息数组中指定学生的信息。
功能:提示用户输入要修改的学生的学号,根据学号在学生信息数组中查找对应的学生信息,并允许用户修改其姓名、班级、学院等信息。
输入:要修改的学生学号及新的信息。
注意:如果找不到对应学号的学生信息,则提示未找到。
void viewSingleStudent()
作用:查看学生信息数组中指定学生的详细信息。
功能:提示用户输入要查看的学生的学号,根据学号在学生信息数组中查找对应的学生信息,并显示其学号、姓名、班级、学院等详细信息。
输入:要查看的学生学号。
输出:指定学生的详细信息。
注意:如果找不到对应学号的学生信息,则提示未找到。
void viewAllStudents()
作用:查看所有学生的信息。
功能:遍历学生信息数组,显示所有学生的学号、姓名、班级、学院等信息。
输出:所有学生的信息。
注意:如果学生信息为空,则提示学生信息为空。
学生成绩管理函数
void addScore()
作用:向成绩数组中添加新的学生成绩。
功能:提示用户输入学生的学号、姓名以及各科目成绩,计算总分并将新的成绩添加到成绩数组中。
输入:学生的学号、姓名以及各科目成绩。
注意:检查成绩数组是否已满,若已满则提示无法添加。
void deleteScore()
作用:从成绩数组中删除指定学生的成绩信息。
功能:提示用户输入要删除成绩的学生学号,根据学号在成绩数组中查找并删除对应的学生成绩。
输入:要删除成绩的学生学号。
注意:如果找不到对应学号的学生成绩信息,则提示未找到。
void modifyScore()
作用:修改成绩数组中指定学生的成绩信息。
功能:提示用户输入要修改成绩的学生学号,根据学号在成绩数组中查找对应的学生成绩,并允许用户修改各科目成绩。
输入:要修改成绩的学生学号及新的成绩信息。
注意:如果找不到对应学号的学生成绩信息,则提示未找到。
void viewSingleScore()
作用:查看成绩数组中指定学生的成绩信息。
功能:提示用户输入要查看成绩的学生学号,根据学号在成绩数组中查找对应的学生成绩,并显示其各科目成绩及总分。
输入:要查看成绩的学生学号。
输出:指定学生的成绩信息。
注意:如果找不到对应学号的学生成绩信息,则提示未找到。
void viewAllScores()
作用:查看所有学生的成绩信息。
功能:遍历成绩数组,显示所有学生的学号、姓名及总分信息。
输出:所有学生的成绩信息。
注意:如果成绩信息为空,则提示成绩信息为空。
void viewSubjectAverage()
作用:计算并显示各科目的平均分。
功能:遍历成绩数组,计算计算机专业课、数学、政治、英语等科目的平均分,并显示出来。
输出:各科目的平均分。
注意:如果成绩信息为空,则提示成绩信息为空。
void viewTotalRanking()
作用:显示学生总分排行。
功能:将成绩数组按照总分进行排序,并根据用户选择的顺序(升序或降序)显示学生的排名及相关信息。
输入:排序顺序的选择。
输出:学生的总分排行。
注意:如果成绩信息为空,则提示成绩信息为空。
文件操作函数
void saveStudentsToFile()
作用:将学生信息保存到文件中。
功能:将学生信息数组中的学生信息按照指定格式保存到文件中。
void saveScores