排课管理系统.docx

上传人:b****0 文档编号:25891855 上传时间:2023-06-16 格式:DOCX 页数:47 大小:112.38KB
下载 相关 举报
排课管理系统.docx_第1页
第1页 / 共47页
排课管理系统.docx_第2页
第2页 / 共47页
排课管理系统.docx_第3页
第3页 / 共47页
排课管理系统.docx_第4页
第4页 / 共47页
排课管理系统.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

排课管理系统.docx

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

排课管理系统.docx

排课管理系统

毕业设计

<<排课管理系统>>

院系______

专业______

班级______

姓名______

 

日期年月日

 

摘要i

Abstractii

第一章引言1

1.1背景1

1.1.1教师管理系统1

1.2开发教师管理系统的目的和原则3

1.3开发环境介绍3

1.3.1开发平台4

1.3.2数据库设计工具——ACCESS数据库管理系统7

第二章系统设计9

2.1系统分析9

2.2系统流程和操作方式设计11

第三章系统界面设计12

3.1系统界面设计以及代码分析12

第四章数据库的设计30

4.1数据库设计30

4.2数据库概念和发展30

4.3系统测试与评价38

总结39

致谢40

参考文献41

 

摘要

20世纪以来,社会生产力迅速发展,科学技术突飞猛进,人们进行信息交流的深度与广度不断增加,信息量急剧增长,传统的信息处理与决策的手段已不能适应社会的需要,信息的重要性和信息处理问题的紧迫性空前提高了,面对着日益复杂和不断发展,变化的社会环境,特别是企业间日趋剧烈的竞争形势,一个人、一个企业要在现代社会中求生存,求发展,必须具备足够的信息和强有力的信息收集与处理手段。

对于一个学校来说,大量教师课程安排难于通过传统的方法进行管理;这就迫切需要利用计算机技术来帮助学校管理者来处理教师课程安排的日常管理,合理安排课程,防止课程冲突.排课管理系统可以很好的解决以上问题.排课管理系统是管理信息系统的一个典型用例.

管理信息系统是一个集信息技术、经济管理理论、统计学与运筹学、数据库技术为一体的综合性系统,是一个资金技术密集型、劳动密集型、智力密集型的项目。

我国拥有广阔的市场和丰富的人才资源,有几十年的技术积累和经验积累,有一定的后发优势。

管理信息系统的创新工作既不能妄自菲薄,更不能夜郎自大。

要抓住当前网络经济兴起的有利时机,以实现我国信息技术和信息产业的跨越式发展,更好地发挥信息产业对国民经济增长的拉动作用。

开发学校排课管理系统的过程就是要实现数据处理方式由人工管理向计算机管理的转变,它在计算机技术和教师管理实践活动两者之间架设桥梁。

关键字:

排课管理,管理信息系统,数据库,计算机管理

第一章引言

对于一个学校来说,大量教师课程安排难于通过传统的方法进行管理;这就迫切需要利用计算机技术来帮助学校管理者来处理教师课程安排的日常管理,合理安排课程,防止课程冲突.排课管理系统可以很好的解决以上问题.排课管理系统是管理信息系统的一个典型用例.

1.1背景

1.1.1排课管理系统

如今随着教育事业的发展,学校对教师课程安排的复杂度的增加,一个单位,各个学科每天的课程安排以及教室资源的分配,排课工资等信息量将迅速的增加,传统的手工的处理方式已经跟不上信息爆炸般的扩增.所以开发一种可靠,高效的教师排课管理系统是很有必要的.

1.2开发排课管理系统的目的与原则

排课管理系统的主要目的是服务与中小学,各高校的管理者,方便其管理本校排课信息的软件系统.其原则是做到,界面友好人性,操作简单,可靠.

1.3开发环境介绍

1.3.1开发平台

本教师管理系统的开发平台为微软windowsxpvisualbasic6.0以及微软的Access作为操作数据库.

