VB课程设计.docx
- 文档编号:16619180
- 上传时间:2023-07-15
- 格式:DOCX
- 页数:18
- 大小:120.72KB
VB课程设计.docx
《VB课程设计.docx》由会员分享,可在线阅读,更多相关《VB课程设计.docx(18页珍藏版)》请在冰点文库上搜索。
VB课程设计
沈阳航空航天大学
课程设计
学号2009040601170
班级94060105
姓名黄箫
指导教师徐晗
2011年3月16日
沈阳航空航天大学
课程设计任务书
学院:
机电工程学院专业:
机械设计制造及其自动化班级:
94060105
学号:
2009040601170题目:
上机管理系统
一、课程设计时间
2011年3月14日~20日(第2周),共计1周。
二、课程设计内容
机房计算机信息保存在文本文件或Access数据库的一个表中,计算机信息至少包括:
机房号,机位号,机器使用状态(在用为“1”,空闲为“0”,初始值为0)、使用者学号(初始为0)等。
学生上机时,根据输入的学号按顺序或随机选用机器,此时程序要改写所选机器的使用状态和使用者学号;学生下机时要恢复所选机器的初始值。
用户界面中的菜单至少应包括“维护机器数据”、“学生上机”、“学生下机”、“退出”4项。
三、课程设计要求
程序质量:
✧贯彻事件驱动的程序设计思想。
✧用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
✧课设结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、成绩
六、教师评语
目录
需求分析4
设计分析4
技术要点6
主要界面截图11
总结13
完整的源程序15
参考文献21
需求分析
需要建立一个上机管理系统,主要实现学生上机时自动分配机房和机器号、下机时将使用机器的信息清空以及对机器数据进行维护等功能。
设计分析
(1)概述:
首先建立一个文本文件以储存机器信息数据,供程序调用。
为实现直接、快速地访问文件中的数据,使用随机文件来储存。
启动程序的时候,自动读取已保存的数据。
数据维护中要能查看总数据数,查看某数据的机房号、机位号、使用状态、使用者学号,追加新数据、修改数据。
上机时输入学号,显示分配到的机房号机位号。
下机时输入学号,清空学号对应机器的使用信息。
每个功能有单独的窗口。
程序设计主要涉及到随机文件的打开与读写、多重窗体等知识。
(2)总体设计:
(3)详细设计:
技术要点
1自定义类型变量的声明和使用
在标准模块用Type语句实现自定义类型,代码如下:
Typesj'定义数据类型
jfAsInteger'用于存放机房号
jwAsInteger'用于存放机位号
xhAsString*13'用于存放学号,长度为13
ztAsBoolean'用于存放使用状态,逻辑型
EndType
用Dim语句声明该类型变量,代码如下:
PublicsAssj
程序中用到自定义类型变量时可采用With语句,代码如下:
Withs
.jf=Val(Text1)
.jw=Val(Text2)
.xh=Val(Text3)
.zt=IIf(Option1.Value,True,False)
EndWith
2数据的储存及调用
建立一个文本文件sjglxt.txt来存储机器信息数据。
为了直接快速地访问数据,采用随机文件来存储数据。
写入数据之前要打开文件,再写入,最后关闭文件。
代码如下:
Open"G:
\VB\上机管理系统\sjglxt.txt"ForRandomAs#1Len=Len(s)
Put#1,jl,s
Close#1
读取数据之前也要打开文件,之后要关闭文件,代码如下:
Open"G:
\VB\上机管理系统\sjglxt.txt"ForRandomAs#1Len=Len(s)
Get#1,jl,s
Close#1
3多重窗体的使用
窗体的显示与隐藏,代码如下:
Form2.Hide
Form1.Show
4VB控制结构的灵活使用
采用选择结构对条件进行判断,选择执行不同的分支,代码如下:
Ifs.zt=TrueThen
Option1.Value=True
Else
Option2.Value=True
EndIf
采用条件函数进行赋值,代码如下:
s.zt=IIf(Option1.Value,True,False)
采用循环结构进行逐一对比,代码如下:
Fori=1Tojl
Get#1,i,s
Ifs.xh=Val(Text1)Then'输入的学号已登录
MsgBox"已登录账号,请确认后再输入",,"提示"
Close#1
ExitSub
EndIf
Ifs.zt=FalseThen'查找前面是否有空闲的机器,有就分配到该机器
s.xh=Val(Text1)
s.zt=True
Put#1,i,s
Label4=s.jf
Label6=s.jw
Close#1
MsgBox"登陆完成",,"提示"
ExitSub
EndIf
Ifi=jlThen'没有查找到空闲机器
ExitFor
EndIf
Nexti
退出和结束语句,代码如下:
ExitFor
ExitSub
End
5运算符及标准函数的灵活调用
将字符串转换为数值:
s.xh=Val(Text1)
取小于或等于的最大整数:
jf=Int(jl/5)+1
取模运算:
jw=(jlMod5)+1
6菜单制作
主要界面截图
图1主界面
图2数据维护界面
图3上机登录界面
图4下机界面
总结
经过一个星期的努力,终于圆满地完成了此次课设。
通过这次课设,我学会了很多以往不会的知识,也巩固了大一下在课堂上学到的内容。
最开始拿到题目的时候,没有一点思路,因为我有大半年都没有用过VB了。
然后一点点地翻课本,慢慢地就有了一些自己的思路:
界面采用多重窗体、采用随机文件保存数据……
从界面设计到代码编辑,我都是不断地在翻课本,一步一步的,我的程序终于有了雏形,能够达到最基本的要求。
但是仔细一思考,问题又接二连三的冒出来了,比如:
怎么才能限制已登录学号再次登录、怎么分配前面空闲的机位、怎么在一个机房满了的时候自动分配下一个机房的机位……再一次翻课本,认识到灵活采用VB控制结构的重要性,又加强了对VB内置标准函数的学习,问题就迎刃而解了。
再经过不断的改进,程序基本上就不存在Bug了。
在这次课设中,我认识到了细心以及严密的逻辑的重要性。
计算机语言本身要求就是很严格的,代码中不能有一个字母的错误,有的地方甚至不能少一个空格;赋值的时候还要考虑到定义的变量的类型,比如在对整型变量赋值时,要利用Val函数将文本框里输入的字符进行转换;在用选择结构的时候要考虑好各种条件以及在该条件下要干什么;在用循环结构的时候要想好循环体以及初值、终值是什么;什么地方需要适时地加上Exit语句;还有各种结构、算法、函数、语句的灵活运用等等等等。
如果不够细心,或者逻辑不够严密,有一丁点的错误,程序就不能正常运行。
而且,每个同学的课设题目都与实际生活联系得很紧密,这也让我认识到了VB的实用性,改变了以往认为VB对我们没有用的想法。
以后的学习、生活中,我会更多地利用VB来解决一些困难。
总而言之,这次课设让我成长了很多,不仅仅是学到了更多的VB知识,能灵活地将这些知识用于实际生活中,更重要的是,改掉了从前粗心、想问题不想仔细的毛病,增强了我逻辑的严密性。
这对我以后所有的学习以及工作都有很大的帮助。
完整的源程序
模块代码:
Typesj'定义数据类型
jfAsInteger'用于存放机房号
jwAsInteger'用于存放机位号
xhAsString*13'用于存放学号,长度为13
ztAsBoolean'用于存放使用状态,逻辑型
EndType
PublicsAssj,jlAsInteger'声明各过程均用到的变量
Form1代码:
'command按钮
PrivateSubCommand1_Click()
Form1.Hide
Open"G:
\VB\上机管理系统\sjglxt.txt"ForRandomAs#1Len=Len(s)
Form2.Label5.Caption=LOF
(1)/Len(s)
Close#1
Form2.Show
EndSub
PrivateSubCommand2_Click()
Form1.Hide'隐藏窗体1
Form3.Show'显示窗体3
EndSub
PrivateSubCommand3_Click()
Form1.Hide
Form4.Show
EndSub
PrivateSubCommand4_Click()
End
EndSub
'菜单按钮
PrivateSubsj_Click()
Form1.Hide
Form3.Show
EndSub
PrivateSubtc_Click()
End
EndSub
PrivateSubwh_Click()
Form1.Hide
Open"G:
\VB\上机管理系统\sjglxt.txt"ForRandomAs#1Len=Len(s)
Form2.Label5.Caption=LOF
(1)/Len(s)
Close#1
Form2.Show
EndSub
PrivateSubxj_Click()
Form1.Hide
Form4.Show
EndSub
Form2代码:
PrivateSubCommand1_Click()
Withs
.jf=Val(Text1)
.jw=Val(Text2)
.xh=Val(Text3)
.zt=IIf(Option1.Value,True,False)
EndWith
Open"G:
\VB\上机管理系统\sjglxt.txt"ForRandomAs#1Len=Len(s)'打开存放数据的文本文件
jl=LOF
(1)/Len(s)+1
Put#1,jl,s'将刚登录的用户信息存放入文本文件
Label5.Caption=LOF
(1)/Len(s)
Close#1'关闭文本文件
Text1=""
Text2=""
Text3=""
Text1.SetFocus
EndSub
PrivateSubCommand2_Click()
Open"G:
\VB\上机管理系统\sjglxt.txt"ForRandomAs#1Len=Len(s)
jl=Val(Text4)'输入需要查询的记录号
Get#1,jl,s'获取文件中的信息并显示
Text1=s.jf
Text2=s.jw
Text3=s.xh
Ifs.zt=TrueThen
Option1.Value=True
Else
Option2.Value=True
EndIf
jl=LOF
(1)/Len(s)
Close#1
EndSub
PrivateSubCommand3_Click()
Text1=""
Text2=""
Text3=""
Text4=""
Form2.Hide
Form1.Show
EndSub
PrivateSubCommand4_Click()
xg=Text4'输入需要修改记录的记录号
Withs
.jf=Val(Text1)
.jw=Val(Text2)
.xh=Val(Text3)
.zt=IIf(Option1.Value,True,False)
EndWith
Open"G:
\VB\上机管理系统\sjglxt.txt"ForRandomAs#1Len=Len(s)
Label5.Caption=jl
Put#1,xg,s
Close#1
EndSub
Form3代码:
PrivateSubCommand1_Click()
IfText1=""Then'没有输入学号就按登录按钮
MsgBox"请输入学号",,"提示"
ExitSub
EndIf
Open"G:
\VB\上机管理系统\sjglxt.txt"ForRandomAs#1Len=Len(s)
Fori=1Tojl
Get#1,i,s
Ifs.xh=Val(Text1)Then'输入的学号已登录
MsgBox"已登录账号,请确认后再输入",,"提示"
Close#1
ExitSub
EndIf
Ifs.zt=FalseThen'查找前面是否有空闲的机器,有就分配到该机器
s.xh=Val(Text1)
s.zt=True
Put#1,i,s
Label4=s.jf
Label6=s.jw
Close#1
ExitSub
EndIf
Ifi=jlThen'没有查找到空闲机器
ExitFor
EndIf
Nexti
jf=Int(jl/5)+1'分配新机器,假设每个机房有5台机器
jw=(jlMod5)+1
jl=LOF
(1)/Len(s)+1
Withs
.jf=jf
.jw=jw
.xh=Val(Text1)
.zt=True
EndWith
Put#1,jl,s
Close#1
Label4=s.jf
Label6=s.jw
MsgBox"登陆完成",,"提示"
EndSub
PrivateSubCommand2_Click()
Form3.Hide
Form1.Show
Text1=""
Label4.Caption=""
Label6.Caption=""
EndSub
Form4代码:
DimxhAsString*13
PrivateSubCommand1_Click()
IfText1=""Then'未输入学号
MsgBox"请输入学号",,"提示"
Form4.Hide
Form1.Show
ExitSub
EndIf
Open"G:
\VB\上机管理系统\sjglxt.txt"ForRandomAs#1Len=Len(s)
jl=LOF
(1)/Len(s)+1
Fori=1Tojl
Get#1,i,s
Ifs.xh=Text1Then'下机
s.xh="0"
s.zt=False
Put#1,i,s
MsgBox"已下机",,"提示"
ExitFor
EndIf
Ifi=jlThen'输入的学号未登录
MsgBox"未登录账号,请确认",,"提示"
EndIf
Nexti
Close#1
Text1=""
Form4.Hide
Form1.Show
EndSub
参考文献
[1]龚沛曾、杨志强、陆慰民.《VisualBasic程序设计教程》.北京:
高等教育出版社,2007.3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 课程设计