学生选课系统实践报告

编辑:阿文时间:2020-05-23 13:01:06
学生选课系统实践报告,数据库系统概论,项目名称学生选课管理系统,一需求分析阶段,随着各大高校的扩招及信息化社会的到来,对信息化处理数据的要求也越来越高。

《数据库系统概论》

综合实验报告

(2017-2017学年第一学期)

项目名称学生选课管理系统

学院学号

姓名授课教师

填表日期:

1、 需求分析03

2、 概念设计18

3、 逻辑设计21

4、 物理设计27

5个。数据库实现29

6、 总结38

学校学生选课系统

一、需求分析阶段

需求分析分为需求的文字表达、数据流程图和数据字典三部分。

一、 需求分析

第一部分用户需求调查

现在,随着各大高校的扩招及信息化社会的到来,学校为了合理规划人力资源的利用,保证学生信息安全性,对信息化处理数据的要求也越来越高。学生选课系统就是为了减少学校对信息管理的工作量,增强学生选课以及成绩信息管理系统的安全性的双重要求下出现的。学生选课排课系统用于根据教学计划、教师资源、教师资源等,制定每学期的课程表及相关信息,面对的用户包括系统管理员、教师和学生。

因此,系统的功能模块应分为三个部分:系统管理员需求、教师需求和学生需求。管理员可以作为超级用户登录,对系统进行全面的管理和维护。教师和学生作为不同的用户进入不同的界面,执行不同的操作。

1.学校的组织结构情况

学校下设机构可分为处理校物的各职能部门、各团体组织、教辅单位、直属单位和个学院。在职能部门中,教务处分为招生办、教学管理处、学籍管理处和办公室。其中,教学管理部门主要负责学生的选拔和其他教务管理系统的管理。

学校负责选课的组织为三类用户提供服务:管理人员、教师和学生。由于目前的大学学生基数越来越庞大,而每一学期学生需要选修课程攻读,若是学校没有一个很好的选课系统,那么上千上万的学生资料整理归纳起来都会是一个非常巨大非常困难的项目。

为了方便师生,有必要建立良好的选课制度。

学校组织机构图如下:

2.关于选课的业务活动情况

学期末,学校教务处将委派代表通知学生选择下学期的课程。在学生选课之前负责选课这一模块工作的教务处的管理员就要整理出学校提供的所有可选课程供同学们选择,并在每一次选课之后做出调整和资料整理。到下一学期的学期末,由任课老师给出每个学生选修课程的成绩,并将成绩汇报给管理员,管理员再进一步整理汇总以及将成绩通知到学生。

以下是关于管理者、教师和学生之间的关系。

3.用户对系统的要求

信息要求:

从以上分析可知,该系统主要用于学生选课和教师录入分数,因此信息需求可分为以下几个方面:

(1)学生信息

包括学生证、姓名、性别、出生日期、班级和专业。除了这些基本信息外,还包括学生选修课的成绩。

(2)课程信息

包括课程编号和课程名称。

(3)选课信息

包括学号、姓名和选修课号、课程名称和分数

(4)教师信息

包括教师编号、姓名、性别、联系**、授课内容

(5)管理员信息

包括工作号码、姓名、性别、联系**

处理要求:

系统应完成以下信息处理:

(1)系统管理员

管理员维护整个系统并设置选课阶段:

选课前:学生不得登录和发布教师基本信息。

选课:a.限制选课次数上限,防止系统崩溃;

b.发布选课信息;

c、 数据备份和恢复等;

选课后:a.学生只能查询,管理员可以统计选课结果;

b、 管理员查询选课情况,处理学生选课申请,进行用户管理。

(2)教师

检查课程和学生的基本情况。

(3)学生

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

安全性与完整性要求:

安全性要求:

(1) 系统应设置访问用户的身份,以识别其是否为合法用户,并要求合法用户设置其密码,以确保用户身份不被窃取;

(2) 系统应针对不同的数据设置不同的访问级别,并对用户可以查询和处理的数据类型和内容进行限制;

