《学生选课系统信息系统分析与设计课程设计.docx》由会员分享,可在线阅读,更多相关《学生选课系统信息系统分析与设计课程设计.docx(24页珍藏版)》请在三一办公上搜索。
1、学生选课系统一信息系统分析 与设计课程设计目录1前言311系统简介312开发目的32可行性分析43系统分析43.1数据流图43.2系统需求分析54系统设计64.1系统功能模块设计64.2数据库设计6数据字典6数据表84.3代码设计10学号的代码设计 10班级代码设计10课程号代码设计114.4结构设计 11概念结构设计12逻辑结构设计14物理结构以及存储文件 154.5具体设计16界面设计16系统模块设计215总结241前言1.1系统简介当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机 被广泛应用于信息管理系统的环境。计算机的最到好处在于利用它能够进行信息管理。 使用计算
2、机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管 理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了 管理好学生选课信息而设计的。学生选课作为一种信息资源的集散地,包含很多的信息数据的管理。由于数据繁 多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的 学校有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这 就是管理信息系统的开发基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。造成了时间上的浪 费。基于这个问题,我认为有必要建立
3、一个学生选课系统,使学生选课信息管理工作 规范化、系统化、程序化,避免学生选课管理的随意性,提高信息处理的速度和准确 性,能够及时、准确、有效的查询和修改选课情况。1.2开发目的系统的主要使用对象是需要选课的学生。学生在选课是要察看各个课程的详细信 息,还要选择一些感兴趣的课程,需要生成课表,在发现课程有冲突后能够修改先前 选择的信息。需要随学生选课的变化,计算相应的总学分。在全部选定后,打印报表。 系统还需要管理员来查看和修改学生的总体选课情况,课程信息和学生信息。2. 可行性分析本系统的可行性分析包括以下几个方面的内容:1. 技术可行性。由于校园网络的普遍应用,使得网上选课非常的方便,无需
4、再进行网络的建设。 通过校园网,学生可以在校园网的任何地方完成选课过程。数据库技术的使用,可以开发出实用、简便、高效的基于网络的信息管理系统, 因此技术上是可以实现的。2. 经济可行性。由于校园网已经普及,因此在网络设备上不需要进行大量的投入。加上学生选修 课系统只要求客户端具备浏览器的基本功能,就能实现网上选课。因此在校园的计算 机实验室、公共机房,或者是学生在寝室使用自己的电脑都无需安装专门的选课软件, 就可实现网上选课功能。因此,从经济上来说,开发网上选课不需要很大量的投入, 硬件上只需web服务器和数据库服务器即可。3. 系统分析3.1数据流图3.2系统需求分析通过对系统需求进行分析,
5、我们可以确定系统中有三类用户:管理员、教师和学 生。各类用户的具体描述如下:(1)管理员描述:管理员维护整个系统,包括课程设置,选课时段设置,选课前学生不可登 录;选课结束,学生只可查询,管理员对选课结果进行统计;查询选课情况,对学生 的选课申请进行处理,进行用户管理;限制最大选课人数;排课、发布选课信息;数 据备份和恢复等。(2)教师描述:教师撰写教师反馈,反馈选课信息,对排课者提出反馈意见,供排课者在 排课时参考使用。查询课程基本情况、学生情况。学生描述:在选课系统中查询课程、教室信息,查看教师反馈,提交选课申请,撤销 申请,查询选课情况,登录系统,进行个人信息修改等与选课有关的活动。根据
6、上面所述,我们对该选课系统进行了划分,分为三个主要功能,即登录控制、 排课和选课,分别对应三个子系统,即登录子系统、排课子系统和选课子系统。其中, 登录子系统是前提,排课子系统是基础,选课子系统是关键。登录子系统区分排课者 (即系统管理员),教师和学生这三者的不同身份,给出不同的权限,在页面中根据身 份判断其相应具有的权限,进行不同的操作。排课子系统主要供排课者使用,其中设 定选课时间段,进行排课并检测排课冲突,发布选课信息都是选课的前提和基础。选 课子系统是本系统要实现的最终目的。选课子系统主要供学生选课使用,在这里可以 进行与选课有关的活动,包括课程浏览查询、选课、退选课程。4. 系统设计
7、4.1系统功能模块设计选课人数4.2数据库设计数据字典根据数据流程分析,对系统数据进行分析和汇总,建立系统数据字典。下面列出-6-部分数据字典内容。(1)排课数据流编号:A01系统名:网上选课系统条目名:排课输入:课程信息表,教学楼信息表,教师信息表,院系信息表输出:排课表,选课通知表描述:排课者按年级排课。排课表内容包括课程代号,课程名称,受课院系,专业代码, 专业名称,教师代号,考察方式,学分,开课时间,上课时间,地点,开课院系,最 大上课人数和课程选则限制(必修或选修)等。在排课过程中,排课者可以查询教室使用情况和院系课程设置。在排课者提交排课表以后,系统应当确保该排课方案中没有时间冲突
8、和教室冲突。 如果有冲突,系统应该提示排课者具体冲突产生的原因。(2)选课数据流编号:A02系统名:网上选课系统条目名:选课输入:排课表,选课通知表,教师反馈表输出:学生选课表描述学生可以在规定的时间段内选课。该规定时间段由排课者通过发布消息通知 教师和学生。选课过程如下:学生在选课表上单击课程号,则该信息被提交到服务器, 并显示学生的选课结果。选课表的内容包括排课表的全部内容。如果一门课程已经达 到最大选课人数,则不能再选择这门课程。如果有学生退课,则该门课程的已选人数 减1。设定选课时间段数据流编号:A03系统名:网上选课系统条目名:设定选课时间段输入:选课时间段表输出:选课时间段表描述:
9、排课者应该设定选课时间段。学生只能在此设定的时间段内选课和退课。数据表数据库中的相关表结构如表所示:学生信息表(stu_inform)表4-1字段名数据类型长度范围是否为空字段说明学号Char8否姓名Nvarchar是性别Char2是班级Nvarchar是出生年月 日datetime是是否已选 课char是教师表表4-2字段名称字段含义数据类型及 长度约束默认 值Tno教师号varchar(15)主键Tname姓名varchar(15)非空Tsex性别varchar(2)男Tage年龄int0 或=0 或=100登录信息表(stu_login) 表4-5字段名归r匹么数据类型长度范围是否为空字
10、段说明学号Char8否用户名Nvarchar是密码Nvarchar是权限代号Char3是教师课程关系表表4-6字段名称字段含义数据类型及 长度约束默 认值Tno教师号varchar(15)主键,外键Cno课程号varchar(15)外键4.3代码设计学号的代码设计管理信息系统的代码有七种门类,按照人员代码的设计要求,考虑到学校 有大一到大四共四个年级,且每个年级人数不超过四位数,年级用入学年份表 示,因此使用组合码,并用10位字符表示。设计方案如图所示。AA BBB CC D EE入学顺序号班级号 专业一 院系入学年份班级代码设计班级代码采用两位字符表示,采用方案如图所示。班级号年级号课程号代
11、码设计课程代码课程编号表4-6课程 代码课程 名称授课 老师上课 地点上课时 间节次Sc0000 1社交 礼仪业业业业业 *业业业业业 *Sc0000 2石油工程概论业业业业业 *业业业业业 *Sc0000 3证券 学概论业业业业业 *业业业业业业 *.4.4结构设计概念结构设计E-R模型如图41、42所示。图4-2排课过程E-R图(二)选课子系统1.系统涉及到的实体E-R模型如图43、44所示。图2-3选课过程实体及其属性图4-3选课过程E-R图图4-4选课过程E-R图(三)合并上述E-R图,得到系统的总E-R图,如图4-5所示。图4-5系统的总E-R图逻辑结构设计根据以上的分析,将E-R模
12、型转换成逻辑模型,如下所示:(1)将实体转化为关系模型:管理员(编号,用户名,密码,用户类型)课程(课程编号,面向专业编号,学分,限选性质,教师编号,考察方式,最大 选课人数,课程名称,开课院系编号,面向的年级)选课通知(通知编号,通知标题,通知内容,通知时间,是否为“热点”)选课时间段(开始选课时间,终止选课时间)学生(学号,用户名,密码,用户类型,用户编号)(2)将各关系转化为实体模型:排课(时间,地点)选课(成绩)(3)将合并后的概念模型转化为关系模型:管理员(编号,用户名,密码,用户类型)课程(课程编号,面向专业编号,学分,限选性质,教师编号,考察方式,最大选课人数,课程名称,开课院系
13、编号,面向的年级)选课通知(通知编号,通知标题,通知内容,通知时间,是否为“热点”)选课时间段(开始选课时间,终止选课时间)学生(学号,用户名,密码,用户类型,用户编号)发布(通知编号,编号)设置(编号,用户名,密码,用户类型,开始选课时间,终止选课时间)物理结构以及存储文件:将以上的逻辑模型转化为物理模型,如下所示:图4-6选课过程E-R图4.5具体设计界面设计创建登录窗口登录窗口主要是用来登录主界面的一个关卡,根据用户的不同设有不同的权限, 其主界面如图4-8所示。叵I 以登录退出I图4-7登录窗口界面其登录事件代码如下:/定义两个变量string password,usernameII
14、Profile stu_selectSQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = ConnectString=*DSN=stu_select;UID=;PWD=,/连接数据库connect;检索用户名和密码记录SELECT stu_l ogin学号, stu_login.用户名, stu_login.密码, stu_login.权限代号INTO :stu_no,:username,:password,:gl_noFROM stu_loginWHERE stu_login.用户名=:sle_1.text ;/判断用户输入的用户名是
15、否正确if sle_1.text= or sle_2.text= thenmessagebox(错误!,”用户名或密码不能为空! ”,exclamation!,ok!,2)elseif username=sle_1.text and password=sle_2.text thenopen(w_main)close(w_login)elsemessagebox(错误!”,”用户名或密码错误,请重新输入! ,exclamation!,ok!,2)end ifend if创建个人信息窗口单击主窗口的“查看学生个人信息”选项后,进入此窗口界面,在本窗口主要 实现对登录学生信息的查看,以验证学生信息是
16、否正确,下图为个人信息窗口界面, 如图4-8所示。图4-8学生个人详细信息窗口 其中open事件代码如下: 定义全局变量string stu_nostring login_namestring gl_nodw_1.settransobject(sqlca) string user_name, student_no检索用户的学号SELECT stu_l ogin学号, stu_login.用户名 INTO :student_no,:user_nameFROM stu_loginWHERE stu_login用户名=:login_name ;/根据学号查询用户的详细信息dw_1.setfilter
17、()dw_1.setfilter(stu_inform_ 号=+student_no+) dw_1.retrieve()图4-9选课过程E-R图其中一些主要程序代码如下:(1) open事件代码dw_1.settransobject(sqlca)dw_1.retrieve()(2) “查找按钮的click事件代码dw_1.setfilter(“)if sle_1.text= or sle_1.text =请在此输入查询内容then messagebox(错误!,请输入查询内容!) sle_1.event getfocus()elseif rb_1.checked=true then精确查找ch
18、oose case ddlb 1.textcase ”课程代号”dw_1setfilter(课程代号=+sle_1text+) case ”课程名称”dw_1.setfilter(课程名称=*+sle_1.text+n,)case 授课教师”dw_1.setfilter(S 教师=,+sle_1text+,)case 上课时间dw_1.setfilter(上课时间=,+sle_1.text+,)end chooseelse/模糊查询choose case ddlb_1.textcase 课程代号dw_1setfilter(课程代号 like+,%+sle_1text+%,) case ”课程名
19、称”dw_1.setfilter(课程名称 like+,%+sle_1text+%) case 授课教师”dw_1,setfiiter(授W教师 like+,%+sle_1text+%,) case ”上课时间”dw_1.setfilter(上课时间 like+,%+sle_1.text+%)end chooseend ifend if/检索数据dw_1.retrieve()(3)“选课”按钮click事件代码open(w_course_add)(4)“查看课表”按钮click事件代码open(w_course_table)图4-10选课过程E-R图系统模块设计模块设计的主要方法是结构化方法,
20、主导思想是以系统的逻辑功能设计和数据流 关系为基础,将本系统分解为功能明确,易于修改,大小适中的模块结构。本系统主 要分为三大模块:登录模块、排课模块、选课模块。系统各模块功能如下图所示:选则不同身份(管理员、教师、学生)登录修改密码退出已排排课表备份排课表导入排课表对未排的课程排课发布选课信息设定选课时间段查看教师反馈查看可选择的课程信息选课提交选课申请在选课时段内退课显示学生选课表图4-11选课过程E-R图系统各模块功能说明:1登录模块(1)选择不同身份登录系统本系统有三种类型的用户:管理员、教师和学生。当不同的用户登录系统选择不 同的用户类型时,他们就会分别拥有不同的权限。管理员的权限最
21、大,主要是拥有排 课权限、设置选课时段权限和发布选课信息权限。教师的主要权限是反馈排课信息。 学生的主要权限是进行选课,退课。(2) 修改密码每个用户登录后,都可更改初始密码,以增强系统的安全性。(3) 退出每个用户登录系统后单击退出,就可退出系统。这样,他们遗留在Session对象 中的信息就会被清除,同样增强了系统的安全性。2排课模块本模块是选课系统的基础。已排排课表管理员在排课过程中,可以点击已排排课表来显示已经排好的选课信息,并可对 此信息进行增、删、改、查。在排课者提交排课表后,系统应当确保该排课方案中没 有时间冲突和教室冲突。如果有冲突,系统应该提示排课者具体冲突产生的原因。(2)
22、 备份排课表管理员对排课信息进行修改后,可以点击备份排课表,对新的排课信息进行备份。(3) 导入排课表管理员可以把以前的排课信息导入到排课表,这样可以增加排课的灵活性和方便 性。此外,管理员还可以把以前的排课信息删除。(4) 对未排的课程排课排课者可以对课程信息表,院系信息表,教师表中的信息进行联合查询后,在教 学楼信息表中选择相应的教室,并选则相应的时间。在排课者提交排课表后,系统应 当确保该排课方案中没有时间冲突和教室冲突。如果有冲突,系统应该提示排课者具 体冲突产生的原因。(5) 设定选课时间段排课者应该设定选课时间段。学生只能在此设定的时间段内选课。如果学生不在 选课时间段内选课,系统
23、应该显示提示信息。(6) 发布选课信息排课完成以后,排课者可以在选课系统中发布关于选课的各种消息。(7)查看教师反馈排课和选课模块都可查看教师反馈。3选课模块(1) 查看可选择的课程信息学生在选课时可以查询所有课程的详细信息,如课程简介、课时、学分、考察方 式等内容。学生也可以按课程代号查询选课信息,或者按教师代号查询选课信息。(2) 提交选课申请学生若想选择某门课程,只要点击相应的课程号,就可选课。如果该选课操作引 起选课冲突(如超过最大选课人数或重复选择同一门课程),系统就会提示出错信息。(3) 退课学生在选课时间段内可以删除某门已选的课程。该信息被提交到服务器,服务器 返回该删除信息为弹
24、出式窗口。(4) 显示学生选课表学生选完某门课程后,在选课页面的左侧,就可以显示该学生相应的选课信息。(5) 查看教师反馈排课和选课模块都可查看教师反馈。5. 总结本系统界面简洁,操作方便。本系统可以实现“教师反馈,“选课查询“,”课 程查询“,”课程设置“,”教室安排“,”课表查询“,”排课系统“,”进入选课“等 功能,达到了选课系统的基本要求,具有实用价值。通过这次毕业设计,我对数据库方面的知识有了进一步的认识,尤其是存储过程 的使用。使用SQL存储过程有很多优点,如下所示:(1) SQL存储过程执行起来比SQL命令文本快得多。当一个SQL语句包含在存储 过程中时,服务器不必每次执行它时都
25、要分析和编译它。(2) 可以在多个网页中调用同一个存储过程,这使得站点易于维护。如果一个SQL 语句需要做某些改动,只要做一次即可。(3) 可以在存储过程中利用Transact-SQL的强大功能。一个SQL存储过程可以包 含多个SQL语句。可以使用变量和条件,这意味着可以用存储过程建立非常复杂的查 询,以非常复杂的方式更新数据库。(4) 最后,这也许是最重要的,在存储过程中可以使用参数,可以传送和返回参数, 还可以从SQL RETURN语句得到一个返回值。由于设计MIS经验不足,我们小组虽然顺利的完成了系统的分析、设计和调试工 作,但是本系统仍需进一步扩充和完善,使之更符合实际的应用。如在选课的功能基 础上,增加选修课成绩的登记和管理功能等。通过这次毕业设计,我充分体会到理论知识的重要性,但更加体会到实践的重要 性。只有通过实践,我们才能发现并解决问题,才能真正掌握一项技术。我会在将来 的软件设计、开发过程中进一步学习,不断提高自己的专业技能。