收藏 分享(赏)

Visual Basic 程序设计1 (18).ppt

上传人:wspkg9802 文档编号:8117396 上传时间:2019-06-09 格式:PPT 页数:58 大小:2.04MB
下载 相关 举报
Visual Basic 程序设计1 (18).ppt_第1页
第1页 / 共58页
Visual Basic 程序设计1 (18).ppt_第2页
第2页 / 共58页
Visual Basic 程序设计1 (18).ppt_第3页
第3页 / 共58页
Visual Basic 程序设计1 (18).ppt_第4页
第4页 / 共58页
Visual Basic 程序设计1 (18).ppt_第5页
第5页 / 共58页
点击查看更多>>
资源描述

1、Visual Basic 程序设计,第十九讲 2课时,教学目标及基本要求,了解学生管理系统的系统设计。 熟悉用Visual Basic语言对学生管理系统的程序开发。 掌握用Visual Basic对系统的主要功能进行设计。,教学重点,Visual Basic集成开发环境; 学生管理系统的系统设计的步骤; 主要功能的模块设计; 系统管理系统的数据库设计。,教学难点,数据库的连接,教学内容,学生管理系统的系统设计 学生管理系统的程序开发 学生管理系统的主要功能模块程序设计,学生管理系统的系统设计,本学生管理系统的主要特点有:一是可以对学生的入学档案资料、课程成绩等进行全方位的管理;二是界面设计简单

2、易懂,操作简便;三是简单实用的数据库、报表设计及打印功能。,学生管理系统的需求分析 为更好的做好学生档案资料管理这项工作,提高工作效率,有必要开发一套学生管理系统。 校在目前的学生管理中,虽然应用了计算机进行管理,摆脱了全手工的管理方式,但由于没有一套统一的方式、方法和软件系统支持,仍然存在着诸如数据分散、不一致、可利用率低等的问题,以致影响了工作效率的进一步提高。 学生管理系统的实现,可以使学校更方便的对学生档案、课程成绩及班级等进行查询和录入,实现学生管理的信息化与现代化。,学生管理系统的系统设计,学生管理系统的系统设计,学生管理系统的功能模块设计 系统管理模块 班级管理模块 学生档案管理

3、模块 课程管理模块 成绩管理模块 打印报表模块 系统维护模块,图15-1 学生管理系统功能结构图,学生管理系统的系统设计,学生管理系统的数据库设计 系统数据库名称为xsgl.mdb,其中包括: 基本课程数据表(allkecheng); 成绩数据表(cj); 班级数据表(class); 班级课程数据表(classkecheng); 考试类型数据表(kaoshileixing); 用户名数据表(use); 学生档案信息数据表(xj)。,学生管理系统的系统设计,学生管理系统的系统设计,各个数据表的数据结构如下:,表15-1 基本课程数据表(allkecheng),表15-2成绩数据表(cj),表15

4、-3班级数据表(class),表15-4 班级课程数据表(classkecheng),学生管理系统的系统设计,表15-5考试类型数据表(kaoshileixing),表15-6用户名数据表(use),学生管理系统的系统设计,表15-7学生档案信息数据表(xj),学生管理系统流程图,学生管理系统的程序开发,学生管理系统的程序运行 Visual Basic与数据库的连接通过连接字符串模块Modulel.bas来建立与数据库的连接,代码如下:Public Function connstring() As Stringconnstring =“provider=Microsoft.Jet.OLEDB.

5、4.0;Data source =“ & App.Path & “/xsgl.mdb“ End Function,学生管理系统的程序开发,程序运行结果 (1)运行程序首先看到欢迎界面,如图15-3所示。然后进入登录界面如图15-4所示,输入用户名和密码(初始用户名和密码分别为“admin”和“123”),单击“确定”,进入系统主程序界面,如图15-5所示。,图15-3 系统欢迎界面 图15-4 系统登录界面,学生管理系统的程序开发,图15-5 系统主程序界面,学生管理系统的程序开发,(2)在系统主界面中选择【系统管理】|【添加用户】菜单命令即可进入【新增用户】界面,如图15-6所示。 在该界面

