vb课程设计学生管理系统.docx

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

vb课程设计学生管理系统.docx

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

vb课程设计学生管理系统.docx

vb课程设计学生管理系统

长江大学工程技术学院

VB语言程序设计课程设计报告

(2011-2012学年第二学期)

 

系(部)

机械系

专业班级

模具61001班

学生姓名

罗健

学号/序号

201062378/22

指导教师

肖雪(助教)/刘刚(助教)

完成时间

2012年6月17日

 

学生成绩管理系统

一、功能描述

学生成绩管理系统是一个学校必须需要的,这个系统对学校的管理有着重要的作用。

单一的用人工手抄不但麻烦且对于查询、更新来讲也是很困难的。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

所以学生成绩管理系统可以通过计算机来实现,这个学生管理系统主要有权限登录、编辑、查询功能。

在编辑里可以进行添加、修改、删除等功能。

其核心是数据库,系统设计以提高数据共享程度。

很大程度的改善了用人工手工记录的不足,效率高,查询准确。

二、概要设计

1、系统功能模块框图

图1系统流程图

2、数据库设计

2.1学生成绩管理系统数据库设计

由于考虑到本系统的应用环境,只建立起一个数据库,在此数据库基础上建立如下三个基本表:

学生表(表

(1)):

学号(idx_)、姓名、性别

课程表(表

(2)):

课程号(idx_)、课程名称、学时、学分

成绩表(表(3)):

学号、姓名、课程号、成绩

2.2数据库逻辑结构设计

(1)学生表结构:

(1)

字段名

字段类型

字段长度

学号

Text

9

姓名

Text

10

性别

Boolean

1

(2)课程表结构:

(2)

字段名

字段类型

字段长度

课程号

Text

9

课程名称

Text

10

学时

Integer

2

学分

Integer

2

(3)成绩表结构

表(3)

字段名

字段类型

字段长度

学号

Text

9

姓名

Text

10

课程号

Text

10

成绩

Integer

2

三、详细设计

1.主界面(MDI)

主界面为一个MDI窗口,有编辑菜单分别是“登录、编辑、查询、退出”当程序运行时主界面最先弹出,菜单中“登录”和“退出”是可用的,只有点击“登陆”登录后其余两个才可用。

这个窗口还设置了MDI图片作为背景。

(1)窗体截图(如图1)

图1

(2)功能实现(部分代码)

PrivateSubDL_Click()

land.Show

EndSub

PrivateSubBJ_Click()

edit.Show

DL.Enabled=False

EndSub

PrivateSubCX_Click()

chaxun.Show

DL.Enabled=False

EndSub

MDIForm1.Show

CX.Enabled=False

BJ.Enabled=False

EndSub

2.登录界面(Land)

登录界面有两个按钮一个“确定”一个“取消”主要是实现进入编辑与查询界面。

在text1中输入正确的账号“2010”输入正确的密码“12345”才能进入,否则提示“用户名或密码错误”。

(1)窗体截图(图2)

图2

(2)功能实现(部分代码)

PrivateSubCommand1_Click()

IfText1.Text="2010"AndText2.Text="12345"Then

Loadland

MDIForm1.Show

DIForm1.DL.Enabled=False

MDIForm1.BJ.Enabled=True

MDIForm1.CX.Enabled=True

Unloadland

Else

MsgBox"用户名或密码错误",1,"密码错误"

EndIf

EndSub

3.编辑界面(Edit)

编辑窗体里面有一个SSTab控件主要实现3个信息的转换。

有3个Data控件分别是Dataxues、Datakc、Datacj且分别与数据库里面的学生表、课程表、成绩表连接。

窗体上面的text也相应的与数据库里面对应的信息连接从而实现运行是有学生成绩等信息的显示。

上面还有7个按钮对学生的信息进行修改、添加、删除等。

对学生成绩信息的更新起到了关键的作用。

(1)窗体的截图(图3(部分))

说明:

这是未运行是的截图,在运行是Dtata控件是不可见的。

图3

(2)功能实现(部分代码和部分属性截图)

添加的代码:

PrivateSubCmdtj_Click()

SelectCaseCmdtj.Caption

