1、软件工程课程设计报告( - 年度第 一 学期)课程名称: 软件工程课程设计 题 目: 学生选课系统 院 系: 计算机与信息技术学院班 级: 软件工程2班 组 号: ! 组 长: ! 组 员: ! ! ! ! 指引教师: 陈 千 设计周数: 4 周 小构成绩: 日期: 年 8月 19日软件工程课程设计报告任 务 书一、目、规定通过软件开发实践训练,进一步掌握软件工程办法和技术,提高软件开发实际能力,培养工程设计能力和综合分析、解决问题能力。详细如下:1. 学习和实践在分析和设计计算机应用系统所需要知识,涉及面向对象系统分析与设计,编码和测试方面知识;2. 熟悉自动化软件开发工具Rational
2、Rose 或者其她设计工具(Microsoft visio、starUml),并将其运用于软件开发全过程;3. 进一步加强和提高软件工程文档编写能力;4. 培养协作能力和团队精神。二、重要内容1 课题题目选题:(1)学生选课系统等题目或者自选题目,选课系统要实现学生选课基本功能,涉及学生退选课,查看自己选课信息;教师查看选课学生信息,提交成绩;管理员添加学生、管理学生、管理成绩、添加教师、管理教师和管理课程等。2 运用面向对象技术、UML及可视化建模工具完毕系统需求分析与设计。3 使用Rational Rose作为需求分析与设计建模工具,涉及静态建模和动态建模,并运用对象模型自动生成数据模型,
3、自动建立数据库。4 采用分层模式应用设计模式进行系统设计实现。5 系统要实现四个模块功能:教师模块、学生模块、管理员模块和公用模块。6 初步建立系统原型,实现核心功能,并对系统进行测试。7 编写课程设计报告。课程设计题目清单:1、软件工程课程设计管理系统。教师和学生可以应用该系统实现如下功能:(1)学生使用自己姓名和学号(密码)登陆后,可以从题库中选取一种题目,并且填写同组其她同窗姓名,学号,班级,小组长等。且选题一旦保存就不能再更改。(2)学生可以修改自己密码。可以查询自己选题状况。学生可以查询自己课程设计成绩。(3)学生在课程设计各个阶段工作报告上传至该系统。(4)教师使用姓名和工资号(密
4、码)登陆后,可以查看学生选题状况;可以查看学生设计报告,填写学生项目进度状况,并且给出最后分数。(5)教师可以修改自己密码。教师把课程设计题目,学习资料等上传到该系统。(6)其她使用该系统人,可以以客户身份登陆浏览。2、小型超市管理系统(1)、零售前台(POS)管理系统,本系统必要具备如下功能:商品录入:依照超巿业务特点制定有关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精准或模糊商品扫描录入。该扫描录入办法可以充分保证各种电脑操作水平层次人员均能精确迅速地进行商品扫描录入。收银业务:通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量方式)自动计算本次交易总金额
5、。在顾客付款后,自动计算找零,同步打印交易清单(涉及交易流水账号、每类商品商品名、数量、该类商品总金额、交易时间、负责本次收银员工号)。如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品所有实行95折优惠,并将所购物品总金额合计到该会员总消费金额中。会员卡有效期限为一年,满一年未续卡者,该会员卡将被注销。安全性:OS登陆、退出、换班与操作锁定等权限验证保护;断电自动保护最大限度防止意外及恶意非法操作。独立作业:有断网收银即在网络服务器断开或网络不通状况下,收银机仍能正常作业(2)、后台管理系统,本系统必要具备如下功能进货管理:依照销售状况及库存状况,自动制定进货筹划(亦可
6、手工制定修改),可以避免盲目进货导致商品积压。按筹划单有选取性地进行自动入库登记。综合查询打印筹划进货与入库记录及金额。销售管理:商品正常销售、促销与限量、限期及禁止销售控制。综合查询各种销售明细记录、各地收银员收银记录以及交结账状况等。按各种方式记录生成销售排行榜,灵活察看和打印商品销售日、月、年报表。库存管理:综合查询库存明细记录。库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。库存自动盘点计算。人员管理:员工、会员、供货商、厂商等基本信息登记管理。员工操作权限管理。客户销售权限管理。3、设备管理系统系统重要功能在本系统主界面中,咱们可以看到七个系
7、统菜单和各种功能模块按钮,为了增长本系统安全时,一方面需要验证,只有在登录界面上输入对的顾客名和密码,获得相应权限才干登陆本系统使用。下面分别阐述本系统各个功能模块作用:系统登陆:顾客登陆模块之后,就进入本登陆界面,顾客需要如上所述对的顾客名和密码之后才干使用本系统。购买管理:涉及购入设备数量,购入日期,购买经费,经手人员,设备号,设备名。转借管理:重要涉及转借设备号,转借设备名,经手人,借出日期,归还日期。维修管理:维修日期,维修人员,维修经费,设备名,设备号。库存管理:涉及现存设备数量,设备号,设备名,设备状态。报废管理:报废日期,设备名,设备号,批准人。顾客管理:涉及查询设备数据信息与顾
8、客登陆系统和修改密码。其中修改密码:密码是一种管理系统正常运营一种重要保障,在本处,只有管理员才可以进行操作,并可以依照不同系统状况对系统顾客进行增长和删除等工作。退出系统:退出本系统,恢复系统实始状态。4、学生信息管理系统学生信息管理系统具备如下功能:学籍管理:对学生信息档案进行管理,重要涉及学生档案信息修改、删除、添加、档案查询及档案输出等,其中档案查询可以依照学号、姓名查询需要信息;档案输出可以输出学生档案、成绩、课程表等。学生档案记录重要涉及:学号、姓名、出生日期、年龄、性别、政治面貌、入学时间、个人简介、照片、家庭住址、邮编、所在系别以及所学专业等字段。成绩管理:对学生成绩进行管理,
9、重要就是成绩查询,成绩查询可以按学号、姓名进行查询。成绩记录重要涉及:学期、学号、姓名、课程号以及成绩字段等。课程管理:学生可以通过该模块进行课程表查看、打印课程表。选修课选取:对学生报选修课进行管理,学生可以对自己爱慕课程进行选取。系统维护:教师对学生密码进行管理,重要涉及增长新顾客和顾客修改。其中顾客修改可以实现对学生密码修改和学生顾客名删去。系统辅助工具:通过该模块顾客可以打开某些辅助工具,如记事本和记事本。退出系统:离开本学生信息管理系统。5、公司工资管理系统公司工资管理系统重要功能公司工资管理系统重要任务是用计算机对各种工资信息进行寻常管理,如查询、修改、增长、删除以及存储等,迅速精
10、确地完毕各种工资信息记录计算和汇总工作,迅速打印出工资报表,针对系统服务对象详细规定,设计了公司工资管理系统。公司工资管理系统重要有如下几大功能:(1)对单位人员变动进行解决。一种单位职工不会是一成不变,总是在不断变化:有调出、有调入、也有职工在本单位内部调动。因而,设计系统是应考虑到这些状况。(2)对职工工资进行计算、修改。可以对职工工资档案进行个别、某些和批量修改,同步,能对各职工工资进行计算,即计算应发金额、应扣金额及实发金额等。(3)查询记录功能。规定即可以单项查询,例如查看某个职工工资状况等;也可以多项查询,例如某部门工资数在某一范畴职工工资状况等。(4)报表打印功能。每月发放工资时
11、,规定可以打印本月工资表、随工资发给每个职工工资条以及工资登记表。6、学生选课系统选课系统要实现学生选课基本功能,涉及学生退选课,查看自己选课信息;教师查看选课学生信息,提交成绩;管理员添加学生、管理学生、管理成绩、添加教师、管理教师和管理课程等。三、任务分派任务负责人参加人备注需求分析总体设计详细设计系统实现与测试四、进度筹划序号设计内容名称完毕时间备注1分组及拟定题目4学时2初步需求分析与设计建模83详细需求分析与设计建模84核心模块实现与测试125编写课程设计报告86验收检查及评估成绩8五、设计成果规定1 建立系统分析与设计模型;2 初步建立系统原型,实现核心功能;3 编写课程设计报告。
12、六、考核方式1 模型及代码检查占50%。2 设计报告占50%。指引教师: 陈千 日 期: 年 8 月 19 日软件工程课程设计 成 绩 评估一、指引教师评语二、成绩学号姓名成绩备注 指引教师: 日 期: 年 月 日摘要:本系统实现学生选课基本功能,涉及学生退选课,查看自己选课信息;教师查看选课学生信息,提交成绩;管理员添加学生、管理学生、管理成绩、添加教师、管理教师和管理课程等。系统运用.Net平台技术进行开发,实现学生选课动态管理,使得对信息管理更加及时、高效,提高了效率。同步还对系统开发原理、功能特点和设计方案进行了简介。核心词:学生选课 数据库 管理 ASP.NET一、课程设计目与规定通
13、过软件开发实践训练,进一步掌握软件工程办法和技术,提高软件开发实际能力,培养工程设计能力和综合分析、解决问题能力。详细如下:1. 学习和实践在分析和设计计算机应用系统所需要知识,涉及面向对象系统分析与设计,编码和测试方面知识;2. 熟悉自动化软件开发工具Rational Rose ,并将其运用于软件开发全过程;3. 进一步加强和提高软件工程文档编写能力;4. 培养协作能力和团队精神。二、设计正文1 概述1.1课题题目:学生选课系统1.2系统重要目的:本系统目的是实现选课系统所需各种基本功能,涉及学生选课、退课功能和教师查看选修课程、提交课程成绩功能以及管理员添加学生、维护学生信息、成绩管理、添
14、加教师、维护教师信息、维护选修课程,尚有公用修改密码等功能。1.3 系统开发环境及运营环境:操作系统: Windows XP Pro SP2建模工具: Rational Rose 数据库系统:SQL Server开发工具: Visual Studio Web服务器:IIS+ASP.NET 2.0平台2 系统需求分析学生选课系统重要满足来自三方面需求,这三个方面分别是学生顾客、教师顾客和管理员顾客,也即是三类顾客角色。(1)学生顾客是重要需求者,重要需求功能是查询可选课程、查看自己选课状况及进行选课、退课操作等;(2)教师顾客重要需求功能是查看自己所专家课程、课程有哪些学生选修、以及运用本系统提
15、交学生成绩;(3)管理员顾客功能需求较为复杂,涉及对学生信息、教师信息、课程信息进行管理。在学生信息管理子模块中,实现对学生信息添加、修改、删除操作,还可以输入查询条件进行查询操作。在教师管理子模块中,实现对教师信息添加、修改、删除、查询等操作。在课程管理子模块中,实现对课程信息添加,添加时为其分派任课教师、上学时间和地点,实现对课程修改、删除、查看某个课程详细信息等。本系统将管理员顾客、教师顾客、学生顾客身份及权限进行严格划分,让管理员拥有最高权限,可以查看、维护系统中所有信息,如添加学生,添加课程,修改课程信息等;让教师拥有查看自己开设课程信息,以及提交所开设课程成绩权限;让学生拥有选课和
16、退选权限;而修改密码模块权限每个顾客都可拥有,用以修改自己密码信息。通过进行严格权限划分,可以更好地进行管理,也可更好地保护顾客信息安全。2.1 用例图图2-1 学生选课系统用例图用例图阐明:(1)系统外部角色有:学生顾客、教师顾客和管理员。(2)系统重要用例文档描述:学生管理用例:学生顾客可见功能,包括了选课、退课和查看选课三个用例功能。教师管理用例:教师顾客可见功能,包括了查看学生选课和提交成绩两个用例功能。信息管理用例:管理员可见功能,这个用例进一步分为三个用例:学生信息管理用例、教师信息管理用例和课程信息管理用例。学生信息管理用例:信息管理用例可见功能,实现学生信息管理功能,包括了添加
17、学生、修改学生信息和删除学生三个用例。教师信息管理用例:信息管理用例可见功能,实现教师信息管理功能,包括了添加教师、修改教师信息和删除教师三个用例。课程信息管理用例:信息管理用例可见功能,实现课程信息管理功能,包括了添加课程、修改课程信息和删除课程三个用例。修改密码用例:所有顾客都可见功能,用于修改顾客密码信息。(3)系统用例之间关系:学生管理用例与选课、查看选课、退课三用例之间是包括关系。教师管理用例与查看学生选课、提交成绩两用例之间是包括关系。信息管理用例与学生信息管理用例、教师信息管理用例和课程信息管理用例之间是包括关系。学生信息管理用例与添加学生、修改学生信息和删除学生三个用例之间是包
18、括关系。教师信息管理用例与添加教师、修改教师信息和删除教师三个用例之间是包括关系。课程信息管理用例与添加课程、修改课程信息和删除课程三个用例之间是包括关系。(4)系统核心用例正常事件流图和异常事件流图表2-1 修改密码用例正常事件流图和异常事件流图用例名称修改密码参加者管理员、教师、学生描述管理员、教师、学生顾客进行密码修改启动单击“修改密码”链接前置条件顾客成功登录主事件流顾客系统1.进入顾客修改密码界面,输入旧密码一次 ,新密码两次2.系统检查密码格式与否相符3.系统检查旧密码与否对的4.如果对的,进行密码修改,转入密码修改成功界面异常流异常流密码检查未通过系统返回密码修改界面,提示旧密码
19、不对的,新密码格式不符,两次不同等密码异常顾客旧密码错误表2-2 提交成绩用例正常事件流图和异常事件流图用例名称提交成绩用例参加者教师顾客描述提交选自己开设课程学生成绩启动进入提交成绩界面前置条件顾客成功登录后置条件尚未提交过成绩主事件流顾客系统1.单击提交成绩2.系统提交成绩页面3.填写学生成绩,单击提交成绩 5.更新学生成绩,提示提交成功异常流异常流顾客已经提交过该门课程成绩系统提示该课程成绩已提交,不能再次提交2.2 类图图2-2 学生选课系统类图类图阐明:(1)BaseUser类是一种系统角色顾客基类,重要办法有两个:modifyPWD() 用于修改顾客密码;loginCheck()
20、用于顾客登录验证。(2)Admin类继承自BaseUser类。(3)Student类继承自BaseUser类,重要办法有:studentAdd() 用于添加学生;studentDel() 用于删除学生;studentUpdate() 用于更新学生信息;getStudents() 用于获取学生列表。(4)Teacher类继承自BaseUser类,重要办法有:teacherAdd() 用于添加教师;teacherDel() 用于删除教师;teacherUpdate() 用于更新教师信息;getTeachers() 用于获取教师列表。(5)Course类是一种课程类,重要办法有:courseAdd(
21、) 用于添加课程;courseDel() 用于删除课程;courseUpdate() 用于修改课程信息;getCourses() 用于获取课程列表。(6)Elect类是一种选课表类,重要办法有:elect() 选修课程;electDel() 退选课程;getElectInfo() 获取选课信息;haveSubmit() 检测与否已提交过成绩;submitScore() 提交成绩。2.3 顺序图(1) 管理员修改课程信息顺序图图2-3 管理员修改课程信息顺序图(2) 学生顾客退选课顺序图图2-4 学生顾客退选课顺序图(3) 教师提交成绩顺序图图2-5 教师提交成绩顺序图2.4 协作图(可选)(1
22、) 学生顾客选课协作图图2-6 学生顾客选课协作图(2) 教师提交成绩协作图图2-7 教师提交成绩协作图3 系统总体设计3.1 设计问题域子系统学生选课系统是实现学生选课退课、教师提交成绩以及学校教务管理员维护信息一种平台,整个学生选课系统有前台和后台两某些,共分为4个模块:管理员模块,教师模块,学生模块和公有模块,分别用于完毕各自功能。如下为学生选课系统总体设计图和各功能模块阐明:(1)总体设计图学生选课系统前台模块后台模块学生登录模块教师登录模块学生解决模块教师解决模块管理员解决模块公共模块管理员登录模块图3-1学生选课系统总体设计图(2)各模块功能表3-1 学生选课系统功能模块表功能模块
23、包括子功能模块功能管理员模块学生管理子模块对学生信息添加、修改,删除操作教师管理子模块对教师添加,修改,删除,查询操作课程管理子模块对课程添加,添加时为其分派任课教师,上学时间和地点,实现对课程修改,删除,查看某个课程详细信息等教师模块实现查看自己所专家课程,课程有哪些学生选修,以及运用本系统提交学生成绩学生模块实现学生选课,查看所选课程,修改自己选课信息公有模块实现顾客身份验证,密码修改,退出系统等功能3.2 设计数据管理子系统(1)数据库表表3-2 数据库表序号数据库表数据表存储内容1Student存储学生信息2Teacher存储教师信息3Users存储管理员信息4Elect存储选课信息5
24、Cource存储课程信息6Depart存储学校系院信息(2)数据表之间关系图3-2 数据表之间关系图(3)数据库表构造学生表Student详细数据字段:表3-3 Student学生顾客表序号字段名字段类型阐明备注1stuIDnvarchar(20)not null学生学号核心字2stuPwdnvarchar(20)not nul学生密码3stuNamenvarchar(20)not nul学生姓名4stuDepartInt学生系院号5stuGradeint学生年级6stuClassint学生班级教师表Teacher详细数据字段:表3-4 Teacher教师顾客表序号字段名字段类型阐明备注1te
25、aIDnvarchar(20)not null教师编号核心字2teaPwdnvarchar(20)not null教师密码3teaNamenvarchar(100)not null教师姓名4teaDepartInt(4)教师系院号课程表Course详细数据字段:表3-5 Cource课程信息表序号字段名字段类型阐明备注1courseIDnvarchar(20)not null课程编号核心字2teaIDnvarchar(20)not null教师编号核心字3courseNamenvarchar(100) not null课程名称4courseTimenvarchar(20)上学时间5course
26、Addressnvarchar(50)上课地点6courseInfoText课程简介选课表Elect详细数据字段:表3-6 Elect选课信息表序号字段名字段类型阐明备注1stuIDnvarchar(20)not null学生学号核心字2courseIDnvarchar(20)not null课程编号核心字3teaIDnvarchar(20)not null教师编号核心字4Scoreint课程成绩系统管理员表Users详细数据字段:表3-7 Users管理员表序号字段名字段类型阐明备注1adminNamenvarchar(20)not null系统管理员顾客名核心字2adminPwdnvarc
27、har(20)系统管理员密码系院表Depart详细数据字段:表3-8 Depart系院表序号字段名字段类型阐明备注1departIDInt not null系院号核心字2departNamenvarchar(100)系院名称3.3 设计人机交互子系统(1)顾客分类本系统顾客可分为三类:管理员顾客;教师顾客;学生顾客。(2)顾客描述管理员顾客描述:管理员顾客在整个选课系统中起到管理和维护作用,对学生和教师信息进行管理和维护以及开设课设等职责。教师顾客描述:教师顾客在本系统中具备管理选修了自己开设课程学生权限,查看选修了自己开设课程学生信息有及提交学生成绩。学生顾客描述:选课系统重要是针对管理学生
28、,学生在本系统中具备修改自己信息,以及选课和退选功能。(3)设计命令层次系统人机交互子系统内容和准则:本学生选课系统人机交互子系统在依照不同顾客身份登陆到不同页面,然后按照不同顾客只能进行顾客权限内操作,其构造图如下:主系统界面学生顾客界面教师顾客界面管理员顾客界面图3-3 人机交互子系统构造图通过采用树形构造,细化命令组织方式,如下:主系统界面管理员顾客学生顾客教师顾客选课查看选课学生管理教师管理课程管理查看选课信息提交成绩退课添加学生修改学生信息删除学生添加教师修改教师信息删除信息添加课程修改课程信息删除课程图3-4 细化命令组织方式4 详细设计学生选课系统是实现学生网上选课、教师提交成绩
29、以及学校教务管理员维护信息一种平台,整个学生选课系统共分为4个大模块:管理员模块,教师模块,学生模块和公有模块,其中复杂办法和模块详细设计流程图如下。4.1系统顾客登录流程图开始输入顾客名、密码验证顾客名、密码提示顾客登录失败进入相应顾客页面选取有关管理操作安全退出系统验证对的结束是否图4-1 系统顾客登录流程图4.2 顾客密码修改流程图开始输入顾客旧密码、新密码验证顾客密码与否合法输入不合法,重新输入修改顾客密码提示修改成功与否合法?结束图4-2 顾客密码修改流程图是否4.3教师提交成绩流程图开始点击成绩提交填写学生成绩提示已提交,不能再提交点击提交提交成绩,并提示成功检查与否已提交过确认提
30、交?结束是否否是图4-3教师提交成绩流程图4.4管理员添加课程流程图开始退出转到添加课程填写课程信息点击添加填写编号提示重新填写编号添加课程提示添加成功课程编号与否重复?否是图4-4 管理员添加课程流程图4.5学生选修课程流程图开始结束点击选修选修成功更新选、退课课表提示时间冲突,不能选修上学时间冲突继续选课?是否是否图4-5 学生选修课程流程图5 系统实现本系统采用了三层架构来实现,即分为顾客界面层(UI)、业务逻辑层(BLL)和数据访问层(DAL),顾客界面层是展示给顾客界面,以便顾客与系统进行交互;业务逻辑层是对系统业务实体封装,完毕系统业务功能;数据访问层直接与数据库打交道,为业务逻辑
31、层提供底层数据库操作。5.1 Database类重要是与数据库连接,提供数据库操作功能,代码如下:namespace MyElectCourse.DAL public class Database protected string connectionString; protected SqlConnection connection = null; public Database() connectionString = ConfigurationManager.ConnectionStringsConnectionString.ConnectionString.ToString(); Da
32、tabase() if (connection != null) connection = null; protected void Open() if (connection = null) connection = new SqlConnection(connectionString); if (connection.State.Equals(ConnectionState.Closed) connection.Open(); protected void Close() if (connection != null) connection.Close(); public int Exec
33、uteSQL(string sqlstr) int count = -1; this.Open(); SqlCommand cmd = new SqlCommand(sqlstr,connection); count = cmd.ExecuteNonQuery(); this.Close(); return count; public DataSet GetDataSet(string sqlstr) this.Open(); DataSet ds = new DataSet(); SqlDataAdapter adapter = new SqlDataAdapter(sqlstr,conne
34、ction); adapter.Fill(ds); this.Close(); return ds; public DataTable GetDataTable(string sqlstr) DataSet ds = this.GetDataSet(sqlstr); DataTable dt = new DataTable(); if (ds.Tables.Count 0) dt = ds.Tables0; return dt; public SqlDataReader GetDataReader(string sqlstr) this.Open(); SqlCommand cmd = new
35、 SqlCommand(sqlstr,connection); SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); /this.Close(); return sdr; 5.2 UserBase类是所有系统角色顾客基类,完毕顾客登录验证与修改密码功能,代码如下:namespace MyElectCourse.BLL public class UserBase private string userID; public string UserID get return userID; set userID
36、 = value; private string userPSW; public string UserPSW get return userPSW; set userPSW = value; public string loginCheck(string uid,string upwd,string urole) String selectStr = String.Empty; switch (urole) case 0: /身份为教师时 selectStr = Select * from Teacher where teaID = + uid + ; break; case 1: /身份为
37、学生时 selectStr = Select * from Student where stuID = + uid + ; break; case 2: /身份为管理员时 selectStr = Select * from Users where adminName = + uid + ; break; default: return null; Database db = new Database(); DataTable dt = db.GetDataTable(selectStr); if (dt.Rows.Count 0) /如果该顾客存在 if (dt.Rows01.ToString().Equals(upwd) /密码对的