C语言版-数据结构-期末课程设计-大作业(学生成绩管理系统)附源码+实验文档
由于设计到的代码太多,不一一展示,需要源代码
1、私我
2、点击作者主页简介查看联系方式
需要咨询、源码、定做、QQ扫码加:
https://docs.qq.com/doc/p/71239d69a76f56cf1521717ae6b22c27cf876f10
点击此处链接、并扫描加好友
需要咨询、源码、定做课设(C语言数据结构、python)
加QQ:3125841747
1.1 学生成绩管理系统

图2.1 设计结构图
2.1设计内容及实现
首先学生成绩管理要有输入输出和学生信息,学生信息又有姓名、班级、学号;学生成绩查询;插入学生成绩数据;修改学生成绩数据;删除学生成绩数据;按成绩或者学号排序等。
于是根据需求完成学生信息管理系统顺序表的建立、查询、插入、删除,以及修改元素、排序;然后我就把整个系统分成不同的模块,每个模块完成一个特定的子功能,最后把这些模块结合起来组成一个整体,来实现各个功能。
本学生成绩管理系统共8个菜单栏:1.新建输入学生的个人信息; 2.插入学生;3学生个人信息查询;4.删除学生信息;5.查询所有学生成绩信息;6. 按学生总分成绩排序;7. 对学生按学号排序;8.更改学生科目成绩;操作者可以根据不同需求选择不同的操作。
(1) 主函数:通过mian函数user[] = "admin\0"; password[] = "root\0";来存储自定义的账号密码,来进行登录系统,如果登录成功,则进入系统,通过调用调用add_student函数、check_oneStudent函数、stu_out函数、sum_grade函数、insert_stu函数、调用del_stu函数、stu_num函数、update_grade函数从而实现各种功能。
(2) menu函数:只作为一个选项菜单函数,打印输出提示。
(3) add_student函数:通过输入录入学生的个数,从而录入学生的姓名、学号、班级、各科成绩,求出总分,循环几次学生信息的录入。
(4) insert_stu函数:首先要做个判断,因为定义了一个全局变量来控制系统里存放多少个学生,如果录入的学生超过系统的最大容量,就报错;否则就录入学生的名字、学号、班级、各科成绩,在本函数中做了一个学号是否重复的判断,因为每个学生的学号都是唯一的。如果录入的学号在系统中已经存在,就报错。否则插入成功。
(5) stu_check函数:用于实现学生信息的查询,学生只需要输入自己的学号,就可以查到对应的信息,本函数也做了判断,如果输入的学生存在于系统就输出,否则查不到该学生信息。
(6) del_stu函数:用于删除学生本人,通过输入学生的学号,去系统中一一遍历寻找,如果找到,就删除;如果遍历后找不到指定输入的学号,就输出没有该学生。
(7) stu_out函数:用于查询所有学生信息并输出,操作者通过输入,如果起初的系统里就没学生,就输出没学生信息;否则就一一输出所有的学生信息。
(8) stu_num函数:用于对学生学号从小到大排序输出;通过遍历每个学生的学号,按冒泡排序的算法,将所有的学生学号,从小到大输出。
(9) sum_grade函数:用于对学生的所有科目的总成绩一一遍历,也是用冒泡排序的算法实现从高到底的总分排序。
(10) update_grade函数:用于实现对系统中已经存在的各科成绩,进行修改,将需要修改的某科成绩分数与系统中已经存在的数据进行查找并修改保存。如果更改的科目不对,就不报错,否则更改成功。
(11)定义结构体studentInformation,用来存储学生的名字、班级、学号、学生的数据库成绩、高数成绩、C语言成绩、学生总分。

程序问题加Q:3125841747
4、数据结构说明和模块算法说明
4.1结构体顺序表的定义
4.2顺序表的构造
4.3顺序表的插入
4.4顺序表的按值查找
4.5顺序表的删除数据
4.6顺序表的按值查找
4.7顺序表的排序算法---冒泡排序
5、使用说明书
5.1登录系统
输入用户名:admin 密码:root,来进行登录系统,因为程序中已存放中该系统的用户名和密码。