6、中,可以建立新用户,设置使用权限.,图15-6 新增用户界面,学生管理系统的程序开发,(3)在系统主界面中选择【班级管理】|【添加班级】菜单命令或单击工具栏中的 按钮,进入添加班级资料设置界面,如图15-7所示。用户可以在这个窗口中设置班级资料,单击【确定】按钮,若无重复班级则显示添加成功,否则添加失败。,图15-7 添加班级信息设置界面,学生管理系统的程序开发,图15-8 浏览班级资料窗体,图15-9 修改班级设置窗体,学生管理系统的程序开发,单击工具栏中的【修改】按钮可以在此图所示窗体中进行班级资料修改。,选择【班级管理】|【班级浏览】菜单命令,可以浏览班级资料,图15-10 班级设置查询

7、窗体,学生管理系统的程序开发,单击工具栏的【查找】按钮就会打开班级查询窗体。 选择【班级管理】|【班级查询】菜单命令或单击工具栏中的按钮,也会弹出。,单击工具栏中的【打印】按钮会让用户选择【打印当前记录】还是【打印全部记录】,相应地会得到打印预览窗体。,图15-11 打印预览窗体,图15-12 学生入学档案登记窗体,学生管理系统的程序开发,(4)在系统主界面中选择【学生档案管理】【档案添加】菜单命令或单击工具栏中的 按钮,进入学生入学档案登记界面,如图15-12所示。其中班级只能从已经设置好的班级中选择,否则不能添加。,图15-13 浏览学生档案界面,学生管理系统的程序开发,选择【学生档案管理

8、】|【档案浏览】菜单命令或单击工具栏中的 按钮,可以浏览学生信息,如图15-13所示,单击左侧的年级或班级名,右侧就会相应地显示对应的学生信息。,图15-14 学生档案资料修改窗体 图15-15 学生档案查询窗体,学生管理系统的程序开发,选择【学生档案管理】|【档案浏览】菜单命令或单击工具栏中的 按钮,可以浏览学生信息,如图15-13所示,单击左侧的年级或班级名,右侧就会相应地显示对应的学生信息。在图15-13中单击工具栏中的【修改】按钮可以在如图15-14所示窗体中进行学生档案资料修改。单击工具栏的【查找】按钮就会打开学生档案查询窗体,如图15-15所示。,图15-16 学生档案打印预览窗体

9、,学生管理系统的程序开发,在图15-13中单击工具栏中的【删除】按钮可以删除当前的学生档案资料。单击工具栏中的【打印】按钮会让用户选择【打印当前记录】还是【打印全部记录】,相应地会得到打印预览窗体,如图15-16所示。,(5)在系统主界面中选择【课程管理】【基本课程设置】菜单命令,进入基本课程设置窗体,如图15-17所示。选择【课程管理】【班级课程设置】菜单命令,进入到班级课程设置窗体,如图15-18所示。,图15-17 基本课程设置窗体 图15-18 班级课程设置窗体,学生管理系统的程序开发,(6)在系统主界面中选择【成绩管理】|【考试类型设置】菜单命令,进入考试类型设置窗体,如图15-19

10、所示。选择【成绩管理】|【成绩录入】菜单命令或单击工具栏中的 按钮,进入到成绩录入窗体,如图15-20所示。选择学期、班级、类型、学号等信息,自动加载所对应的考试科目。,图15-19 考试类型设置窗体 图15-20 成绩录入窗体,学生管理系统的程序开发,选择【成绩管理】【成绩浏览】菜单命令或单击工具栏中的 按钮,就可以浏览学生成绩信息,如图15-21所示。选择年级、班级、学期、类型就可以查看相应学生的成绩。,图15-21 成绩浏览窗体,学生管理系统的程序开发,(7)在系统主界面中选择【打印报表】|【学生档案信息】菜单命令或单击工具栏中的 按钮,进入如图15-16所示的学生档案打印预览窗体。选择

