学生选课系统信息系统分析与设计课程设计.docx

上传人:b****5 文档编号:6079010 上传时间:2023-01-03 格式:DOCX 页数:22 大小:375.65KB
下载 相关 举报
学生选课系统信息系统分析与设计课程设计.docx_第1页
第1页 / 共22页
学生选课系统信息系统分析与设计课程设计.docx_第2页
第2页 / 共22页
学生选课系统信息系统分析与设计课程设计.docx_第3页
第3页 / 共22页
学生选课系统信息系统分析与设计课程设计.docx_第4页
第4页 / 共22页
学生选课系统信息系统分析与设计课程设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

学生选课系统信息系统分析与设计课程设计.docx

《学生选课系统信息系统分析与设计课程设计.docx》由会员分享,可在线阅读,更多相关《学生选课系统信息系统分析与设计课程设计.docx(22页珍藏版)》请在冰豆网上搜索。

学生选课系统信息系统分析与设计课程设计.docx

学生选课系统信息系统分析与设计课程设计

1前言

1.1系统简介

当今时代是飞速发展的信息时代。

在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。

计算机的最到好处在于利用它能够进行信息管理。

使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。

尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。

计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。

本系统就是为了管理好学生选课信息而设计的。

学生选课作为一种信息资源的集散地,包含很多的信息数据的管理。

由于数据繁多,容易丢失,且不易查找。

总的来说,缺乏系统,规范的信息管理手段。

尽管有的学校有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发基本环境。

数据处理手工操作,工作量大,出错率高,出错后不易更改。

造成了时间上的浪费。

基于这个问题,我认为有必要建立一个学生选课系统,使学生选课信息管理工作规范化、系统化、程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。

1.2开发目的  

系统的主要使用对象是需要选课的学生。

学生在选课是要察看各个课程的详细信息,还要选择一些感兴趣的课程,需要生成课表,在发现课程有冲突后能够修改先前选择的信息。

需要随学生选课的变化,计算相应的总学分。

在全部选定后,打印报表。

系统还需要管理员来查看和修改学生的总体选课情况,课程信息和学生信息。

2.可行性分析

本系统的可行性分析包括以下几个方面的内容:

1.技术可行性。

由于校园网络的普遍应用,使得网上选课非常的方便,无需再进行网络的建设。

通过校园网,学生可以在校园网的任何地方完成选课过程。

数据库技术的使用,可以开发出实用、简便、高效的基于网络的信息管理系统,因此技术上是可以实现的。

2.经济可行性。

由于校园网已经普及,因此在网络设备上不需要进行大量的投入。

加上学生选修课系统只要求客户端具备浏览器的基本功能,就能实现网上选课。

因此在校园的计算机实验室、公共机房,或者是学生在寝室使用自己的电脑都无需安装专门的选课软件,就可实现网上选课功能。

因此,从经济上来说,开发网上选课不需要很大量的投入,硬件上只需web服务器和数据库服务器即可。

3.系统分析

3.1数据流图

3.2系统需求分析

通过对系统需求进行分析,我们可以确定系统中有三类用户:

管理员、教师和学生。

各类用户的具体描述如下:

(1)管理员

描述:

管理员维护整个系统,包括课程设置,选课时段设置,选课前学生不可登录;选课结束,学生只可查询,管理员对选课结果进行统计;查询选课情况,对学生的选课申请进行处理,进行用户管理;限制最大选课人数;排课、发布选课信息;数据备份和恢复等。

(2)教师

描述:

教师撰写教师反馈,反馈选课信息,对排课者提出反馈意见,供排课者在排课时参考使用。

查询课程基本情况、学生情况。

(3)学生

描述:

在选课系统中查询课程、教室信息,查看教师反馈,提交选课申请,撤销申请,查询选课情况,登录系统,进行个人信息修改等与选课有关的活动。

根据上面所述,我们对该选课系统进行了划分,分为三个主要功能,即登录控制、排课和选课,分别对应三个子系统,即登录子系统、排课子系统和选课子系统。

其中,登录子系统是前提,排课子系统是基础,选课子系统是关键。

登录子系统区分排课者(即系统管理员),教师和学生这三者的不同身份,给出不同的权限,在页面中根据身份判断其相应具有的权限,进行不同的操作。

排课子系统主要供排课者使用,其中设定选课时间段,进行排课并检测排课冲突,发布选课信息都是选课的前提和基础。

选课子系统是本系统要实现的最终目的。

选课子系统主要供学生选课使用,在这里可以进行与选课有关的活动,包括课程浏览查询、选课、退选课程。

4.系统设计

4.1系统功能模块设计

4.2数据库设计

