VB课程设计报告.docx
《VB课程设计报告.docx》由会员分享,可在线阅读,更多相关《VB课程设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
VB课程设计报告
长江大学工程技术学院
VB语言程序设计课程设计报告
(2011-2012学年第二学期)
系(部)
机械系
专业班级
61002班
学生姓名
学号/序号
/
指导教师
(助教)/(讲师)
完成时间
2012年6月17日
学生学籍管理系统
一、功能描述
本系统的开发目标是有效管理学生信息,实现学生信息的数据录入、浏览、修改等,实现学生信息的规范化、系统化、自动化管理。
根据对客户端用户和客户进行调研,得出下面的说明文本。
(1)由于学生学籍等信息具有一定的保密性,为了便于管理,应该为用户设置密码保护,提高系统的数据安全性。
(2)软件能够对学生的学籍信息进行记录,并能够非常方便地浏览、添加、编辑和查询学生的学籍信息。
能够通过软件及时了解学生的基本情况。
二、概要设计
1、系统功能模块框图设计(见图1)
图1系统流程图
2、各模块的功能
(1)登录系统:
实现用户通过用户名和密码进行登录的功能。
(2)学籍管理:
实现对学籍的添加、删除和修改和上下翻页等功能。
(3)学籍查询:
实现对学生的学籍按照所在姓名或者系部班级进行查询。
(4)退出系统:
结束学籍管理系统。
3、数据库设计
创建一数据库为student.mdb,该数据库共包含3张表,分别为“学生学籍表”、“班级信息表”和“系部信息表”,表结构参考如下:
学生学籍表:
学号、名字、班级、生日、性别、地址、电话;
系部信息表:
系编号、系名;
班级信息表:
班级名称、所属系部。
表1.学生学籍表结构
表2.系部信息表结构
表3.班级信息表结构
三、详细设计
1、主界面系统
点击登录按钮就可以进入登录界面,主界面的动态标签是由timer编程实现的。
(见图2)
(1)功能实现:
进入窗体的代码:
PrivateSubCommand1_Click()
form2.Show
Me.Hide
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubTimer1_Timer()
Label1.Left=Label1.Left+500
IfLabel1.Left>form1.WidthThenLabel1.Left=-Label1.Width
EndSub
图2主界面
2、登录系统窗体
登录系统界面包括用户名和密码。
在登录系统界面输入用户名和密码都正确后才可以进入学生学籍添加界面,如果用户名或密码错误则由信息提示,输入错误请重新输入。
(见图3)
(2)功能实现:
进入窗体的代码:
PrivateSubCommand1_Click()
IfText1="123"AndText2="000"Then
form3.Show
Me.Hide
Else
DimMsg,Style,Title,Response
Msg="登陆密码有误"'提示信息
Style=2+16+256'按钮
Title="提示"定义标题
Response=MsgBox(Msg,Style,Title)
IfResponse=4Then
form2.Show
Else:
form1.Show
Me.Hide
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
form1.Show
Me.Hide
EndSub
图3登录系统界面
3、学籍管理系统窗体
学籍信息管理模块是实现学籍信息的添加,修改,查询,删除操作的,实现对每位学员学号、姓名、性别、出生日期、所在系部、班号、联系方式、等信息的管理。
按照不同的功能划分,学籍信息管理模块分为三部分,也就是三个不同的窗体,即添加、删除、修改、查询、保存学籍信息窗体,添加、删除、修改、查询、保存系部信息窗体,添加、删除、修改、查询、保存班级信息窗体。
(见图4)
(3)功能实现:
进入窗体的代码:
PrivateSubCommand1_Click()
DimnAsString
n=InputBox("请输入待查学号:
","查找")
Data1.Recordset.Index="idx_xuehao"
Data1.Recordset.Seek"=",n
EndSub
PrivateSubCommand3_Click()
IfCommand3.Caption="取消"Then
Data1.Recordset.CancelUpdate
Command1.Enabled=True
Command4.Enabled=True
Command2.Caption="添加"
Command3.Caption="删除"
Else
Data1.Recordset.Delete
Data1.Refresh
EndIf
EndSub
PrivateSubCommand4_Click()
form2.Show
form3.Hide
EndSub
PrivateSubData1_Reposition()
Option1(Data1.Recordset.Fields("性别")+1).Value=True
EndSub
PrivateSubOption1_Click(IndexAsInteger)
Text10.Text=Index-1
EndSub
PrivateSubcommand5_click()
IfCommand5.Caption="增加"Then
Data1.Recordset.AddNew
Text1.SetFocus
Command1.Enabled=False
Command4.Enabled=False
Command5.Caption="保存"
Command3.Caption="取消"
Else
Data1.Recordset.Fields("学号")=Trim(Text1.Text)
Data1.Recordset.Fields("姓名")=Trim(Text4.Text)
Data1.Recordset.Fields("性别")=Val(Text10.Text)
Data1.Recordset.Fields("生日")=CDate(Trim(Text2.Text))
Data1.Recordset.Fields("地址")=Trim(Text3.Text)
Data1.Recordset.Fields("班级")=Trim(Text5.Text)
Data1.Recordset.Fields("电话")=Trim(Text6.Text)
Data1.Recordset.Fields("班级号")=Trim(Text12.Text)
Data1.Recordset.Update
Command1.Enabled=True
Command4.Enabled=True
Command5.Caption="增加"
Command3.Caption="删除"
ExitSub
MsgBox"添加数据到数据库时出错,注意检查学号是否重复,及其他各项数据是否正确。
",vbCritical+vbOKOnly,"提示"
EndIf
EndSub
图4学籍管理系统界面
四、调试中存在的问题及解决方法
1、在调试的过程中,怎么了解某些变量和属性值的过程值?
2、解决方法:
①插人Print方法或Debug.Print方法,将要获取的变量和属性值打印在窗体上或“立即”窗口中;
②建立TextBox(文本框)和Label(标签)等临时控件,将要获取的变量和属性值赋值给Text属性和Caption属性;
③在中断模式之下,就可把焦点移到“立即”窗口来,用问号(?
)或Print方法,将要获取的变量和属性值打印在“立即”窗口中;
④在中断模式之下,将鼠标放在“代码”窗口的变量名和属性名上,在鼠标的下部就会出现有该值的浮动窗口;
⑤在中断模式之下,将变量名和属性名输人到“监视”窗口中,从“值”的栏中观测其值;
⑥在中断模式之下,打开“当地”窗口,从“值”的栏中直接观测其值。
五、心得体会
感谢老师的指导,在课程设计中学到了怎样自学怎样与同学合作,并且我明白了程序在电脑中的重要性,我能够很好的利用课上时间和老师同学进行交流探讨更多的知识,发现了自己的不少缺点。
通过这次课程我学到了很多。
在本次设计中了解了visualbasic开发数据库学籍管理信息系统。
掌握了visualbasic开发数据库系统的预备知识,即SQL语言及data数据对象;中途也经常会遇到看不懂的程序单只要耐心就会弄懂。
学生学籍管理系统的设计与实现,采用了Access数据库技术,这些应用模式和技术具有强大的功能和普遍的适用性,因此,通过本系统的开发不仅完成了一个具有实用价值并且将要投入使用的应用系统,而且利用该系统的模式和技术可以较方便地完成类似的其它资源、数据的管理,为今后的工作打下了一个良好的基础。
六、参考文献
[1]罗朝盛.VisualBasic6.0程序设计教程(第3版).人民邮电出版社,2009年2月
[2]刘炳文.精通visualbasic.net中文版[M].机械工业出版社.2004年1月.
[3]龚沛曾,杨志强,陆慰民.visualbasic.net程序设计教程[M].高等教育出版社.2005年12月.
[4]沈阳.visualbasic.net程序设计教程[M].电子工业出版社.2005年9月.
七、附录
1、点击登录按钮就可以进入登录界面,(图2)主界面的动态标签是由timer编程实现的。
PrivateSubCommand1_Click()
form2.Show(出现form2界面)
Me.Hide
EndSub
PrivateSubCommand2_Click()
End(退出)
EndSub
PrivateSubTimer1_Timer()
Label1.Left=Label1.Left+500”利用时钟实现标签动态化”
IfLabel1.Left>form1.WidthThenLabel1.Left=-Label1.Width
EndSub
2、登录系统界面包括用户名和密码。
在登录系统界面输入用户名和密码都正确后才可以进入学生学籍添加界面,如果用户名或密码错误则由信息提示,输入错误请重新输入。
PrivateSubCommand1_Click()
IfText1="123"AndText2="000"Then
form3.Show
Me.Hide
Else
DimMsg,Style,Title,Response
Msg="登陆密码有误"'提示信息
Style=2+16+256'按钮
Title="提示"定义标题
Response=MsgBox(Msg,Style,Title)
IfResponse=4Then
form2.Show
Else:
form1.Show
Me.Hide
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
form1.Show
Me.Hide
EndSub
3、学籍信息管理模块是实现学籍信息的添加,修改,查询,删除操作的,实现对每位学员学号、姓名、性别、出生日期、所在系部、班号、联系方式、等信息的管理。
按照不同的功能划分,学籍信息管理模块分为三部分,也就是三个不同的窗体,即添加、删除、修改、查询、保存学籍信息窗体,添加、删除、修改、查询、保存系部信息窗体,添加、删除、修改、查询、保存班级信息窗体。
(图4)
PrivateSubCommand1_Click()
DimnAsString
n=InputBox("请输入待查学号:
","查找")
Data1.Recordset.Index="idx_xuehao"
Data1.Recordset.Seek"=",n
EndSub
PrivateSubCommand3_Click()
IfCommand3.Caption="取消"Then
Data1.Recordset.CancelUpdate
Command1.Enabled=True
Command4.Enabled=True
Command2.Caption="添加"
Command3.Caption="删除"
Else
Data1.Recordset.Delete
Data1.Refresh
EndIf
EndSub
PrivateSubCommand4_Click()
form2.Show
form3.Hide
EndSub
PrivateSubData1_Reposition()
Option1(Data1.Recordset.Fields("性别")+1).Value=True
EndSub
PrivateSubOption1_Click(IndexAsInteger)
Text10.Text=Index-1
EndSub
PrivateSubcommand5_click()
IfCommand5.Caption="增加"Then
Data1.Recordset.AddNew
Text1.SetFocus
Command1.Enabled=False
Command4.Enabled=False
Command5.Caption="保存"
Command3.Caption="取消"
Else
Data1.Recordset.Fields("学号")=Trim(Text1.Text)
Data1.Recordset.Fields("姓名")=Trim(Text4.Text)
Data1.Recordset.Fields("性别")=Val(Text10.Text)
Data1.Recordset.Fields("生日")=CDate(Trim(Text2.Text))
Data1.Recordset.Fields("地址")=Trim(Text3.Text)
Data1.Recordset.Fields("班级")=Trim(Text5.Text)
Data1.Recordset.Fields("电话")=Trim(Text6.Text)
Data1.Recordset.Fields("班级号")=Trim(Text12.Text)
Data1.Recordset.Update
Command1.Enabled=True
Command4.Enabled=True
Command5.Caption="增加"
Command3.Caption="删除"
ExitSub
MsgBox"添加数据到数据库时出错,注意检查学号是否重复,及其他各项数据是否正确。
",vbCritical+vbOKOnly,"提示"
EndIf
EndSub