C语言实现 mdash 学生成绩管理系统(Linux下运行)

一、学生成绩管理系统概述

学生成绩管理系统是指一种方便管理学生课程成绩、教师信息和课程信息的系统。它可以实现对学生成绩各项指标的记录和分析,便于教学管理工作。在高校中,学生成绩管理系统是一个必要的工具,可以使教务工作更加高效和方便。

二、系统设计

系统设计是成功实现一个系统的关键因素。本系统采用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/

点赞(96) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部