1、成绩系统框图界面VB课程设计题目:学 生 成 绩 管 理 系 统设计一个简单的学生成绩程序管理系统,使用随机文件存储学生信息,该程序具有数据添加、修改、删除及学生信息顺序查询功能。程序的运行界面如下图所示。一、系统结构框图如下:系统总体结构框图二、密码程序界面及主要控件属性设置1程序界面:2. 主要控件属性设置:对象属性(属性值)属性(属性值)说明窗体1Name (Form1)Caption(“登陆成绩管理系统”)窗体2Name (Form2)Caption(“学生成绩管理系统”)文本框1Name ( Text1)Text (“”)PassWordChar(*)指定显示在文本框中的替代符命令按
2、钮1Name(CmdIn)Caption(“进入”)标签1Name(Label1)Caption(“请输入密码:”)AutoSize(True)返回或设置一个值,以决定控件是否自动改变大小显示其全部内容命令按钮2Name(CmdExit)Caption(“退出”)三 、成绩管理程序界面及主要控件属性设置 1. 程序界面:2. 主要控件属性设置:对象属性(属性值)属性(属性值)说明窗体Name (form1)Caption(“学生成绩管理”)文本框1Name (TxtID)Text(“”)输入和显示学号文本框2Name (TxtName)Text(“”)输入和显示姓名文本框3Name(TxtCl
3、ass)Text(“”)输入和显示班级文本框4Name(TxtSubject)Text(“”)输入和显示专业文本框控件数组5Name(TxtMark)Index(13)输入和显示三门课程成绩文本框6Name(TxtTotal)Text(“”)显示总成绩命令按钮1Name (CmdAdd)Caption(“添加”)向文件中追加记录命令按钮2Name(CmdChange)Caption(“修改”)修改当前记录命令按钮3Name(CmdDelete)Caption(“删除”)删除当前记录命令按钮4Name(CmdBefore)Caption(“上一个”)显示上一个记录命令按钮5Name(CmdNex
4、t)Caption(“下一个”)显示上一个记录4、系统程序一、密码程序:(form1) Private Sub Form_Load()者 装入窗体事件过程Form2.HideEnd SubPrivate Sub CmdIn_Click()进入密码事件过程Static nn = n + 1If n = 3 Then: MsgBox 对来起!密码三次错误退出!: Endpass$ = Text1.Text 为Text1开始获得焦点设其tabindex=0If pass$ = 666666 Then Form1.Hide Form2.ShowElse Label1.Caption = 请重新输入密码
5、: Text1.Text = 使文本框清空 Text1.SetFocusEnd IfEnd Sub(密码输入后)按回车键将触发KeyPress事件(替代鼠标单击进入)Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then CmdIn_ClickEnd IfEnd SubPrivate Sub CmdExit_Click()退出密码事件过程EndEnd Sub二、成绩管理系统程序: 1. 标准模块代码:(Module1)Type student定义学生信息记录类型 id As String * 8 name As
6、String * 10 class As String * 10 subject As String * 20 mark(1 To 3) As IntegerEnd Type Public stu As student定义student类型变量存放当前记录内容 Public filename As String定义变量存放学生信息文件名 Public rec_no As Integer定义变量存放当前记录号 Public rec_total As Integer定义变量存放总记录数 Public rec_long As Integer定义变量存放记录长度2. 成绩管理代码:(form2)Pri
7、vate Sub cmdadd_Click() 添加记录事件过程Dim i As Integer, nmsg As IntegerFor i = 1 To rec_total Get #1, i, stu If Trim(stu.id) = Trim(txtid.Text) Then nmsg = MsgBox(文件中已有该同学的记录,要显示修改此记录吗?, vbYesNo) If nmsg = vbYes Then rec_no = i Call display End If Exit Sub End IfNext iCall getdatarec_total = rec_total + 1
8、rec_no = rec_totalPut #1, rec_no, stuEnd SubPrivate Sub cmdbefore_Click()显示上一条记录事件过程 If rec_no 1 Then rec_no = rec_no - 1 Else MsgBox 现在已是首记录! Exit Sub End If Get #1, rec_no, stu Call displayEnd SubPrivate Sub cmdchange_Click()修改当前记录事件过程Call getdata 将修改的数据保存到记录变量中Put #1, rec_no, stu修改记录Call displayE
9、nd SubPrivate Sub cmddelete_Click()删除当前记录事件过程Dim i As Integer Dim dempno As Integertempno = rec_no Open filename & .temp For Random As #2 Len = rec_long For i = 1 To rec_total If i tempno Then Get #1, i, stu Put #2, , stu End If Next i Close Kill filename Name filename & .temp As filename Call fileo
10、penEnd SubPrivate Sub cmdnext_Click()显示下一条记录事件过程 Dim nmsg As Integer If rec_no rec_total Then未到打开记录尾时执行该程序 rec_no = rec_no + 1 Call display显示当前记录 Else nmsg = MsgBox(已到最后一记录了!要回到首记录吗?, vbYesNo) If nmsg = vbYes Then rec_no = 1回到首记录 Call display End If End IfEnd SubPrivate Sub txtclear()清除各文本框中的内容子过程 D
11、im i As Integer With stu txtid = : txtname = txtclass = : txtsubject = For i = 1 To 3 txtmark(i) = Next i txttotal = End WithEnd SubPrivate Sub display()显示当前记录子过程 Dim i As Integer Get #1, rec_no, stu With stu txtid = .id: txtname = .name txtclass = .class: txtsubject = .subject For i = 1 To 3 txtmar
12、k(i) = .mark(i) Next i txttotal = .mark(1) + .mark(2) + .mark(3) End WithEnd SubPrivate Sub getdata()将在文本框输入的数据存入到记录变量中 Dim i As Integer stu.id = txtid.Text: stu.name = txtname.Text stu.class = txtclass.Text: stu.subject = txtsubject.Text For i = 1 To 3 stu.mark(i) = Val(txtmark(i).Text) Next iEnd S
13、ubPrivate Sub txtmark_lostfocus(index As Integer) If index = 3 Then当输入完最后一门课程,则计算并显示总成绩 txttotal = Val(txtmark(1) + Val(txtmark(2) + Val(txtmark(3) End IfEnd SubPrivate Sub Form_Load()装入窗体事件过程 filename = App.Path & studet.datApp.Path意思就是应用程序所在的路径。即studet.dat文件存放在“运行的程序”同一个位置(目录)中。 rec_long = Len(stu
14、)给定随机文件记录长度 Call fileopenEnd Sub Private Sub fileopen()打开学生信息数据文件 Dim i As Integer Open filename For Random As 1 Len = rec_long rec_long = Len(stu) rec_total = LOF(1) / rec_long初始打开的为全部记录 If rec_total = 0 Then如为空记录,则清除各文本框的内容 Call txtclear Exit Sub Else如果有学生信息数据,则显示第一条记录rec_no = 1call display 也可以直接用display End If End Sub
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1