《软件设计基础VB》课程设计报告书.docx
《《软件设计基础VB》课程设计报告书.docx》由会员分享,可在线阅读,更多相关《《软件设计基础VB》课程设计报告书.docx(12页珍藏版)》请在冰豆网上搜索。
《软件设计基础VB》课程设计报告书
河北联合大学
2011-2012第2学期
《软件设计基础-VB》
课程设计报告
设计名称:
设计显示弹球的程序
姓名:
学号:
专业班级:
学院:
设计时间:
设计地点:
成绩:
指导教师评语:
指导教师签字:
年月日
目录
1.课程设计目的
2.课程设计任务与要求
3.课程设计说明书
4.课程设计成果
5.程序调试过程
6.设计问题的不足和改进方案
7.课程设计心得
8.附录
9.参考文献
1.课程设计目的
《软件设计基础-VB》课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖VB的知识点,又接近工程实际需要。
目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握VB这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。
2.课程设计任务与要求:
要求:
本次课程设计利用《软件设计基础-VB》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。
要求:
1、对系统进行功能需求分析
2、设计合理的数据结构和系统框架
3、界面设计美观、清楚、合理
4、编程简练,程序功能齐全,能正确运行
5、具有一定的创新性
6、说明书、流程图要清楚
7、课题完成后必须按要求提交课程设计报告
任务:
.基本要求:
(1)要求使用面向对象和结构化程序设计的编程思路。
(2)动画效果显示利用定时器完成。
(3)弹球的反弹角度为45度。
.创新要求:
在基本要求达到后,进行创新设计,如不同角度,添加障碍物等等设计。
3.课程设计说明书
功能描述
小球在一个矩形的区域内运动,每当碰到矩形的边,就改变运动的轨迹。
⑵概要设计
点击开始调整位置
点击暂停
点击继续
点击重新开始
退出
⑶详细设计
总体流程图:
各功能模块流程图:
⑷代码实现
form1—首页
作用:
程序界面
所用控件:
4个标签,1个时钟,3个图形。
设计思路:
用时钟控制shape1的运动。
单击label1,6,5,7或者相应按键实现相应功能,无label2,label3,label4。
代码如下:
PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
SelectCaseKeyCode'调整位置
Case37
IfShape1.Left<=0Then'控制不超出边框
Shape1.Left=0
MsgBox("不能超出左边界")
EndIf
Me.Shape1.Left=Me.Shape1.Left-200
Case38
IfShape1.Top<=0Then'控制不超出边框
Shape1.Top=0
MsgBox("不能超出上边界")
EndIf
Me.Shape1.Top=Me.Shape1.Top-200
Case39
IfShape1.Left>=7050Then
Shape1.Left=7050
MsgBox("不能超出右边界")
EndIf
Me.Shape1.Left=Me.Shape1.Left+200
Case40
IfShape1.Top>=6550Then
Shape1.Top=6550
MsgBox("不能超出下边界")
EndIf
Me.Shape1.Top=Me.Shape1.Top+200
Case66
Shape1.Left=3000
Shape1.Top=6720
Timer1.Enabled=False
Case67
Timer1.Enabled=True
Case83
Timer1.Enabled=False
EndSelect
EndSub
PrivateSubLabel1_Click()
Timer1.Enabled=True
Label5.Enabled=True
EndSub
PrivateSubLabel5_Click()
Timer1.Enabled=False
Label6.Enabled=Label5.Enabled
EndSub
PrivateSubLabel6_Click()
Timer1.Enabled=True
EndSub
PrivateSubLabel7_Click()
Shape1.Left=3000
Shape1.Top=6720
Timer1.Enabled=False
Label5.Enabled=False
Label6.Enabled=False
EndSub
PrivateSubmenube_Click()
Timer1.Enabled=True
Label5.Enabled=True
EndSub
PrivateSubmenubq_Click()
MsgBox"本程序由联大201114570211制作,谢谢使用!
",64,"版权问题"
EndSub
PrivateSubmenugy_Click()
MsgBox"当小球运动到两档板之间时停止运动",64,"关于"
EndSub
PrivateSubmenuquit_Click()
UnloadMe
EndSub
PrivateStaticSubTimer1_Timer()
Timer1.Interval=10
Dimn%,m%,i%
IfShape1.Left<0Then
n=0
EndIf
IfShape1.Left+Shape1.Width>7965Then'使球碰壁反弹的条件
n=1
EndIf
SelectCase(n)
Case0
Shape1.Left=Shape1.Left+100
Case1
Shape1.Left=Shape1.Left-100
EndSelect
IfShape1.Top<0Then
m=0
EndIf
IfShape1.Top+Shape1.Height>=7300Then'使球碰壁反弹的条件
m=1
EndIf
SelectCase(m)
Case0
Shape1.Top=Shape1.Top+100
Case1
Shape1.Top=Shape1.Top-100
EndSelect
IfShape1.Top=1300AndShape1.Left<=2500Then
m=0
EndIf
IfShape1.Top=3730AndShape1.Left<=5000Then
m=0
EndIf
IfShape1.Top<=0AndShape1.Left>=2700AndShape1.Left<=3900Then
Timer1.Enabled=False
MsgBox("pleaserestart")
EndIf
EndSub
4.课程设计成果
点击开始,或按F2开始
点击暂停或按S暂停
运行到挡板中间停止
调整位置时不能超出边界
5.程序调试过程
一、按F2小球使运动
问题1:
小球运动到边界时不反弹。
解决:
使用static静态函数
二、按键调整位置
问题1:
小球超出边界
解决:
当小球到达边界时小球的位置属性维持不变比如到达左边界时
IfShape1.Left<=0Then'控制不超出边框
Shape1.Left=0
MsgBox("不能超出左边界")
三、点击或按S键暂停
四、点击或按C键继续
问题1:
按继续键实现开始功能
解决:
暂停前继续键不可用
五、点击或按B键重新开始
小球回到初始位
6.设计问题的不足和改进方案
问题1:
小球运动到边界时不反弹。
解决:
使用static静态函数
问题1:
小球超出边界
解决:
当小球到达边界时小球的位置属性维持不变比如到达左边界时
IfShape1.Left<=0Then'控制不超出边框
Shape1.Left=0
MsgBox("不能超出左边界")
问题1:
按继续键实现开始功能
解决:
暂停前继续键不可用
存在的问题:
小球的发射角度不能随机
计划解决方案:
定义一个角度变量a和高度变量y,每次运行时随机出一个范围在[30°,75°]或[105°,150°]的角a,确定小球相对于“容器”(left属性),利用三角函数(y=tan(a)*shape1.left),计算出y值。
由此随机出每次运行时小球的发射角度。
7.课程设计心得
⑴对编写程序有了深入了解,对所学知识进行了综合利用;
⑵掌握了图形控件和图形方法及其应用;
⑶熟练掌握了vb中的基本结构,并可以应用;
⑷掌握了键盘事件的操作,应用。
8.附录
无
9.参考文献
1、陈明锐.VisualBasic程序设计及应用教程.北京:
高等教育出版社,2008.12
2、张春英.VisualBasic程序设计实例教程.北京邮电大学出版社,2010.
3、刘凤春.VisualBasic程序设计实训及课程设计.北京邮电大学出版社,2010.1
4、龚沛增,VisualBasic程序设计教程,清华大学出版社
5、柴相花等,VisualBasic实力精通机械工业出版社