学生管理系统修改后.docx

上传人:b****8 文档编号:9911538 上传时间:2023-02-07 格式:DOCX 页数:117 大小:493KB
下载 相关 举报
学生管理系统修改后.docx_第1页
第1页 / 共117页
学生管理系统修改后.docx_第2页
第2页 / 共117页
学生管理系统修改后.docx_第3页
第3页 / 共117页
学生管理系统修改后.docx_第4页
第4页 / 共117页
学生管理系统修改后.docx_第5页
第5页 / 共117页
点击查看更多>>
下载资源
资源描述

学生管理系统修改后.docx

《学生管理系统修改后.docx》由会员分享,可在线阅读,更多相关《学生管理系统修改后.docx(117页珍藏版)》请在冰豆网上搜索。

学生管理系统修改后.docx

学生管理系统修改后

学生信息管理系统(MicrosoftSQLSERVER)

一、前言

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

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

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

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

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

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

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

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

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

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

二系统功能描述

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

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

1. 学生学藉管理功能

●        添加新学生学籍。

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

●        修改学籍。

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

●        删除学籍。

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

●        查询学籍。

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

2.班级管理功能

●        添加班级。

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

●        修改班级。

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

 

3. 成绩管理功能

●        添加成绩。

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

●        修改成绩。

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

●        查询成绩。

按条件进行成绩查询。

4. 课程管理功能

●        课程设置。

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

(需要管理员权限)。

●        添加课程。

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

(需要管理员权限)。

●        修改课程。

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

(需要管理员权限)。

三、

1、数据库概念结构设计

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

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

图1-1用户实体E-R

 

学生学籍

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

成绩

 

 

图1-3成绩信息实体E-R

 

图1-4班级课程实体E-R

图1-5课程实体E-R

图1-6班级实体E-R

 

2、数据库逻辑结构设计

表2-1用户表user_Info

列名

数据类型

可否为空

说明

用户名

Char(12)

NOTNULL

主键

用户密码

Char(8)

NOTNULL

用户类型

Char

NULL

表2-2学生学籍表student_Info

列名

数据类型

可否为空

说明

学号

Int(10)

NOTNULL

主键

姓名

Cha(8)

NOTNULL

性别

Char

(1)

NOTNULL

出生日期

Datetime(8)

NULL

班级号

Int(7)

NULL

联系电话

Char(11)

NULL

入校日期

Datetime(8)

NULL

联系地址

Varchar(20)

NULL

学生备注

Varchar

NULL

表2-3成绩表(result_Info)

列名

数据类型

可否为空

说明

学号

Int(10)

NOTNULL

主键

姓名

Char(8)

NOTNULL

课程编号

Int(6)

NOTNULL

主键

课程名称

Char(20)

NULL

学分

INT

NULL

表2-4班级课程表(gradecourse_Info)

列名

数据类型

可否为空

说明

年级编号

Char(8)

NOTNULL

主键

课程名称

Char(20)

NOTNULL

授课老师

Char(8)

NOTNULL

表2-5课程表(course_Info)

列名

数据类型

可否为空

说明

课程号

Int(6)

NOTNULL

主键

课程

Char(20)

NULL

课程类型

Char

NULL

表2-6班级表(class_Info)

列名

数据类型

可否为空

说明

班号

Int()

NOTNULL

主键

年级

char

NULL

班主任

char

NULL

教室

char

NULL

班级人数

INT

NULL

四、数据库结构的实现

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

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

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

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

1、创建用户表

CREATETABLE[dbo].[用户表](

[用户名][char](12)COLLATEChinese_PRC_CI_ASNOTNULL,

[用户密码][int]NOTNULL,

[用户类型][char](10)COLLATEChinese_PRC_CI_ASNULL,

CONSTRAINT[PK_用户表]PRIMARYKEYCLUSTERED

([用户名]ASC

)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]

)ON[PRIMARY]

2、创建学生信息表

CREATETABLE[dbo].[学生学籍表](

[学号][char](11)COLLATEChinese_PRC_CI_ASNOTNULL,

[姓名][char](8)COLLATEChinese_PRC_CI_ASNOTNULL,

[性别][char]

(2)COLLATEChinese_PRC_CI_ASNOTNULL,

[出生日期][datetime]NULL,

[班级号][int]NULL,

[联系电话][char](11)COLLATEChinese_PRC_CI_ASNULL,

[入校日期][datetime]NULL,

[联系地址][char](20)COLLATEChinese_PRC_CI_ASNULL,

[学生备注][varbinary](50)NULL,

CONSTRAINT[PK_学生学籍表]PRIMARYKEYCLUSTERED

[学号]ASC

)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]

)ON[PRIMARY]

3、创建成绩表

USE[学生管理系统]

GO

/******对象:

Table[dbo].[成绩表]脚本日期:

01/01/200602:

32:

41******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

CREATETABLE[dbo].[成绩表](

[学号][char](11)COLLATEChinese_PRC_CI_ASNOTNULL,

[班号][nchar](5)COLLATEChinese_PRC_CI_ASNULL,

[课程名][varchar](20)COLLATEChinese_PRC_CI_ASNULL,

[姓名][varchar](12)COLLATEChinese_PRC_CI_ASNOTNULL,

[课程编号][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,

[学分][tinyint]NOTNULL,

CONSTRAINT[PK_成绩表]PRIMARYKEYCLUSTERED

[学号]ASC,

[课程编号]ASC

)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]

)ON[PRIMARY]

4、创建年级课程表

CREATETABLE[dbo].[gradecourse_Info](

[年级][char](10)COLLATEChinese_PRC_CI_ASNULL,

[课程名][char](10)COLLATEChinese_PRC_CI_ASNULL

)ON[PRIMARY]

5、创建课程表

USE[学生管理系统]

GO

/******对象:

Table[dbo].[课程表]脚本日期:

01/01/200600:

43:

35******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

CREATETABLE[dbo].[课程表](

[课程号][char](9)COLLATEChinese_PRC_CI_ASNOTNULL,

[课程名][varchar](20)COLLATEChinese_PRC_CI_ASNULL,

[课程类型][varchar](20)COLLATEChinese_PRC_CI_ASNULL

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

6、创建班级表

USE[学生管理系统]

GO

/******对象:

Table[dbo].[班级表]脚本日期:

01/01/200601:

00:

48******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

CREATETABLE[dbo].[班级表](

[班级号][char](20)COLLATEChinese_PRC_CI_ASNULL,

[年级][varchar](20)COLLATEChinese_PRC_CI_ASNULL,

[班主任][varchar](12)COLLATEChinese_PRC_CI_ASNULL,

[教室][varchar](12)COLLATEChinese_PRC_CI_ASNULL,

[班级人数][char](10)COLLATEChinese_PRC_CI_ASNULL

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

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

上面的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:

createt

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

当前位置:首页 > PPT模板 > 简洁抽象

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

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