VB课设报告 教师选择系统.doc
沈 阳 航 空 航 天 大 学 课程设计学 号 47班 级 姓 名 毛 智 琦 指导教师 徐 晗 2012年 3 月 15 日沈阳航空航天大学课程设计任务书学院:机电工程学院 专业:机械设计制造及其自动化 班级:学号:47 题目:选择教师系统一、课程设计时间2012年3月5日9日(第1周),共计1周。二、课程设计内容有5位教师同时讲同一门课,而学习此课程的学生可以自由选取上课教师,但每个学生只能选1个老师。请编程实现这个“选教师”系统。教师名单和学生名单在“file03_选择教师系统.mdb” 数据库中。在教师名单表中存储的数据有:教师编号,教师姓名,学生人数;在学生名单表中存储的数据有:学生学号,学生姓名,所选教师姓名。用户界面中的菜单至少应包括“学生选教师”、“查询教师情况”、“查询学生情况”、“退出”4项。三、课程设计要求程序质量:² 贯彻事件驱动的程序设计思想。² 用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。² 代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:² 课设结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、成绩六、教师评语目 录一、需求分析4二、设计分析4三、技术要点5四、总结13五、完整的源程序14六、参考文献19一、需求分析选择教师系统,主要有学生信息、教师信息以及选教师界面组成。(1)能够显示学生的信息,并能够按照学生条件进行查询,显示此学生选择的教师信息。(3)能够显示教师信息,并能够按照所需条件进行查询,显示选择此教师的学生信息。(4)能够进行学生选择老师,将所选则的教师信息保存在教师信息表里面。二、设计分析(1)基本原理:建立程序设计与数据库的连接,用SQL语句在数据库中查找、添加以及更改数据信息。(2)总体设计:SQL语言处理Access 数据库ADO技术连接图1 总体设计(3)详细设计:开始连接数据库教师名单学生名单更改数据显示教师信息显示学生信息学生选择教师查询条件信息更新 图2 详细设计三、技术要点一、学生、教师信息显示(1)建立与数据库的连接代码如下:Dim mpath$, mlink$ '声明变量作为连接对象 mpath = App.Path '获取程序所在路径 If Right(mpath, 1) <> "" Then mpath = mpath + "" '判断是否为子目录 mlink = "Provider=Microsoft.Jet.OLEDB.4.0;" '指定提供者 mlink = mlink + "Data Source=" + mpath + "file03_选择教师系统.mdb" '在数据库文件名前插入路径 Adodc1.ConnectionString = mlink '设置连接属性 Adodc1.CommandType = adCmdUnknown '指定命令类型 Adodc1.RecordSource = " Select * from 教师名单"Adodc1.Refresh(2)查询教师信息是SQL语句在数据库中查找教师名单信息Select<字段名表>From<表名>Where<条件>程序段如下: Private Sub Command2_Click()Dim y As Stringy = Text1.TextAdodc1.RecordSource=" select * from 教师名单 where id = " & y & " "Adodc1.RefreshEnd SubPrivate Sub Form_Load()Adodc2.RecordSource = "select jsxm,count(*) as xsrs from 学生名单 group by jsxm " '统计选择教师人数Adodc2.Refresh '调用refresh 方法刷新 Dim n As IntegerFor n = 1 To 5Adodc1.Recordset.Fields("xsrs") = Adodc2.Recordset.Fields("xsrs")Adodc1.Recordset.UpdateAdodc1.Recordset.MoveNextAdodc2.Recordset.MoveNextNext nDim mpath$, mlink$ '声明变量作为连接对象 mpath = App.Path '获取程序所在路径 If Right(mpath, 1) <> "" Then mpath = mpath + "" '判断是否为子目录 mlink = "Provider=Microsoft.Jet.OLEDB.4.0;" '指定提供者mlink = mlink + "Data Source=" + mpath + "file03_选择教师系统.mdb" '在数据库文件名前插入路径 Adodc1.ConnectionString = mlink '设置连接属性 Adodc1.CommandType = adCmdUnknown '指定命令类型 Adodc1.RecordSource = " Select * from 教师名单" Adodc1.RefreshEnd SubPrivate Sub Command1_Click()Form2.Hide '返回主窗体Form1.ShowEnd Sub(3)将学生名单里教师人数统计并显示保存在名单表的“xsrs”里,并更新数据库信息Private Sub Form_Load()Adodc2.RecordSource = "select jsxm,count(*) as xsrs from 学生名单 group by jsxm " '统计选择教师人数Adodc2.Refresh '调用refresh 方法刷新 Dim n As IntegerFor n = 1 To 5 ' 将统计数据用指针更新在原数据表中 Adodc1.Recordset.Fields("xsrs") = Adodc2.Recordset.Fields("xsrs")Adodc1.Recordset.UpdateAdodc1.Recordset.MoveNextAdodc2.Recordset.MoveNextNext n窗体-查询:二、选择教师(1)、使用Select语句查询显示学生信息(登录学生信息)(2)、显示所选择某一教师的学生名单(3)、选择教师,将学生选择的教师姓名添加到数据库学生名单的字段“jsxm”中,保存并更新数据库信息图3 选择上课教师程序段如下:Private Sub Command1_Click()Form4.Hide '隐藏选择教师窗体Form1.Show '显示主窗体End SubPrivate Sub Command3_Click()Dim n As StringIf Text5.Text = "" ThenMsgBox ("请输入学号")ElseFrame1.Visible = Truen = Text5.TextAdodc1.Recordset.Find "id = '" & n & " '", , , 1 '登录信息(查询学生)Adodc3.RefreshEnd IfEnd SubPrivate Sub Command2_Click() If Text3.Text = Text4.Text Then MsgBox "您已选择此教师" Else Text3.Text = Text4.Textask = MsgBox("选择此教师任课?", 1, "提示") 'msgbox对话框出现Yes,No按钮 If ask = 1 Then '选择msgbox对话框中Yes按钮 Adodc1.Recordset.AddNew '调用AddNew方法 End If End IfEnd SubPrivate Sub Command4_Click()Adodc1.RecordSource = " select * from 学生名单 "Adodc1.RefreshFrame1.Visible = FalseEnd SubPrivate Sub DataList1_Click()Adodc3.RecordSource = "select *from 学生名单 where jsxm = '" & DataList1.BoundText & " '"Adodc3.Refresh 'refresh方法激活Text4.Text = DataList1.BoundTextEnd Sub四、总结这次课设我的题目是教师选择系统,通过这次课设让我了解了VB与数据库之间的联系,可以应用ADO技术使VB与Access数据库进行联系,还可以应用SQL语言查询和更改数据库中的信息,并能向其中添加新的信息,还有与之相关的窗体变化,不同控件的使用方法及属性设置。在课设过程中,我遇到了重重困难,比如:VB与数据库的连接技术、select查询语句句式、数据库数据更新保存,通过自己反复查阅教材,和同学互相探讨交流以及请教对VB程序比较熟练的同学,终于完成了任务。通过这次课程设计让我认识到VB编程在实际生活中是不可或缺的,它可以简化人们的工作量,将一系列的变化设置在程序之中,简化了人工操作的复杂性。因此,我们要认真学习VB,让他服务于我们的生活。五、完整的源程序Private Sub Command1_Click()Form1.Hide '隐藏主窗体Form2.Show '显示form2教师信息End SubPrivate Sub Command2_Click()Form1.Hide '隐藏主窗体Form3.Show '显示form3学生信息End SubPrivate Sub Command3_Click()Form1.Hide '隐藏主窗体Form4.Show '显示form3选教师窗体End SubPrivate Sub Command4_Click()End '退出程序End SubPrivate Sub Command2_Click()Dim y As Stringy = Text1.TextAdodc1.RecordSource=" select * from 教师名单 where id = " & y & " "Adodc1.RefreshEnd SubPrivate Sub Form_Load()Adodc2.RecordSource = "select jsxm,count(*) as xsrs from 学生名单 group by jsxm " '统计选择教师人数Adodc2.Refresh '调用refresh 方法刷新 Dim n As IntegerFor n = 1 To 5Adodc1.Recordset.Fields("xsrs") = Adodc2.Recordset.Fields("xsrs")Adodc1.Recordset.UpdateAdodc1.Recordset.MoveNextAdodc2.Recordset.MoveNextNext nDim mpath$, mlink$ '声明变量作为连接对象 mpath = App.Path '获取程序所在路径 If Right(mpath, 1) <> "" Then mpath = mpath + "" '判断是否为子目录 mlink = "Provider=Microsoft.Jet.OLEDB.4.0;" '指定提供者 mlink = mlink + "Data Source=" + mpath + "file03_选择教师系统.mdb" '在数据库文件名前插入路径 Adodc1.ConnectionString = mlink '设置连接属性 Adodc1.CommandType = adCmdUnknown '指定命令类型 Adodc1.RecordSource = " Select * from 教师名单" Adodc1.RefreshEnd SubPrivate Sub Command1_Click()Form2.Hide '返回主窗体Form1.ShowEnd SubPrivate Sub Command1_Click()Form3.Hide '返回主窗体Form1.ShowEnd SubPrivate Sub Command1_Click()Form4.Hide '隐藏选择教师窗体Form1.Show '显示主窗体End SubPrivate Sub Command3_Click()Dim n As StringIf Text5.Text = "" ThenMsgBox ("请输入学号")ElseFrame1.Visible = Truen = Text5.TextAdodc1.Recordset.Find "id = '" & n & " '", , , 1 '登录信息(查询语句)Adodc3.RefreshEnd IfEnd SubPrivate Sub Command2_Click() If Text3.Text = Text4.Text Then MsgBox "您已选择此教师" Else Text3.Text = Text4.Text ask = MsgBox("选择此教师任课?", 1, "提示") 'msgbox对话框出现Yes,No按钮 If ask = 1 Then '选择msgbox对话框中Yes按钮 Adodc1.Recordset.AddNew '调用AddNew方法 End If End IfEnd SubPrivate Sub Command4_Click()Adodc1.RecordSource = " select * from 学生名单 "Adodc1.RefreshFrame1.Visible = FalseEnd SubPrivate Sub DataList1_Click()Adodc3.RecordSource = "select *from 学生名单 where jsxm = '" & DataList1.BoundText & " '"Adodc3.Refresh 'refresh方法激活Text4.Text = DataList1.BoundTextEnd SubPrivate Sub Form_Load()Dim mpath$, mlink$ '声明变量作为连接对象 mpath = App.Path '获取程序所在路径 If Right(mpath, 1) <> "" Then mpath = mpath + "" '判断是否为子目录 mlink = "Provider=Microsoft.Jet.OLEDB.4.0;" '指定提供者 mlink = mlink + "Data Source=" + mpath + "file03_选择教师系统.mdb" '在数据库文件名前插入路径 Adodc1.ConnectionString = mlink '设置连接属性 Adodc1.CommandType = adCmdUnknown '指定命令类型 Adodc1.RecordSource = " Select * from 学生名单" Adodc1.RefreshEnd Sub六、参考文献1 匡松,吕俊闽Visual Basic程序设计教程及应用北京:清华大学出版社,2008.32 龚沛曾,杨志强,陆慰民.Visual Basic程序设计教程及教程.北京:高等教育出版社,2007.3