华中科技大学电子科学与技术系

华中科技大学电子科学与技术系

ID:26945732

大小:105.50 KB

页数:25页

时间:2018-11-30

华中科技大学电子科学与技术系_第1页
华中科技大学电子科学与技术系_第2页
华中科技大学电子科学与技术系_第3页
华中科技大学电子科学与技术系_第4页
华中科技大学电子科学与技术系_第5页
资源描述:

《华中科技大学电子科学与技术系》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、华中科技大学电子科学与技术系课程设计报告名称:软件课程设计题目:学生成绩管理系统院系:电子科学与技术系班级:电子科学与技术0606日期:2008年6月30日目录一、程序功能说明……………………………………………页码1.主功能说明2.辅助功能说明3.程序模块说明4.界面说明二、总体算法设计……………………………………………页码1.数据存储文件结构2.源代码文件结构三、详细设计…………………………………………………页码函数说明及程序流程一、源程序清单……………………………………………….页码(由于源代码有1700

2、多行,不便在报告中全部列出,因此只列出了核心功能函数的源代码)五、测试结果……………………………………………….页码六、实践体会……………………………………………….页码一.程序功能说明本程序可以实现以下功能1.主功能:1.登录认证和密码修改2.自动读取和存储数据3.添加,删除,修改学生信息4.添加,删除,修改科目信息5.添加,删除,修改分数信息6.多重搜索(学生姓名,学号)7.按升序或降序显示所有学生任一科目的成绩(包括加权成绩)注:程序中可以存储同名的学生,但是不允许学号相同,因此做了部分处理应对这种情况

3、。当搜索某个同名学生时,倘若通过姓名搜索,则会显示所有该姓名的学生,然后再通过学号确定。2.辅助功能1.全自动生成数据。为便于程序测试,由系统自动随机生成所有数据(包括学生姓名,学科的相关信息,学生的各科成绩等).(本来想写一个程序自动测试脚本的,算法已经成熟了,然而精力有限未能完成)3.模块说明本程序分四个模块:数据库核心功能模块,数据库辅助功能模块,数据库界面功能模块,自动数据库生成模块。我认为数据库核心功能模块应负责最底层的文件操作,其他的模块都是基于核心模块的应用型模块。模块间相对独立,以核心功能模块

4、为主,自动数据库生成模块和数据库界面模块都需要频繁调用核心功能模块,如此便实现了功能间的剥离,便于日后的功能扩展和程序升级.保证核心功能的健壮性和容错能力相当重要。对此,我采取了一系列措施:对于每个传入的参数进行严格的检查,包括变量的范围,指针是否为空,变量是否合法等。如果发现异常,就设置错误myerr并终止程序。我的想法是核心功能模块不应该出现参数异常的问题,所有的不合法参数应该在上层模块如界面模块中就进行过滤了,在与用户交互的过程中,所有输入的非法参数都应该被过滤,以防非法参数传入底层模块,甚至写入数据库

5、,造成数据库异常。因此倘若如果经过种种措施后,仍然有非法参数传入核心模块,我就认为程序异常并发出终止程序的命令。而倘若是上层模块出现异常的话,可以返回false标志,而不致于立即终止程序。另外为了更方便地分析程序中的功能异常情况,我又采取了一些措施,包括将二进制数据库文件重写入文本文件,从而可以随时查看数据库中各变量值,从而迅速地对错误进行定位。另外我还写了个别测试程序,如showsubinfo(),showlink()等,这些函数都是在程序莫名其妙地出现异常的情况下为调试而写出来的,目的是查看某类型结构体中

6、的各变量的值。程序出现功能异常,大多数都是变量异常。而结构体中的变量值异常相对来说比较难查出来,因此我写了一系列小测试函数,根据需要插入代码中,每当执行到该处时,就会将该结构体中各变量显示出来,错误一目了然。4.界面说明进入程序后首先是登录界面,初次使用本程序时,会提示初始密码,用户可以在登录后修改密码。初次使用时,由于数据库为空,因此系统会提示添加学生,其中有一个选项是系统自动生成学生,该功能是为测试程序之用。若系统检测到数据库中没有学科就会提示用户添加学科。之后用户就可以进入完整的功能界面了。在界面方面做

7、了小设计。比如当数据库中无学生信息时,界面就只有选项提示用户添加学生,之后若系统检测到数据库中无科目信息时再提示用户添加科目,如果数据库中的科目数已经达到最大允许值(本程序设置的最大科目数为200,可在宏中设置),则界面中就会屏蔽掉添加科目这一选项,即界面会随着数据库中数据的情况进行适当的调整。我认为在界面方面尚未将核心功能开发完全,通过界面的扩展,可以实现更多的功能,从而充分利用核心函数的功能。为了增加功能的通用性,我尽量将核心功能函数进行部分抽象化,对不同功能以宏进行区分,这样可以精简代码,避免代码重复和

8、冗余。二.总体算法设计1.数据存储文件结构a)本程序的二进制存储文件为stuinfo.dat,文件包含两个部分,文件头和数据区,类似于bmp文件结构.文件头中存储了文件信息,包括学生数,科目数,冗余块数,冗余块的位移地址数组,以及学科信息数组及用户的登录密码.当文件进行数据的操作时首先要读入文件头,当数据操作完后会自动修改头文件,头文件的存在使文件能高效的操作.当数据块删除时,不采取文件大块数据整体

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。