MicrosoftSQLSERVER学生信息管理系统数据库设计示例doc.docx

上传人:b****7 文档编号:8589807 上传时间:2023-01-31 格式:DOCX 页数:94 大小:333.43KB
下载 相关 举报
MicrosoftSQLSERVER学生信息管理系统数据库设计示例doc.docx_第1页
第1页 / 共94页
MicrosoftSQLSERVER学生信息管理系统数据库设计示例doc.docx_第2页
第2页 / 共94页
MicrosoftSQLSERVER学生信息管理系统数据库设计示例doc.docx_第3页
第3页 / 共94页
MicrosoftSQLSERVER学生信息管理系统数据库设计示例doc.docx_第4页
第4页 / 共94页
MicrosoftSQLSERVER学生信息管理系统数据库设计示例doc.docx_第5页
第5页 / 共94页
点击查看更多>>
下载资源
资源描述

MicrosoftSQLSERVER学生信息管理系统数据库设计示例doc.docx

《MicrosoftSQLSERVER学生信息管理系统数据库设计示例doc.docx》由会员分享,可在线阅读,更多相关《MicrosoftSQLSERVER学生信息管理系统数据库设计示例doc.docx(94页珍藏版)》请在冰豆网上搜索。

MicrosoftSQLSERVER学生信息管理系统数据库设计示例doc.docx

MicrosoftSQLSERVER学生信息管理系统数据库设计示例doc

学生信息管理系统(MicrosoftSQLSERVER)数据库设计示例

一、前言

随着我国教育产业化的飞速发展,社会对教育水平和教学管理软硬件的要求日益提高,尤其是学校对学生管理能够具有一整套完善的教学管理软件提出了更多的要求。

为了适应这种形式,教育系统尤其不仅首先要有坚实的硬件基础,还要有一整套完善的教学管理软件管理系统。

而要实现这一功能,就要求学校管理者配备一套高效的教育管理网络系统,以便在学校内实施良好的一整套完善的管理且以最快地速度响应教师和学生的需求,及时为他们提供服务,为他们提供一个高效、便捷的环境。

学生管理信息系统(MIS)是校园网络中一个重要的应用系统,它大大了改善学校教学、科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平。

学生信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面.对于前者要求建立数据一致性和完整性强,数据安全性好的数据库.而对于后者则要求应用程序功能完备,易使用等特点.

学生信息管理系统主要功能有学生学籍管理、成绩管理、班级管理、课程管理。

学生学籍管理主要有添加新学生学籍;学生学籍修改;学生学籍删除。

成绩管理包括成绩录入、成绩查询、成绩删除。

班级管理包括添加班级、修改班级。

课程管理包括设置课程、添加课程、修改课程。

同时系统采用分级使用,即分管理者和普通用户两个级别,管理者具有所有功能,普通用户即有部分功能将限制使用。

系统开发采用Microsoft公司的VisualBasic6.0,利用其强大的可视化界面功能及对数据库的支持。

系统中大量采用SQL查询语句,界面友好,功能较强。

采用MicrosoftSQLSERVER系统作为数据库,速度较快,数据能共享,能较好地解决访问速度及数据共享的问题。

 

二系统功能描述

本系统的主要任务是实现对学校的学生学籍管理、成绩管理、班级管理、课程管理。

系统采用分级使用其主要功能包括:

1. 学生学藉管理功能

        添加新学生学籍。

添加新生的具体数据,主要有学号、姓名、性别、班号、联系电话、入学时间等详细信息。

        修改学籍。

将已经入库的学籍信息进行修改、更新、删除(需要管理员权限)。

        删除学籍。

删除已经入库的学籍信息(需要管理员权限)。

        查询学籍。

根据学号、姓名、或班级进行党籍信息查询。

2.班级管理功能

        添加班级。

添加班号、年级、班主任及教室等内容(需要管理员权限)。

        修改班级。

修改、更新、删除已经入库的班级内容(需要管理员权限)。

3. 成绩管理功能

        添加成绩。

主要内容为考试编号、班号、学号、姓名、课程及分数(需要管理员权限)。

        修改成绩。

修改、更新、删除已经入库成绩单(需要管理员权限)。

        查询成绩。

