学生档案管理系统.docx

上传人:b****6 文档编号:7000061 上传时间:2023-01-15 格式:DOCX 页数:32 大小:98.42KB
下载 相关 举报
学生档案管理系统.docx_第1页
第1页 / 共32页
学生档案管理系统.docx_第2页
第2页 / 共32页
学生档案管理系统.docx_第3页
第3页 / 共32页
学生档案管理系统.docx_第4页
第4页 / 共32页
学生档案管理系统.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

学生档案管理系统.docx

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

学生档案管理系统.docx

学生档案管理系统

沈阳航空航天大学

课程设计

学号2009040603049

班级94060302_____

姓名__冯光才_______

指导教师___刘学平_______

2011年7月6日

沈阳航空航天大学

课程设计任务书

学院:

机电工程专业:

车辆工程班级:

94060302

学号:

45题目:

学生档案管理系统

一、课程设计时间

2011年6月27日~7月1日(第17周),共计1周。

二、课程设计内容

用VB+Access组合,编写“学生档案管理系统”软件。

学生信息存储到Access数据库的一个表中,学生信息至少包括:

班级、学号、姓名、性别、出生日期、政治面貌、家庭地址、入学成绩、入学时间、联系电话等。

程序能实现对学生数据进行维护、分类查询、汇总、打印等功能。

用户界面中的菜单至少应包括“数据维护”、“查询”、“汇总”、“打印”、“退出”5项。

三、课程设计要求

程序质量:

✧贯彻事件驱动的程序设计思想。

✧用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。

✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。

课程设计说明书:

✧课设结束后,上交课程设计说明书和源程序。

课程设计说明书的内容参见提供的模板。

四、指导教师和学生签字

指导教师:

________学生签名:

________

五、成绩

六、教师评语

目录

学号:

45题学生档案管理系统2

一、需求分析4

二、设计分析4

三、关键技术6

四、总结13

五、完整的源程14

六、参考文献34

一、需求分析

用VB+Access组合,编写“学生档案管理系统”软件。

学生信息存储到Access数据库的一个表中,学生信息至少包括:

班级、学号、姓名、性别、出生日期、政治面貌、家庭地址、入学成绩、入学时间、联系电话等。

程序能实现对学生数据进行维护、分类查询、汇总、打印等功能。

用户界面中的菜单至少应包括“数据维护”、“查询”、“汇总”、“打印”、“退出”5项。

二、设计分析

(1)基本原理:

建立程序设计与数据库的连接,用SQL语句在数据库中查找,添加和更改数据。

(2)总体设计:

图1总体设计

(3)详细设计:

图1详细设计

(4)数据库设计:

数据库设计是总体设计阶段非常重要的环节,数据库结构的变化会造成编码的改动,所以必须认真设计数据库结构后再进行编码,从而避免无谓的重复工作。

具体表格如下

学生基本信息表(rsb.dbf)

学生基本信息表(rsb.dbf)用于记录学号、姓名、班级政治面貌、家庭住址、联系电话等信息,其逻辑结构如表1所示。

表1学生基本信息表

班级

学号

姓名

性别

出生日期

家庭住址

联系电话

三、关键技术

(1)建立与数据库的连接代码如下

PublicgUserNameAsString'保存用户名称

PublicflagAsInteger'添加和修改的标志

PublicgSQLAsString'保存SQL语句

PubliciflagAsInteger'数据库是否打开标志

PublicconnAsNewADODB.Connection

PublicFunctionTransactSQL(ByValsqlAsString)AsADODB.Recordset

DimconAsADODB.Connection

DimrsAsADODB.Recordset

DimstrConnectionAsString

DimstrArray()AsString

Setcon=NewADODB.Connection'创建连接

Setrs=NewADODB.Recordset'创建记录集

OnErrorGoToTransactSQL_Error

strConnection="Provider=Microsoft.jet.oledb.4.0;DataSource="&App.Path&"\Person.mdb"