Case"添加"

SelectCaseSSTab1.Tab

Case0

Dataxues.Recordset.AddNew

Case1

Datakc.Recordset.AddNew

Case2

Datacj.Recordset.AddNew

EndSelect

SSTab1.TabEnabled(0)=False

SSTab1.TabEnabled

(1)=False

SSTab1.TabEnabled

(2)=False

Cmdtj.Caption="确定"

Cmdxg.Enabled=False

Cmdsc.Enabled=False

Cmdsjl.Enabled=False

Cmdsyt.Enabled=False

Cmdxyt.Enabled=False

cmdwjl.Enabled=False

Case"确定"

SelectCaseSSTab1.Tab

Case0

Datakc.UpdateRecord

Case1

Datacj.UpdateRecord

Case2

Dataxues.UpdateRecord

EndSelect

SSTab1.TabEnabled(0)=True

SSTab1.TabEnabled

(1)=True

SSTab1.TabEnabled

(2)=True

Cmdtj.Caption="添加"

Cmdxg.Enabled=True

Cmdsc.Enabled=True

Cmdsjl.Enabled=True

Cmdsyt.Enabled=True

Cmdxyt.Enabled=True

cmdwjl.Enabled=True

EndSelect

EndSub

数据库的连接:

PrivateSubForm_Load()

IfRight(App.Path,1)="\"Then

Dataxues.DatabaseName=App.Path+"mydb.mdb"

Else

Dataxues.DatabaseName=App.Path+"\mydb.mdb"

EndIf

Dataxues.RecordSource="学生表"

Dataxues.Refresh

Option1.Value=Dataxues.Recordset.Fields("性别").Value

Datakc.DatabaseName=Dataxues.DatabaseName

Datakc.RecordSource="课程表"

Datakc.Refresh

Textkch.DataField="课程号"

Textkcm.DataField="课程名称"

Textxshi.DataField="学时"

Textxf.DataField="学分"

Datacj.DatabaseName=Dataxues.DatabaseName

Datacj.RecordSource="成绩表"

Datacj.Refresh

Textxh2.DataField="学号"

Textkch2.DataField="课程号"

Textxm2.DataField="姓名"

Textcj.DataField="成绩"

SSTab1.Tab=0

EndSub

部分属性截图:

其他Data与Text的属性类似。

4.查询界面(chaxun)

查询界面主要实现学生系统的信息查询工作。

有按照课程号和学号两种查询方式。

其中用到了两个很关键的控件一个是DataGrid与Adodc。

Adodc控件是与数据库连接信息在DataGrid中显示。

窗体和具体属性见下图所示。

窗体

Adodc属性截图:

说明:

代码见源代码。

四、调试中存在的问题及解决方法

在调试工程中运行编辑这张表时学生信息的性别不会发生变化

原因的分析:

在查询中执行上一条和下一条时表中的数据性别是没有跟着一起变化的。

解决办法:

在上一条和下一条的代码中间加入这样的代码

PrivateSubcmdsyt_Click()

------------------------------------------

Option1.Value=Dataxues.Recordset.Fields("性别").Value

IfOption1.Value=FalseThenOption2.Value=True

------------------------------------------

使之和其他数据一样变化下去,最终达到正常。

五、心得体会

通过为期一星期的vb课程设计使我对vb这门课程在实际生活中的运用有了很深入的了解,感受到数据库的强大功能使现实的有些工作变得更方便。

在设计过程中,因为是大一学习的课程对有些知识有些陌生刚开始就觉得这个设计可能难度有些大还有些畏惧。

但在老师的提醒回忆中有了希望。

在设计中遇到过一些困难,要是以前一遇到困难肯定是第一时间问老师,这次不同这次遇到困难后写自己找办法解决除非是正的解决不了了才找老师,在这个寻知的过程中自己将问题解决了感觉十分舒爽。

本系统的不足是在用户登录的权限方面有待改进,应该对编辑用户和查询用户进行权限,这样可能会更好。

六、参考文献

【1】罗朝盛.VisualBasic6.0程序设计教程(第3版)[M].人民邮电出版社,

2009.2