11、【打印报表】|【学生班级信息】菜单命令,进入如图15-11所示的学生班级信息打印预览窗体。,学生管理系统的程序开发,(8)在系统主界面中选择【系统维护】|【数据库备份】菜单命令或单击工具栏中的 按钮,就可以进入数据库备份窗体,如图15-22所示,选择输出磁盘位置和文件夹即可。选择【系统维护】|【关于系统】菜单命令,就可以进入关于学生管理系统窗体,显示该系统的相关信息,如图15-23所示。,图15-22 数据库备份窗体 图15-23 关于学生管理系统窗体,学生管理系统的程序开发,本节只介绍几个重要模块的实现过程,其他模块的详细代码请参见本书提供的学生管理系统文件夹的源代码(可在人民邮电出版社的教

12、学与服务资源网上下载)。在Visual Basic编程的过程中需要用到很多ActivceX控件,所以在编程以前必须添加这些部件。通过Visual Basic界面,选择【工程】|【部件】菜单命令,然后按照图15-24所示选择相应的部件,各个部件的类型及其用法请参照相关文献。,图15-24 控件选择窗体,学生管理系统的主要功能模块程序设计,公共模块公共模块(Modulel.bas)主要由3个函数组成:函数ExecuteSQL用于执行相应的SQL命令;函数Connstring用于连接字符串;函数Executeqx用于检查用户的权限。具体代码见书本。,学生管理系统的主要功能模块程序设计,班级管理模块班

13、级管理模块、学生档案管理模块功能类似,在此以班级管理模块为主介绍,其他模块请参见源代码。在班级管理模块中,用户可以添加、修改、删除、查找、浏览班级信息。 1frm添加班级资料.frm窗体 “添加班级资料设置”所对应的窗体frm添加班级资料.frm,如图15-7所示,“添加班级资料设置”和“修改班级资料”都是由这一窗体实现的,此窗体的代码主要有两个功能: 使用此窗体可以应用于“添加”和“修改”两种状态; 根据条件,确定是否可以“添加”或“修改”班级资料。,学生管理系统的主要功能模块程序设计,Public Sub classload() Dim mrc As ADODB.Recordset If

