1 / 46
文档名称:

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

格式:docx   大小:65KB   页数:46页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:dalaoban5200 2020/2/9 文件大小:65 KB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:华中科技大学电子科学与技术系课程设计报告名题院班称:软件课程设计目:学生成绩管理系统系:电子科学与技术系级:电子科学与技术0606日期:2008年6月30日目录一、程序功能说明……………………………………………、总体算法设计……………………………………………、详细设计…………………………………………………页码函数说明及程序流程四、源程序清单……………………………………………….页码(由于源代码有1700多行,不便在报告中全部列出,因此只列出了核心功能函数的源代码)测试结果实践体会……………………………………………….页码……………………………………………….:登录认证和密码修改自动读取和存储数据添加,删除,修改学生信息添加,删除,修改科目信息添加,删除,修改分数信息多重搜索(学生姓名,学号)按升序或降序显示所有学生任一科目的成绩(包括加权成绩)注:程序中可以存储同名的学生,但是不允许学号相同,因此做了部分处理应对这种情况。当搜索某个同名学生时,倘若通过姓名搜索,则会显示所有该姓名的学生,然后再通过学号确定。。为便于程序测试,由系统自动随机生成所有数据(包括学生姓名,学科的相关信息,学生的各科成绩等).(本来想写一个程序自动测试脚本的,算法已经成熟了,然而精力有限未能完成):数据库核心功能模块,数据库辅助功能模块,数据库界面功能模块,自动数据库生成模块。我认为数据库核心功能模块应负责最底层的文件操作,其他的模块都是基于核心模块的应用型模块。模块间相对独立,以核心功能模块为主,自动数据库生成模块和数据库界面模块都需要频繁调用核心功能模块,如此便实现了功能间的剥离,。对此,我采取了一系列措施:对于每个传入的参数进行严格的检查,包括变量的范围,指针是否为空,变量是否合法等。如果发现异常,就设置错误myerr并终止程序。我的想法是核心功能模块不应该出现参数异常的问题,所有的不合法参数应该在上层模块如界面模块中就进行过滤了,在与用户交互的过程中,所有输入的非法参数都应该被过滤,以防非法参数传入底层模块,甚至写入数据库,造成数据库异常。因此倘若如果经过种种措施后,仍然有非法参数传入核心模块,我就认为程序异常并发出终止程序的命令。而倘若是上层模块出现异常的话,可以返回false标志,而不致于立即终止程序。另外为了更方便地分析程序中的功能异常情况,我又采取了一些措施,包括将二进制数据库文件重写入文本文件,从而可以随时查看数据库中各变量值,从而迅速地对错误进行定位。另外我还写了个别测试程序,如showsubinfo(),showlink()等,这些函数都是在程序莫名其妙地出现异常的情况下为调试而写出来的,目的是查看某类型结构体中的各变量的值。程序出现功能异常,大多数都是变量异常。而结构体中的变量值异常相对来说比较难查出来,因此我写了一系列小测试函数,根据需要插入代码中,每当执行到该处时,就会将该结构体中各变量显示出来,错误一目了然。,初次使用本程序时,会提示初始密码,用户可以在登录后修改密码。初次使用时,由于数据库为空,因此系统会提示添加学生,其中有一个选项是系统自动生成学生,该功能是为测试程序之用。若系统检测到数据库中没有学科就会提示用户添加学科。之后用户就可以进入完整的功能界面了。在界面方面做了小设计。比如当数据库中无学生信息时,界面就只有选项提示用户添加学生,之后若系统检测到数据库中无科目信息时再提示用户添加科目,如果数据库中的科目数已经达到最大允许值(本程序设置的最大科目数为200,可在宏中设置),则界面中就会屏蔽掉添加科目这一选项,即界面会随着数据库中数据的情况进行适当的调整。我认为在界面方面尚未将核心功能开发完全,通过界面的扩展,可以实现更多的功能,从而充分利用核心函数的功能。为了增加功能的通用性,我尽量将核心功能函数进行部分抽象化,对不同功能以宏进行区分,这样可以精简代码,避免代码重复和冗余。),文件包含两个部分,文件头和数据区,,包括学生数,科目数,冗余块数,冗余块的位移地址数组,,当数据操作完后会自动修改头文件,,不采取文件大块数据整体移动的物理删除方法,而是采用将数据块的fl