一、学生成绩管理系统概述
学生成绩管理系统是指一种方便管理学生课程成绩、教师信息和课程信息的系统。它可以实现对学生成绩各项指标的记录和分析,便于教学管理工作。在高校中,学生成绩管理系统是一个必要的工具,可以使教务工作更加高效和方便。
二、系统设计
系统设计是成功实现一个系统的关键因素。本系统采用C语言实现,主要包含以下模块:
1. 学生成绩录入:学生成绩的录入是该系统的一个重要功能。该模块可以实现对学生成绩的分批次录入和修改。
2. 学生信息管理:该模块可以实现对学生信息的录入、修改以及查询,包括学生姓名、性别、年龄等信息。
3. 课程信息管理:该模块可以实现课程信息的录入、修改以及查询,包括课程名称、授课教师、学分等信息。
4. 教师信息管理:该模块可以实现教师信息的录入、修改以及查询,包括教师姓名、性别、年龄等信息。
5. 学生成绩查询:该模块可以实现对学生成绩的查询,包括按学生姓名、课程名称等多种查询方式。
6. 成绩排名查询:该模块可以实现对学生成绩的排名查询,包括按学生总成绩、平均成绩、优秀成绩等多种排名方式。
7. 数据备份与恢复:该模块可以实现对系统数据的备份、恢复和清空等功能,保证数据的安全性和稳定性。
三、系统实现
本系统采用C语言实现,主要涉及文件存取、指针操作、链表等知识。以下是系统实现的主要步骤:
1. 定义结构体类型
在本系统中,需要定义学生、课程和教师的信息结构体类型,以便于存储和操作这些信息。具体如下:
```
//学生信息结构体
typedef struct student{
char name[20]; //姓名
char sex[5]; //性别
int age; //年龄
char id[20]; //学号
float chinese; //语文成绩
float math; //数学成绩
float english; //英语成绩
float total; //总分
float average; //平均分
int rank; //排名
struct student* next;
}Student;
//课程信息结构体
typedef struct course{
char name[20]; //课程名称
char teacher[20]; //授课教师
float credit; //学分
struct course *next;
}Course;
//教师信息结构体
typedef struct teacher{
char name[20]; //姓名
char sex[5]; //性别
int age; //年龄
char id[20]; //工号
char course[20]; //教授课程
struct teacher* next;
}Teacher;
```
2. 主菜单设计
主菜单是系统操作的入口,它包括以下选项:
```
学生信息管理
课程信息管理
教师信息管理
成绩查询
成绩排名查询
数据备份与恢复
退 出
```
用户可以通过键入菜单选项号实现相应功能。具体实现代码如下:
```
int main(){
int choice;
do{
printf("************************************************\n");
printf("* *\n");
printf("* 欢迎使用学生成绩管理系统 *\n");
printf("* *\n");
printf("************************************************\n");
printf("* *\n");
printf("* 1.学生信息管理 *\n");
printf("* *\n");
printf("* 2.课程信息管理 *\n");
printf("* *\n");
printf("* 3.教师信息管理 *\n");
printf("* *\n");
printf("* 4.成绩查询 *\n");
printf("* *\n");
printf("* 5.成绩排名查询 *\n");
printf("* *\n");
printf("* 6.数据备份与恢复 *\n");
printf("* *\n");
printf("* 0.退出 *\n");
printf("* *\n");
printf("************************************************\n");
printf("请输入您的选择: ");
scanf("%d", &choice);
switch(choice){
case 1:stu_menu();break;
case 2:course_menu();break;
case 3:teacher_menu();break;
case 4:query_menu();break;
case 5:ranking_menu();break;
case 6:backup_menu();break;
case 0:break;
default: printf("输入有误,请重新输入!\n");
}
}while(choice != 0);
printf("感谢使用!\n");
return 0;
}
```
3. 学生信息管理模块设计
学生信息管理模块包括学生信息的录入、修改和查询功能。学生信息是学生成绩管理系统的重要组成部分,具体代码实现如下:
(1)学生信息录入功能
```
void add_stu(){
Student* pnew = (Student*)malloc(sizeof(Student));
printf("请输入学生姓名: ");
scanf("%s", pnew->name);
printf("请输入学生性别: ");
scanf("%s", pnew->sex);
printf("请输入学生年龄: ");
scanf("%d", &pnew->age);
printf("请输入学生学号: ");
scanf("%s", pnew->id);
printf("请输入语文成绩: ");
scanf("%f", &pnew->chinese);
printf("请输入数学成绩: ");
scanf("%f", &pnew->math);
printf("请输入英语成绩: ");
scanf("%f", &pnew->english);
pnew->total = pnew->chinese + pnew->math + pnew->english;
pnew->average = pnew->total / 3;
pnew->rank = 0;
pnew->next = NULL;
if(stu_head == NULL){
stu_head = pnew;
}
else{
Student* p = stu_head;
while(p->next != NULL){
p = p->next;
}
p->next = pnew;
}
printf("添加成功!\n");
}
```
(2)学生信息修改功能
```
void modify_stu(){
char id[20];
printf("请输入要修改的学生学号: ");
scanf("%s", id);
Student* p = stu_head;
while(p != NULL){
if(strcmp(p->id, id) == 0){
printf("该生原信息:\n");
printf("%s\t%s\t标准分:%d\n", p->name, p->id, p->rank);
printf("请输入修改后的信息:\n");
printf("请输入学生姓名: ");
scanf("%s", p->name);
printf("请输入学生性别: ");
scanf("%s", p->sex);
printf("请输入学生年龄: ");
scanf("%d", &p->age);
printf("请输入语文成绩: ");
scanf("%f", &p->chinese);
printf("请输入数学成绩: ");
scanf("%f", &p->math);
printf("请输入英语成绩: ");
scanf("%f", &p->english);
p->total = p->chinese + p->math + p->english;
p->average = p->total / 3;
printf("修改成功!\n");
return;
}
p = p->next;
}
printf("该生不存在!\n");
}
```
(3)学生信息查询功能
```
void query_stu(){
int choice;
printf("请选择查询方式:\n");
printf("1.按姓名查询\n");
printf("2.按学号查询\n");
scanf("%d", &choice);
if(choice == 1){
char name[20];
printf("请输入要查询的学生姓名:");
scanf("%s", name);
Student* p = stu_head;
while(p != NULL){
if(strcmp(p->name, name) == 0){
printf("姓名:%s\t学号:%s\t", p->name, p->id);
printf("语文:%5.1f\t数学:%5.1f\t英语:%5.1f\t", p->chinese, p->math, p->english);
printf("总分:%5.1f\t平均分:%5.1f\t", p->total, p->average);
printf("排名:%d\n", p->rank);
return;
}
p = p->next;
}
printf("该生不存在!\n");
}
else if(choice == 2){
char id[20];
printf("请输入要查询的学生学号:");
scanf("%s", id);
Student* p = stu_head;
while(p != NULL){
if(strcmp(p->id, id) == 0){
printf("姓名:%s\t学号:%s\t", p->name, p->id);
printf("语文:%5.1f\t数学:%5.1f\t英语:%5.1f\t", p->chinese, p->math, p->english);
printf("总分:%5.1f\t平均分:%5.1f\t", p->total, p->average);
printf("排名:%d\n", p->rank);
return;
}
p = p->next;
}
printf("该生不存在!\n");
}
else{
printf("输入有误!\n");
}
}
```
4. 课程信息管理模块设计
课程信息管理模块包括课程信息的录入、修改和查询功能。课程信息是学生成绩管理系统的重要组成部分,具体代码实现如下:
(1)课程信息录入功能
```
void add_course(){
Course* pnew = (Course*)malloc(sizeof(Course));
printf("请输入课程名称: ");
scanf("%s", pnew->name);
printf("请输入授课教师: ");
scanf("%s", pnew->teacher);
printf("请输入学分: ");
scanf("%f", &pnew->credit);
pnew->next = NULL;
if(course_head == NULL){
course_head = pnew;
}
else{
Course* p = course_head;
while(p->next != NULL){
p = p->next;
}
p->next = pnew;
}
printf("添加成功!\n");
}
```
(2)课程信息修改功能
```
void modify_course(){
char name[20];
printf("请输入要修改的课程名称: ");
scanf("%s", name);
Course* p = course_head;
while(p != NULL){
if(strcmp(p->name, name) == 0){
printf("该课程原信息:\n");
printf("课程名称:%s\t授课教师:%s\t学分:%5.1f\n", p->name, p->teacher, p->credit);
printf("请输入修改后的信息:\n");
printf("请输入课程名称: ");
scanf("%s", p->name);
printf("请输入授课教师: ");
scanf("%s", p->teacher);
printf("请输入学分: ");
scanf("%f", &p->credit);
printf("修改成功!\n");
return;
}
p = p->next;
}
printf("该课程不存在!\n");
}
```
(3)课程信息查询功能
```
void query_course(){
char name[20];
printf("请输入要查询的课程名称:");
scanf("%s", name);
Course* p = course_head;
while(p != NULL){
if(strcmp(p->name, name) == 0){
printf("课程名称:%s\t授课教师:%s\t学分:%5.1f\n", p->name, p->teacher, p->credit);
return;
}
p = p->next;
}
printf("该课程不存在!\n");
}
```
5. 教师信息管理模块设计
教师信息管理模块包括教师信息的录入、修改和查询功能。教师信息是学生成绩管理系统的重要组成部分,具体代码实现如下:
(1)教师信息录入功能
```
void add_teacher(){
Teacher* pnew = (Teacher*)malloc(sizeof(Teacher));
printf("请输入教师姓名: ");
scanf("%s", pnew->name);
printf("请输入教师性别: ");
scanf("%s", pnew->sex);
printf("请输入教师年龄: ");
scanf("%d", &pnew->age);
printf("请输入教师工号: ");
scanf("%s", pnew->id);
printf("请输入教授课程名称: ");
scanf("%s", pnew->course);
pnew->next = NULL;
if(teacher_head == NULL){
teacher_head = pnew;
}
else{
Teacher* p = teacher_head;
while(p->next != NULL){
p = p->next;
}
p->next = pnew;
}
printf("添加成功!\n");
}
```
(2)教师信息修改功能
```
void modify_teacher(){
char id[20];
printf("请输入要修改的教师工号: ");
scanf("%s", id);
Teacher* p = teacher_head;
while(p != NULL){
if(strcmp(p->id, id) == 0){
printf("该教师原信息:\n");
printf("姓名:%s\t工号:%s\t教授课程:%s\n", p->name, p->id, p->course);
printf("请输入修改后的信息:\n");
printf("请输入教师姓名: ");
scanf("%s", p->name);
printf("请输入教师性别: ");
scanf("%s", p->sex);
printf("请输入教师年龄: ");
scanf("%d", &p->age);
printf("请输入教授课程名称: ");
scanf("%s", p->course);
printf("修改成功!\n");
return;
}
p = p->next;
}
printf("该教师不存在!\n");
}
```
(3)教师信息查询功能
```
void query_teacher(){
char id[20];
printf("请输入要查询的教师工号:");
scanf("%s", id);
Teacher* p = teacher_head;
while(p != NULL){
if(strcmp(p->id, id) == 0){
printf("姓名:%s\t工号:%s\t教授课程:%s\n", p->name, p->id, p->course);
return;
}
p = p->next;
}
printf("该教师不存在!\n");
}
```
6. 学生成绩查询模块设计
学生成绩查询模块是系统的核心功能之一,主要实现学生成绩信息的查询与显示。具体代码实现如下:
```
void query_score(){
int choice;
printf("请选择查询方式:\n");
printf("1.按姓名查询\n");
printf("2.按学号查询\n");
scanf("%d", &choice);
if(choice == 1){
char name[20];
printf("请输入要查询的学生姓名:");
scanf("%s", name);
Student* p = stu_head;
while(p != NULL){
if(strcmp(p->name, name) == 0){
printf("姓名:%s\t学号:%s\t", p->name, p->id);
printf("语文:%5.1f\t数学:%5.1f\t英语:%5.1f\t", p->chinese, p->math, p->english);
printf("总分:%5.1f\t平均分:%5.1f\t", p->total, p->average);
printf("排名:%d\n", p->rank 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复