《VB程序设计》课程设计 (课外)
课程设计目的:
通过课程设计,使学生掌握VB程序设计的基本方法,加深可视化程序设计的理解,掌握顺序、选择、循环三种基本结构的设计方法,学会使用VB的基本控件,掌握VB与数据库编程方法。 课程设计要求:
(1) 每位同学都必须单独完成;
(2) 每位同学都必须上交源程序文件和打包后的安装文件;
(3) 每位同学的源程序都应编译运行出正确的结果;
(4) 访问数据库要求用ADO方法。
课程设计对象:
课程设计内容:
编写一个学生成绩管理系统,该系统能完成:
(1) 学生基本信息的输入;
(2) 课程成绩的录入(按课程或按学生);
(3) 计算出每个人的总分,平均分;
(4) 显示每个人的相关信息;
(5) 按学号或姓名查询功能;
(6) 按总分排序;
(7) *增删功能(增加或删除学生);
(8) 用户登录
*选做(有能力的同学做)
课程设计时间分配表
课程设计共一周其进度时间大致分配如下:
(1)需求分析,数据库设计、系统菜单设计(1天)
(2)程序主框架、系统功能模块设计(2天)
(3)课程设计报告的书写(1天)
(4)提问验收(1天)
学生基本信息表最少应包含以下字段:学号,姓名,性别,出生年月,若干门课程成绩,总分,平均分。
用户信息表最少应包含以下用户名,密码。
成绩评定方法
学生成绩评定方法主要从学生课程设计内容的完成情况、学生课程设计态度的表现情况(纪律和出勤情况)、课程设计成果情况综合评定。课程设计成果界面和源程序考核成绩占总成绩的80%;课程设计态度和课程设计报告的质量占总成绩的20%。成绩分为优秀、良好、中等、及格和不及格五档
每位同学独立完成,最后一次课程设计课将给每位学生独立评分;实训结束后,每位同学的课程设计文件统一交给学习委员,刻录到光盘,上交给老师。课程设计报告也交学习委员。
说明:每位同学的课程设计文件分别放在一个以自己学号命名的文件夹中。
重庆机电职业技术学院
课程设计说明书 设计名称:
题 目:
学生姓名:
专 业:
班 级:
学 号:指导教师:
日 期: VB程序课程设计 陈 杰 计算机应用软件工程 1 班 1 2 6 0 7 2 0 1 4 2 2 4 0 郑 殿 君 2012 年 6 月 21 日
1
重庆机电职业技术学院
课程设计任务书
专 业 年级班 一、设计题目
课题一:记事本程序设计
课题二:画图板程序设计
课题三:模拟交通灯程序设计
二、主要内容
利用所学和自学VB知识完成以下课题程序设计
课题一:记事本程序设计
课题二:画图板程序设计
课题三:模拟交通灯程序设计
注意:
1、课程设计内容含源程序代码电子档和课程设计说明书电子档及打印档,缺少任何一样均视作总分不及格处理。
2、所交设计中,缺少任意一道必做课题均视作总分不及格处理,选作课题可根据个人情况选作。
三、具体要求
课题一:记事本程序设计(共25分)
1.1 程序功能
要求用VB设计类似Windows记事本的程序,至少应包含如下功能: 菜单功能
(1)文件(新建、打开、保存、打印,退出)
(2)编辑(剪切、复制、粘贴、删除、全选、日期/时间)
(3)格式(字体)
(4)帮助(关于)
工具栏功能:同菜单功能
1.2 程序界面(10分)
要求设计界面美观大方,控件布局合理、属性设置正确
1.3 程序代码(10分)
要求代码编写规范,逻辑清晰,代码描述准确,添加适当注释
1.4 程序设计体会(5分)
要求从:在该设计中遇到了哪些问题?如何解决的问题?通过该设计学
习到了什么?三个方面出发,写出自己在设计过程中的心得体会。 课题二:画图板程序设计(25分)
2.1 程序功能
要求用VB设计类似Windows画图板的程序,至少应包含如下功能: 菜单功能:文件(新建、打开、保存、打印,退出)、帮助(关于) 2
工具栏功能:画任意曲线、画直线、画圆、擦除功能,设置画线颜色。
2.2 程序界面(10分)
要求设计界面美观大方,控件布局合理、属性设置正确
2.3 程序代码(10分)
要求代码编写规范,逻辑清晰,代码描述准确,添加适当注释
2.4 程序设计体会(5分)
要求从:在该设计中遇到了哪些问题?如何解决的问题?通过该设计学
习到了什么?三个方面出发,写出自己在设计过程中的心得体会。
课题三: 模拟交通灯程序设计(共25分)
1.1 程序功能
功能设计说明:可以在四种方案建议中任选一种或可自行设计一种方案,在此基础上完善其功能。
1、车道:
初级模式:可先考虑解决单车道问题
高级模式:再考虑解决多车道问题
2、场景:
初级模式:可先考虑无汽车移动场景
高级模式:再考虑有汽车移动场景。(也可考虑实景布局)
3、计时:
初级模式:可先考虑固定倒计时时间模式
中级模式:再考虑自由配置倒计时时间模式
高级模式:以及根据某条车道某时间段车流量统计智能调整倒计时时间模式(某条车道某时间段车流量,可考虑由随即函数产生)
1.2 程序界面(10分)
要求设计界面美观大方,控件布局合理、属性设置正确
1.3 程序代码(10分)
要求代码编写规范,逻辑清晰,代码描述准确,添加适当注释
1.4 程序设计体会(5分)
要求从:在该设计中遇到了哪些问题?如何解决的问题?通过该设计学
习到了什么?三个方面出发,写出自己在设计过程中的心得体会。
3
四、进度安排
五、成绩评定
指导教师 签名 日期 年 月 日
系主任 审核 日期 年 月 日
4
目 录
课题一:红绿灯程序设计……………………………………………………………06
1.1 程序功能说明………………………………………………………………06
1.2 程序界面说明………………………………………………………………06
1.3 程序代码说明………………………………………………………………06
1.4 程序设计体会………………………………………………………………08
课题二:记事本程序设计……………………………………………………………09
2.1 程序功能说明………………………………………………………………09
2.2 程序界面说明………………………………………………………………09
2.3 程序代码说明………………………………………………………………10
2.4 程序设计体会………………………………………………………………11
课题三:画图板程序设计……………………………………………………………12
3.1 程序功能说明………………………………………………………………12
3.2 程序界面说明………………………………………………………………12
3.3 程序代码说明………………………………………………………………13
3.4 程序设计体会………………………………………………………………16
5
课题一:红绿灯程序设计
1.1 程序功能说明
红绿灯程序是按照单行道交通规则设计而成,能清楚的反应红灯停绿灯行和靠右行的原则。程序启动后自动运行,不能最大化和最小化。
1.2 程序界面说明
程序由一个主窗体组成(如图1.1),程序启动后自动运行。不能最大化
1.3 程序代码说明
Private Sub Timer1_Timer()
Label1.Caption = Label1.Caption - 1 '数字每秒自动减1
If Label1.Caption = -1 And Label1.ForeColor = &HFF00& Then
Label1.ForeColor = &HFF&
Label1.Caption = 15 '数字被赋值为15
Image1.Visible = True 'Image1.3.5.7的Visble属性为True图片显示 Image2.Visible = False 'Image2.4.6.8的Visble属性为False图片不显示 Image3.Visible = True Image4.Visible = False Image5.Visible = True
6
Image6.Visible = False
Image7.Visible = True
Image8.Visible = False
End If
If Label1.Caption = -1 And Label1.ForeColor = &HFF& Then
Label1.ForeColor = &HFF00&
Label1.Caption = 15
Image1.Visible = False 'Image1.3.5.7的Visble属性为False图片不显示 Image2.Visible = True 'Image2.4.6.8的Visble属性为True图片显示 Image3.Visible = False
Image4.Visible = True
Image5.Visible = False
Image6.Visible = True
Image7.Visible = False
Image8.Visible = True
End If
If Label1.ForeColor = &HFF00& Then
Image9.Top = Image9.Top + 500 '左边汽车是否行驶
End If
If Label1.ForeColor = &HFF& Then
Image9.Top = 240 '左边汽车回到初始位置
End If
If Label1.ForeColor = &HFF& Then
Image10.Left = Image10.Left - 580 '右边的人行走
Image11.Left = Image11.Left + 580 '左边的人行走
End If
If Label1.ForeColor = &HFF00& Then
Image10.Left = 12120 '右边的人回到初始位置
Image11.Left = 2520 '左边的人回到初始位置
End If
If Label1.ForeColor = &HFF& Then
Image12.Visible = False '条件成立右边汽车隐藏
End If
If Label1.ForeColor = &HFF00& Then
Image12.Visible = True '条件成立右边汽车显示
End If
If Label1.ForeColor = &HFF00& Then
Image12.Top = Image12.Top - 500 '条件成立右边汽车行驶
End If
If Label1.ForeColor = &HFF& Then
Image12.Top = 8520 '条件成立右边汽车回到初始位置
End If
End Sub
7
Private Sub Timer2_Timer() '左边自动切换背景颜色和字体颜色的图片
Dim a As Integer
For a = 0 To 9
Text1(a).BackColor = QBColor(a + Rnd(16))
Text1(a).ForeColor = QBColor(a + Rnd(16))
Next a
End Sub
1.4 程序设计体会
在程序设计中,遇到了很多的问题,如何让红绿灯切换?如何让人行车停和车行人停?都是一个个的问题。然而当掌握了书上相关的知识点的时候,这个一个个的问题变迎刃而解。
红绿灯程序是实训中最简单的一个程序,但要是想要做得很好也不是很容易。这个程序也是我们实训中的第一个程序,这个程序让我明白,很多知识都是来源于书本。当我们对某个技能不明白的时候,可以从书本中获得答案。这也体现了当代大学生自主学习的习惯和能力。
8
课题二:记事本程序设计
2.1 程序功能说明
简单记事本程序是按Windows记事本编写而来,有新建、打开、保存、退出、复制、剪切和粘贴功能。
2.2 程序界面说明
程序由一个主窗体组成(如图2.1),里面包含菜单栏(如图2.2)和内容框(如图2.3),菜单栏由文件和编辑组成,文件下(如图2.4)有新建、打开、保
9
2.3 程序代码说明
Private Sub editcop_Click() '复制text1中鼠标选中的内容 Clipboard.SetText Text1.SelText
texttmp = Text1.SelText
End Sub
Private Sub editcut_Click() ;剪切Text1中选中的内容 Clipboard.Clear
Clipboard.SetText Text1.SelText
Text1.SelText = "" '新建文本框
End Sub
Private Sub editpaste_Click() '粘贴到鼠标光标的位置 Text1.SelText = Clipboard.GetText
End Sub
Private Sub filenew_Click()
Text1.Text = "" '新建文本框,也就是清空Text1中的内容 End Sub
Private Sub fileopen_Click() '打开文本文件
On Error GoTo abc
CommonDialog1.Filter = "文本文件(*.txt) | *.txt" CommonDialog1.CancelError = True
CommonDialog1.ShowOpen
Text1.Text = ""
Open CommonDialog1.FileName For Input As #1
Do While Not EOF(1)
Line Input #1, inputdata
Text1.Text = Text1.Text + inputdata + vbCrLf
Loop
Close #1
Exit Sub
abc:
If Err.Number = 32755 Then Exit Sub
End Sub
Private Sub filesave_Click() '保存文本文件
CommonDialog1.CancelError = True
CommonDialog1.Filter = "文本文件(*.txt)|*.txt"
CommonDialog1.ShowSave
Open CommonDialog1.FileName For Output As 1
Print #1, Text1.Text
Close #1
End Sub
Private Sub fileexit_Click() '退出程序
End
End Sub
10
Private Sub Form_Resize()'Text1的长和宽随Form1的长和宽增大而增大、减小而减小
Text1.Height = Form1.Height
Text1.Width = Form1.Width
End Sub
2.4 程序设计体会
记事本程序是实训中的第二个程序,有了前面红绿灯程序的经验,做起来比较得心应手,并且让我明白知识点都来源于书本,只要能将书本中的知识掌握就能运用自如。
在程序设计中,如何打开、保存文件?如何复制?为什么复制和剪切都一样了?如何粘贴到指定的位置?摆在了面前这么多的问题,不得不让人头疼,然而,这些问题都反应了一个问题,对课本知识不够熟悉,课本上的技能没有掌握牢固,于是我开始铺天盖地的查阅书本和资料,开始向老师和同学求助,这一个个的问题便慢慢的解决。我相信,有问题存在,就有解决问题的办法存在。这也体现了当代大学生如何寻求帮助,解决问题的能力。
11
课题三:画图板程序设计
3.1 程序功能说明
画图板程序是按照Windows画图板仿制而来,有画笔功能,能随意画线条、直线、空心圆、实心圆、空心矩形和实心矩形,并且能更改线条的粗细。而且能更改画图板背景颜色和图形颜色。
3.2 程序界面说明
画图板程序(如图3.1)由工具栏(如图3.2)、调色板(如图3.3)和画图框(如图3.4)组成。工具栏里有画笔(如图3.5)、直线(如图3.6)、空心矩形(如图3.7)、实心矩形(如图3.8)、空心圆(如图3.9)和实心圆(如图3.10)
12
3.3 程序代码说明
Option Explicit
Dim x0%, y0%, drawflag% Dim a As Integer Dim b As Integer Private Sub Form_Load()
picMain.Width = Form1.ScaleWidth - pictools.Width
'画图框始终与窗体大小一致 For a = 0 To 15
Label1(a).BackColor = QBColor(a) '自动生成前景色调色板的颜色
13
Next a
For b = 0 To 15
Label2(b).BackColor = QBColor(b) '自动生成背景色调色板的颜色 Next b
End Sub
Private Sub Command1_Click()
picMain.Cls '清除编辑框的内容
End Sub
Private Sub Form_Resize()
picMain.Width = Form1.ScaleWidth - pictools.Width
'PicMain的尺寸随Form1改变
End Sub
Private Sub Image1_Click(Index As Integer) '是否显示线条粗细按钮
drawflag = Index + 1
If (Index = 0) Then
picLineWidth.Visible = True '直线,显示选择线条粗细框
ElseIf (Index = 1) Then
picLineWidth.Visible = True '空心矩形,显示选择线条粗细框
ElseIf (Index = 3) Then
picLineWidth.Visible = True '画笔,显示选择线条粗细框
ElseIf (Index = 4) Then
picLineWidth.Visible = True '空心圆,显示选择线条粗细框
Else
picLineWidth.Visible = False '实现矩形和实心圆,不显示线条框 End If
End Sub
Private Sub Image2_Click(Index As Integer)
picMain.DrawWidth = Index + 1 '更改直线、空心矩形、画笔和空心圆的线条粗细 End Sub
Private Sub label1_Click(Index As Integer)
picMain.ForeColor = Label1(Index).BackColor
'将画图框的颜色改成背景调色板选中的颜色
Label3.BackColor = Label1(Index).BackColor
'将背景色显示框颜色改变成背景色调色板选中的颜色 End Sub
Private Sub Label2_Click(Index As Integer)
picMain.BackColor = Label2(Index).BackColor
'更改画图板内画图区域的前景色
Label4.BackColor = Label2(Index).BackColor
'将前景色显示框的颜色随前景调色板更改而更改 End Sub
Private Sub mnxImport_Click()
Dim picfile$
cd1.ShowOpen
14
picfile = cd1.FileName
picsrc.Picture = LoadPicture(picfile)
End Sub
Private Sub mnxLeftToRight_Click()
Dim dw%, i%
dw = picsrc.Width / picMain.ScaleWidth
For i = 1 To picMain.ScaleWidth
picMain.PaintPicture picsrc.Picture, 0, 0, i, picMain.ScaleHeight, picsrc.Width - i * dw, 0, i * dw, picsrc.Height, vbSrcCopy
DoEvents
Next i
End Sub
Private Sub mnxSave_Click()
cd1.ShowSave
SavePicture picMain.Image, cd1.FileName
End Sub
Private Sub picMain_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
x0 = X
y0 = Y
End If
End Sub
Private Sub picMain_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
picMain.AutoRedraw = False
picMain.Cls
Select Case drawflag
Case 1
picMain.Line (x0, y0)-(X, Y)
Case 2
picMain.Line (x0, y0)-(X, Y), , B
Case 3
picMain.Line (x0, y0)-(X, Y), , BF
Case 4
picMain.AutoRedraw = True
picMain.Line (x0, y0)-(X, Y)
x0 = X
y0 = Y
Case 5
picMain.FillStyle = 1
picMain.Circle (x0, y0), Sqr((X - x0) ^ 2 + (Y - y0) ^ 2) Case 6
15
picMain.FillStyle = 0
picMain.FillColor = picMain.ForeColor
picMain.Circle (x0, y0), Sqr((X - x0) ^ 2 + (Y - y0) ^ 2)
End Select
End If
End Sub
Private Sub picMain_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
picMain.AutoRedraw = True
Select Case drawflag
Case 1
picMain.Line (x0, y0)-(X, Y)
Case 2
picMain.Line (x0, y0)-(X, Y), , B
Case 3
picMain.Line (x0, y0)-(X, Y), , BF
Case 5
picMain.FillStyle = 1
picMain.Circle (x0, y0), Sqr((X - x0) ^ 2 + (Y - y0) ^ 2)
Case 6
picMain.FillStyle = 0
picMain.FillColor = picMain.ForeColor
picMain.Circle (x0, y0), Sqr((X - x0) ^ 2 + (Y - y0) ^ 2)
End Select
End If
End Sub
3.4 程序设计体会
画图板程序是实训必做三个程序中较难的一个,做这个程序要有严谨的思维。不光将课本上的知识记住,而且要能加以运用。这个程序让我体会到只有基础牢固了,才能更好的去最求和学习更高的技术。
在画图板程序中,如何用鼠标控制线条?如何让线条的粗细按钮需要时出现?如何设置调色板并且应用到前景色和背景色中?如何画空心和实心图案?
这些都是上课时老师讲过的知识,也是课本上的知识,只有将基础的知识掌握了,才能设计出更加完美的程序。
16
BetterlatethanneverGoodmorningdearprofessorsItsmyhonourtohaveaspeechhereWel…
ThemeBetterlatethanneverTopicasimplefactInChinathereisanoldstorycalledbette…
BetterlatethanneverThereisastorythatwasapersonhadraisedalotofsheepOnedayAwo…
Unit3passage1BetterLatethanNever1Hewaslyingthereinthegrasshidingandthinking…
1Betterlatethannever迟做总比不做好2Whateverisworthdoingatallisworthdoing…
XX局20xx年开展第九个“宪法法律宣传月”工作总结今年四月,是自治区第九个“宪法法律宣传月”,XX单位根据XX县依法治理领导小组…
今年以来,驾校各级领:导认真贯彻本校的经营战略坚持效益、质量、规模协调发展的方针与时俱进开拓创新在注重经济发展的同时加强内部管理和…
学校安全法制宣传活动总结为进一步贯彻落实上级有关安全的文件精神,按照区教育局《关于开展学校安全法制宣传活动的通知》的要求,进一步提…
20xx——20xx学年校本研修工作总结20xx——20xx学年我校以教育行政部门教师培训系列文件精神为纲要,以全面提高教师综合素…
“十年九旱”是我区的特点,也是我区抗旱的难点,特别是今年的旱情,为集宁区的抗旱工作增加了很大的难度。集宁区共一乡一镇,总耕地面积1…