资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,华中科技大学电子科学与技术系,*,第,2,讲 学生成绩管理程序,9/30/2024,1,华中科技大学电子科学与技术系,目 录,1.,程序设计要求,2.,总体设计指南,3.,数据结构定义,4.,函数定义说明,5.,编码规范要求,9/30/2024,2,华中科技大学电子科学与技术系,第,2,讲 目 录,1.,程序设计要求,2.,总体设计指南,3.,数据结构定义,4.,函数定义说明,5.,编码规范要求,9/30/2024,3,华中科技大学电子科学与技术系,1,课程设计总体要求(需求分析),设计一个实用的小型学生成绩管理程序,建议不用,链表,,而用,数组,来设计这个程序。它有查询和检索等功能,并且能够对指定文件操作,也可将多个文件组成一个文件。,9/30/2024,4,华中科技大学电子科学与技术系,功能设计要求,1,建立文件,(1),可以使用,默认文件名,或,指定文件名,将记录存储到文件;,(2),文件保存成功返回,0,,失败返回,-l,;,建议设置保存标志(,savedTag,),作为是否已对记录进行存储操作的信息;,注意,写同名文件将,覆盖,原来文件的内容。,9/30/2024,5,华中科技大学电子科学与技术系,功能设计要求,2,新建学生信息,(1),用来重新建立学生信息记录;,(2),如果已经有记录存在,要求可以,选择,覆盖原记录或者在原记录后面,追加,,也可以将原有记录信息保存到一个指定文件,然后重新建立记录;,(3),给出相应的,提示信息,。,9/30/2024,6,华中科技大学电子科学与技术系,功能设计要求,3,增加学生,记录,(1),可在已有记录后面,追加,新的记录;,(2),可以随时用它,增加,新的记录,它们仅保存在结构数组中;,(3),可以将一个文件,读入,,,追加,在已有记录之后;,(4),如果已经采取用文件追加的方式,在没有保存到文件之前,将继续保持文件追加状态,以便实现连续文件追加操作方式;,(5),如果没有记录存在,需要给出,提示信息,。,9/30/2024,7,华中科技大学电子科学与技术系,功能设计要求,4,显示记录,(1),如果没有记录可供显示,给出,提示信息,;,(2),可以随时显示,内存中,的记录;,(3),显示,表头,。,9/30/2024,8,华中科技大学电子科学与技术系,功能设计要求,5,文件存储,(1),可以按,默认名字,或,指定名字,存储记录文件;,(2),存储成功返回,0,,否则返回,-l,;,注意更新存储标志!,9/30/2024,9,华中科技大学电子科学与技术系,功能设计要求,6,读取文件,(1),可以按,默认名字,或,指定名字,将记录文件读入内存;,(2),读取成功返回,0,,否则返回,-1,;,(3),可以将指定或默认文件,追加,到现有记录的,尾部,;,(4),可以将文件,连续追加,到现有记录并,更新,记录的,名次,。,注意更新存储标志!,9/30/2024,10,华中科技大学电子科学与技术系,功能设计要求,7,删除记录,(1),可以按”,学号,”、”,姓名,”或”,名次,”方式删除记录;,(2),给出将被删除记录的信息,经确认后再删除;,(3),如果已经是空表,删除时应给出提示信息并返回主菜单;,(5),如果没有要删除的信息,输出没有找到的信息;,(6),应该更新其他记录的名次;,(7),删除操作仅限于内存,只有执行存记录时,才能覆盖原记录;,注意更新存储标志!,9/30/2024,11,华中科技大学电子科学与技术系,功能设计要求,8,修改记录,(1),可以按”,学号,”、”,姓名,”或”,名次,”方式修改记录内容;,(2),给出将被修改记录的信息,经确认后进行修改;,(3),如果已经是空表,应给出提示信息并返回主菜单;,(4),如果没有找到需要修改的信息,输出提示信息;,(5),应该同时更新其他记录的名次;,(6),修改操作仅限于内存,只有进行存储操作时,才能覆盖原记录;,注意更新存储标志!,9/30/2024,12,华中科技大学电子科学与技术系,功能设计要求,9,查询记录,(1),可以按”,学号,”、”,姓名,”或”,名次,”方式查询记录;,(2),要求给出查询记录的信息;,(3),如果查询的信息不存在,要求输出提示信息。,9/30/2024,13,华中科技大学电子科学与技术系,功能设计要求,10,对记录进行排序(*),(1),可以按学号进行,升序,或,降序,排序;,(2),可以按名称进行,升序,和,降序,排序;,(3),可以按名次进行,升序,和,降序,排序;,(4),如果属于选择错误,可以立即退出排序;,注意更新存储标志!,9/30/2024,14,华中科技大学电子科学与技术系,功能设计小结(关键要求及技术点),(1),使用文件作为数据库;,(2),使用数组,不用链表;,(3),文件的创建、读、写、关闭等操作;,(4),基于数组的查询、记录插入、删除操作;,(5),排序算法。,9/30/2024,15,华中科技大学电子科学与技术系,第,2,讲 目 录,1.,程序设计要求,2.,总体设计指南,3.,数据结构定义,4.,函数定义说明,5.,编码规范要求,9/30/2024,16,华中科技大学电子科学与技术系,2,总体设计指南,最初的整体规划只是说明它们的可行性,不要求制定函数的具体实现,甚至不需要 考虑函数原型。完成整体规划后,可以按照流程描述各个模块之间的接口功能。,9/30/2024,17,华中科技大学电子科学与技术系,2,总体设计指南,总体(概要)设计应包括:,1,、,需求规定,:说明对本系统的主要的输入输出项目、处理的功能性能要求,2,、,运行环境,:简要地说明对本系统的运行环境(包括硬件环境和支持环境)的规定,3,、,基本设计概念和处理流程,:说明本系统的基本设计概念和处理流程,尽量使用图表的形式,9/30/2024,18,华中科技大学电子科学与技术系,2,总体设计指南,总体,(概要),设计应包括:,4,、,结构,:用一览表及框图的形式说明本系统的系统元素(各层模块、子程序、公用程序等)的划分,扼要说明每个系统元素的标识符和功能,分层次地给出各元素之间的控制与被控制关系,5,、,功能需求与程序的关系,:用一张矩阵图说明各项功能需求的实现同各块程序的分配关系 参见,表,1,6,、,尚未问决的问题,:说明在总体设计过程中尚未解决而设计者认为在系统完成之前必须解决的各个问题,9/30/2024,19,华中科技大学电子科学与技术系,2,总体设计指南,程序,1,程序,2,程序,n,功能需求,1,功能需求,2,功能需求,n,表,1,:,功能需求与程序的关系,9/30/2024,20,华中科技大学电子科学与技术系,设计参考实例,学生成绩管理系统,模,块,参考,设计如下:,(1),使用多文件方式实现设计;,(2),在各个文件内实现结构化设计;,(3),每个模块作为一个单独的,c,文件,每个文件内的函数如,表,2,所示,表中给出了各个函数的功能说明;,(4),宏和数据结构等放在头文件中,并使用条件编译。,9/30/2024,21,华中科技大学电子科学与技术系,设计参考实例,源文件,函数名称及组成,功能描述,Student.c,main,主函数,Menu_select,菜单选择,Handle_menu,菜单处理,NewRecords,新建学生信息记录,Quit,结束运行,表,2,:,文件及函数组成,9/30/2024,22,华中科技大学电子科学与技术系,设计参考实例,表,2,:,文件及函数组成 (续),Display.c,showTable,打印表头,getIndex,获取按升序排列的位置,addRecord,在表尾追加信息,Display,显示信息,9/30/2024,23,华中科技大学电子科学与技术系,设计参考实例,表,2,:,文件及函数组成 (续),Add_disp.c,removeRecord,删除指定的纪录,findRecod,查找指定的纪录,queryInfo,查询指定学生的信息,copyRecord,复制纪录,modifyRecord,修改指定学生的信息,9/30/2024,24,华中科技大学电子科学与技术系,设计参考实例,表,2,:,文件及函数组成 (续),Save_load.c,Save,文件存储,Load,文件读取,Sort.c,sortInfo,排序,Student.h,常数,提供常数定义,结构声明,学生成绩数据结构,库函数及函数原形声明,引用的库函数和函数,9/30/2024,25,华中科技大学电子科学与技术系,第,2,讲 目 录,1.,程序设计要求,2.,总体设计指南,3.,数据结构定义,4.,函数定义说明,5.,编码规范要求,9/30/2024,26,华中科技大学电子科学与技术系,3,数据结构,struct,student_info,char number15; /,学号,char name20; /,姓名,char gender4; /,性别,float,scoreNUM_SUBJECT,;/,分别为该学生各门课,成绩,float sum,;,/,总分,float average; /,平均分,int,index; /,名次,;,typedef,struct,student_info,StuInfo,;,9/30/2024,27,华中科技大学电子科学与技术系,常量,#define INITIAL_SIZE 100 /,数组,初始大小,#define INCR_SIZE 50 /,数组,每次增加,的大小,#define NUM_SUBJECT 5 /,科目数,每个学生信息资料用一个,StuInfo,结构来保存,用,StuInfo,数组全局变量,records,来保存一批学生的信息资料。宏定义,INITIAL_SIZE,表示数组初始大小,当已分配的数组大小不够用时,将增加数组大小,,INCR_SIZE,为当每次增加的大小。,9/30/2024,28,华中科技大学电子科学与技术系,第,2,讲 目 录,1.,程序设计要求,2.,总体设计指南,3.,数据结构定义,4.,函数定义说明,5.,编码规范要求,9/30/2024,29,华中科技大学电子科学与技术系,函数功能及说明,参见,表,2,9/30/2024,30,华中科技大学电子科学与技术系,第,2,讲 目 录,1.,程序设计要求,2.,总体设计指南,3.,数据结构定义,4.,函数定义说明,5.,编码规范要求,9/30/2024,31,华中科技大学电子科学与技术系,公共编码规范,公共编码规范总结了所有开发工具在编码过程中应该共同遵守的规范,包括基本规范和注释规范两部分,。,9/30/2024,32,华中科技大学电子科学与技术系,基本规范,程序风格,:程序结构清晰,简单易懂;单个函数或过程的程序行数(包括注释)不得超过500行、宽度不超过屏幕显示的宽度范围;一般不用递归模式;不建议使用GOTO;循环、分支要简单:层次不得超过五层;,可读性,:一定要注释清晰,利用缩进来显示程序的逻辑结构:根据不同开发工具利用空格(至少两个)或Tab字符来组织代码缩进结构,;,代码简洁,:减少不必要的代码量;程序目录中不得存在垃圾文件;数据库中不得存在垃圾表,。,代码重用,:提高函数或过程的共享,尽量简化编码,减少不必要的重复代码,;,9/30/2024,33,华中科技大学电子科学与技术系,基本规范,代码优化,:注重执行效率高、力求代码精简,优化代码结构,;,变量使用,:变量使用遵循先声明后使用的原则,尽量使用局部变量,少用全局变量,;,命名规范,:所有对象的命名能准确清晰的代表当前对象的实际意义。对象命名可选用英文或拼音缩写,但在同一项目设计中必须遵循共同约定,。,防止内存泄漏,:申请内存,使用结束后,必须及时清理,。,9/30/2024,34,华中科技大学电子科学与技术系,注释公共规范,代码一定要进行必要的注释,提高代码的可读性和可维护性,。,详细内容参考“,代码编写规范,”,!,9/30/2024,35,华中科技大学电子科学与技术系,提高部分要求,(1),采用,C+,实现图形化界面;,(2),采用,ADO,数据库;,(3),实现科目的输入编辑、设定;,(4),具有报表统计功能;,(5),实现成绩分析功能。,9/30/2024,36,华中科技大学电子科学与技术系,
展开阅读全文