strArray=Split(sql)

con.OpenstrConnection'打开连接

IfStrComp(UCase$(strArray(0)),"select",vbTextCompare)=0Then

rs.OpenTrim$(sql),con,adOpenKeyset,adLockOptimistic

SetTransactSQL=rs'返回记录集

iflag=1

Else

con.Executesql'执行命令

iflag=1

EndIf

TransactSQL_Exit:

Setrs=Nothing

Setcon=Nothing

ExitFunction

TransactSQL_Error:

MsgBox"查询错误:

"&Err.Description

iflag=2

ResumeTransactSQL_Exit

EndFunction

PublicSubTabToEnter(KeyAsInteger)

IfKey=13Then'判断是否为回车键

SendKeys"{TAB}"'转换为Tab键

EndIf

EndSub

Submain()

DimfLoginAsNewfrmLogin

fLogin.ShowvbModual'显示窗体

EndSub

(2)查询学生档案是SQL语句在数据库中查找学生个人信息。

PrivateSubsetSQL()'设置SQL语句

IfIDCheck.Value=vbCheckedThen

query="select*fromStuffInfowhereSID='"&Trim(Me.SID)&"'"

EndIf

IfNameCheck.Value=vbCheckedThen

query="select*fromStuffInfowhereSName='"&Trim(Me.SName)&"'"

EndIf

IfTimeCheck.Value=vbCheckedThen

query="select*fromStuffInfowhereSIsTimebetween#"

query=query&fromdate&"#and#"&todate&"#"

EndIf

IfIDCheck.Value=vbCheckedAndNameCheck.Value=vbCheckedThen

query="select*fromStuffInfowhereSID='"&Trim(Me.SID)

query=query&"'andSName='"&Trim(Me.SName)&"'"

EndIf

IfNameCheck.Value=vbCheckedAndTimeCheck.Value=vbCheckedThen

query="select*fromStuffInfowhereSName='"&Trim(Me.SName)

query=query&"'andSIsTimebetween#"&fromdate

query=query&"#and#"&todate&"#"

EndIf

EndSub

PrivateSubcmdOK_Click()

IfTrim(Me.SID)=""AndTrim(Me.SName)=""AndTimeCheck.Value<>vbCheckedThen

MsgBox"请选择查询的条件!

",vbOKOnly+vbExclamation,"警告!

"

Else

CallCombineDate

CallsetSQL

frmResult.createList(query)

frmResult.Show

UnloadMe

EndIf

EndSub

(3)打印学生档案表格。

PrivateSubPrint_Click()

DimBeginPage,EndPage,NumCopies,i

'设置“取消”为True

CommonDialog1.CancelError=True

OnErrorGoToErrHandler

'显示“打印”对话框

CommonDialog1.ShowPrinter'从该对话框取得选定的值

BeginPage=CommonDialog1.FromPage'开始页

EndPage=CommonDialog1.ToPage'结束页

NumCopies=CommonDialog1.Copies'打印份数

Fori=1ToNumCopies

Nexti

ExitSub

ErrHandler'用户按了“取消”按钮

ExitSub

EndSub

(4)运用msgbox提示是否退出。

PrivateSubSystem_EXIT_Click()

DimuendAsString

uend=MsgBox("您是否要退出",vbYesNo,"关闭程序")

Ifuend=vbYesThen

End

EndIf

EndSub

四、总结

这次课设我的题目是书店图书销售系统,通过这次课设让我了解了VB与数据库之间的联系,可以应用ADO技术使VB与数据库进行联系,还可以应用SQL语言查询和更改数据库中的信息,并能向其中添加新的信息。

在课设过程中,我遇到了重重困难,例如:

VB与数据库的连接技术,通过老师的指点和自己查阅资料,我克服了困难,顺利的完成了任务。

同时我也了解了VB的出现是一场技术革命,它在生活中各个方面都能发挥巨大的作用,所以,学好VB是社会发展的需要。

