肌理-
唐
山
学
院
数据结构
课
程
设
计
题
目
学生成绩管理系统设计与实现
系
(
部
)
计算机科学与技术系
班
级
11
计本
1
班
姓
名
尹云
学
号
4112006102
指导教师
2013
年
1
月
4
日至
1
月
11
日
共
2
周
张小松
2013
年
1
月
11
日
数据结构
课程设计任务书
一、设计题目、内容及要求
1
、设计题目:学生成绩管理系统设计与实现。
2
、设计内容及要求:
(
1
)查询功能:可以 通过姓名、学号进行查询学生成绩,同时可以查询有不及格科目
的学生。
(
2
)录入功能:能够录入学生成绩(包括:学号、姓名、至少
3
门课程的成绩、总分、
平均分等信息)
。总分和平均分自动计算。
(
3
)排序功能:能够对学生成绩进行排序并可以浏览排序结果。
(
4
)统计功能:能够统计出优秀、良好、中等、及格和不及格这五个等级的人数。
二、要求的设计成果(课程设计说明书、设计实物、图纸等)
1
、用
C
语言进行程序设计,实现系统的功能。注重算法效率,代码要有适当的注释;
2
、撰写课程设计说明书一份,不少于
2000
字。课程设计说明书应包括封面、任务书 、
成绩评定表、正文(设计思路、设计步骤等)
、参考文献(资料)
、附录(程序代码 )等
内容。
三、进程安排
1
月
4
日:进行需求分析,确定系统的主要功能和算法思路;
1
月
5
日
~
1
月
6
日:进行详细设计 ,确定各模块的算法思路;
1
月
7
日
~
1
月
8
日:进行编码实现;
1
月
9
日
~
1
月
10
日:进行测试调试,完善设计;撰写设计说明书,准备答辩;
1
月
11
日:答辩。
四、主要参考资料
1.
严蔚敏,吴伟民
.< br>数据结构
.
清华大学出版社,
2007.
2.
苏仕华
.
数据结构课程设计
.
机械工业出版社,
2010.
3.
滕国文
.
数据结构课程设计
.
清华大学出版社,
2010.
指导教师(签名)
:
教研室主任(签名)
:
课程设计成绩评定表
出勤
情况
成
绩
评
定
提问
(答辩)
问题
情况
出勤天数
缺勤天数
出勤情况及设计过程表现(
20
分)
课设答辩(
20
分)
设计成果(
60
分)
总成绩(
100
分)
综
合
评
定
指导教师签名:
年
月
日
1
引言
学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者
和管理者来说都 至关重要。
为了提高学校管理员和学生管理和查询学生成绩的效率,
需
要建立一个学生 成绩管理系统,使我们可以在众多的学生信息中查找自己的成绩信息,
面对学院大量的学生信息,
学生只要登录本系统就可以查找到自己的成绩信息,
而管理
员也方便去管理每学期的学生的成 绩信息。
学生成绩管理系统,
使学生成绩信息管理工
作规范化、系统化、程序化,避免 学生管理的随意性,提高信息处理的速度和准确性,
能够及时、
准确、
有效的查询和修 改学生信息。学生成绩管理系统有效地管理学生成绩
相关信息,包括学生成绩的查询、录入、排序、统计 等功能。该系统为用户提供了一个
简单的人机界面,用户可以根据提示信息进行各种操作。
本次设计使用的编程语言是
C
语言。
2
问题分析
根据设计题目要求分析如下:
(
1
)本题目主要涉及顺序表的基本操作。
(
2
)在学生成绩管理系统中,
录入学生信息时通常按录入顺序的先后,
因此选用线性表。
在查找学生信息时,是在大量无序的学生信息中,通过比较所给关键字与对应信息项,
找到所要查找的学 生信息。修改学生信息是在查找的基础上完成的,首先要找到需要修
改的信息项,用输入的新数据覆盖原 来的老数据,达到修改的目的。删除学生信息也是
在查找的基础上完成的,先找到要删除的学生信息,从 要删除的那个信息项开始,用后
一个信息项覆盖它,一直循环到最后,即可完成删除。在查询不及格的学 生信息时,只
要把符合不及格的学生信息输出即可做到查询。在统计不同等级的学生人数时,是想要根据划分的不同等级,将所有学生信息分成符合条件的几个部分。
学生信息的存储结构:
struct STU/*
定义学生信息结构体
*/
{
int num;/*
学号
*/
char name[20];/*
姓名
*/
double Data;/*
数据结构成绩
*/
double Math;/*
高等数学成绩
*/
double English;/*
大学英语成绩
*/
double sum;/*
总成绩
*/
double ave;/*
平均成绩
*/
}STU,stu[100000]
3
总体设计
3.1
模块结构图
学生成绩管理系统
输
入
查
找
修
改
删
除
查
询
排
序
统
计
退
出
查找:按学号或姓名查找学生成绩,输入关键字,查找指定信息记录并输出。
修改:通过调用查找函数,找到要修改的学生信息,输入新数据覆盖原先的数据。
删除:通过调用查找函数,找到要删除的学生信息,用后一项覆盖前一项。
查询:查询各科成绩不及格的学生成绩,输出其学生信息。
排序:按总成绩排序,并输出排序后学生信息。
统计:分别统计各个等级的学生人数,并输出各个等级的学生人数。
退出:结束程序运行。
图
3.1
系统模块结构图
输入:学生信息的录入。
3.2
总体流程图
系统启动密码输入
x=?
N
x=123456?
Y
进入系统功能表
c=1?
Y
N
录入学生信息
Y
c=2?
N
查找学生信息
c=3?
Y
N
修改学生信息
Y
c=4?
N
删除学生信息
Y
c=5?
N
查询不及格信息
Y
c=6?
N
总成绩排序
Y
c=7?
N
N
开始
Y
c=0
结束
图
3.2
系统流程图结构图
统计学生信息
密
码
错
误
系统重启
4
详细设计
4.1
录入模块
该模块实现的功能是从键盘录入学生信息。
4.1.1
设计思路
void Getinformation()
此函数用来录入学生信息。此函数用
while
循环达到循环输入
的目的,只要输入的学号有效(在所有学号的范围内且不 等于
-1
),就可以实现学生信
息的不断录入,用
-1
做结束录入的 标志。
4.1.2
流程图
开始
1
输入学生信息
1
是否继续?继续按
1
,结束按
-1
-1
结束
结束
图
4.1
录入模块程序流程图
4.2
查找模块
该模块实现的功能是根据所给的学生信息(关键字)
,查找该学生的全部信息并输出。
4.2.1
设计思路
在
void
Seekinform ation()
函数中,用
while
循环可以实现循环输入查找信息,用
i f
语句
可以实现按学号和姓名两种查找方式。用
if
语句确定查找方式,通过 调用
void Seeknum
()或
void Seekname
()函数实现查找。在
void Seeknum
()(
void Seekname
())
函数中,用
for
循环逐次查找,通过用
if
语句比较学号(姓名)
,返回符合条件的 标号,
并调用
Printinformation()
函数输出该生的所有信息。判断 是否继续查找,继续查找则
进入以上环境,否则退出查找。
4.2.2
流程图
开始
2
2
按学号查找按
1
按姓名查找按
2
1
输出相应姓名
输出相应学号
所对应的信息
所对应的信息
1
是否继续?继续按
1
;结束按
10
10
结束
图
4.2
查找模块程序流程图
4.3
修改模块
该模块的实现的功能是根据需要修改学生信息。
4.3.1
设计思路
在
Modifinformation()< br>函数中,此函数用于修改学生信息。基本原理就是用输入的新数
据覆盖原来的老数据,达到修改的 目的。本函数还调用了查找模块的函数,使修改前能
按学号或姓名找到要修改的学生信息。
4.3.2
流程图
开始
3
1
是否继续?继续按
1
,结束按
10
10
结束
输入要修改后的信息
修改学生信息
图
4.3
修改学生信息模块程序流程图
4.4
删除模块
该模块实现的功能是删除指定的学生信息
4.4.1
设计思路
< br>Deleteformation()
此函数用于删除学生信息。同样调用了查找模块的函数。删 除模块的
关键语句是
for(j=x;j
从要删除的那一个信息项开始,
用后
一个信息项覆盖它,一直循环到最后, 相当于把开始的第一个数据删除了。
4.4.2
流程图
开始
4
删除的学生信息
2
是否删除?是按
1
,否按
2
1
1
是否继续?继续按
1
,结束按
10
删除成功
10
结束
图
4.4
删除学生信息模块程序流程图
4.5
查询模块
该模块实现的功能是查询不及格(某科成绩低于
60
分)的学生信息并输出。
4.5.1
设计思路
void
Showfail()
此函数用于显示不及格学生的信息。能够按要求输出不及格学生的学
号、姓名、各科成绩、平均成绩、总 成绩。首先在
for
循环中用
if
语句搜索该学生是
否有成绩不及格 ,当三门课中至少有一门不及格时就会输出该学生的相关信息。
4.5.2
流程图
开始
5
判断是否有不及格的学生信息
科目
N
Y
输出该生的学生信息
检索完毕?
N
Y
结束
图
4.5
查询不及格的学生信息模块程序流程图
4.6
排序模块
该模块实现的功能是按学生总成绩对学生信息排序并输出排序后的结果。
4.6.1
设计思路
Lineup
函数用来对学生信息按总成绩 进行排序。
Lineup
函数在排序时用的是冒泡排序
法,冒泡排序是经过
n -1
趟子排序完成的,第
i
趟子排序从第
1
个数至第
n+1
个数,若
第
i
个数比后一个数大(则升序,小则降序。本程序一律采用降序) 则交换两数。
4.6.2
流程图
开始
6
m=1
N
m
Y
n=m+1
输出已排
序的信息
N
n
Y
m++
结束
stu[m].sum
Y
互换
stu[m].sum
与
stu[n].sum
N
n++
图
4.6
冒泡排序的模块程序流程图
4.7
统计模块
该模块的实现的功能是统计各个等级的学生人数并输出各等级的人数。
4.7.1
设计思路
void Count()
函数统计各个等级 (优秀、良好、中等、及格、不及格)的学生人数。函
数用
switch
语句划分出不 同等级,用
for
循环依次判断每个学生所处的等级,
并记录每
个等级的人数 。
肌理-
肌理-
肌理-
肌理-
肌理-
肌理-
肌理-
肌理-
本文更新与2021-01-22 03:51,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/547954.html