成绩管理系统的开发与设计
一、需求分析
1.功能需求
学生成绩查询系统对学校加强学生成绩管理有着极其重要的作用。学生的数量日益庞大,传统的手工成绩管理不仅工作量大,而且容易出现问题。学生成绩管理系统主要提供学生资料的录入,学生资料的输出,学生单科成绩最大值以及该学生的名字,学生的排名等. 允许管理员密码登录系统,系统所有功能实现的前提就是必须先登录系统。如果登陆者的用户名或密码错误,则该功能不能正常的完成。
2.非功能需求
界面要求大方美观,简单明了,友好,能够使用户容易上手,容错性强、效率高,从而节约学生成绩管理成本。加入清空函数,用来清空输入缓存,以便不影响后面输入的东西
二、系统设计
1.设计思路
本操作系统共7个菜单栏:(1)成绩录入 (2)成绩输出(3)英语成绩最大值及人名(4)数学成绩最大值及人名(5)C语言成绩最大值及人名(6)排名(7)结束。进入系统首先进行密码验证,只有当密码验证正确方可进入系统进行相关操作。为了系统的友好性,因此密码输入有三次机会。密码正确进入系统之后,便会显示学生成绩管理系统的菜单,然后根据相应的提示进行合理的操作。
2.结构设计
学生的相关信息定义由于类型的不同,因此定义为结构体。将结构体的类型进行宏定义,用简单的字符进行替换。声明所需要的各种小函数。
(1)main()主函数:
按照语法规则,首先定义使用到的常数、全局变量。然后用switch语句来进行多个小函数的选择执行。其中会有输入空格进行清屏,以便操作者观看操作内容。
(2)login()密码判断函数:
定义好所有变量之后,用while进行一个次数的循环判断。在这个循环里面进行密码的输入验证,倘若密码验证成功,则跳出执行下面的。密码错误再次进行验证,如果执行三次以后都失败,那就直接退出。
(3)displaymenu()成绩管理系统菜单选项函数:
把可以提供用户执行的功能,利用菜单显示出来,方便用户操作。
(4)inputscore(SN s[],int length)成绩录入函数:
在越界的情况下输入所需要被录入学生的信息。fflush(stdin); 用来清空输入缓存,以便不影响后面输入的东西.
(5)outputscore(SN s[], int length)成绩输出函数:
这是学生成绩输出函数,它所实现的功能就是将输入的学生成绩以及其他学生的相关信息,根据需求输出来。
(6)headscore():打印相关信息的函数:
将学号,姓名,英语成绩,数学成绩,语言成绩,总分,平均分这些关键字打印出来。方便用户进行查看。
(7)getMaxidEngScore(SN s[],int length)查找输出英语成绩最大值函数
定义max和i利用for循环得到英语成绩的最大值。
(8)getMaxidCScore(SN s[],int length) 查找输出C语言成绩最大值函数:
定义max和i利用for循环得到英语成绩的最大值。
(9)getMaxidMathScore(SN s[],int length) 查找输出数学成绩最大值函数:
定义max和i利用for循环得到英语成绩的最大值。
学生成绩管理系统C语言课程设计
三、系统实现
1.流程图
开始 |
定义一个类型为Student的结构体 |
将类型Student宏定义为SN |
声明一些小函数 |
Main函数 |
定义变量 |
判断密码 |
退出系统 |
显示菜单 |
Switch语句 Case 1-7 |
Case=1 =2 =3 =4 =5 =6 =7
成绩录入 |
成绩输出 |
英语成绩最大值及人 名 |
C语言成绩最大值及人 名 |
数学成绩最大值及人 名 |
排名 |
结束 |
学生成绩管理系统的整体流程是主函数main()通过调用inputscore(SN s[],int length)输入成绩函数,login()密码函数,displaymenu()显示菜单函数,outputscore(SN s[], int length)输出成绩函数声明,getMaxidEngScore(SN s[],int length)英语成绩最大值函数,getMaxidMathScore(SN s[],int length)数学成绩最大值函数,getMaxidCScore(SN s[],int length)C语言成绩最大值函数,sortScore(SN s[],int length)排名函以及headscore()来实现这个程序的运行。inputscore(SN s[],int length)输入成绩函数,利用一个for循环,循环输入所需要输入的学生各种信息。
四、系统测试
该部分主要编写测试计划,记录测试的过程和结果,并对测试结果进行分析总结,优化系统。
1.功能测试
| 测试功能 | 测试结果 |
用例1 | 测试密码 | 容错性还行,密码正确可进入系统 |
用例2 | 测试成绩录入 | 正常输入成绩 |
用例3 | 测试成绩输出 | 正常输出成绩 |
用例4 | 测试英语成绩最大值 | 正常输出英语成绩最大值 |
用例5 | 测试数学成绩最大值 | 正确输出数学成绩最大值 |
用例6 | 测试C语言成绩最大值 | 正确输出C语言成绩最大值 |
用例7 | 测试排名 | 正确输出排名 |
用例8 | 测试结束程序 | 正常退出成绩管理系统 |
|
|
|
2.性能测试
| 测试性能 | 测试结果 |
用例1 | 测试密码进入系统 | 1S以内。 |
用例2 | 成绩录入系统 | 1S以内 |
用例3 | 成绩输出系统 | 1S以内 |
用例4 | 计算英语最大值 | 1S以内 |
用例5 | 计算C语言最大值 | 1S以内 |
用例6 | 计算数学最大值 | 1S以内 |
用例7 | 测试排名 | 1S以内 |
|
|
|
|
|
|
3.测试结果
经过测试本项目的功能和性能符合要求。