按条件进行成绩查询。

 

4. 课程管理功能

        课程设置。

为每个年级进行课程安排。

(需要管理员权限)。

        添加课程。

录入课程名称、课程编号、课程类型等信息。

(需要管理员权限)。

        修改课程。

修改、更新、删除已经入库的课程信息。

(需要管理员权限)。

三、1、数据库概念结构设计

根据以上分析规划出的实体有:

用户信息实体(user_info)、学生学籍信息实体(student_Info)、成绩信息实体(result_Info)、班级课程实体(gradecourse_Info)、课程实体(course_Info)及班级实体(class_Info)。

用户实体E-R图

学生学籍信息实体E-R图

 

成绩信息实体E-R图

 

班级课程实体E-R图

 

课程实体E-R图

 

班级实体E-R图

 

2、数据库逻辑结构设计

(1)用户表user_Info

列名

数据类型

可否为空

说明

user_ID

char

NOTNULL

用户名

user_PWD

char

NULL

用户密码

user_Des

char

NULL

用户类型

(2)学生学籍表student_Info

列名

数据类型

可否为空

说明

student_ID

int

NOTNULL

主键

student_Name

char

NULL

学生名称

student_Sex

char

NULL

性别

born_Date

datetime

NULL

出生日期

class_NO

int

NULL

班级号

tele_Number

char

NULL

联系电话

ru_Date

datetime

NULL

入校日期

address

varchar

NULL

联系地址

comment

varchar

NULL

学生备注

(3)成绩表(result_Info)

列名

数据类型

可否为空

说明

exam_No

char

NOTNULL

考试编号

student_ID

int

NOTNULL

学号

student_Name

char

NULL

学生姓名

class_No

int

NULL

班号

course_Name

char

NULL

课程名

result

float

NULL

分数

(4)班级课程表(gradecourse_Info)

列名

数据类型

可否为空

说明

grade

char

NULL

年级

course_Name

char

NULL

课程名

(5)课程表(course_Info)

列名

数据类型

可否为空

说明

course_No

int

NOTNULL

课程号

course_Name

char

NULL

课程名

course_Type

char

NULL

课程类型

course_Des

char

NULL

课程描述

(6)班级表(class_Info)

列名

数据类型

可否为空

说明

class_No

int

NOTNULL

班号

grade

char

NULL

年级

director

char

NULL

班主任

classroom_No

char

NULL

教室

四、数据库结构的实现

经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。

现在就可以在SQLServer2000数据库系统中实现该逻辑结构。

这是利用SQLServer2000数据库系统中的SQL查询分析器实现的。

下面给出创建这些表格的SQL语句。

1、创建用户表