(3) 系统应为不同的用户设置不同的权限,区分不同的用户。如区分学生(只能查询管理员发布的课程基本信息和选修课程的限制人数及当前选择人数,只能修改自己的个人信息,如密码。)教师(只能查询参加课程的学生的基本信息和公布的成绩。

)管理员(只能发布课程信息摘要和课程选择)

完整性要求:

(1) 各种信息记录的完整性,信息记录的内容不能为空;

(2) 各种数据之间相互关系的正确性;

(3) 不同记录中相同数据的一致性。

4.确定系统的边界

经对前面的需求调查和初步的分析,确定由计算机完成的工作时对数据进行各种管理和处理,具体的工作内容见第二部分, 由手工完成的工作主要有对原始数据的录入;对计算机无法生成的各种数据的更新,包括数据更改后的修改、数据增加、无效数据或无用数据的删除等;以及系统的日常维护。

第二部分系统功能设计与划分

系统功能模块主要分为三个模块,即学生选课模块、教师开课模块和管理员管理模块。

(1) 学生选课模块:允许学生修改个人信息,浏览基础课程;实现选课的主要功能,包括填写选课信息、查看选课内容、修改选课内容等。

(2)教师开课模块:这个模块主要是让教师申请教课,同时教师可以修改个人信息、浏览基本课程以及查看学生的选课情况等。

(3)管理员管理模块:这个模块的功能比较多,主要包括创建课程的指定任课老师、设定课程人数、统计学生选课信息、发通知等等。

(4) 通用功能模块:实现用户登录、密码修改等功能。

以下是系统功能图

总体的功能需求图

二、数据流图

顶层dfd

在数据流程图的基础上,进一步分解系统功能需求:

1.用户登录

获取用户输入的用户名和密码;

用户名或密码错误或不匹配时,反馈错误提示;

在用户名和密码正确的前提下,支持修改密码。

2.选课系统

首先发布选课通知,即先对教师发出通知(教师得到通知后才可申请教课),然后对学生发出通知(此时已安排完有关选修课的所有信息);

创建课程指定任课教师;

设置课程的人数和时间表;

分配账户和密码(因为是管理员操作此部分)。

3.教师开课

获取教师申请教学的信息,包括教师信息和待教课程信息;

它提供了教师浏览课程的功能,即课程时间、教师等的安排;提供查询学生选课情况的功能,即选课列表;

处理和统计教师对学生成绩的评价。

4.学生选课

为学生提供修改个人信息的功能;

为学生提供浏览所有选课信息的功能,然后接受学生选课的操作;

获取学生及其选课信息后,提供学生浏览自己选课的安排;

得到选课系统的指导,在相应的时间内,学生可以修改自己的选课;

将选课系统的统计结果反馈给学生浏览。

基于以上分析,根据不同用户给出以下数据流程图:

以下是总体结构数据流程图:

三、数据字典

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

一。数据项(在以下数据结构中)

2.数据结构

学生信息

课程信息数据字典

选课成绩

教师信息

管理员信息

3.数据流

4.数据存储

5.处理过程

学生选课系统实践报告(二)

一、实验目的

(1) 掌握常用内部控制的主要性质、事件和方法,并使用常用控制进行编程和编程;

(2) 掌握如何使用access或sql server建立数据库,实现vb与数据库的链接;

(3) 掌握ado控件的属性、事件和方法,并使用该控件进行编程。

二、实验要求

(1) 设计学生选课系统,实现选课、退课、查询功能;

(2) 四周内完成,第十五周交工。

三、实验步骤

(1) 在大脑中寻找信息并形成一个基本框架;

(2)建立sql sever 数据库表“学生基本信息表”、“课程信息表”、“已选课程表”,插入数据并保存脚本文件;

(3)建立窗体框架,包括登录窗体“登录”、父窗体“学生选课管理系统”和其他6个子窗体;

(4) 使用vb公共控件、ado控件和datagrid控件设计每个窗体的界口(以下是几个主要接口);

(5) 使用ado实现与数据库表的链接,编写相应的**(项目中的所有**,这里只复制主窗口的**);

登录窗体**:

private sub ***mand1_click()

if (text1.text = 123 and text2.text = 123 and option1.

value = true) or (text1.text = 321 and text2.text = 321 and option2.

value = true) then

