1、软件工程课程设计学生成绩信息管理系统 指引教师:曾 鹏 姓 名:白 飞 学 号:0820 班 级:计科系8班 目录:第一某些 选课系统分析1. 引言1.1. 编写目1.2背景阐明1.3. 术语定义及参照资料2. 任务概述2.1. 目的2.2. 系统技术 2.3基本设计概念和解决流程 2.4. 顾客特点3. 需求规定3.1. 对功能规定3.2. 对性能规定4. 设计思想4.1. 数据库设计4.2. 系统功能特点5、软件测试第二某些 学生成绩查询系统分析1. 系统需求分析2. 系统功能设计3. 概念设计3.1概念构造设计E-R 图3.2逻辑构造设计4. 概要设计5. 重要模块详细设计阐明书 第三某
2、些 附带重要某些源码第四某些 设计感想第一某些 选课系统2. 引言21世纪以高科技为核心知识经济将占主导地位,国家综合国力和国际竞争力将越来越取决于科学技术创新水平。教诲作为知识创新、传播和应用基本,培养和输送人才摇篮,已经成为经济发展和社会进步基本。尽管人类进步限度随着不同步代,不同地区而有所变化,教诲口径却在不断扩宽,以便使过去仅供少数人使用教诲资源可觉得更多各种年龄、不同社会阶层和背景人们所用。在信息爆炸时代,老式教学管理面临着诸多挑战。1.1. 编写目开发基于互联网学生选课系统,提高管理工作效率、提高信息开放性、改进学生和教师对其最新信息查询精确性。2.2. 背景阐明随着学校规模不断扩
3、大,专业、班级、学生数量急剧增长,关于学生选课各种信息量也成倍增长,而当前许多高校学生选课管理仍停留在复杂人工操作上,重复工作较多,工作量大,效率低,因而,迫切需要开发基于互联网体育课信息管理系统来提高管理工作效率。基于互联网学生选课管理系统,在学生选课规范管理、科学记录和迅速查询方面具备较大实用意义。它提高了信息开放性,大大地改进了学生、教师对其最新信息查询精确性。1.3. 术语定义及参照资料1. (美) Grady Booch,James Rumbaugh,Ivar Jacobson,UML顾客指南,机械工业出版社,8月2.Microsoft,MSDN3.Microsoft,SQL Ser
4、ver联机手册4.Roger S. Pressman。软件工程实践者研究办法。机械工业出版社,19975.IPL。Software Testing and Software Development Lifecycles。IPL,19966.Karl E. Wiegers软件需求机械工业出版社,19997.张海藩软件工程导论清华大学出版社。2. 任务概述2.1. 目的系统开发总体任务是实现学生选课信息关系系统化、规范化和自动化。在这里需要指出是:2.2. 系统技术 学生选课系统规定具备信息解决开发性,以便教师上传学生成绩、学生上网选课和查询选课信息及成绩等,因而本系统设计为基于WWW网络数据库应
5、用系统,使用ASP脚本以Access为数据库开发技术,运营在支持ASP服务器上。2.3基本设计概念和解决流程 采用基于SQL Server 分布式数据库管理系统。三层构造是当前用得最多,这种构造比老式C/S构造增长了一种应用程序服务器,应用程序服务器涉及了统一界面、业务规则和数据解决逻辑等等,这样客户端程序就可以做得比较小,也就是常说瘦客户,更由于业务规则和数据解决逻辑集中在服务器上统一管理,客户端不必进行复杂计算,也不会由于错误操作而影响到其她顾客,因此她可靠性、稳定性和效率都比较好。(其构造如图)2.4. 顾客特点为保证系统安全高效运营,本系统把顾客划分为3类:教务处、教师和学生。不同顾客
6、在系统中作用和权限也有所不同,因此它所需要完毕功能也就不同。教务处可以完毕本系统所有功能:1) 学生信息管理,除学生基本信息外,还可管理学生所选课程、成绩等;2) 教师信息管理,涉及教师个人基本状况和任课状况;3) 项目及班数设定:依照学校教务处所排课进行班级数及人数记录,然后依照记录成果进行项目及班数设定;4) 排课:依照上一步分班状况安排任课教师;5) 报表生成及输出:生成教师担任课程分班表、按项目生成学生成绩表、按学生行政班生成成绩表及所有报表输出。教师在本系统功能:查询学生选课状况、自己任课状况、获取自己所担任课程分班表、录入及修改成绩等。学生在本系统功能:查询本人信息、教师任课信息、
7、选课、选课信息查询、成绩查询。3. 需求规定3.1. 对功能规定 1可实现学生选课注册2以便实现学生选课信息查询3可对学生成绩档案进行管理,成绩表单生成简便。 4安全有效顾客区别,管理5档案数据高安全性,保密性6有协助文档3.2. 对性能规定使用稳定,操作性能好,操作办法易于掌握,系统安全性强4. 设计思想顾客需求详细体当前对各种信息提供、编辑、解决及查询记录上。这就规定数据库构造能充分满足各种信息输入、解决和输出。通过度析学生选课管理系统现实需求,学生选课管理系统各环节基本数据及数据解决流程,在与管理人员沟通、交流与探讨基本上,得到如下学生选课系统数据流程图成绩列表生成系统课程表生成系统选课
8、信息查寻系统学生选课注册系统学 生 选 课 系 统(图1)系统模型 学生成绩安排考试教师生成课表排课个人选课信息教务处选课 (图2)系统流程图4.1. 数据库设计通过对学生选课管理系统工作内容和有关数据流程分析,依照学生选课管理系统需要,就可以设计出能满足顾客需求各种实体,以及它们之间关系,由此得到数据库所支持数据模型,即数据库逻辑构造,详细状况如下:1学生信息表:开学时将教务处提供学生信息库按系统规定修改库构造并导入Access数据库中,应涉及如下信息:姓名、学号、院系、班级、性别、所选课程、任课教师、备注等。2教师信息表:涉及教师姓名、教师代码、性别、年龄、职称、重要专家课程、兼任课程等。
9、3课程信息:涉及课程目录、课程、课程代码、教学内容、任务与目、考试办法、规定等。4课程表:涉及课程名称、课程编号、任课教师、课程学分、上学时间。5成绩单列表:涉及学生姓名、学号、院系、班级、课程、任课教师、成绩。学 生考 试排 课查 询选 课课程表成绩单列表教师信息表教 师教 务 处学生信息表 身份认证成功 身份认证成功 课程 所选课程 信息 合理性 考试安排 成绩 任教信息 学 生 成 绩 单(图3)面向过程数据流图4.2. 系统功能特点1内容全面系统全面覆盖了体育课信息,可为学校、教师和学生提供全面精确信息。2层次分明系统采用模块化程序设计构造。各模块之间既互相独立,又具备一定联系,各模块
10、可独立编制、调试、查错、修改和执行,构造严谨,便于扩展和维护。5、软件测试输入数据有效等价类无效等价类证件号码1、6位数字字符2、有效数字字符3、少于6个字符4、不不大于6个字符使用功能5、选课6、查询7、输入其她文字有效测试用例测试数据 盼望成果 测试范畴123456 输入有效 1选课 输入有效 5 5无效测试用例测试数据盼望成果测试范畴12jda1输入无效21234561输入无效412341输入无效312t21输入无效2、 3排课 输入无效7第二某些 学生成绩查询系统1.系统需求分析阐明:学校每年新生入学,毕业生离校和各种其他变动,如学籍变动,个人信息修改。每学期学校者要开设一定课程提供应
11、学生依照自己状况来选取,最后选取成果要给出学生课程表。如何有效管理这些学生信息,协助学校和教师管理和掌握这些状况,这就是学生信息管理系统需要完毕任务。下面用软件工程思想和办法完毕该系统设计过程。功能:个人信息查询和修改,涉及流动,注册,更新管理。2.系统功能设计学院学生管理系统教师学生课程表学生个人信息查询课程设立审批新生注册登记学生信息更新管理学生教务处选课课程申请学院学生管理系统数据流图 新生信息注册 奖惩信息 奖惩变更信息变更登记 记录记录学生个人信息表奖惩信息表学籍变更表记录学生个人信息信息学生课程申请课程清单课程表 教师教务处 学生选 课表打印 批准课课程基本信息表选课成果表DFD图
12、3.数据库概念设计 依照以上数据流图导出数据库所需数据项和数据构造学生:学号,姓名,性别,生日,所在院系,所在班级:课程:课程号,课程名,讲师,上学时间,地点,课程简介选课成果:记录号,选课学生,所选课程学籍变更记录:记录号,变更状况,记录时间,详细描述3.1数据库概念构造设计E-R 图阐明:E-R图中矩形代表实体,菱形代表实体间联系,圆角矩形代表实体属性教师工号教师名。讲授 1:N 选课 课程M:N学生 课程号学号课程名姓名讲师性别。记录-对象 1:1 记录-对象 1:N 学籍变更记录 选课成果记录号课程号变更状况选课学生变更时间记录号详细描述。3.2数据库逻辑构造设计依照以上E-R图,需要
13、五个基本表:学生信息表、课程信息表、选课成果表、奖惩信息表、其中教师信息是处部表,不列出,由于使用打开系统不光是教务人员,每个学生都要登录到选课系统进行课程选取,因而,需要对不同登录人员进行密码认证和权限限制,防止越权行为,顾客名,密码,权限,保存在一种表中。1. USER-PASS顾客密码信息表字典字段名数据类型与否可空阐明IDCHAR NOT NULL顾客名(主键)PASSWORDCHARNOT NULL密码AUTHORITYCHARNOT NULL权限2. COURSE课程信息表数据字典字段名数据类型与否可空阐明IDCHARNOT NULL课程号(主键)NAMEVARCHARNULL课程
14、名TEACHERVARCHARNILL讲师CLASTIMEVARCHARNULL上学时间CLASSROMCHARNULL上课地点INTROVARCHARNULL简介3. COURSE-SELECT选课成果表数据字典字段名数据类型与否可空阐明IDSMALL INTNOT NILL记录号(主键)COURSECHARNULL课程名STUDENTCHARNULL选课学生(外部核心4. STUDENT学生个人信息表数据字典字段名数据类型与否可空阐明IDSMALL INTNOT NULL学号(主键)NAMEVARCHARNOT NULL姓名SEXCHARNOTNULL性别CLASSCHARNULL班级DE
15、PARTMENTCHARNULL院系BIRTHDAYVARCHARNULL生日5. 奖惩记录信息表字段名数据类型与否可空阐明IDSMLL INTNOT NULL记录号(主键)STUDENTCHARNOT NULL学号(外部键)LEVELCHARNULL奖惩代码TIMEDATANULL时间 DESCRIPTIONVARCHARNULL描述4.概要设计由以上DFD图导出学院学生管理系统SC图学院学生管理系统密码+顾客名顾客权限管理学生信息更新管理选课课程管理 课程编号课程编号新生信息更新命令新生信息登记学生个人信息修改接受输入显示课程详细信息接受新课程奖励命令惩罚命令增删命令增删命令修改奖励记录修
16、改惩罚记录加入课程删除课程删除课程 添加课程 增删信息增删信息已选课程表课程信息课程表 打印学生课表 5.重要模块详细设计阐明书 1. 顾客身份认证模块功能:按顾客输入顾客名和密码与否合法合法则进入应用程序非法则显示出错信息界面:由总控模块调用模块阐明细化为详细逻辑IPO图 顾客身份认证模块 输入 解决输出连接数据库表连接数据库错误中断程序捕获错误顾客名 获取顾客名顾客密码获取顾客密码读USER-PAS判断顾客名与否存在判断密码与否存在提示信息捕获异常判断顾客权限是合法 隐藏登录窗口显示主窗体文献USER-PASS表2选课模块功能:接受学生选课信息 刷新学生课程表界面:调用添加、删除模块,打印
17、课表模块 将模块阐明细化为详细逻辑选课解决IPO图输入 解决 输出课程编号为课程号过滤输入课程编号异常提示 接受课程号打开课程信息表判断是添加或是删除添加检索课程表读该记录 若该记录存在显示所选课程详细信息执行添加语句调用添加模块将选课成果刷新删除执行删除语句调用删除模块将稳定课成果刷新提交课表:课程编号,课程名调用打印课表模块文献课程信息表选课成果表3. 课程申请模块功能:接受输入新添课程信息将新课程信息存入课程信息表删除旧课程界面:调用已开课程信息表调用申请修改程序将模块细化为详细逻辑IPO图课程管理模块输入 解决 输出课程编号添加新课程获取当前教师所选课程打开已开课程表查询与否存在该记录
18、若无该记录则是新课程调用添加模块提取课程编号 提取课程名称提取课程简介提交若有该记录则不是新课程出错解决 提示信息删除旧课程文献课程信息表(折半查找算法测试)2测试名称:模块输入课程编号过滤测试方案a) 规定课程编号为输入4个字符,头两个字符为字母,后2个字符为数字例如TP38b) 测试办法采用黑盒测试法中档价类划分法划分等价类输入数据有效等价类无效等价类课程号1 两字母+两数字2有非数字或字母字母3 A-Z4字母少于两个或多于两个数字5 00-996数字少于两个或多于两个为有效等价类和每个无效等价类设计测试用例测试数据盼望成果测试范畴HY76输入有效1、3、5D78输入无效2S86输入无效4
19、MA2输入无效6HY345输入无效6DEH94输入无效4测试名称:课程查找模块设计测试方案a) 本模块采用是折半查找算法重要是测试各程序在各种典型状况下是不能有效进行查找b) 测试方案采用选取白盒测试法半途径覆盖法阐明:由于输入课程编号已经被过滤,因此编号接受范畴为00-99 满足覆盖规定测试方案测试数据覆盖结点覆盖边Classno=13,27,34,45 ,60A b c d e f g h i j k l m n1 2 3 4 5 6 7 8 9 10 11 1212V v vvV v v v v27V v v v v v v v v v vV v v v v v v v v28V v v
20、 v v v v v v v vV v v v v v v v v v v34V v v v v v v vV v v v v v v v v40V v v v v v v v vV v v v v v v v v45V v v v v v v v v vV v v v v v v v v61V v v vV v v v v第三某些 附录重要某些源码unit main;interfaceuses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,ShellAPI,Menus,ActnList,
21、StdCtrls,Buttons,XPMenu,jpeg,ExtCtrls;type TFmMain = class(TForm) ActionList1:TActionList; Actxsgl:TAction; Actcjgl:TAction; ActZHGL:TAction; Actibbgl:TAction; SpeedButton1:TSpeedButton; SpeedButton2:TSpeedButton; SpeedButton3:TSpeedButton; SpeedButton4:TSpeedButton; BitBtn1:TBitBtn; BitBtn2:TBitBtn
22、; BitBtn3:TBitBtn; PopupMenu1:TPopupMenu; f1:TMenuItem; gfg1:TMenuItem; fgfg1:TMenuItem; gfgf1:TMenuItem; N1:TMenuItem; N2:TMenuItem; N3:TMenuItem; N4:TMenuItem; N5:TMenuItem; Image1:TImage; procedure ActxsglExecute(Sender:TObject); procedure ActcjglExecute(Sender:TObject); procedure ActZHGLExecute(
23、Sender:TObject); procedure ActibbglExecute(Sender:TObject); procedure BitBtn1Click(Sender:TObject); procedure BitBtn2Click(Sender:TObject); procedure BitBtn3Click(Sender:TObject); procedure N3Click(Sender:TObject); procedure N4Click(Sender:TObject); procedure N1Click(Sender:TObject); procedure Image
24、1Click(Sender:TObject); private Private declarations public Public declarations end;var FmMain:TFmMain;implementationuses Uxsgl,Ucjgl,Uzhgl,Ubbgl,ABOUT,Uhelp;$R *.dfmprocedure TFmMain.ActxsglExecute(Sender:TObject);beginfmxsgl.show;end;procedure TFmMain.ActcjglExecute(Sender:TObject);beginfmcjgl.Sho
25、w;end;procedure TFmMain.ActZHGLExecute(Sender:TObject);beginFMZHGL.Show;end;procedure TFmMain.ActibbglExecute(Sender:TObject);beginfmbbgl.Show;end;procedure TFmMain.BitBtn1Click(Sender:TObject);begin Application.CreateForm(Tfrm_about,frm_about); frm_about.ShowModal;end;procedure TFmMain.BitBtn2Click
26、(Sender:TObject);begin Application.CreateForm(Tform3,form3); form3.ShowModal;end;procedure TFmMain.BitBtn3Click(Sender:TObject);beginif application.MessageBox(真退出?,提示,mb_okcancel)=idok thenapplication.Terminate;end;procedure TFmMain.N3Click(Sender:TObject);beginBitBtn1Click(Sender);end;procedure TFm
27、Main.N4Click(Sender:TObject);beginBitBtn2Click(Sender);end;procedure TFmMain.N1Click(Sender:TObject);beginBitBtn3Click(Sender);end;procedure TFmMain.Image1Click(Sender:TObject); var filename:string;beginfilename:=;Shellexecute(Application.Handle,nil,pchar(filename),nil,nil,sw_shownormal);end;end.obj
28、ect FmMain:TFmMain Left = 186 Top = 159 BorderStyle = bsNone Caption = #23398#29983#20449#24687#31649#29702#31995#32479 ClientHeight = 488 ClientWidth = 732 Color = clBackground Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = MS Sans Serif Font.Style = Icon.Dat
29、a = 。 /图片代码 OldCreateOrder = False PopupMenu = PopupMenu1 WindowState = wsMaximized PixelsPerInch = 96 TextHeight = 13 object SpeedButton1:TSpeedButton Left = 48 Top = 328 Width = 130 Height = 100 Cursor = crCross Action = Actxsgl end object SpeedButton2:TSpeedButton Left = 400 Top = 328 Width = 130
30、 Height = 100 Cursor = crCross Action = ActZHGL end object SpeedButton3:TSpeedButton Left = 224 Top = 328 Width = 130 Height = 100 Cursor = crCross Action = Actcjgl end object SpeedButton4:TSpeedButton Left = 571 Top = 328 Width = 130 Height = 100 Cursor = crCross Action = Actibbgl end object Image1
31、:TImage Left = 48 Top = 64 Width = 401 Height = 105 Cursor = crHandPoint Hint = #27426#36814#20809#0 ParentShowHint = False Picture.Data = 。 /图片代码 ShowHint = True OnClick = Image1Click end object BitBtn1:TBitBtn Left = 400 Top = 456 Width = 75 Height = 25 Cursor = crHandPoint Caption = &About TabOrd
32、er = 0 OnClick = BitBtn1Click Glyph.Data = 。 /图片代码 end object BitBtn2:TBitBtn Left = 520 Top = 456 Width = 75 Height = 25 Cursor = crHandPoint Caption = &Help TabOrder = 1 OnClick = BitBtn2Click Glyph.Data = 。 /图片代码 end object BitBtn3:TBitBtn Left = 632 Top = 456 Width = 75 Height = 25 Cursor = crHa
33、ndPoint Caption = &Close TabOrder = 2 OnClick = BitBtn3Click Glyph.Data = 。 /图片代码 NumGlyphs = 2 end object ActionList1:TActionList Left = 400 Top = 80 object Actxsgl:TAction Caption = #23398#29983#20449#24687#31649#29702 Hint = #23398#29983#20449#24687#31649#29702 OnExecute = ActxsglExecute end obje
34、ct Actcjgl:TAction Caption = #25104#32489#31649#29702 Hint = #25104#32489#31649#29702 OnExecute = ActcjglExecute end object ActZHGL:TAction Caption = #36873#35838#31995#32479 Hint = #36873#35838#31995#32479 OnExecute = ActZHGLExecute end object Actibbgl:TAction Caption = #25253#34920#29983#25104 Hin
35、t = #25253#34920#29983#25104 OnExecute = ActibbglExecute end end object PopupMenu1:TPopupMenu Left = 336 Top = 216 object f1:TMenuItem Action = Actxsgl end object gfg1:TMenuItem Action = Actcjgl end object fgfg1:TMenuItem Action = ActZHGL end object gfgf1:TMenuItem Action = Actibbgl end object N2:TMenuItem Caption = - end object N3:TMenuItem Caption = #20851#0 OnClick