20130903C语言编程实践课
来源:互联网 发布:二进制转十六进制算法 编辑:程序博客网 时间:2024/05/16 16:58
成绩管理系统的开发与设计
一、需求分析
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.测试结果
经过测试本项目的功能和性能符合要求。
- 20130903C语言编程实践课
- 20130830C语言编程实践课
- 20130902C语言编程实践课
- 2013-08-19C语言编程实践课第一天
- 2013-08-21C语言编程实践课第三天
- 20130822C语言编程实践课第四天
- 20130823C语言编程实践课第五天
- 20130826C语言编程实践课第六天
- 20130827C语言编程实践课第七天
- 20130828C语言编程实践课第八天
- 20130829C语言编程实践课第九天
- 五个好的C语言编程实践
- 五个好的C语言编程实践
- C语言表驱动法编程实践
- OOC 面向对象C语言编程实践
- OOC 面向对象 C 语言编程实践
- C 语言编程练习,实践,解决方案:指针
- 高级软件工程C语言编程实践lab2
- Delphi for iOS开发指南(序):Delphi iOS应用程序开发
- 《Zend Framework技术大全》视频目录表
- Activity生命周期、各个方法的调用
- Delphi for iOS开发指南(1):在Mac上配置你的开发环境
- Java程序设计
- 20130903C语言编程实践课
- 记录一下,给自己一个好的开始!
- lucene4.5源码分析系列:lucene默认索引的文件格式-总述
- 导入Excel数据到Oracle数据库的脚本
- java回调摘录
- STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)
- Delphi for iOS开发指南(2):在Windows PC上配置你的开发环境
- 程序员技术练级攻略---陈皓
- 我在北京找工作(三):java实现算法<2> 直接插入排序+不可变类