学生选课管理系统.show

登录。 可见=错误

else

msgbox“您输入的用户名和密码不匹配,或者没有选择用户标识!“,64”,“提示”

text1.text =“”

text2.text =“”

text1.setfocus

end if

end sub

private sub ***mand2_click()

endend sub

private sub text1_click()

msgbox "请查看word文档“操作说明”获得用户名和密码!,64,“温馨提示”

end sub

private sub timer1_timer()

if label3.left > 6000 then

label3.left = 0

else

label3.refresh

end if

end sub

private sub timer2_timer()

label3.left = cint(label3.left) + 10

end sub

private sub timer3_timer()

label3.left = -1700

end sub

选课系统窗体**:

private sub form_load()

if 登录.option1.value = true then

学生的个人时间表。 启用=否

学生选课.enabled = false

elseif登录。 选项2。 值= true那么

基本信息管理。启用=假

课程信息管理。启用=假

所有学生信息。启用=假

end if

end sub

private sub 基本信息管理_click()

dim newdoc as new 基本信息管理

newdoc.show

end sub

private sub 课程信息管理_click()

dim newdoc作为新课程信息管理

newdoc.show

end sub

private sub 所有学生信息_click()

dim newdoc as new所有学生信息

newdoc.show

end sub

private sub 退出_click()

endend sub

private sub 学生选课_click()

dim newdoc as new 学生选课

newdoc.show

end sub

private sub 可选课程信息_click()

dim newdoc as new 可选课程信息

newdoc.show

end sub

private sub 学生个人课表_click()

dim newdoc as new 学生个人课表

newdoc.show

end sub

课程信息管理表编码:

private sub ***mand1_click()

adodc1.recordset.addnew

end sub

private sub ***mand2_click()

adodc1.recordset.update

end sub

private sub ***mand3_click()

adodc1。 recordset.movenext

end sub

private sub ***mand4_click()

endend sub

private sub 课程信息管理_load()

adodc1。 recordset.movefirst

end sub

学生选课窗体**:

private sub ***mand1_click()

if text1.text =“” and text2.text =“” and text3.text = "" and text4.text = "" then

msgbox "已无课程可选!“,64”,“提示”

else

adodc2.recordset.addnew

adodc2.recordset.fields("课程**").value = text1.text

adodc2.recordset.fields("课程名称").value = text2.text

adodc2.recordset.fields("学时").value = text3.text

adodc2.recordset.fields("学分").value = text4.text

adodc2.recordset.update

adodc1.refresh

msgbox "恭喜你选课成功“,64”,“提示”

end if

end sub

private sub ***mand2_click()

if text5.text = "" and text6.text = "" and text7.text = "" and text8.text = "" then

msgbox "已退完!“,64”,“提示”

else

adodc1.recordset.addnew

adodc1.recordset.fields("课程**").value = text8.text

adodc1.recordset.fields("课程名称").value = text7.text

adodc1.recordset.fields("学分").value = text6.text

adodc1.recordset.fields("学时").value = text5.text

adodc1.recordset.update

adodc2.refresh

msgbox "退课成功“,64”,“提示”

end if

end sub

(6) 运行测试程序,修改不足的位置,并生成exe文件。

四、心得体会

首先,我有一个问题没有解决,跟同学一起**了几天也没有弄出来,由于快考四级了也没有太多的时间去研究,希望老师帮忙解答一下。用一个ado控件实现“基本信息表”和“已选课程表”的对应链接,这样就可以实现每个同学选课,而不是一个同学选课,界面如下:

其次,做一个不可能一次性做得完美,需要时间去查看资料、构成框架、设计界面,其实更多的是在修改上面,很多时候灵感是源于看得多、做的多、迷惑得多。

第三,无论做得好不好,都应该自己做而不是把网上的或同学的copy过来,当自己的车工序运行出来时,是很有成就感的。

最后,对于我个人而言,我很喜欢vb,但是这学期一直把重心放在英语四级,这个程序还很不完美,有很多地方需要改进,等四级考完了要继续完成,至少做到我自己比较满意的程度。