4.2.1数据字典

根据数据流程分析,对系统数据进行分析和汇总,建立系统数据字典。

下面列出部分数据字典内容。

(1)排课

数据流编号:

A01

系统名:

网上选课系统

条目名:

排课

输入:

课程信息表,教学楼信息表,教师信息表,院系信息表

输出:

排课表,选课通知表

描述:

排课者按年级排课。

排课表内容包括课程代号,课程名称,受课院系,专业代码,专业名称,教师代号,考察方式,学分,开课时间,上课时间,地点,开课院系,最大上课人数和课程选则限制(必修或选修)等。

在排课过程中,排课者可以查询教室使用情况和院系课程设置。

在排课者提交排课表以后,系统应当确保该排课方案中没有时间冲突和教室冲突。

如果有冲突,系统应该提示排课者具体冲突产生的原因。

(2)选课

数据流编号:

A02

系统名:

网上选课系统

条目名:

选课

输入:

排课表,选课通知表,教师反馈表

输出:

学生选课表

描述:

学生可以在规定的时间段内选课。

该规定时间段由排课者通过发布消息通知教师和学生。

选课过程如下:

学生在选课表上单击课程号,则该信息被提交到服务器,并显示学生的选课结果。

选课表的内容包括排课表的全部内容。

如果一门课程已经达到最大选课人数,则不能再选择这门课程。

如果有学生退课,则该门课程的已选人数减1。

(3)设定选课时间段

数据流编号:

A03

系统名:

网上选课系统

条目名:

设定选课时间段

输入:

选课时间段表输出:

选课时间段表

描述:

排课者应该设定选课时间段。

学生只能在此设定的时间段内选课和退课。

4.2.2数据表

数据库中的相关表结构如表所示:

学生信息表(stu_inform)表4-1

字段名

数据类型

长度范围

是否为空

字段说明

学号

Char

8

姓名

Nvarchar

性别

Char

2

班级

Nvarchar

出生年月日

datetime

是否已选课

char

教师表表4-2

字段名称

字段含义

数据类型及长度

约束

默认值

Tno

教师号

varchar(15)

主键

Tname

姓名

varchar(15)

非空

Tsex

性别

varchar

(2)

Tage

年龄

int

>0或<100

Tpass

密码

varchar(15)

课程表表4-3

字段名称

字段含义

数据类型及长度

约束

默认值

Cno

课程号

varchar(15)

主键

Cname

课程名

varchar(15)

非空

Credit

学分

int

Ctime

年龄

varchar(15)

Cbegintime

班级

varchar(15)

选课表表4-4

字段名称

字段含义

数据类型及长度

约束

默认值

Sno

课程号

varchar(15)

主键,外键

Cname

课程名

varchar(15)

主键,外键

Grade

成绩

Int

>=0或<=100

登录信息表(stu_login)表4-5

字段名

数据类型

长度范围

是否为空

字段说明

学号

Char

8

用户名

Nvarchar

密码

Nvarchar

权限代号

Char

3

教师课程关系表表4-6

字段名称

字段含义

数据类型及长度

约束

默认值

Tno

教师号

varchar(15)

主键,外键

Cno

课程号

varchar(15)

外键

4.3代码设计

4.3.1学号的代码设计

管理信息系统的代码有七种门类,按照人员代码的设计要求,考虑到学校有大一到大四共四个年级,且每个年级人数不超过四位数,年级用入学年份表示,因此使用组合码,并用10位字符表示。

设计方案如图所示。

AABBBCCDEE

入学顺序号

班级号

专业

院系

入学年份

 

4.3.2班级代码设计

班级代码采用两位字符表示,采用方案如图所示。

X   Y 

班级号

年级号

4.3.3课程号代码设计

S  c

课程代码

课程编号

表4-6

课程代码

课程名称

授课老师

上课地点

上课时间

节次

Sc00001

社交礼仪

*****

*****

*****

*****

Sc00002

石油工程概论

*****

*****

******

*****

Sc00003

证券学概论

*****

******

******

*****

……

……

……

……

……

……

4.4结构设计

4.4.1概念结构设计

E-R模型如图4-1、4-2所示。

图4-2排课过程E-R图

(二)选课子系统

1.系统涉及到的实体

E-R模型如图4-3、4-4所示。

图2-3选课过程实体及其属性

 

图4-3选课过程E-R图

图4-4选课过程E-R图

(三)合并上述E-R图,得到系统的总E-R图,如图4-5所示。

图4-5系统的总E-R图

4.4.2逻辑结构设计

根据以上的分析,将E-R模型转换成逻辑模型,如下所示:

(1)将实体转化为关系模型:

管理员(编号,用户名,密码,用户类型)

课程(课程编号,面向专业编号,学分,限选性质,教师编号,考察方式,最大选课人数,课程名称,开课院系编号,面向的年级)

选课通知(通知编号,通知标题,通知内容,通知时间,是否为“热点”)

选课时间段(开始选课时间,终止选课时间)

学生(学号,用户名,密码,用户类型,用户编号)

(2)将各关系转化为实体模型:

排课(时间,地点)

选课(成绩)

(3)将合并后的概念模型转化为关系模型:

管理员(编号,用户名,密码,用户类型)

课程(课程编号,面向专业编号,学分,限选性质,教师编号,考察方式,最大选课人数,课程名称,开课院系编号,面向的年级)

选课通知(通知编号,通知标题,通知内容,通知时间,是否为“热点”)

选课时间段(开始选课时间,终止选课时间)

学生(学号,用户名,密码,用户类型,用户编号)

发布(通知编号,编号)

设置(编号,用户名,密码,用户类型,开始选课时间,终止选课时间)

4.4.3物理结构以及存储文件:

将以上的逻辑模型转化为物理模型,如下所示:

图4-6选课过程E-R图

 

4.5具体设计

4.5.1界面设计

创建登录窗口

登录窗口主要是用来登录主界面的一个关卡,根据用户的不同设有不同的权限,其主界面如图4-8所示。

图4-7登录窗口界面

其登录事件代码如下:

//定义两个变量

stringpassword,username

//Pro

SQLCA.DBMS="ODBC"

SQLCA.AutoCommit=False

SQLCA.DBParm="ConnectString='DSN=stu_select;UID=;PWD='"

//连接数据库

connect;

//检索用户名和密码记录

SELECTstu_login.学号,

stu_login.用户名,

stu_login.密码,

stu_login.权限代号

INTO:

stu_no,

:

username,

:

password,

:

gl_no

FROMstu_login

WHEREstu_login.用户名=:

sle_1.text;

//判断用户输入的用户名是否正确

ifsle_1.text=""orsle_2.text=""then

messagebox("错误!

",

"用户名或密码不能为空!

",exclamation!

ok!

2)

else

ifusername=sle_1.textandpassword=sle_2.textthen

open(w_main)

close(w_login)

else

messagebox("错误!

",

"用户名或密码错误,请重新输入!

",exclamation!

ok!

2)

endif

endif

创建个人信息窗口

单击主窗口的“查看学生个人信息”选项后,进入此窗口界面,在本窗口主要实现对登录学生信息的查看,以验证学生信息是否正确,下图为个人信息窗口界面,如图4-8所示。

图4-8学生个人详细信息窗口

其中open事件代码如下:

//定义全局变量

stringstu_no

stringlogin_name

stringgl_no

dw_1.settransobject(sqlca)

stringuser_name,student_no

//检索用户的学号

SELECTstu_login.学号,

stu_login.用户名

INTO:

student_no,

:

user_name

FROMstu_login

WHEREstu_login.用户名=:

login_name;

//根据学号查询用户的详细信息

dw_1.setfilter("")

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("")

ifsle_1.text=""orsle_1.text="请在此输入查询内容"then