CREATETABLE[dbo].[user_Info](

[user_ID][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,

[user_PWD][char](10)COLLATEChinese_PRC_CI_ASNULL,

[user_Des][char](10)COLLATEChinese_PRC_CI_ASNULL

)ON[PRIMARY]

GO

2、创建学生信息表

CREATETABLE[dbo].[student_Info](

[student_ID][int]NOTNULL,

[student_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,

[student_Sex][char]

(2)COLLATEChinese_PRC_CI_ASNULL,

[born_Date][datetime]NULL,

[class_NO][int]NULL,

[tele_Number][char](10)COLLATEChinese_PRC_CI_ASNULL,

[ru_Date][datetime]NULL,

[address][varchar](50)COLLATEChinese_PRC_CI_ASNULL,

[comment][varchar](200)COLLATEChinese_PRC_CI_ASNULL

)ON[PRIMARY]

3、创建成绩表

CREATETABLE[dbo].[result_Info](

[exam_No][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,

[student_ID][int]NOTNULL,

[student_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,

[class_No][int]NULL,

[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,

[result][float]NULL

)ON[PRIMARY]

4、创建年级课程表

CREATETABLE[dbo].[gradecourse_Info](

[grade][char](10)COLLATEChinese_PRC_CI_ASNULL,

[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL

)ON[PRIMARY]

5、创建课程表

CREATETABLE[dbo].[course_Info](

[course_No][int]NOTNULL,

[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,

[course_Type][char](10)COLLATEChinese_PRC_CI_ASNULL,

[course_Des][char](50)COLLATEChinese_PRC_CI_ASNULL

)ON[PRIMARY]

6、创建班级表

CREATETABLE[dbo].[class_Info](

[class_No][int]NOTNULL,

[grade][char](10)COLLATEChinese_PRC_CI_ASNULL,

[director][char](10)COLLATEChinese_PRC_CI_ASNULL,

[classroom_No][char](10)COLLATEChinese_PRC_CI_ASNULL

)ON[PRIMARY]

五、学生信息管理系统主窗体的创建

上面的SQL语句在SQLServer2000中查询分析器的执行,将自动产生需要的所有表格。

有关数据库结构的所有后台工作已经完成。

现在将通过航空公司管理信息系统中各个功能模块的实现,讲解如何使用VisualBasic来编写数据库系统的客户端程序。

1、创建公用模块

在VisualBasic中可以用公用模块来存放整个工程项目公用的函数、过程和全局变量等。

这样可以极大地提高代码的效率。

在项目资源管理器中为项目添加一个Module,保存为Module1.bas。

下面就可以开始添加需要的代码了。

由于系统中各个功能模块都将频繁使用数据库中的各种数据,因此需要一个公共的数据操作函数,用以执行各种SQL语句。

添加函数ExecuteSQL,代码如下:

'...............................

PublicDeclareFunctionShellExecuteLib"shell32.dll"Alias"ShellExecuteA"(ByValhWndAsLong,ByVallpOperationAsString,ByVallpFileAsString,ByVallpParametersAsString,ByVallpDirectoryAsString,ByValnShowCmdAsLong)AsLong

PublicDeclareFunctionGetWindowLongLib"user32"Alias"GetWindowLongA"(ByValhWndAsLong,ByValnIndexAsLong)AsLong

PublicDeclareFunctionSetWindowLongLib"user32"Alias"SetWindowLongA"(ByValhWndAsLong,ByValnIndexAsLong,ByValdwNewLongAsLong)AsLong

PublicDeclareFunctionSetLayeredWindowAttributesLib"user32"(ByValhWndAsLong,ByValcrKeyAsLong,ByValbAlphaAsByte,ByValdwFlagsAsLong)AsLong

PublicfMainFormAsfrmMain

PublicUserNameAsString

PublicmnUserTypeAsBoolean'判断用户类型

SubMain()

DimfLoginAsNewfrmLogin

fLogin.ShowvbModal

IfNotfLogin.OKThen

'LoginFailedsoexitapp

End

EndIf

UnloadfLogin

SetfMainForm=NewfrmMain

fMainForm.Show

EndSub

PublicFunctionConnectString()_

AsString

'returnsaDBConnectString

ConnectString="Driver={SQLServer};Server=ABS;Database=student;Uid=sa;Pwd=abs;"

'ConnectString="Provider=SQLOLEDB.1;Password=abs;PersistSecurityInfo=True;UserID=sa;InitialCatalog=student;DataSource=ABS"

EndFunction

PublicFunctionExecuteSQL(ByValSQL_

AsString,MsgStringAsString)_

AsADODB.Recordset

'executesSQLandreturnsRecordset

DimcnnAsADODB.Connection

DimrstAsADODB.Recordset

DimsTokens()AsString

OnErrorGoToExecuteSQL_Error

sTokens=Split(SQL)

Setcnn=NewADODB.Connection

cnn.OpenConnectString

IfInStr("INSERT,DELETE,UPDATE",_

UCase$(sTokens(0)))Then

cnn.ExecuteSQL

MsgString=sTokens(0)&_

"querysuccessful"

Else

Setrst=NewADODB.Recordset

rst.CursorLocation=adUseClient

rst.OpenTrim$(SQL),cnn,_

adOpenKeyset,_

adLockOptimistic

'rst.MoveLast'getRecordCount

SetExecuteSQL=rst

MsgString="查询到"&rst.RecordCount&_

"条记录"

EndIf

ExecuteSQL_Exit:

Setrst=Nothing

Setcnn=Nothing

ExitFunction

ExecuteSQL_Error:

MsgString="查询错误:

"&_

Err.Description

ResumeExecuteSQL_Exit

EndFunction

PublicFunctionTesttxt(txtAsString)AsBoolean

IfTrim(txt)=""Then

Testtxt=False

Else

Testtxt=True

EndIf

EndFunction

2、创建主窗体

这个项目我们使用多文档界面,单击工具栏中的ADDMDIForm按钮,产生一个窗体frmmain.

代码如下:

'...............................

PrivateSubis_usertype()

IfmnUserType=FalseThen

frmsjm.cmdaddsj.Enabled=False

frmsjm.cmdmodsj.Enabled=False

frmbjm.cmdaddbj.Enabled=False

frmbjm.cmdmodbj.Enabled=False

frmkcmod.cmdaddkc.Enabled=False

frmkcmod.cmdmodkc.Enabled=False

frmkcmod.cmdfindkc.Enabled=False

frmcjmod.cmdaddcj.Enabled=False

frmcjmod.cmdmodcj.Enabled=False

frmsjm.cmdaddsj.Enabled=False

frmsjm.cmdmodsj.Enabled=False

frmsys.cmdaddsys.Enabled=False

mnuadduser.Enabled=False

EndIf

EndSub

PrivateSubbjIMG_Click()

frmsjm.Hide

frmkcmod.Hide

frmcjmod.Hide

frmbjm.Show

EndSub

PrivateSubcjIMG_Click()

frmsjm.Hide

frmkcmod.Hide

frmbjm.Hide

frmcjmod.Show

EndSub

PrivateSubexitIMG_Click()

End

EndSub

PrivateSubImgHelp_Click()

frmhelp.Show

EndSub

PrivateSubkcIMG_Click()

frmsjm.Hide

frmbjm.Hide

frmcjmod.Hide

frmkcmod.Show

EndSub

PrivateSubMDIForm_Load()

Me.Caption="学生信息管理系统,操作员["&UserName&"]"

Loadfrmbjm

Loadfrmkcmod

Loadfrmcjmod

Callis_usertype

EndSub

PrivateSubMenuHelp_Click(IndexAsInteger)

frmhelp.Show

EndSub

PrivateSubmnuadduser_Click()

frmAdduser.Show

EndSub

PrivateSubmnuExit_Click()

End

EndSub

PrivateSubmnupsw_Click()

frmModifyuserinfo.Show

EndSub

PrivateSubsysIMG_Click()

frmsys.Show

EndSub

PrivateSubxjIMG_Click()

frmsjm.Show

frmbjm.Hide

frmkcmod.Hide

frmcjmod.Hide

EndSub

3创建frmLogin窗体

代码如下:

OptionExplicit

PrivateDeclareFunctionGetUserNameLib"advapi32.dll"Alias"GetUserNameA"(ByVallpbufferAsString,nSizeAsLong)AsLong

PrivateConstWS_EX_LAYERED=&H80000

PrivateConstGWL_EXSTYLE=(-20)

PrivateConstLWA_ALPHA=&H2

PrivateConstLWA_COLORKEY=&H1

'表示当前用户登录所选择的身份,即用户类型,0-表示教务管理人员;1-表示学生

DimUserTypeAsInteger

PublicOKAsBoolean

'记录确定次数

DimmiCountAsInteger

PrivateSubcmdCancel_Click()

OK=False

Me.Hide

EndSub

PrivateSubcmdOK_Click()

DimtxtSQLAsString

DimmrcAsADODB.Recordset

DimMsgTextAsString

'ToDo:

createtestforcorrectpassword

'checkforcorrectpassword

UserName=""

IfTrim(txtUserName.Text="")Then

MsgBox"没有这个用户,请重新输入用户名!

",vbOKOnly+vbExclamation,"警告"

txtUserName.SetFocus

Else

txtSQL="select*fromuser_Infowhereuser_ID='"&txtUserName.Text&"'"

Setmrc=ExecuteSQL(txtSQL,MsgText)

Ifmrc.EOF=TrueThen

MsgBox"没有这个用户,请重新输入用户名!

",vbOKOnly+vbExclamation,"警告"

txtUserName.SetFocus

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

当前位置:首页 > 总结汇报 > 工作总结汇报

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

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