《软件工程课程设计报告(学生选课系统)frku.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计报告(学生选课系统)frku.docx(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工工程课课程设计计任 务务 书书一、 目目的、要要求通过软件件开发的的实践训训练,进进一步掌掌握软件件工程的的方法和和技术,提提高软件件开发的的实际能能力,培培养工程程设计能能力和综综合分析析、解决决问题的的能力。具体如下下:1. 学习和实实践在分分析和设设计计算算机应用用系统所所需要的的知识,包括面面向对象象的系统统分析与与设计,编码和和测试方方面的知知识;2. 熟悉自动动化的软软件开发发工具RRatiionaal RRosee 20003,并并将其运运用于软软件开发发的全过过程;3. 进一步加加强和提提高软件件工程文文档的编编写能力力;4. 培养协作作能力和和团队精精神。二、 主主要内
2、容容1 课题题目目:学生选选课系统统,本系系统要实实现学生生选课的的基本功功能,包包括学生生退选课课,查看看自己的的选课信信息;教教师查看看选课学学生的信信息,提提交成绩绩;管理理员添加加学生、管管理学生生、管理理成绩、添添加教师师、管理理教师和和管理课程程等。2 运用面向向对象技技术、UUML及及可视化化的建模模工具完完成系统统的需求求分析与与设计。3 使用Raatioonall Roose作作为需求求分析与与设计的的建模工工具,包包括静态态建模和和动态建建模,并并利用对对象模型型自动生生成数据据模型,自动建建立数据据库。4 采用分层层模式的的应用设设计模式式进行系系统的设设计实现现。5 系
3、统要实实现四个个模块功功能:教教师模块块、学生生模块、管管理员模模块和公公用模块块。6 初步建立立系统原原型,实实现关键键的功能能,并对对系统进进行测试试。7 编写课程程设计报报告。三、任务务分配任务负责人参与人备注需求分析析潘贵生李英龙 刘罡 吴志志浩总体设计计刘罡李英龙 潘贵生生 吴志志浩详细设计计吴志浩李英龙 刘罡 潘贵贵生系统实现现与测试试李英龙潘贵生 刘罡 吴志志浩四、 进进度计划划序号设计内容容名称完成时间间备注1分组及确确定题目目20088.6.232初步的需需求分析析与设计计建模20088.6.236.253详细的需需求分析析与设计计建模20088.6.266.2274关键模块
4、块的实现现与测试试20088.6.307.225编写课程程设计报报告20088.7.27.36验收检查查及评定定成绩20088.7.4五、 设设计成果果要求1 建立系统统分析与与设计模模型;2 初步建立立系统原原型,实实现关键键的功能能;3 编写课程程设计报报告。六、 考考核方式式1 模型及代代码检查查占50%。2 设计报告告占50%。指导教师师: 马素霞霞日 期: 20008 年 6 月23 日软件工工程课课程设计计成绩 评评定一、 指指导教师师评语二、 成成绩学号姓名成绩备注1051122003088李英龙1051122003166潘贵生1051122003111刘罡10511220032
5、11吴志浩指导教师师: 日 期: 年 月月 日摘要:本系统实实现学生生选课的的基本功功能,包包括学生生退选课课,查看看自己的的选课信信息;教教师查看看选课学学生的信信息,提提交成绩绩;管理理员添加加学生、管管理学生生、管理理成绩、添添加教师师、管理理教师和和管理课程程等。系系统利用.Neet平台台技术进行行开发,实实现学生生选课的动动态管理理,使得得对信息息的管理理更加及及时、高高效,提提高了效效率。同同时还对系统统的开发发原理、功功能特点点和设计计方案进进行了介介绍。关键词:学生选课课 数数据库 管理理 AASP.NETT一、课程程设计的目目的与要要求通过软件件开发的的实践训训练,进进一步掌
6、掌握软件件工程的的方法和和技术,提提高软件件开发的的实际能能力,培培养工程程设计能能力和综综合分析析、解决决问题的的能力。具体如下下:1. 学习和实实践在分分析和设设计计算算机应用用系统所所需要的的知识,包括面面向对象象的系统统分析与与设计,编码和和测试方方面的知知识;2. 熟悉自动动化的软软件开发发工具RRatiionaal RRosee 20003,并并将其运运用于软软件开发发的全过过程;3. 进一步加加强和提提高软件件工程文文档的编编写能力力;4. 培养协作作能力和和团队精精神。二、设计计正文1 概述1.1课课题题目目:学生选课课系统1.2系系统的主主要目标标:本系统目目标是实实现选课课
7、系统所所需的各各种基本本功能,包括学生选课、退课功能和教师查看选修课程、提交课程成绩功能以及管理员添加学生、维护学生信息、成绩管理、添加教师、维护教师信息、维护选修课程,还有公用的修改密码等功能。1.3系系统的开开发环境境及运行行环境:操作系统统:Winddowss XPP Prro SSP2建模工具具:Raatioonall Roose 20003数据库系系统:SSQLSServver220000开发工具具:Viisuaal SStuddio 20005Web服服务器:IISS+ASSP.NNET 2.00平台2 系统需求求分析学生选课课系统主主要满足足来自三三方面的的需求,这这三个方方面分
8、别别是学生生用户、教教师用户户和管理理员用户户,也即即是三类类用户角角色。(1)学学生用户户是主要要的需求求者,主主要需求求功能是是查询可可选课程程、查看看自己选选课情况况及进行行选课、退退课操作作等;(2)教教师用户户主要需需求功能能是查看看自己所所教授的的课程、课课程有哪哪些学生生选修、以以及利用用本系统统提交学学生的成成绩;(3)管管理员用用户的功功能需求求较为复复杂,包包括对学学生信息息、教师师信息、课课程信息息进行管管理。在在学生信信息管理理子模块块中,实实现对学学生信息息的添加加、修改改、删除除操作,还还可以输输入查询询条件进进行查询询操作。在在教师管管理子模模块中,实实现对教教师
9、信息息的添加加、修改改、删除除、查询询等操作作。在课课程管理理子模块块中,实实现对课课程信息息的添加加,添加加时为其其分配任任课教师师、上课课时间和和地点,实实现对课课程的修修改、删删除、查查看某个个课程的的详细信信息等。本系统将将管理员员用户、教教师用户户、学生生用户的的身份及及权限进进行严格格的划分分,让管管理员拥拥有最高高权限,可可以查看看、维护护系统中中的所有有信息,如如添加学学生,添添加课程程,修改改课程信信息等;让教师师拥有查查看自己己开设的的课程的的信息,以以及提交交所开设设课程成成绩的权权限;让让学生拥拥有选课课和退选选的权限限;而修修改密码码模块的的权限每每个用户户都可拥拥有
10、,用用以修改改自己的的密码信信息。通通过进行行严格的的权限划划分,可可以更好好地进行行管理,也也可更好好地保护护用户信信息安全全。2.1 用例图图2-11 学生生选课系系统用例例图用例图说说明:(1)系系统的外外部角色色有:学学生用户户、教师师用户和和管理员员。(2)系系统主要要用例的的文档描描述:学生管管理用例例:学生生用户可可见的功功能,包包含了选选课、退退课和查查看选课课三个用用例功能能。教师管管理用例例:教师师用户可可见的功功能,包包含了查查看学生生选课和和提交成成绩两个个用例功功能。信息管管理用例例:管理理员可见见的功能能,这个个用例进进一步分分为三个个用例:学生信信息管理理用例、教
11、教师信息息管理用用例和课课程信息息管理用用例。学生信信息管理理用例:信息管管理用例例可见的的功能,实实现学生生信息的的管理功功能,包包含了添添加学生生、修改改学生信信息和删删除学生生三个用用例。教师信信息管理理用例:信息管管理用例例可见的的功能,实实现教师师信息的的管理功功能,包包含了添添加教师师、修改改教师信信息和删删除教师师三个用用例。课程信信息管理理用例:信息管管理用例例可见的的功能,实实现课程程信息的的管理功功能,包包含了添添加课程程、修改改课程信信息和删删除课程程三个用用例。修改密密码用例例:所有有用户都都可见的的功能,用用于修改改用户的的密码信信息。(3)系系统用例例之间的的关系:
12、学生管管理用例例与选课课、查看看选课、退退课三用用例之间间是包含含关系。教师管管理用例例与查看看学生选选课、提提交成绩绩两用例例之间是是包含关系系。信息管管理用例例与学生生信息管管理用例例、教师师信息管管理用例例和课程程信息管管理用例例之间是是包含关系系。学生信信息管理理用例与与添加学学生、修修改学生生信息和和删除学学生三个个用例之之间是包包含关系系。教师信信息管理理用例与与添加教教师、修修改教师师信息和和删除教教师三个个用例之之间是包包含关系系。课程信信息管理理用例与与添加课课程、修修改课程程信息和和删除课课程三个个用例之之间是包包含关系系。(4)系系统关键键用例的的正常事事件流图图和异常常
13、事件流流图表2-11 修改改密码用用例的正正常事件件流图和和异常事事件流图图用例名称称修改密码码参与者管理员、教教师、学学生描述管理员、教教师、学学生用户户进行密密码修改改启动单击“修修改密码码”链接前置条件件用户成功功登录主事件流流用户系统1.进入入用户修修改密码码界面,输输入旧密密码一次次 ,新密密码两次次2.系统统检查密密码格式式是否相相符3.系统统检查旧旧密码是是否正确确4.如果果正确,进进行密码码修改,转转入密码码修改成成功界面面异常流异常流密码检查查未通过过系统返回密码码修改界界面,提提示旧密密码不正正确,新新密码格格式不符符,两次次不同等等密码异常用户旧密密码错误误表2-22 提
14、交交成绩用用例的正正常事件件流图和和异常事事件流图图用例名称称提交成绩绩用例参与者教师用户户描述提交选自自己开设设课程的的学生的的成绩启动进入提交交成绩界界面前置条件件用户成功功登录后置条件件尚未提交交过成绩绩主事件流流用户系统1.单击击提交成成绩2.系统统提交成成绩页面面3.填写写学生成成绩,单单击提交交成绩5.更新新学生成成绩,提提示提交交成功异常流异常流用户已经经提交过过该门课课程成绩绩系统提示该课课程成绩绩已提交交,不能能再次提提交2.2 类图图2-22 学学生选课课系统类类图类图说明明:(1)BBaseeUseer类是是一个系系统角色色用户的的基类,主主要方法法有两个个:modiif
15、yPPWD() 用于于修改用用户的密密码;logiinChheckk()用于于用户登登录验证证。(2)AAdmiin类继继承自BBaseeUseer类。(3)SStuddentt类继承承自BaaseUUserr类,主主要方法法有:studdenttAddd()用于于添加学学生;studdenttDell() 用用于删除除学生;studdenttUpddatee() 用用于更新新学生信信息;getSStuddentts() 用于于获取学学生列表表。(4)TTeaccherr类继承承自BaaseUUserr类,主主要方法法有:teaccherrAddd()用于于添加教教师;teaccherrDel
16、l()用于于删除教教师;teaccherrUpddatee() 用用于更新新教师信信息;getTTeaccherrs() 用于于获取教教师列表表。(5)CCourrse类类是一个个课程类类,主要要方法有有:courrseAAdd()用于添添加课程程;courrseDDel()用于于删除课课程;courrseUUpdaate() 用用于修改改课程信信息;getCCourrsess() 用用于获取取课程列列表。(6)EElecct类是是一个选选课表类类,主要要方法有有:elecct()选修课课程;elecctDeel() 退选选课程;getEElecctInnfo() 获获取选课课信息;havee
17、Subbmitt() 检测是是否已提提交过成成绩;submmitSScorre() 提交交成绩。2.3 顺序图(1)管管理员修修改课程程信息顺顺序图图2-33 管管理员修修改课程程信息顺顺序图(2)学学生用户户退选课课的顺序序图图2-44 学学生用户户退选课课的顺序序图(3)教教师提交交成绩顺顺序图图2-55 教教师提交交成绩顺顺序图2.4 协作图(可选)(1) 学生用用户选课课协作图图图2-66 学学生用户户选课协协作图(2) 教师提提交成绩绩协作图图图2-77 教教师提交交成绩协协作图3 系统总体体设计3.1 设计问问题域子子系统学生选课课系统是是实现学学生选课课退课、教教师提交交成绩以以
18、及学校校教务管管理员维维护信息息的一个个平台,整整个学生生选课系系统有前前台和后后台两部部分,共共分为44个模块块:管理理员模块块,教师师模块,学学生模块块和公有有模块,分分别用于于完成各各自的功功能。以以下为学学生选课课系统总总体设计计图和各各功能模模块说明明:(1)总总体设计计图学生选课系统前台模块后台模块学生登录模块教师登录模块学生处理模块教师处理模块管理员处理模块公共模块管理员登录模块图3-1学生选课系统总体设计图(2)各各模块功功能表3-11 学生生选课系系统功能能模块表表功能模块块包含子功功能模块块功能管理员模模块学生管理理子模块块对学生信信息的添添加、修修改,删删除操作作教师管理
19、理子模块块对教师的的添加,修修改,删删除,查查询操作作课程管理理子模块块对课程的的添加,添添加时为为其分配配任课教教师,上上课时间间和地点点,实现现对课程程的修改改,删除除,查看看某个课课程的详详细信息息等教师模块块实现查看看自己所所教授的的课程,课课程有哪哪些学生生选修,以以及利用用本系统统提交学学生的成成绩学生模块块实现学生生选课,查查看所选选课程,修修改自己己的选课课信息公有模块块实现用户户的身份份验证,密密码修改改,退出出系统等等功能3.2 设计数数据管理理子系统统(1)数数据库表表表3-22 数据据库表序号数据库表表数据表存存储的内内容1Studdentt存储学生生的信息息2Teac
20、cherr存储教师师的信息息3Userrs存储管理理员的信信息4Elecct存储选课课的信息息5Courrce存储课程程的信息息6Depaart存储学校校系院信信息(2)数数据表之之间的关关系图3-22 数数据表之之间的关关系图(3)数数据库表表结构学生表表Stuudennt的详详细数据据字段:表3-33 Sttudeent学学生用户户表序号字段名字段类型型说明备注1stuIIDnvarrchaar(220)nnot nulll学生学号号关键字2stuPPwdnvarrchaar(220)nnot null学生密码码3stuNNameenvarrchaar(220)nnot null学生姓名名
21、4stuDDepaartInt学生系院院号5stuGGraddeint学生年级级6stuCClasssint学生班级级教师表表Teaacheer的详详细数据据字段:表3-44 Teeachher教教师用户户表序号字段名字段类型型说明备注1teaIIDnvarrchaar(220)nnot nulll教师编号号关键字2teaPPwdnvarrchaar(220)nnot nulll教师密码码3teaNNameenvarrchaar(1100)nott nuull教师姓名名4teaDDepaartInt(4)教师系院院号课程表表Couursee的详细细数据字字段:表3-55 Coourcce课程程
22、信息表表序号字段名字段类型型说明备注1courrseIIDnvarrchaar(220)nnot nulll课程编号号关键字2teaIIDnvarrchaar(220)nnot nulll教师编号号关键字3courrseNNameenvarrchaar(1100) noot nnulll课程名称称4courrseTTimeenvarrchaar(220)上课时间间5courrseAAddrresssnvarrchaar(550)上课地点点6courrseIInfooTextt课程简介介选课表表Eleect的的详细数数据字段段:表3-66 Ellectt选课信信息表序号字段名字段类型型说明备注1
23、stuIIDnvarrchaar(220)nnot nulll学生学号号关键字2courrseIIDnvarrchaar(220)nnot nulll课程编号号关键字3teaIIDnvarrchaar(220)nnot nulll教师编号号关键字4Scorreint课程成绩绩系统管管理员表表Useers的的详细数数据字段段:表3-77 Usserss管理员员表序号字段名字段类型型说明备注1admiinNaamenvarrchaar(220)nnot nulll系统管理理员用户户名关键字2admiinPwwdnvarrchaar(220)系统管理理员密码码系院表表Deppartt的详细细数据字字
24、段:表3-88 Deeparrt系院院表序号字段名字段类型型说明备注1depaartIIDInt nott nuull系院号关键字2depaartNNameenvarrchaar(1100)系院名称称3.3 设计人人机交互互子系统统(1)用用户分类类本系统的的用户可可分为三三类:管理员员用户;教师用用户;学生用用户。(2)用用户描述述管理员员用户的的描述:管理员用用户在整整个选课课系统中中起到管管理和维维护的作作用,对对学生和和教师的的信息进进行管理理和维护护以及开开设课设设等职责责。教师用用户的描描述:教师用户户在本系系统中具具有管理理选修了了自己开开设的课课程的学学生的权权限,查查看选修修
25、了自己己开设课课程的学学生信息息有及提提交学生生成绩。学生用用户的描描述:选课系统统主要是是针对管管理学生生的,学学生在本本系统中中具有修修改自己己的信息息,以及及选课和和退选的的功能。(3)设设计命令令层次系统的的人机交交互子系系统的内内容和准准则:本学生选选课系统统的人机机交互子子系统在在根据不不同的用用户身份份登陆到到不同的的页面,然然后按照照不同的的用户只只能进行行用户权权限内的的操作,其其结构图图如下:主系统界面学生用户界面教师用户界面管理员用户界面图3-3 人机交互子系统结构图通过采采用树形形结构,细细化命令令的组织织方式,如如下:主系统界面管理员用户学生用户教师用户选课查看选课学
26、生管理教师管理课程管理查看选课信息提交成绩退课添加学生修改学生信息删除学生添加教师修改教师信息删除信息添加课程修改课程信息删除课程图3-4 细化命令组织方式4 详细设计计学生选课课系统是是实现学学生网上上选课、教教师提交交成绩以以及学校校教务管管理员维维护信息息的一个个平台,整整个学生生选课系系统共分分为4个个大模块块:管理理员模块块,教师师模块,学学生模块块和公有有模块,其其中复杂杂的方法法和模块块的详细细设计流流程图如如下。4.1系系统用户户登录流流程图开始输入用户名、密码验证用户名、密码提示用户登录失败进入相应的用户页面选择相关管理操作安全退出系统验证正确结束是否图4-1 系统用户登录流
27、程图4.2 用户密密码修改改流程图图开始输入用户旧密码、新密码验证用户密码是否合法输入不合法,重新输入修改用户密码提示修改成功是否合法?结束图4-2 用户密码修改流程图是否4.3教教师提交交成绩流流程图开始点击成绩提交填写学生成绩提示已提交,不能再提交点击提交提交成绩,并提示成功检查是否已提交过确认提交?结束是否否是图4-3教师提交成绩流程图4.4管管理员添添加课程程流程图图开始退出转到添加课程填写课程信息点击添加填写编号提示重新填写编号添加课程提示添加成功课程编号是否重复?否是图4-4 管理员添加课程流程图4.5学学生选修修课程流流程图开始结束点击选修选修成功更新选、退课课表提示时间冲突,不
28、能选修上课时间冲突继续选课?是否是否图4-5 学生选修课程流程图5 系统实现现本系统采采用了三三层架构来实实现,即即分为用用户界面面层(UUI)、业业务逻辑辑层(BBLL)和和数据访访问层(DDAL),用户界面层是展示给用户的界面,方便用户与系统进行交互;业务逻辑层是对系统业务实体的封装,完成系统业务功能;数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库操作。5.1 Dattabaase类类主要是是与数据据库连接接,提供供数据库库操作功功能,代代码如下下:nameespaace MyEElecctCooursse.DDALpublliccclasssDaatabbasee prott
29、ecttedsstriing connnecctioonSttrinng;prottecttedSSqlCConnnecttionn coonneectiion = nnulll;publlic Dattabaase() cconnnecttionnStrringg = ConnfigguraatioonMaanagger.ConnnecctioonSttrinngsCoonneectiionSStriing.CConnnecttionnStrringg.TooStrringg(); DDataabasse() if (connnecctioon != nnulll) connnecctioo
30、n = nuull; prottecttedvvoidd Oppen() if (connnecctioon = nnulll) connnecctioon = neewSqqlCoonneectiion(connnecctioonSttrinng); if (connnecctioon.SStatte.EEquaals(ConnnecctioonSttatee.Clloseed) connnecctioon.OOpenn(); prottecttedvvoidd Cllosee() if (connnecctioon != nnulll) connnecctioon.CClosse(); p
31、ublliciint ExeecutteSQQL(sstriing sqllstrr) int couunt = -1;thiss.Oppen();SqlCCommmandd cmmd = neewSqqlCoommaand(sqllstrr, cconnnecttionn); ccounnt = cmmd.EExeccuteeNonnQueery();thiss.Cllosee();retuurn couunt; publlicDDataaSett GeetDaataSSet(strringg sqqlsttr) thiss.Oppen();DataaSett dss = newwDatta
32、Seet();SqlDDataaAdaapteer aadappterr = newwSqllDattaAddaptter(sqllstrr,coonneectiion); aadappterr.Fiill(ds);thiss.Cllosee();retuurn ds; publlicDDataaTabble GettDattaTaablee(sttrinng ssqlsstr) DataaSett dss = thiis.GGetDDataaSett(sqqlsttr);DataaTabble dt = nnewDDataaTabble();if (ds.Tabbless.Coountt 0
33、) dt = dds.TTablles0; retuurn dt; publlicSSqlDDataaReaaderr GeetDaataRReadder(strringg sqqlsttr) thiss.Oppen();SqlCCommmandd cmmd = neewSqqlCoommaand(sqllstrr, cconnnecttionn);SqlDDataaReaaderr sddr = cmmd.EExeccuteeReaaderr(CoommaandBBehaavioor.CClosseCoonneectiion);/thhis.Cloose();retuurn sdrr; 5.
34、2 UseerBaase类类是所有有系统角角色用户户的基类类,完成成用户登登录验证证与修改改密码的的功能,代代码如下下:nameespaace MyEElecctCooursse.BBLLpublliccclasssUsserBBasee privvateestrringg usserIID;publlicsstriing UseerIDD get rretuurn useerIDD; set uuserrID = vvaluue; privvateestrringg usserPPSW;publlicsstriing UseerPSSW get rretuurn useerPSSW; set
35、 uuserrPSWW = vallue; publlicsstriing logginCChecck(sstriing uidd, sstriing upwwd, strringg urrolee) Striing sellecttStrr = Strringg.Emmptyy;swittch (urrolee) casee0: /身份份为教师师时 seelecctSttr = SSeleect * ffromm Teeachher wheere teaaID = + uiid + ;breaak;casee1: /身份份为学生生时 seelecctSttr = SSeleect * ffr
36、omm Sttudeent wheere stuuID = + uiid + ;breaak;casee2: /身份份为管理理员时 seelecctSttr = SSeleect * ffromm Usserss whheree addminnNamme = + uidd + ;breaak;defaaultt:retuurnnnulll; Dataabasse ddb = neewDaatabbasee();DataaTabble dt = ddb.GGetDDataaTabble(sellecttStrr);if (dt.Rowws.CCounnt 0) /如果果该用户户存在 if (dt
37、.Rowws0011.TToSttrinng().Eqqualls(uupwdd) /密码码正确 swittch (urrolee) casee0: /身份份为教师师时retuurn0;casee1: /身份份为学生生时retuurn1;casee2: /身份份为管理理员时retuurn2;defaaultt:retuurnnnulll; elsee/密码码错误,给给出提示示信息! retuurn-1; elsee/用户户不存在在或用户户名输入入错误 retuurn-2; publlicsstriing moddifyyPWDD(Sttrinng uurolle, Strringg uiid, Strringg olldPwwd, Strringg neewPwwd) Striing upddateeStrr = Strringg.Emmptyy;swittch (urrolee) casee0: /身份份为教师师时 uppdatteSttr = uupdaate Teeachher sett teeaPwwd= + neewPwwd + whheree teeaIDD= + uidd + ;breaak;casee
限制150内