选课管理系统需求性分析计算机师范2班王子健学号:2010101089一.需求分析1.引言1.1编写目的分析选课系统所需要的功能、运行环境及开发环境,并对系统做出初步的设计。1.2设计背景项目名称:选课管理系统。项目提出者:鄢德英。项目设计人员:杨鑫、黄新宇。项目使用者:高校教师和学生。1.3参考资料《数据库系统概论》《软件工程实践者的研究方法》《ASP.NET+SQLServer-数据库开发与实例》《SQLServer2005从入门与精通(应用技术基础)》1.4开发环境开发软件:Powerbuilder9.0数据库软件:MicrosoftSQLServer2000开发环境:WindowsXP2.任务概述2.1目标2.1.1为解决高校学生选课问题,本系统创建了管理员、教师、学生类用户,设置不同的权限,完成选课功能。2.1.2管理员创建教师和学生用户,并对其他用户进行管理。管理员可查询、删除、修改、插入其他用户。2.1.3教师可查询信息。2.1.42.2用户特点本系统是面向高校学生、教师和网络管理员的。对电脑都有一定的操作能力,根据菜单提示都能熟练使用本系统。3.需求规格3.1功能需求3.2性能需求3.2.1响应时间系统响应的最短时间要求3.2.2精度需求系统输入输出的精度要求3.3运行环境需求3.3.1软件环境操作系统及版本:Windows98及其以上系统支撑软件:无用户登录身份验证模块设置选课时间模块录入信息模块开设课程模块编辑程序时间地点模块评分模块查看课程模块选课和锁定模块数据库模块数据库访问模块数据库环境:无3.3.2硬件环境CPU:内存:外存:输入输出设备:现阶段所使用的计算机均可。二.可行性分析1.1课题调研1.1.1与实践活动和相关的文件和资料由教师提供。1.1.2本课题要求学生有熟练的ASP.NET开发能力,有较强的自学能力以及一定的关系数据库理论开发功底。1.1.3具有对复杂表进行处理的能力。1.1.4具体问题再做详细调查研究并与指导老师面谈。1.2可行性分析1.2.1技术可行性-----本系统仅需要一台装有Office软件的计算机即可,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求。对于软件技术要求,现在的程序设计语言已非常成熟,要运用HTML样式,图形图象制作工具来制作生动活泼的网页及美观的图形文件或动画文件,数据库使用SQLServer2000中提供的数据库桌面工具ODBC。1.2.2经济可行性-----由于本系统是为学生选课管理使用的系统,装上该应用软件,即可使用系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力,物力。所带来的效益远远大于系统软件的开发成本。在经济上完全可行。1.2.3操作可行性-----界面设计时充分考虑管理人员的习惯,使得操作简单;数据录入迅速、规范、可靠;统计准确;制表灵活;适应力强;容易扩充。第2章内容主要是:系统需求分析包括,现有系统介绍;系统的实体分析,实体关系图。三.系统分析在本系统中,有三类用户:系统管理员,教师和学生。三种不同的用户所具有的操作权限以及操作内容均不一样。本选课系统给予教师很大的自主权,系统管理员只负责向系统中添加学生和教师的个人信息以及教学楼教室信息。系统管理员不参与开设课程、选择课程等,一切均由教师、学生等录网站自行完成。系统管理员设置一个选课时间段,在到达时间段以前,教师可以开设课程;到达时间段以后,学生可以登陆网站选择课程。教师用户登陆网站后可以开设课程,为自己的课程编辑上课时间和地点,当系统中出现时间地点冲突的时候,系统向教师用户报告并推荐一个时间地点。每门课程可以是必修或则选修,教师为每门课程设置一个学分,并可以在课程结束后给予分数,如果学生及格,学生将获得该课程的学分。对于学生用户,每个学生除了必须选择必修课程外,至少还要选择两门选修课程,学生可以对自己选课信息锁定,以免不小心被修改。当时候超过选课时段后,系统自动锁定学生的选课课程。系统可以根据学生的选课信息,生成一份学生自己的课表。课程结束后学生可登录网站查询成绩与学分。根据上面的要求,从操作功能上可以分为两个类:一个是通用操作,主要实现用户的登录注销和修改密码等;另一种是为不同用户定制不同操作。1.通用操作1.1登录与注销每个用户都可以用自己的帐号登录系统。用户操作完成后推出系统,注销后可以重新登录系统。1.2修改密码每个用户第一次登录都用默认密码(教师和学生与帐号一样)。2.用户所具有功能2.1系统管理员设置选课时间段:系统管理员通过此项功能设置选课时段,只有在选课时间段里,学生才可以选择课程,超过次时间段,学生选课信息被自动所定,不得修改。录入学生与教师个人信息:通过此项功能可以实现对教师和学生的个人信息添加删除。录入教学楼教室信息:通过此项功能可以把学校里所有的教学楼教室的信息录入到系统中,以便教师在开设课程时候设置上课的教室。2.2教师用户显示和修改个人信息:教师用户登录系统后,可以查看和修改教师的个人信息,如姓名,职称等。开设课程:教师用户登录系统后,可以开设课程,可以设置该课程为必修课程或则选修课程,可以设置该课程的最大人数。教师还可以为该课程设置一个前导课程,若学生没有学习或则选择前导课程则不能选择该课程。编辑课程上课时间:教师在开设了课程后,可以灵活地设置上课时间和地点。给学生分数:课程结束后,教师用户登录系统,可以为学过课程的学生给予相应的成绩,若及格,给予学生学分。2.3学生用户显示和修改个人信息:学生登录系统后,可以查看和修改学生的个人信息,如姓名,性别,电话等。查看必修课程:学生登录后,可以查看所有的必修课程。查看该课程的信息,上课时间地点,开课教师信息等。选择选修课程:学生登录系统后,在所有选修课程中可以选择至少两门选修课程。同时可以查看相关信息。锁定选课信息:学生登录系统,确定了所选课程后,可以锁定自己的选课信息,以防被别人或则自己不小心修改。查看最终选课信息:学生登录系统后,可列出已选择的课程,若选课信息未被锁定,则可以退选,若所选课程少于两门,系统会提示选择的课程少于两门。查看学分和成绩课程结束后,学生登录系统可查看自己学习课程的成绩和已获的学分。四.数据库系统分析本系统的数据库实体主要有“学生”、“教师”、“课程”等。其中“教师”与“课程”存在“开设”联系,并且一个教师可以开设N门课程,即“教师”与“课程”之间是一对多的关系。同样“教学楼”与“教室”也存在一对多的关系。一个学生可以学习N门课程,一门课程可以有M个学生学习,即“学生”与“课程”之间是多对多的关系。同样“课程”与“教室”之间也是多对多的关系。整个数据库可以用一个E-R图表示,如图:E—R图中的实体图:教学楼教学楼ID教学楼名称教师1开设N课程选修学生教管理员教学楼上课地点时间属于NMM1教室教室ID教学楼ID教室名称学生登陆密码年龄姓名地址电子邮件学号性别学分电话课程课程名称学分最大人数课程简介开课教师编号课程编号前导课程编号选课学号课程编号成绩教师姓名年龄电话电子邮件性别教师编号个人简介课程编号上课时间开始周次上课教室ID结束周次课程时间地点管理员帐号密码五.数据库逻辑设计数据库逻辑设计就是将E—R图转换为关系模型的过程,即将所有实体和关系转换成一系列的关系模式。转换过程中常见规则有:5.1一个实体型转换为一个关系模式;5.2一个一对一的联系可转换成一个独立的关系模式,也可与任意一端对应的关系模式合并;5.3一个一对多的联系可以转换成一个独立的关系模式,也可与多的那一端对应的关系模式合并;5.4一个多对多的关系转换成一个关系模式。根据以上四条规则,下面将E—R图转换成关系模型。对于“教学楼”、“教室”和两者之间的关系,就可以根据规则(3)转换成两个关系式教学楼(教学楼ID,教学楼名称)教室(教室ID,教学楼ID,教室名称)对于“学生”、“课程”和它们之间的“选修”关系就可以规则(4)转换成三个关系式。学生(学号,姓名,性别,年龄,登陆密码,学分,地址,电话,电子邮件)课程(课程编码,课程名称,开课教师编号,学分,最大人数,课程简介,前导课程号)选课(学号,课程编号,成绩)依次类推,剩下的关系转换成下面三个关系模式:教师(教师编号,姓名,性别,年龄,电话,电子邮件,个人简介)课程时间地点(课程编号,开始周次,结束周次,上课时间,上课教室ID)管理员(帐号,密码)六.数据库物理实现经过数据库系统分析和逻辑设计后,数据库的结构已经非常清晰,剩下的就是用一种数据库软件实现这样的结构。本系统中数据库采用MicrosoftSQLServer2000作为数据库。首先我们在MicrosoftSQLServer2000的“企业管理器”创建一个数据库,我们命名为“SC”,如图6-1:图6-1选中SC数据库,向数据库中添加8个表:Student,Teacher,Course,SC,CourseTime,Building,Room和Admin,每个表与逻辑设计中一种的关系模式相对应。下面是每个数据表中的属性,包括属性列的名称、数据类型、长度、是否可以为空和备注说明等内容。6.1Student表。Student表用来存储学生的个人信息,使用学号作为主键,如图6-2:6.2Teacher表。Teacher表用来存储教师的个人信息,用学校分配给教师的教师编号作为主键,这样可以避免重复,如图6-3:6.3Course表。Course表用来存储课程信息,Course表以课程编号为主键。如图6-4:6.4SC表。SC表用于存储学生的选课信息,在SC表中学号和课程编号是主键。如图6-5:七.界面和主程序7.1.1登陆界面7.1.2用户操作界面7.2主程序八.总结经过几个月的学习,在最后几周内进行系统设计,我们选择的课题学生选课系统,并积极着手开发。但由于时间紧张和知识上的不足,最终设计出一个比较简单的系统,可以进行简易的操作使用。通过这次系统设计,我们都学习了不少东西,遇到不少的困难我们也都通过查资料、咨询同学而慢慢解决。通过不断地发现问题,解决问题使我们的设计水平得到了较好的提高,同时吸收了不少宝贵的经验。