图5.1-1 登录系统的输入格式操作界面

5.2新建输入学生信息的输入格式说明
操作者键盘输入1时,会弹出让操作者输入几个学生,操作者值需要输入一个确定的数即可,但是数据不要大于100,因为设计的表长最大值储存值为100,超过会提示报错。
特别说明:本系统中,所有的学生的名字定义的是字符数组类型char student_name[20],故名字长度不能超过20个;学生的班级不能超过10个字,因为班级定义的是字符数组类型,且最大值为10;输入的学号不能超过int的取值范围,因为定义的学号为int类型;学生的各科成绩输入格式不能超过float的取值范围,可以输入整数。输入示例如下图所示:

5.2-1新建学生的输入示例操作界面
5.3插入学生输入个数说明
操作者输入2时,依次输入要插入的学生信息,注意:插入的学生学号不能跟系统中已存在的学号一样,学号每个人都是唯一的,否则插入不成功!输入示例如下图所示:

5.3-1插入学生的输入示例操作界面
5.4学生个人信息查询输入格式说明
当操作者输入3时,会弹出要输入要查询的学号,这是就按操作者的需求进行输入学号,如果要查询的学号在该系统中,就输出该指定的学生,否则查不到该学生信息。输入示例如下图所示:

图5.4-1学生个人信息查询输入示例操作界面
5.5删除学生信息输入格式说明
当操作者输入4时,系统会弹出要输入删除的学号,这时,操作者之前输入系统已录入的学号,则会删除成功,否则系统输出没有该学生。输入示例如下图所示:

5.5-1删除学生信息的输入格式示例操作界面
5.6查询所有学生输入格式说明
当操作者要查询学生的信息时,值需要输入5即可;系统就会输出所有的学生信息,比如班级、名字、学号、各科分数。输入示例如下图所示:

5.6-1删除学生信息的输入格式示例操作界面
当操作者输入6时,系统会输出所有学生从高到低的总分排序,输入示例如下图所示:

5.7-1按总分排序输入格式说明操作界面
5.8按学号排序输入格式说明
当操作者输入7时,系统会输出所有学生学号从小到大的排序,输入示例如下图所示:

5.8-1按学号排序输入格式说明操作界面
5.9 更改学生科目成绩输入格式说明
当操作者输入8时,请按照系统的提示依次输入,首先输入要更改的学号,再输入要修改的科目(科目只能输入数据库、高数、C语言),更改完后,系统会输出“更改成功!”的提示,否则系统提示输入错误。

5.9-1 正确更改学生的学科成绩格式说明操作界面

5.9-2 错误更改学生的学科成绩操作界面
5.10退出系统格式输入说明
当操作者输入0时,即可成功退出系统。

图5.10-1 成功退出系统界面
6.运行结果

图6.1 成功登录系统的操作界面
图6.2 成功录入学生信息的操作界面
图6.3 (左)学号不存在的查询或成功查询学生个人信息的操作界
图6.4 成功插入学生信息的操作界面
图6.5 成功查询所有学生信息的操作界面
图6.6 对所有学生按总成绩从高到低排序的操作界面
图6.7 对所有学生按学号从小到大排序的操作界面
图6.8 对学号为1904的学生更改高数成绩的操作成功界面
7.测试过程及结果分析
7.1测试数据:
测试对原有系统中已存在的成绩,进行更改,并查看总分是否也随着更改后的数据而改变:
图7.1-1对学号为1904的学生更改高数成绩之后,总分也更改成功的操作界面
在更改学生的科目分数后,总分也会随之更改,测试数据符合预期。
7.2 程序需改进的地方:
(1)当输入学生的学号前几位为0的时候,而存在系统中只有1,前面几位的0未存储到系统中。
图7.2-1
(2)本程序采用的是顺序表存储学生的数据,本质就是 "一次开辟,永久使用",即存储数据之前先开辟好足够的存储空间,空间一旦开辟后期无法改变大小,对于本程序而言,当插入的学生数值大于100的时候,就会报错,导入插入不了。代码+Q:3125841747


 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号