【2】邵洁..VisualBasic6.0程序设计(第4版)[M].东南大学出版社,2009.1

【3】邵洁.VisualBasic6.0实验与测试(第4版).东南大学出版社,2008.2

七、附录(源代码)

1.主界面(MDI)

PrivateSubDL_Click()

land.Show

land.Height=5500

land.Width=7150

MDIForm1.Height=6315

MDIForm1.Width=8340

EndSub

PrivateSubBJ_Click()

edit.Show

DL.Enabled=False

MDIForm1.Height=6315

MDIForm1.Width=8340

EndSub

PrivateSubCX_Click()

chaxun.Show

DL.Enabled=False

EndSub

PrivateSubForm_Load()

MDIForm1.Show

CX.Enabled=False

BJ.Enabled=False

EndSub

PrivateSubMDIForm_Load()

CX.Enabled=False

BJ.Enabled=False

EndSub

PrivateSubTC_Click()

End

EndSub

2.登录:

PrivateSubCommand1_Click()

IfText1.Text="2010"AndText2.Text="12345"Then

Loadland

MDIForm1.Show

MDIForm1.Height=6315

MDIForm1.Width=8340

MDIForm1.DL.Enabled=False

MDIForm1.BJ.Enabled=True

MDIForm1.CX.Enabled=True

Unloadland

Else

MsgBox"用户名或密码错误",1,"密码错误"

EndIf

EndSub

PrivateSubCommand2_Click()

End

EndSub

3.编辑:

删除:

PrivateSubCmdsc_Click()

DimiAsInteger