1.3.2数据库设计工具——ACCESS数据库管理系统

 Microsoft Access介绍:

使用 Microsoft Access,可以在单一的数据库文件中管理所有的信息。

在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据。

如果要保存数据,请为每一种类型的信息创建一个表。

如果要从查询、窗体或报表中的多个表中将数据合并在一起,就要定义各个表之间的关系。

如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创建查询。

查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。

如果要简单地直接在某个表中查看、输入及更改数据,请创建一个窗体。

在打开一个窗体时,Microsoft Access 将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上。

如果要分析数据或将数据以特定的方式打印出来,请创建一个报表。

例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印另一份带有各种数据格式的打印邮件标签的报表。

 

第二章系统设计

2.1系统分析

本排课管理系统主要由以下几大模块构成.

一.教职员入库信息.

二.排课管理

三.教职员带课查询

四.本学期课程设置

五.打印课程表

六.打印教师代课表

 

2.2系统流程和操作方式设计

系统登陆

主界面

教职员工入库信息

排课管理

教职员工带课查询

本学期课程安排

打印课程表

打印教师带课表

第三章系统界面设计

3.1系统界面设计

1.登陆界面

代码分析:

OptionExplicit

PublicLoginSucceededAsBoolean

PrivateSubcmdCancel_Click()

'settheglobalvartofalse

'todenoteafailedlogin

LoginSucceeded=False

UnloadfmStart

EndSub

PrivateSubcmdOK_Click()

'checkforcorrectpassword

IftxtPassword="password"Then

'placecodetoheretopassthe

'successtothecallingsub

'settingaglobalvaristheeasiest

LoginSucceeded=True

Me.Hide

fmStart.Show

Else

MsgBox"InvalidPassword,tryagain!

",,"Login"

txtPassword.SetFocus

SendKeys"{Home}+{End}"

EndIf

EndSub

PrivateSubForm_Load()

LoadfmStart

fmStart.Hide

EndSub

2.教职员入库信息界面:

代码分析:

DimconAsADODB.Connection

DimrsAsADODB.Recordset

DimqrsAsADODB.Recordset

DimslSqlAsString

Dimi,jAsInteger

DimstrBak

(2)AsString

DimsqlStrAsString

PrivateSubCommand1_Click(IndexAsInteger)

OnErrorGoToErr:

DimcnAsInteger

Forcn=0To2

Text1(cn).Text=""

Nextcn

Ifrs.RecordCount>0Then

SelectCaseIndex

Case0:

rs.MoveFirst

Case1:

rs.MovePrevious

Command1

(2).Enabled=True

Command1(3).Enabled=True

Case2:

rs.MoveNext

Command1(0).Enabled=True

Command1

(1).Enabled=True

Case3:

rs.MoveLast

EndSelect

displayInfo

EndIf

GoTook:

Err:

CalldataOver

ok:

EndSub

PrivateSubdataOver()

Ifrs.BOFThen

Command1(0).Enabled=False

Command1

(1).Enabled=False

Command1

(2).Enabled=True

Command1(3).Enabled=True

rs.MoveFirst

Else

Ifrs.EOFThen

rs.MoveLast

Command1(0).Enabled=True

Command1

(1).Enabled=True

Command1

(2).Enabled=False

Command1(3).Enabled=False

Else

MsgBox"DatabaseError",vbExclamation+vbOKOnly,"Errorunknown"

EndIf

EndIf

 

EndSub

PrivateSubCommand2_Click(IndexAsInteger)

OnErrorGoToerrDeal

IfIndex=0OrIndex=2Then

CanSave(True)

Else

CanSave(False)

EndIf

SelectCaseIndex

Case0:

rs.AddNew

CalltoNull

Case1:

j=MsgBox("你确定要删除本记录吗?

",vbYesNo+vbQuestion,"删除")

Ifj=vbYesThen

rs.Delete

CalltoNull

EndIf

Case2:

rs.Delete

rs.AddNew

Case3:

IfLen(LTrim$(RTrim$(Text1(0).Text)))>0Then

'rs.AddNew

Fori=0To2

IfLen(LTrim$(RTrim$(Text1(i).Text)))>0Then

rs.Fields(i)=Text1(i).Text

EndIf

Nexti

rs.Update

Else

MsgBox"姓名不得为空",vbOKOnly+vbExclamation,"Error"

EndIf

Case4:

Fori=0To2

Text1(i).Text=strBak(i)

Nexti

CallCommand2_Click(3)

EndSelect

ExitSub

 

errDeal:

MsgBox"databaseError",vbExclamation+vbOKOnly,"error"

'okEnd:

EndSub

PrivateSubCanSave(okAsBoolean)

Frame1.Enabled=Notok

Frame3.Enabled=ok

Fori=0To4

Ifi<3Then

Command2(i).Enabled=Notok

Else

Command2(i).Enabled=ok

EndIf

Nexti

EndSub

PrivateSubForm_Load()

DimcntAsInteger

Setcon=NewADODB.Connection

Setrs=NewADODB.Recordset

Setqrs=NewADODB.Recordset

'"Provider=Microsoft.Jet.OLEDB.3.51;PersistSecurityInfo=False;DataSource=C:

\WINDOWS\Desktop\dataUse.mdb"

con.Open"provider=Microsoft.Jet.OLEDB.4.0;datasource="&App.Path&"\dataUse.mdb"

rs.Open"select*fromteacher",con,adOpenStatic,adLockOptimistic

Ifrs.RecordCount>0Then

rs.MoveFirst

displayInfo

CanSave(False)

Else

'newdata

CanSave(True)

CallCommand2_Click(0)

EndIf

EndSub

PrivateSubdisplayInfo()

i=j=0

Fori=0To2

'Text1(i).Text=""

IfLen(rs.Fields(i))>0Then

Text1(i).Text=rs.Fields(i)

strBak(i)=Text1(i).Text

EndIf

Nexti

EndSub

PrivateSubtoNull()

Fori=0To2

Text1(i).Text=""

strBak(i)=""

Nexti

EndSub

 

PrivateSubForm_Unload(CancelAsInteger)

OnErrorGoToKK

rs.Close

Setrs=Nothing

qrs.Close

Setqrs=noting

con.Close

Setcon=Nothing

KK:

EndSub

PrivateSubqueryComm_Click()

slSql="select*fromTeacherwherecTrname='"+Text1(3).Text+"'"

qrs.OpenslSql,con,adOpenStatic

IfNotqrs.EOFThen

qrs.MoveFirst

i=j=0

Fori=0To2

'Text1(i).Text=""

IfLen(qrs.Fields(i))>0Then

Text1(i).Text=qrs.Fields(i)

strBak(i)=Text1(i).Text

EndIf

Nexti

EndIf

qrs.Close

EndSub

3.排课管理界面

代码分析:

OptionExplicit

DimconnAsADODB.Connection

DimrsTrAsADODB.Recordset

DimrsSjAsADODB.Recordset

Dimi,j,sjCntAsInteger

DimClassCodeAsString

DimTrChanged,ClassChangedAsBoolean

DimstrSqlAsString

DimrsTrAryAsADODB.Recordset

DimrsClassAryAsADODB.Recordset

DimStrTr(9)AsString

DimstrSj(49)AsString

Dimminht,maxHtAsInteger

PrivateSubEnableSave(okAsBoolean)

DimkAsInteger

Fork=0To3

Ifk<2Then

cb(k).Enabled=Notok

Else

cb(k).Enabled=ok

EndIf

Nextk

Frame7.Enabled=Notok

Frame2.Enabled=ok

Frame3.Enabled=ok

EndSub

PrivateSubcb_Click(IndexAsInteger)

Me.MousePointer=11

OnErrorGoToerrDeal

SelectCaseIndex

Case0:

ClassCode=Trim(Combo1(0).Text)&"."&Trim(Combo1

(1).Text)

IfLen(Trim(Combo1(0).Text))>0AndLen(ClassCode)>1Then

CalldisplayInfo

cb

(1).Enabled=True

EndIf

Case1:

cb_Click(0)

EnableSave(True)

cb

(1).Enabled=False

Case2:

IfTrChangedThen

strSql="delete*fromtrclasswherecclasscode='"&ClassCode&"'"

conn.ExecutestrSql

DimstrTrNameAsString

Fori=0TosjCnt-1

strTrName=Trim(Combo2(i).Text)

IfLen(strTrName)>0Then

strSql="insertintotrclassvalues('"&ClassCode&"',"+"'"+Trim(Label2(i).Caption)+"',"+"'"+Trim(Combo2(i).Text)+"')"

'me.caption=strSql

conn.ExecutestrSql

EndIf

Nexti

TrChanged=False

rsTrAry.Requery

cb

(1).Enabled=False

EndIf

IfClassChangedThen

conn.Execute"delete*fromclassarraywherecclasscode='"&ClassCode&"'"

DimX,YAsInteger

Fori=0To49

Y=iMod5+1

X=Int(i/5)+1

IfLen(Trim(Combo3(i).Text))>0Then

strSql="insertintoclassarrayvalues('"&ClassCode&"',"&Y&","&X&",'"&Trim(Combo3(i).Text)&"')"

'me.caption=strSql

conn.ExecutestrSql

EndIf

Nexti

ClassChanged=False

rsClassAry.Requery

EndIf

EnableSave(False)

Case3:

Fori=0TosjCnt-1

Combo2(i).Text=Combo2(i).Tag

Nexti

Fori=0To49

Combo3(i).Text=Combo3(i).Tag

Nexti

EnableSave(False)

cb

(1).Enabled=False

EndSelect

GoTook

errDeal:

MsgBox"ErrorUnknown"

ok:

Me.MousePointer=0

EndSub

PrivateSubdisplayInfo()

Forj=0TosjCnt-1

strSql="selectcteacherfromtrclasswherecclasscode='"&ClassCode&"'andcsubject='"&Trim(Label2(j).Caption)&"'"

'Text1.Text=strSql

'me.caption=strSql

SetrsTrAry=conn.Execute(strSql)

'DimtpRsAsADODB.Recordset

'SettpRs=conn.Execute("selectcteacherfromtrclasswherecclasscode='"&ClassCode&"'andcsubject='"&Trim(Label2(j).Caption)&"'")

'Text1.Text="####"&strSql&"####"

'WhileNottpRs.EOF

'Text1.Text=Text1.Text+tpRs.Fields(0)

'tpRs.MoveNext

'Wend

'这里用另一种方法创建recordset

'rsTrAry.

IfNotrsTrAry.EOFThen

'rsTrAry.MoveFirst

Combo2(j).Text=rsTrAry.Fields(0)'rsTrAry!

cteacher

Combo2(j).Tag=rsTrAry.Fields(0)'rsTrAry!

cteacher

'EnableSave(False)

Else

'MsgBox"nodata",vbOKOnly

Combo2(j).Text=""

Combo2(j).Tag=""

'EnableSave(True)

'''''''''''''''''''''''''''这里语句可能出错

EndIf

Nextj

Fori=0To49

DimX,YAsInteger

X=Int(i/5+1)

Y=iMod5+1

strSql="selectcsjnamefromclassarraywherecclasscode='"&ClassCode&"'anditimew="&Y&"anditimen="&X

'me.caption=strSql

'rsClassAry.OpenstrSql,conn,adOpenStatic,adLockOptimistic

SetrsClassAry=conn.Execute(strSql)

IfNo

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

当前位置:首页 > 总结汇报 > 实习总结

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

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