14、classmodi Then 如果是修改状态Me.Caption = “修改班级设置“classstr = “select * from class where 班级=“ & Trim(frm班级资料浏览.MSF1.TextMatrix (frm班级资料浏览.MSF1.Row, 2) & “Set mrc = ExecuteSQL(classstr)mrc.MoveFirstFor i = 0 To 6Text1(i).Text = mrc.Fields(i)Next imrc.Close ElseMe.Caption = “添加班级设置“For i = 0 To 6Text1(i).Text

15、 = “Next iEnd If End Sub,学生管理系统的主要功能模块程序设计,根据条件,确定是否可以“添加”或“修改”班级资料 Private Sub Command1_Click()For j = 0 To 5If Text1(j) = “ Thenss = MsgBox(Label2(j).Caption & “不能为空!“, vbExclamation + vbOKOnly, “警告“)Text1(j).SetFocusText1(j).SelStart = 0Text1(j).SelLength = Len(Text1(j).Text)Exit SubEnd IfNext,学生

16、管理系统的主要功能模块程序设计,Dim mrc As ADODB.Recordset If classmodi = False Thenclassstr = “select * from class where 班级=“ & Trim(Text1(1).Text) & “Set mrc = ExecuteSQL(classstr)If mrc.EOF = False Thensss = MsgBox(“已经存在该班级的设置,不能重复!“, vbonly, “警告“)Text1(1).SetFocusText1(1).SelStart = 0Text1(1).SelLength = Len(Te

17、xt1(1).Text)mrc.CloseExit SubEnd If End If,classstr = “delete * from class where 班级=“ & Trim(Text1(1).Text) & “ Set mrc = ExecuteSQL(classstr) classstr = “select * from class “ Set mrc = ExecuteSQL(classstr) mrc.AddNew For i = 0 To 6If Text1(6).Text = “ ThenText1(6).Text = “无“End Ifmrc.Fields(i) = T

18、ext1(i).Text Next i mrc.Update,学生管理系统的主要功能模块程序设计,If classmodi ThenUnload Me ElseFor j = 0 To 6Text1(j) = “NextEnd If End Sub 退出“添加”或“修改” Private Sub Command2_Click()Unload Me End Sub,2frm班级资料浏览.frm窗体frm班级资料浏览.frm窗体对应的是【班级浏览】功能,如图15-8所示,这一窗体比较复杂,应用了treeview、MSFlexGrid、toolbar控件和Visual Basic自带的报表设计器,具

19、体使用参看有关资料,窗体加载时会加载班级资料到treeview中,程序代码如下:显示treeview的内容Public Sub classtree() TreeView1.Nodes.ClearDim nodex As NodeDim mrc As ADODB.RecordsetDim mrc1 As ADODB.RecordsetDim str As StringDim a As String,学生管理系统的主要功能模块程序设计,a = “年级“TreeView1.LineStyle = tvwRootLinesstr = “select distinct 年级 from class ord

20、er by 年级“Set mrc = ExecuteSQL(str)str = “select distinct 年级,班级 from class order by 年级,班级“Set mrc1 = ExecuteSQL(str)mrc.MoveFirstDo Until mrc.EOFmrc1.MoveFirstSet nodex = TreeView1.Nodes.add(, , a, mrc.Fields(0), 1, 1),学生管理系统的主要功能模块程序设计,Do While Not mrc1.EOFIf mrc1.Fields(0) = mrc.Fields(0) ThenSet n

21、odex = TreeView1.Nodes.add(a, tvwChild, , mrc1.Fields(1), 2, 2)End Ifmrc1.MoveNextLoopa = a & “1“mrc.MoveNextLoopmrc1.Closemrc.CloseSet mrc = NothingSet mrc1 = Nothing End Sub,学生管理系统的主要功能模块程序设计,对于MSFlexGrid,可以通过函数classshowtitle添加标题,通过classshowdata函数添加数据。这两个函数的具体代码如下:显示MSFlexGrid的标题 Public Sub classs

22、howtitle()Dim i As IntegerMSF1.ClearWith MSF1.Cols = 8.TextMatrix(0, 1) = “年级“.TextMatrix(0, 2) = “班级“.TextMatrix(0, 3) = “教室“.TextMatrix(0, 4) = “年制“.TextMatrix(0, 5) = “专业“.TextMatrix(0, 6) = “班主任“.TextMatrix(0, 7) = “备注“,学生管理系统的主要功能模块程序设计,.ColWidth(0) = 200.ColWidth(1) = 800.ColWidth(2) = 1 200.C

23、olWidth(3) = 800.ColWidth(4) = 700.ColWidth(5) = 1 400.ColWidth(6) = 700.ColWidth(7) = 4 000.FixedRows = 1For i = 1 To 7.ColAlignment(i) = 0Next i.FillStyle = flexFillSingle.Col = 0.Row = 0.RowSel = 1,学生管理系统的主要功能模块程序设计,.ColSel = .Cols - 1.CellAlignment = 4.Row = 1End With End Sub 显示MSFlexGrid的内容 Pub

24、lic Sub classshowdata()Dim j As IntegerDim i As IntegerDim mrc1 As ADODB.RecordsetSet mrc1 = ExecuteSQL(Trim(txtsql)If mrc1.EOF = False Thenmrc1.MoveFirstWith MSF1.Rows = 1,Do While Not mrc1.EOF.Rows = .Rows + 1For i = 1 To mrc1.Fields.Count.TextMatrix(.Rows - 1, i) = mrc1.Fields(i - 1)Next imrc1.Mo

25、veNextLoopmrc1.CloseEnd With,学生管理系统的主要功能模块程序设计,ElseIf classfind = True Thenfrm班级资料浏览.Hidefrm班级资料查询.Showzzz = MsgBox(“对不起,没有此班级的档案记录!“, vbOKOnly, “查询“)frm班级资料查询.ZOrder (0)frm班级资料查询.Text1(0).SetFocusEnd IfEnd If End Sub,单击treeview,在MSFlexGrid会显示相应的数据。Treeview和MSFlexGrid之间的联系,可以通过以下代码来实现。建立treeview和MSF

26、lexGrid之间的联系 Private Sub TreeView1_DblClick()On Error GoTo qqIf TreeView1.SelectedItem.Index = 0 ThenMSF1.ClearExit SubEnd If,学生管理系统的主要功能模块程序设计,txtsql = TreeView1.Nodes.Item(TreeView1.SelectedItem.Index)txtsql = “ select * from class where 年级=“ & Trim(txtsql) & “ or 班级=“ & Trim(txtsql) & “ order by

27、年级 ,班级 “printstr = txtsqlMe.Caption = “浏览班级资料“Me.classshowtitleMe.classshowdataExit Sub qq:MSF1.Clear End Sub,学生管理系统的主要功能模块程序设计,3frm班级资料查询.frm窗体 frm班级资料查询.frm窗体对应的功能是实现班级资料查询的功能,其窗体式样如图15-10所示,具体代码如下:实现班级资料查询的功能 Private Sub Command1_Click()txtsql = “If Text1(0).Text “ ThenIf txtsql = “ Thentxtsql =

28、“年级=“ & Trim(Text1(0).Text) & “Elsetxtsql = txtsql & “and 年级=“ & Trim(Text1(0).Text) & “End IfEnd If,学生管理系统的主要功能模块程序设计,If Text1(1).Text “ ThenIf txtsql = “ Thentxtsql = “班级=“ & Trim(Text1(1).Text) & “Elsetxtsql = txtsql & “and 班级=“ & Trim(Text1(1).Text) & “End IfEnd IfIf Text1(2).Text “ Thenaa = 1If

29、 txtsql = “ Thentxtsql = “专业=“ & Trim(Text1(2).Text) & “Elsetxtsql = txtsql & “and 专业=“ & Trim(Text1(2).Text) & “End IfEnd If,学生管理系统的主要功能模块程序设计,If txtsql = “ Thenss = MsgBox(“你至少要输入一个条件以上才能查询!“, , “ 警告“)Text1(0).SetFocusExit SubEnd Iftxtsql = “select * from class where “ & txtsqlDim mrc As ADODB.Rec

30、ordsetSet mrc = ExecuteSQL(txtsql)If mrc.EOF = True Thenzzz = MsgBox(“对不起,没有此班级的档案记录!“, vbOKOnly, “查询“)frm班级资料查询.ZOrder (0)frm班级资料查询.Text1(0).SetFocusExit SubEnd If,学生管理系统的主要功能模块程序设计,frm班级资料浏览.printstr = txtsqlclassfind = Truefrm班级资料浏览.Showfrm班级资料浏览.classshowtitlefrm班级资料浏览.classshowdatafrm班级资料浏览.Cap

31、tion = “班级设置查询结果“frm班级资料浏览.ZOrder (0) End Sub,学生管理系统的主要功能模块程序设计,课程管理模块课程管理模块中可以设置基本课程,然后给相应年级的专业分配课程。frm基本课程.frm窗体对应基本课程设置,窗体式样如图15-17所示,基本课程设置窗体具体代码请参见源代码。frm设置班级课程.frm窗体对应班级课程设置,其窗体式样如图15-18所示,在这里可以给相应年级的专业分配课程,年级、专业、学期和年制随窗体自动加载。,学生管理系统的主要功能模块程序设计,成绩管理模块在成绩管理模块中可以实现考试类型设置、录入考试成绩和浏览考试成绩功能,其中frm考试类

32、型.frm窗体实现考试类型设置,比较简单不作介绍,请参见程序源代码。 1frm录入成绩.frm窗体frm录入成绩.frm窗体完成的是成绩录入功能,因为每个班级的课程数量和课程内容都不一样,程序中采用通过控件索引来完成在单个窗体录入所有的课程成绩,其代码如下:,学生管理系统的主要功能模块程序设计,Private Sub fillkencheng()Dim mrc As ADODB.RecordsetDim mrc1 As ADODB.RecordsetFor i = 0 To 13Label1(i).Visible = FalseText1(i).Visible = FalseNext itxt

33、sql = “select 年级,专业,年制 from class where 班级=“ & Trim(Combo2.Text) & “Set mrc1 = ExecuteSQL(txtsql)txtsql = “select 课程名称 from classkecheng where 学期=“ & Trim(Combo1.Text) & “and 年级=“ & Trim(mrc1.Fields(0) & “ and 专业=“ & Trim(mrc1.Fields(1) & “ and 年制=“ & Trim(mrc1.Fields(2) & “Set mrc1 = NothingSet mrc

34、 = ExecuteSQL(txtsql),学生管理系统的主要功能模块程序设计,Dim ssss As StringIf mrc.EOF = True Thensss = MsgBox(“请先设置班级课程!“, vbExclamation + vbOKOnly, “警告“)Command1.Enabled = FalseCommand2.Enabled = FalseLabel1(0).Visible = FalseExit SubEnd IfCommand1.Enabled = TrueCommand2.Enabled = Truemrc.MoveFirstkechengcount = mr

35、c.RecordCount,学生管理系统的主要功能模块程序设计,For i = 0 To (mrc.RecordCount - 1)Label1(i).Visible = TrueText1(i).Visible = TrueLabel1(i).Caption = mrc.Fields(0)Text1(i).Text = 0mrc.MoveNextNext iText1(0).SetFocusFrame3.Height = 410 + Int(i / 2 + 0.5) * 360Frame1.Height = 2 000 + Frame3.HeightMe.Height = 1 800 + F

36、rame1.HeightSet mrc = Nothing End Sub,学生管理系统的主要功能模块程序设计,2frm成绩浏览.frm窗体 frm成绩浏览.frm窗体完成的是成绩浏览功能,为了使用户能够很直观地发现学 生成绩不及格,将不及格的课程成绩设为红色,具体代码如下:For j = 1 To mrc2.RecordCountMSF1.Col = gIf Val(mrc2.Fields(“分数“) 60 ThenMSF1.CellForeColor = vbRedEnd IfMSF1.TextMatrix(MSF1.Row, g) = mrc2.Fields(“分数“)sum = sum

37、 + mrc2.Fields(“分数“)g = g + 1mrc2.MoveNext Next j,学生管理系统的主要功能模块程序设计,MSF1.TextMatrix(MSF1.Row, g) = sum Dim avg1 As Single avg1 = Int(sum / (mrc2.RecordCount) * 10 + 0.5) / 10 MSF1.Col = g + 1 If avg1 60 ThenMSF1.CellForeColor = vbRed End If,学生管理系统的主要功能模块程序设计,打印报表模块打印报表模块可以实现学生档案信息打印和学生班级信息打印功能,要打印报表首先要进行报表设计,报表设计是采用Visual Basic自带的报表设计器来实现的,这部分的设计工作,限于篇幅在此不作介绍,具体请参见系统设计源程序。,学生管理系统的主要功能模块程序设计,系统维护模块系统维护模块可以显示关于学生管理系统,窗体界面如图15-23所示和系统数据库备份功能,窗体界面如图15-22所示。程序设计简单,限于篇幅在此不作介绍,具体请参见程序源代码。,学生管理系统的主要功能模块程序设计,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报