20130903C语言编程实践课

成绩管理系统的开发与设计

一、需求分析

1.功能需求 

学生成绩查询系统对学校加强学生成绩管理有着极其重要的作用。学生的数量日益庞大,传统的手工成绩管理不仅工作量大,而且容易出现问题。学生成绩管理系统主要提供学生资料的录入,学生资料的输出,学生单科成绩最大值以及该学生的名字,学生的排名等. 允许管理员密码登录系统,系统所有功能实现的前提就是必须先登录系统。如果登陆者的用户名或密码错误,则该功能不能正常的完成。

2.非功能需求

界面要求大方美观,简单明了,友好,能够使用户容易上手,容错性强、效率高,从而节约学生成绩管理成本。加入清空函数,用来清空输入缓存,以便不影响后面输入的东西

二、系统设计

1.设计思路

本操作系统共7个菜单栏:(1)成绩录入 2)成绩输出(3)英语成绩最大值及人名(4)数学成绩最大值及人名(5C语言成绩最大值及人名(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.测试结果

经过测试本项目的功能和性能符合要求。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值