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

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

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

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

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

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

1前言3

1.1系统简介3

1.2开发目的3

2可行性分析3

3系统分析5

3.1数据流图5

3.2系统需求分析5

4系统设计6

4.1系统功能模块设计6

4.2数据库设计7

4.2.1数据字典7

4.2.2数据表8

4.3代码设计10

4.3.1学号的代码设计10

4.3.2班级代码设计10

4.3.3课程号代码设计11

4.4结构设计11

4.4.1概念结构设计11

4.4.2逻辑结构设计14

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

4.5具体设计15

4.5.1界面设计15

4.5.2系统模块设计21

5总结24

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

//Profilestu_select

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