基于VB的学生公选课选课系统.docx
《基于VB的学生公选课选课系统.docx》由会员分享,可在线阅读,更多相关《基于VB的学生公选课选课系统.docx(17页珍藏版)》请在冰豆网上搜索。
基于VB的学生公选课选课系统
课程设计指导书
课程程序设计
班级11自一
姓名杜康
学号11020505
目录
一、功能描述………………………………………………3
二、概要设计………………………………………………4
三、各功能模块的详细设计及详细说明…………………6
四、运行效果………………………………………………9
五、小组分工完成的任务…………………………………12
六、心得体会………………………………………………13
七、附录程序………………………………………………14
八、参考文献………………………………………………22
一、功能描述:
1、进入登录界面,输入正确的用户名和密码,即可成功登录,进入公选课课程界面。
若输入错误,则可重新输入,否则退出系统。
对于菜单项。
点击“学生登录”,则清除当前用户和密码信息,可以重新输入新的用户名和密码;点击“公选课课程信息”,则可浏览公选课课程信息界面;点击“个人选课信息”,则可进入个人选课信息界面进行相应操作。
2、进入公选课课程信息界面,可以按课程名,课程教师,开设学期,学分等关键字查询浏览数据库(允许模糊查询),例如,在“课程名”里输入“自行车”,然后点击查询,则会显示所有与“自行车”相关的课程;在“学分”栏输入“5”,则会显示所有学分为5的公选课课程信息。
按课程教师,开设学期查询方法类似。
另外,可以对课程信息进行分页查询,点击第一个,即可显示公选课课程信息中的第一条记录;点击下一个,即可显示公选课课程信息中的下一条记录;点击上一个,即可显示公选课课程信息中的上一条记录;点击最后一个,即可显示公选课课程信息中的最后一条记录。
点击“返回上一页“,
即可返回到登录界面。
3、点击个人选课信息,进入学生选课信息界面,每名学生可以根据输入自己的学号,点击查询按钮查看到数据库中自己的公选课选课情况,,并实时显示已选的课程,如若改变主意想要退选,选中自己的选课信息后点击退选按钮则可以删除自己在数据库中已选的课程信息。
点击返回上一页按钮,则可以返回到公选课课程信息界面进行相应操作。
点击“首页“按钮,即可返回到登录界面。
点击退出系统,则退出应用程序。
二、概要设计:
设计流程框图:
主流程图:
公选课课程信息子流程图:
学生个人选课情况查询子流程图:
三、各功能模块的详细设计及详细说明:
1、对于用户登录界面,首先设置Data控件和Access数据库之间的连接方式,一种是在程序中使用语句实现,Data1.DatabaseName=APP.path+”\Course.mdb”Data1.RecordSource=”Student”;另一种是将数据库与工程放在同一目录下,直接连接。
本次使用的是直接连接方式,如下图所示。
然后使用Data数据控件中的Data1.Recordset.FindFirst和Data1.Recordset.Fields来查找数据库中满足与输入的用户和密码相匹配的记录,若找到,则提示“密码正确”,进入下一个界面,否则提示“密码错误”,重新输入用户名和密码。
通过UnloadForm指令来释放内存,关闭窗体,从而实现退出系统。
利用Form1.HideForm2.Show实现点击按钮之后,关闭Form1并从Form1切换Form2。
Data控件与Access连接方式图
用户登录界面
2、在工程—部件中,添加Data控件、ADO控件、MsFlexGrid控件,然后添加到窗体中。
建立四个Option1控件数组,其属性窗口中的index分别为0、1、2、3,并把它们和MsFlexGrid控件属性DataSource均设置为Data1。
然后通过Option1.Item(0、1、2、3)是否等于True来判断哪一个控件被按下,从而利用If___EndIf指令进行条件查询。
使用Data1.RecordSource="select*from课程信息表where字段名like'*"&Text().Text&"*'"语句来从数据库中模糊查询与输入信息相匹配的记录,并将其显示在MsFlexGrid中。
用Data1.Refresh指令将数据库及时的更新。
利用Form2.HideForm3.Show来关闭Form2并切换到Form3。
将分页查询使用的4个Text控件的DataSource属性均设置为Adodc1。
把Data1和Adodc1的Visible属性均设置成False.然后定义4个按钮“第一个”“上一个”“下一个”“最后一个”以实现分页浏览。
ADO控件与Access数据库连接方法如下图所示。
找到目录下的数据库,选择后点击打开。
Ado控件与Access连接方式图
公选课信息查询界面
3、使用Data1.RecordSource="select*fromStudentwhere学号like'*"&Text1.Text&"*'"来查询数据库中符合条件的记录,并在MsFlexGrid显示出来。
使用Data1.Recordset.Delete进行对选中记录的删除操作,实现对学生个人公选课的退选。
Data1.Refresh对数据库及时的进行更新。
最后用End指令结束程序。
学生个人选课信息查询界面
四、运行效果:
1、打开工程,点击运行后,出现用户登录界面。
用户名为姓名,密码为学号,输入正确后,系统提示“密码正确”,则可点击确定进入下个界面。
如图所示,输入“李阳,11020504“,点击登陆,则系统提示”密码正确“。
用户登录界面运行效果图
2、①选择课程名,输入课程名称,点击查询,在MsFlexGrid中即相应显示出查到的课程信息。
如图所示,选中“课程名“,输入”服饰文化“,点击“查询”,即出现下图所示“服饰文化王二42011上”。
按课程名查询效果图
②选择课程教师,输入课程教师姓名,点击查询,在MsFlexGrid中即相应显示出查到的课程信息。
如图所示,选中“课程教师名“,输入”王五“,点击“查询”,即出现下图所示“汽车文化王五32011下”。
按教师名查询效果图
③选择开设学期,输入开设学期,点击查询,在MsFlexGrid中即相应显示出查到的课程信息。
如图所示,选中“开设学期“,输入”2011下“,点击“查询”,即出现下图所示所有在2011年下学期开设的选修课的信息。
按学期查询效果图
④选择学分,输入学分数,点击查询,在MsFlexGrid中即相应显示出查到的课程信息。
如图所示,选中“学分”,输入“6“,点击“查询”,即出现下图所示所有学分为6分的选修课的信息。
按学分查询效果图
⑤点击“第一个”,则显示第一条公选课的记录
分页查询效果图1
⑥点击“下一个”,则显示下一条公选课的记录
分页查询效果图2
⑦点击“最后一个”,则显示最后一条公选课的记录
分页查询效果图3
⑧点击“上一个”,则显示上一条公选课的记录
分页查询效果图4
3、①点击上图中的“学生个人选课信息”,则出现下图界面。
输入学号后,点击查看,即可在MsFlexGrid中即相应显示出查到的学生公选课信息。
学生个人选课界面
②如改变主意,可以在选中个人信息的情况下,点击退选按钮,即弹出如图所示窗口,点击确定,则该学生的个人公选课信息将会自动从数据库中删除。
学生退选课程效果图
③点击“返回上一页”,则返回到“选修课课程信息”界面。
④点击“首页“,则返回到登录界面。
⑤点击“退出系统”,则退出应用程序。
五、小组分工完成的任务
对学生公选课选课系统VB工程的设计;
VB软件代码的编写;
系统的调试
六、心得体会
经过这次程序设计,我深刻体会到,不怕课题难,就怕不努力。
必须要有明确的目标和方向,并为之而不断前进。
由于本次使用的VisualBasic6.0软件时第一次接触,大家都没有VB编程的基础,所以代码编写时遇到了很大困难。
但通过不断地查阅资料和教材,以及大量地浏览网络上论坛里的帖子,大家共同努力完成了系统的设计和代码的编写。
所以说,拥有较快的学习能力和阅读能力是十分重要的。
虽然程序在调试时还是有错误,但经过老师的指导,我们很快找到了错误的原因,并及时纠正,顺利地完成了本次有关学生公选课选课系统的设计任务。
七、附录:
登录窗口:
PrivateSubCommand1_Click()
Data1.Recordset.FindFirst"姓名='"&Text1.Text&"'"
IfData1.Recordset.NoMatchThen
ExitSub
Else
IfData1.Recordset.Fields("学号")=Text2.TextThen
MsgBox"密码正确"
Form1.Hide
Form2.Show
Else
MsgBox"密码错误"
Text1.Text=""
Text2.Text=""
Text1.SetFocus
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadForm1
End
EndSub
PrivateSub个人选课列表_Click()
Form1.Hide
Form3.Show
EndSub
PrivateSub公选课课程信息_Click()
Form1.Hide
Form2.Show
EndSub
PrivateSub退出选课系统_Click()
UnloadForm1
End
EndSub
PrivateSub学生登录_Click()
Form1.Show
Text1.Text=""
Text2.Text=""
Text1.SetFocus
EndSub
选修课课程信息查询(可实现模糊查询、分页查询):
OptionExplicit
DimrsAsNewADODB.Recordset
DimconnAsNewADODB.Connection
PrivateSubCommand1_Click()
IfOption1.Item(0)=TrueThen
Data1.RecordSource="select*from课程信息表where课程名like'*"&Text1.Text&"*'"
Data1.Refresh
EndIf
IfOption1.Item
(1)=TrueThen
Data1.RecordSource="select*from课程信息表where课程教师like'*"&Text2.Text&"*'"
Data1.Refresh
EndIf
IfOption1.Item
(2)=TrueThen
Data1.RecordSource="select*from课程信息表where开设学期like'*"&Text3.Text&"*'"
Data1.Refresh
EndIf
IfOption1.Item(3)=TrueThen
Data1.RecordSource="select*from课程信息表where学分like'*"&Text4.Text&"*'"
Data1.Refresh
EndIf
EndSub
PrivateSubCommand2_Click()
Form2.Hide
Form3.Show
EndSub
PrivateSubCommand3_Click()
rs.MoveFirst
Text5.Text=rs!
课程名
Text6.Text=rs!
课程教师
Text7.Text=rs!
开设学期
Text8.Text=rs!
学分
rs.Update
Command4.Enabled=False
EndSub
PrivateSubCommand4_Click()
rs.MovePrevious
Text5.Text=rs!
课程名
Text6.Text=rs!
课程教师
Text7.Text=rs!
开设学期
Text8.Text=rs!
学分
rs.Update
Command5.Enabled=True
EndSub
PrivateSubCommand5_Click()
rs.MoveNext
Text5.Text=rs!
课程名
Text6.Text=rs!
课程教师
Text7.Text=rs!
开设学期
Text8.Text=rs!
学分
rs.Update
Command4.Enabled=True
EndSub
PrivateSubCommand6_Click()
rs.MoveLast
Text5.Text=rs!
课程名
Text6.Text=rs!
课程教师
Text7.Text=rs!
开设学期
Text8.Text=rs!
学分
rs.Update
Command5.Enabled=False
EndSub
PrivateSubCommand7_Click()
Form2.Hide
Form1.Show
EndSub
PrivateSubForm_Load()
DimStr3AsString
DimstrsqlAsString
Str3="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=Course.mdb;PersistSecurityInfo=False"
conn.OpenStr3
strsql="select*from课程信息表"
rs.Openstrsql,conn,3,3
EndSub
PrivateSubOLE1_Updated(CodeAsInteger)
EndSub
学生个人选课信息查询和退选:
PrivateSubCommand1_Click()
Data1.RecordSource="select*fromStudentwhere学号like'*"&Text1.Text&"*'"
Data1.Refresh
EndSub
PrivateSubCommand2_Click()
msg$="确定要退选吗?
"
ans=MsgBox(msg$,vbOKCancel,"退选")
Ifans=vbOKThen
'删除该记录
Data1.Recordset.Delete
'移动记录指针
Data1.Recordset.MoveNext
Data1.Refresh
EndIf
EndSub
PrivateSubCommand3_Click()
End
EndSub
PrivateSubCommand4_Click()
Form3.Hide
Form2.Show
EndSub
PrivateSubCommand5_Click()
Form3.Hide
Form1.Show
EndSub
八、参考文献
1.VisualBasic程序设计教程,吴凤翔,中国林业出版社,2002-11
2.VisualBasic程序设计教程,龚沛增,清华大学出版社,2004
3.VisualBASIC程序设计,谭浩强,清华大学出版社,2000
4.VisualBasic6.0程序设计,刘新民,清华大学出版社,2004
5.VisualBasic程序设计教程,罗朝盛,人民邮电出版社,2005
6.VisualBasic程序设计教程,刘炳文,许蔓舒清华大学出版,2000
7.段兴主编《visualBasic数据库实用程序设计100例》人民邮电出版社
8.管丽娜白海波《实用VisualBasic6教程》[M].北京:
清华大学出版社,2001
9.人杰、殷人昆、陶永雷《实用软件工程(第二版)》清华大学出版社2003年3月
10.王运坚.《VISUALBASIC6.0应用指南》[M].北京:
人民邮电出版社,1998.