五、完整的源

1.Module1

PublicgUserNameAsString'保存用户名称

PublicflagAsInteger'添加和修改的标志

PublicgSQLAsString'保存SQL语句

PubliciflagAsInteger'数据库是否打开标志

PublicconnAsNewADODB.Connection

PublicFunctionTransactSQL(ByValsqlAsString)AsADODB.Recordset

DimconAsADODB.Connection

DimrsAsADODB.Recordset

DimstrConnectionAsString

DimstrArray()AsString

Setcon=NewADODB.Connection'创建连接

Setrs=NewADODB.Recordset'创建记录集

OnErrorGoToTransactSQL_Error

strConnection="Provider=Microsoft.jet.oledb.4.0;DataSource="&App.Path&"\Person.mdb"

strArray=Split(sql)

con.OpenstrConnection'打开连接

IfStrComp(UCase$(strArray(0)),"select",vbTextCompare)=0Then

rs.OpenTrim$(sql),con,adOpenKeyset,adLockOptimistic

SetTransactSQL=rs'返回记录集

iflag=1

Else

con.Executesql'执行命令

iflag=1

EndIf

TransactSQL_Exit:

Setrs=Nothing

Setcon=Nothing

ExitFunction

TransactSQL_Error:

MsgBox"查询错误:

"&Err.Description

iflag=2

ResumeTransactSQL_Exit

EndFunction

PublicSubTabToEnter(KeyAsInteger)

IfKey=13Then'判断是否为回车键

SendKeys"{TAB}"'转换为Tab键

EndIf

EndSub

Submain()

DimfLoginAsNewfrmLogin

fLogin.ShowvbModual'显示窗体

EndSub

2.frmAddUser

OptionExplicit

PrivateSubcmdCancel_Click()

UnloadMe

EndSub

PrivateSubcmdOK_Click()

DimsqlAsString

DimrsAsADODB.Recordset

IfTrim(UserName.Text)=""Then'判断用户名称是否为空

MsgBox"请输入用户名称!

",vbOKOnly+vbExclamation,"警告"

ExitSub

UserName.SetFocus

Else

sql="select*fromUserInfowhereUserID='"&UserName&"'"

Setrs=TransactSQL(sql)

Ifrs.EOF=FalseThen'判断是否已经存在用户

MsgBox"这个用户已经存在!

请重新输入用户名称!

",vbOKOnly+vbExclamation,"警告"

UserName.SetFocus

UserName.Text=""

PassWord.Text=""

confirmPWD.Text=""

ExitSub

Else

IfTrim(PassWord.Text)<>Trim(confirmPWD.Text)Then'判断两次密码是否相同

MsgBox"两次输入的密码不一致,请重新输入密码!

",vbOKOnly+vbExclamation,"警告"

PassWord.Text=""

confirmPWD.Text=""

PassWord.SetFocus

ExitSub

ElseIfTrim(PassWord.Text)=""Then'判断密码是否为空

MsgBox"密码不能为空!

",vbOKOnly+vbExclamation,"警告"

PassWord.Text=""

confirmPWD=""

PassWord.SetFocus

Else'添加用户

sql="insertintoUserInfo(UserID,UserPWD)values('"&UserName

sql=sql&"','"&PassWord&"')"

TransactSQL(sql)

MsgBox"添加成功!

",vbOKOnly+vbExclamation,"添加结果"

'重新设置初始化为空

UserName.Text=""

PassWord.Text=""

confirmPWD.Text=""

UserName.SetFocus

EndIf

EndIf

EndIf

EndSub

PrivateSubForm_Load()

UserName.Text=""

PassWord.Text=""

confirmPWD.Text=""

EndSub

3.frmChangePWD

OptionExplicit

PrivateSubcmdCancel_Click()

UnloadMe

EndSub

PrivateSubcmdOK_Click()

DimsqlAsString

DimrsAsADODB.Recordset

'IfTrim(OldPWD.Text)=UserPWDThen'判断是否输入旧密码