i=MsgBox("确定要删除此记录?

",vbYesNo+vbExclamation+vbDefaultButton1,"编辑")

Ifi=vbYesThen

SelectCaseSSTab1.Tab

Case0

Dataxues.Recordset.Delete

Dataxues.Refresh

Case1

Datakc.Recordset.Delete

Datakc.Refresh

Case2

Datacj.Recordset.Delete

Datacj.Refresh

EndSelect

EndIf

EndSub

首记录:

PrivateSubcmdsjl_Click()

SelectCaseSSTab1.Tab

Case0

Dataxues.Recordset.MoveFirst

Case1

Datakc.Recordset.MoveFirst

Case2

Datacj.Recordset.MoveFirst

EndSelect

Cmdsjl.Enabled=False

Cmdsyt.Enabled=False

cmdwjl.Enabled=True

Cmdxyt.Enabled=True

EndSub

下一条:

PrivateSubcmdsyt_Click()

SelectCaseSSTab1.Tab

Case0

Dataxues.Recordset.MovePrevious

Option1.Value=Dataxues.Recordset.Fields("性别").Value

IfOption1.Value=FalseThenOption2.Value=True

IfDataxues.Recordset.BOFThen

Dataxues.Recordset.MoveFirst

Cmdsjl.Enabled=False

Cmdsyt.Enabled=False

Cmdxyt.Enabled=True

cmdwjl.Enabled=True

EndIf

Case1

Datakc.Recordset.MovePrevious

Ifdatkc.Recordset.BOFThen

datkc.Recordset.MoveFirst

Cmdsjl.Enabled=False

Cmdsyt.Enabled=False

Cmdxyt.Enabled=True

cmdwjl.Enabled=True

EndIf

Case2

Datacj.Recordset.MovePrevious

IfDatacj.Recordset.BOFThen

Datacj.Recordset.MoveFirst

cmdyjl.Enabled=False

Cmdsyt.Enabled=False

Cmdxyt.Enabled=True

cmdwjl.Enabled=True

EndIf

EndSelect

EndSub

添加:

PrivateSubCmdtj_Click()

SelectCaseCmdtj.Caption

Case"添加"

SelectCaseSSTab1.Tab

Case0

Dataxues.Recordset.AddNew

Case1

Datakc.Recordset.AddNew

Case2

Datacj.Recordset.AddNew

EndSelect

SSTab1.TabEnabled(0)=False

SSTab1.TabEnabled

(1)=False

SSTab1.TabEnabled

(2)=False

Cmdtj.Caption="确定"

Cmdxg.Enabled=False

Cmdsc.Enabled=False

Cmdsjl.Enabled=False

Cmdsyt.Enabled=False

Cmdxyt.Enabled=False

cmdwjl.Enabled=False

Case"确定"

SelectCaseSSTab1.Tab

Case0

Datakc.UpdateRecord

Case1

Datacj.UpdateRecord

Case2

Dataxues.UpdateRecord

EndSelect

SSTab1.TabEnabled(0)=True

SSTab1.TabEnabled

(1)=True

SSTab1.TabEnabled

(2)=True

Cmdtj.Caption="添加"

Cmdxg.Enabled=True

Cmdsc.Enabled=True

Cmdsjl.Enabled=True

Cmdsyt.Enabled=True

Cmdxyt.Enabled=True

cmdwjl.Enabled=True

EndSelect

EndSub

尾记录:

PrivateSubcmdwjl_Click()

SelectCaseSSTab1.Tab

Case0

Dataxues.Recordset.MoveLast

Case1

Datakc.Recordset.MoveLast

Case2

Datacj.Recordset.MoveLast

EndSelect

Cmdsjl.Enabled=True

Cmdsyt.Enabled=True

cmdwjl.Enabled=False

Cmdxyt.Enabled=False

EndSub

修改:

PrivateSubCmdxg_Click()

SelectCaseCmdxg.Caption

Case"修改"

SelectCaseSSTab1.Tab

Case0

Dataxues.Recordset.edit

Case1

Datakc.Recordset.edit

Case2

Datacj.Recordset.edit

EndSelect

SSTab1.TabEnabled(0)=False

SSTab1.TabEnabled

(1)=False

SSTab1.TabEnabled

(2)=False

Cmdxg.Caption="确定"

Cmdtj.Enabled=False

Cmdsc.Enabled=False

Cmdsjl.Enabled=False

Cmdsyt.Enabled=False

Cmdxyt.Enabled=False

cmdwjl.Enabled=False

Case"确定"

SelectCaseSSTab1.Tab

Case0

Dataxues.UpdateRecord

Case1

Datakc.UpdateRecord

Case2

Datacj.UpdateRecord

EndSelect

SSTab1.TabEnabled(0)=True

SSTab1.TabEnabled

(1)=True

SSTab1.TabEnabled

(2)=True

Cmdxg.Caption="修改"

Cmdtj.Enabled=True

Cmdsc.Enabled=True

Cmdsjl.Enabled=True

Cmdsyt.Enabled=True

Cmdxyt.Enabled=True

cmdwjl.Enabled=True

EndSelect

EndSub

下一条:

PrivateSubcmdxyt_Click()

SelectCaseSSTab1.Tab

Case0

Dataxues.Recordset.MoveNext

Option1.Value=Dataxues.Recordset.Fields("性别").Value

IfOption1.Value=FalseThenOption2.Value=True

IfDataxues.Recordset.EOFThen

Dataxues.Recordset.MoveLast

Cmdsjl.Enabled=True

Cmdsyt.Enabled=True

Cmdxyt.Enabled=False

cmdwjl.Enabled=False

EndIf

Case1

Datakc.Recordset.MoveNext

IfDatakc.Recordset.EOFThen

Datakc.Recordset.MoveLast

Cmdsjl.Enabled=True

Cmdsyt.Enabled=True

Cmdxyt.Enabled=False

cmdwjl.Enabled=False

EndIf

Case2

Datacj.Recordset.MoveNext

IfDatacj.Recordset.EOFThen

Datacj.Recordset.MoveLast

Cmdsjl.Enabled=True

Cmdsyt.Enabled=True

Cmdxyt.Enabled=False

cmdwjl.Enabled=False

EndIf

EndSelect

EndSub

数据库连接:

PrivateSubForm_Load()

IfRight(App.Path,1)="\"Then

Dataxues.DatabaseName=App.Path+"mydb.mdb"

Else

Dataxues.DatabaseName=App.Path+"\mydb.mdb"

EndIf

Dataxues.RecordSource="学生表"

Dataxues.Refresh

Option1.Value=Dataxues.Recordset.Fields("性别").Value

Da

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

当前位置:首页 > 高等教育 > 农学

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

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