messagebox("错误!

","请输入查询内容!

")

sle_1.eventgetfocus()

else

ifrb_1.checked=truethen

//精确查找

choosecaseddlb_1.text

case"课程代号"

dw_1.setfilter("课程代号='"+sle_1.text+"'")

case"课程名称"

dw_1.setfilter("课程名称='"+sle_1.text+"'")

case"授课教师"

dw_1.setfilter("授课教师='"+sle_1.text+"'")

case"上课时间"

dw_1.setfilter("上课时间='"+sle_1.text+"'")

endchoose

else

//模糊查询

choosecaseddlb_1.text

case"课程代号"

dw_1.setfilter("课程代号like"+"'%"+sle_1.text+"%'")

case"课程名称"

dw_1.setfilter("课程名称like"+"'%"+sle_1.text+"%'")

case"授课教师"

dw_1.setfilter("授课教师like"+"'%"+sle_1.text+"%'")

case"上课时间"

dw_1.setfilter("上课时间like"+"'%"+sle_1.text+"%'")

endchoose

endif

endif

//检索数据

dw_1.retrieve()

(3)“选课”按钮click事件代码

open(w_course_add)

(4)“查看课表”按钮click事件代码

open(w_course_table)

图4-10选课过程E-R图

 

4.5.2系统模块设计

模块设计的主要方法是结构化方法,主导思想是以系统的逻辑功能设计和数据流关系为基础,将本系统分解为功能明确,易于修改,大小适中的模块结构。

本系统主要分为三大模块:

登录模块、排课模块、选课模块。

系统各模块功能如下图所示:

图4-11选课过程E-R图

系统各模块功能说明:

1登录模块

(1)选择不同身份登录系统

本系统有三种类型的用户:

管理员、教师和学生。

当不同的用户登录系统选择不同的用户类型时,他们就会分别拥有不同的权限。

管理员的权限最大,主要是拥有排课权限、设置选课时段权限和发布选课信息权限。

教师的主要权限是反馈排课信息。

学生的主要权限是进行选课,退课。

(2)修改密码

每个用户登录后,都可更改初始密码,以增强系统的安全性。

(3)退出

每个用户登录系统后单击退出,就可退出系统。

这样,他们遗留在Session对象中的信息就会被清除,同样增强了系统的安全性。

2排课模块

本模块是选课系统的基础。

(1)已排排课表

管理员在排课过程中,可以点击已排排课表来显示已经排好的选课信息,并可对此信息进行增、删、改、查。

在排课者提交排课表后,系统应当确保该排课方案中没有时间冲突和教室冲突。

如果有冲突,系统应该提示排课者具体冲突产生的原因。

(2)备份排课表

管理员对排课信息进行修改后,可以点击备份排课表,对新的排课信息进行备份。

(3)导入排课表

管理员可以把以前的排课信息导入到排课表,这样可以增加排课的灵活性和方便性。

此外,管理员还可以把以前的排课信息删除。

(4)对未排的课程排课

排课者可以对课程信息表,院系信息表,教师表中的信息进行联合查询后,在教学楼信息表中选择相应的教室,并选则相应的时间。

在排课者提交排课表后,系统应当确保该排课方案中没有时间冲突和教室冲突。

如果有冲突,系统应该提示排课者具体冲突产生的原因。

(5)设定选课时间段

排课者应该设定选课时间段。

学生只能在此设定的时间段内选课。

如果学生不在选课时间段内选课,系统应该显示提示信息。

(6)发布选课信息

排课完成以后,排课者可以在选课系统中发布关于选课的各种消息。

(7)查看教师反馈

排课和选课模块都可查看教师反馈。

3选课模块

(1)查看可选择的课程信息

学生在选课时可以查询所有课程的详细信息,如课程简介、课时、学分、考察方式等内容。

学生也可以按课程代号查询选课信息,或者按教师代号查询选课信息。

(2)提交选课申请

学生若想选择某门课程,只要点击相应的课程号,就可选课。

如果该选课操作引起选课冲突(如超过最大选课人数或重复选择同一门课程),系统就会提示出错信息。

(3)退课

学生在选课时间段内可以删除某门已选的课程。

该信息被提交到服务器,服务器返回该删除信息为弹出式窗口。

(4)显示学生选课表

学生选完某门课程后,在选课页面的左侧,就可以显示该学生相应的选课信息。

(5)查看教师反馈

排课和选课模块都可查看教师反馈。

5.总结

本系统界面简洁,操作方便。

本系统可以实现“教师反馈“,“选课查询“,”课程查询“,”课程设置“,”教室安排“,”课表查询“,”排课系统“,”进入选课“等功能,达到了选课系统的基本要求,具有实用价值。

通过这次毕业设计,我对数据库方面的知识有了进一步的认识,尤其是存储过程的使用。

使用SQL存储过程有很多优点,如下所示:

(1)SQL存储过程执行起来比SQL命令文本快得多。

当一个SQL语句包含在存储过程中时,服务器不必每次执行它时都要分析和编译它。

(2)可以在多个网页中调用同一个存储过程,这使得站点易于维护。

如果一个SQL语句需要做某些改动,只要做一次即可。

(3)可以在存储过程中利用Transact-SQL的强大功能。

一个SQL存储过程可以包含多个SQL语句。

可以使用变量和条件,这意味着可以用存储过程建立非常复杂的查询,以非常复杂的方式更新数据库。

(4)最后,这也许是最重要的,在存储过程中可以使用参数,可以传送和返回参数,还可以从SQLRETURN语句得到一个返回值。

由于设计MIS经验不足,我们小组虽然顺利的完成了系统的分析、设计和调试工作,但是本系统仍需进一步扩充和完善,使之更符合实际的应用。

如在选课的功能基础上,增加选修课成绩的登记和管理功能等。

通过这次毕业设计,我充分体会到理论知识的重要性,但更加体会到实践的重要性。

只有通过实践,我们才能发现并解决问题,才能真正掌握一项技术。

我会在将来的软件设计、开发过程中进一步学习,不断提高自己的专业技能。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1