'MsgBox"请输入旧密码!

",vbOKOnly+vbExclamation,"警告"

'OldPWD.SetFocus

'ExitSub

'Else

IfTrim(NewPWD.Text)=""Then'判断是否输入新密码

MsgBox"请输入新密码!

",vbOKOnly+vbExclamation,"警告"

NewPWD.SetFocus

ExitSub

ElseIfTrim(NewPWD.Text)<>Trim(ConfirmPWD.Text)Then'判断两次密码是否相同

MsgBox"两次密码不同!

",vbOKOnly+vbExclamation,"警告"

NewPWD.Text=""

ConfirmPWD.Text=""

NewPWD.SetFocus

Else

'IfTrim(OldPWD.Text)=UserPWDThen'修改密码

sql="updateUserInfosetUserPWD='"&NewPWD&"'whereUserID='"

sql=sql&gUserName&"'"

TransactSQL(sql)

MsgBox"密码已经修改!

",vbOKOnly+vbExclamation,"修改结果"

UnloadMe

EndIf

EndSub

PrivateSubForm_Load()

'OldPWD.Text=""

NewPWD.Text=""

ConfirmPWD.Text=""

EndSub

4.frmCheck

OptionExplicit

PrivatequeryAsString

PrivatefromdateAsString

PrivatetodateAsString

PrivateSubcmdCancel_Click()

UnloadMe

ExitSub

EndSub

PrivateSubCombineDate()

fromdate=Me.FromYear.Text&"-"&Me.FromMonth.Text&"-1"

fromdate=Format(Me.FromYear.Text&"-"&Me.FromMonth.Text&"-1","yyyy-mm-dd")

todate=Me.ToYear.Text&"-"&Me.ToMonth.Text&"-1"

todate=Format(todate,"yyyy-mm-dd")

EndSub

PrivateSubsetSQL()

IfIDCheck.Value=vbCheckedThen

query="select*fromStuffInfowhereSID='"&Trim(Me.SID)&"'"

EndIf

IfNameCheck.Value=vbCheckedThen

query="select*fromStuffInfowhereSName='"&Trim(Me.SName)&"'"

EndIf

IfTimeCheck.Value=vbCheckedThen

query="select*fromStuffInfowhereSIsTimebetween#"

query=query&fromdate&"#and#"&todate&"#"

EndIf

EndSub

PrivateSubcmdOK_Click()

CallCombineDate

CallsetSQL

frmResult.createList(query)

frmResult.Show

UnloadMe

EndSub

PrivateSubForm_Load()

DimiAsInteger

DimsqlAsString

DimrsAsNewADODB.Recordset

sql="selectdistinctdatepart(yy,SIsTime)fromStuffInfo"

Setrs=TransactSQL(sql)

IfNotrs.EOFThen

rs.MoveFirst

WhileNotrs.EOF

IfNotIsNull(rs.Fields(0))Then

Me.FromYear.AddItemrs(0)

Me.ToYear.AddItemrs(0)

EndIf

rs.MoveNext

Wend

rs.Close

Me.FromYear.ListIndex=0

Me.ToYear.ListIndex=0

EndIf

Fori=1To12

Me.FromMonth.AddItemi

Me.ToMonth.AddItemi

Nexti

Me.FromMonth.ListIndex=0

Me.ToMonth.ListIndex=0

EndSub

5.frmCheckStuff

OptionExplicit

PrivatequeryAsString'保存SQL语句

PrivatefromdateAsString'起始时间

PrivatetodateAsString'结束时间

PrivateSubcmdCancel_Click()

UnloadMe

ExitSub

EndSub

PrivateSubCombineDate()'获得起始和结束时间

fromdate=Me.FromYear.Text&"-"&Me.FromMonth.Text&"-1"

fromdate=Format(Me.FromYear.Text&"-"&Me.F

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

当前位置:首页 > 工作范文 > 行政公文

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

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