《打冰雹》游戏vb课程设计报告

时间:2024.5.13

课程设计报告

     ---打冰雹游戏

一.功能

“打冰雹游戏”是指从窗口顶部落下多个圆球表示的“冰雹”,用户使用鼠标来指引箭头表示的“枪”瞄准其中一个圆球,单击鼠标射击。如果打中圆球加分,没打中减分。若累计有五个圆球一直未被击中而落到地面(用水平黑线表示)则失败。用户玩游戏的目标是在尽量短的时间内得尽量多的分数,同时避免圆球落地。

1.  程序启动时自动进入游戏状态,10个不同颜色的圆球从窗口顶部向下运动。用户使用鼠标指向其中一个圆球,然后单击。如果击中圆球则加1分,未击中则减1分,分数显示在“得分”文本框中。“所用时间”文本框中显示当前已用的时间。被击中的圆球立即消失,新的圆球从顶部下落。

2.  要求同时显示十个圆球,每个圆球的颜色和下落速度各不相同。窗口底部的箭头一直指向鼠标指针的方向。单击鼠标射击时,显示一条箭头发出到达鼠标指针的直线表示子弹轨迹。

3.  程序共有四个难度等级,分别是“简单”,“中等”,“较难”和“高级”。默认的难度为“中等”。不同的等级对应不同的总体下落速度。在游戏过程中,随时可以通过“选择难度”组合框来改变难度级别。

4.  游戏开始时,提供的能量数是5。如果有一个圆球落到地面则减1。当能量为0时,显示“失败”消息框。然后程序自动将难度改为简单让用户重新开始,这时能量恢复为5,得分从零开始。

圆球落地后立即消失,新的圆球从顶部落下,窗口上始终保持有10个圆球。

5.  游戏过程中,当得分达到不同的分数时分别显示不同的消息框,并自动改变级别。

二.设计

1. 控制鼠标下落以及鼠标单击事件。“冰雹”使用了10个shape控件组成的控件数组shp1,采用随机数生成不同的颜色不同的速度以及不同的下落位置,tmr1每发送一次Timer事件改变shp1的Top值使其下落。用窗体的MouseUp事件判断鼠标单击位置是否“冰雹” 所在位置,其中用了a,b两个变量保存“冰雹”的圆心,通过公式计算鼠标单击位置是否shape控件所在位置。如果击中“冰雹”则得分加一,并改变shp1的Top值,使其继续从顶端下落,并随机赋予不同的颜色和下落速度。

2. 显示所用时间。使用一个Timer控件和文本框显示所用时间,Timer的Interval值为一千,即每隔一秒发送一次Timer事件,定义整形变量int1,int2,int3保存秒,分和小时,用Format函数使其显示成时间的样式。

3.控制箭头随鼠标指针位置变化。通过MouseMove事件确定鼠标指针的位置。箭头随鼠标指针位置转动时,有一点位置始终不变,通过计算鼠标指针位置与过这一点的水平直线所成的角度计算出其他直线与水平直线所成的角度,并通过计算直线的长度最终确定另外五个直线交点的位置,然后改变line控件的X,Y属性值控制箭头随鼠标指针位置转动.指向鼠标指针的直线是在MouseUp事件中用line方法连接箭头与鼠标指针所在点,并用Cls方法和另一个Timer控件使得直线在一定时间内消失。

4.设置不同的难度等级。游戏共有四个难度等级,不同的等级对应tmr1的不同Interval值。

三.难点和调试

1. 我认为窗体底部箭头随鼠标指针位置变化而转动是难点之一,程序设计过程初我想了很多办法都不是很可行,后来在一个同学的提议下我试了通过计算角度确定点的位置,最后完成了程序。即使想出了方法要计算公式也是个比较复杂的过程,角度和坐标正负的取值问题也是比较繁琐。

2. 程序设计中遇到的另一个问题就是控件数组的表示。我使用的是For……Next……语句,变量i从0取到9,于是在计算得分的时候出现了问题。后来通过老师的解释以及自己的调试终于解决了问题。

四.课程设计总结

    最初开始这个程序的时候我觉得无从下手,完全想不出该怎样去做。后来仔细阅读了课程设计课本上的作业要求及难点提示并认真阅读课本上的相关知识,终于渐渐找到了各个问题解决的方法,并通过数次的调试完成了程序的设计过程。程序的设计过程中遇到了种种困难,甚至在处理“箭头转动”的时候我认为这个事件我肯定做不出,经过几天的思考和同学的帮助我终于完成了这个过程,同时也感到了莫大的成功的喜悦。通过程序的设计过程我感触颇深。我想也许没有什么事情是真正困难的,只要我们静下来认真思考,不放弃,我们总会成功。


第二篇:VB课程设计报告


课程设计题目   个人收支管理

难度:☆☆☆

姓名:刘泽禄

        学号:913103860633

随着社会生活步调的不断加快,人们越来越繁忙。也因此各项收入和支出名目繁多,如果不善于管理常会出现入不敷出,工资感觉没怎么用到月底就已经全光了。所以对自己在日常生活中的收入和支出进行记录和管理是十分必要的。这也正是设计这个程序的初衷,给人们的生活带来便利。

一题目介绍

个人收支管理是一款简单家庭理财软件,主要为用户提供每日的收支记录和查询服务,还能统计总收入和总支出。

功能要求

(1)       运行程序,首先进入的是登录窗口,因收支涉及个人隐私,因此该程序要求密码验证。如果密码输入连续三次错误,程序自动退出。程序的初始密码为空,即不必输入密码,直接单击“确定”按钮进入。

(2)       当用户输入正确密码后,则进入程序界面。

(3)       单击“参数设置”按钮,进入“参数设置”窗口。该窗口有三个选项卡。

1         “收入类别””和“支出类别”选项卡主要对日常收支进行分类,可对类别进行添加,修改,删除等处理,并将处理后的类别信息保存到文件夹中以供本程序的其他窗口使用。这两个选项卡的初始状态为:“添加”和“返回”按钮可用,另外两个按钮不可用,同时文本框亦不能进行文字输入。单击“添加”按钮后,文本框才能编辑,并清空原有的内容。在文本框中输入新类别后选择“确定”即可添加。单击列表框中的某一项时,其内容显示在文本框中,同时“删除”和“修改”按钮才可用。单击“修改”按钮后,在文本框中进行修改,“确定”后修改操作完成。单击“删除”按钮时,从列表框中删除所选类别。

2         通过“密码修改”选项卡可以修改密码。若“新密码”和“再输入一次”中的输入密码不一致,则会提示用户重新输入。

(4)       单击程序主界面上的“日常流水账”按钮,进入日常收支的原始资料输入窗口。该窗口主要由“收入记账”和“支出记账”两个选项卡组成。考虑到流水账的内容可能较多,因此进入该窗体时,窗口底部的列表中只显示已收入的本月的收支情况。“收入类别”和“支出类别”使用了组合框,其中显示了“参数设置”窗体所设置的收入和支出类别,用户只须从中选择即可。添加新的收支信息时,先在“日期”,“金额”,“收入类型”和“备注”中输入或选择适当内容,然后单击“保存”按钮即可,窗口底部列表框中显示已输入的信息。单击“取消”按钮则会清空文本框中的内容。添加完毕,单击“流水账”窗口右上角的“返回”按钮可返回主界面。

(5)       从主界面上选择“查询统计”,进入“查询统计”窗口。该窗口由三张选项卡组成,既可以单独统计收入或支出的情况,也可以查询某一段时间内总的收入和支出情况。“收入查询”和“支出查询”根据实际需要共设置两种查询方式:一种是查询某个时间段内的总收入和支出,另一种是查询某一时间段内某一收入和支出类别的收支情况。通过“请选择查询方式”中的两个单选框来选择这两种模式。“收入支出对比”选项卡显示某一时间段内总的收入和支出情况。

二,课程设计的详细说明

   本程序由一个标准模块和五个窗体模块frmland 、frmmain 、frmbill、 frmquery、 frmset构成。同时有三个文本文件分别用于保存收入类型(Inputtype.txt)、支出类型(Outputtype.txt)和收支账目(Balance.txt),一个文件(Balance.pas)保存加密后的密码。

Frmland为启动窗体,供用户输入密码并检验,如果正确就显示主窗体进入程序,如果三次输入均不正确就关闭程序。

Frmmain为主窗体,用于各个窗体的连接和退出程序,它有四个按钮单击后分别显示窗体frmbill、窗体 frmquery、窗体 frmset。

窗体frmbill供用户输入每日的收支帐目,即收支类型、收支时间、金额和备注。每次加载窗体frmbill时从Inputtype.txt读出收入类型,从Outputtype.txt读出支出类型给控件初始化,便于用户选择相应的类型输入日常流水账。为实现数据逐条读写采用do loop循环 EOF()文件函数和input语句。利用If语句判断data的int1取值,确定数据是收入还是支出,利用month()函数获得帐目时间time1的月份,只将本月的帐目显示在列表框里。

窗体 frmquery供用户进行查询,它提供三个选项卡,分别支持收入查询,支出查询和收支对比查询。用户还可以对查询方式进行选择:按时间或按类型 ,为提供这2个选择,运行时对框架控件的Visible 属性进行设置。

窗体 frmset 可以由用户自己添加收入支出类型和修改密码,设置后将写入文件保存。收入支出类型经修改后利用For循环遍历列表框中的条目,将每一条写进Inputtype.txt或Outputtype.txt。

密码的加密按如下变换(0—A,1—B,……9—J )。将密码的每一个数字加上65后按Ascaii码转换为相应的字母。用到Mid() ,Asc (),Len()函数和For循环。

    标准模块用来声明自定义数据类型 data ,它有5个元素

int1 As Integer (取2个值,1表示收入,0表示支出)

    time1 As Date (储存收支时间)

    moneytype As String(储存收支类型)

    money As String(储存金额)

    addition As String(储存备注)

标准模块中声明全局变量 password 和 password2 分别保存原始数字密码和经过加密后的密码。

三、截图

四、调试程序的过程

问题一:调试时找不到文件路径,在查阅了几本参考书后,见书中用了App.path函数来打开文件读入或读出。于是我按照书上的例子,在程序中用App.path函数找到了文件。

问题二:调试时数据从文件中读入时,出现“输入超出文件尾”。发现程序没有什么错误,在打开文本文件Balance.txt时发现光标与文本之隔着几行空白,当删除后,程序运行良好。说明光标的最后位置应紧邻上次输入的内容。

问题二:我一开始试图用write #1 ,newdata语句一次性写入自定义类型的所有元素,但是VB只支持随机读取文件使用它,对于文本文件,处理自定义数据类型并不方便。改写为write #1, newdata.int1 , newdata.time1, newdata.moneytype, newdata.money , newdata.addition后才实现写入功能。

问题三:当用户输入的数据类型与我设置的变量类型不统一时,会出现许多错误,为了方便用户,必须添加显式转换语句避免错误

五、课程设计总结

这次课程设计虽然课题只有三颗星,但由于基础薄弱还是费了不少功夫。我从中体会到了许多。比如一项任务开始前要有一个整体规划,将各个模块和它们的功能想清楚,然后才能具体动手,此外还要步步优化,慢慢调试才能最终完成程序设计,不能急功近利,也不能粗心大意。编写程序的过程让我意识到的图书馆的巨大作用,不是课堂所学都能有所用,也不是所用要用的都学习过,学会自学,学会使用图书馆是那么重要。还有要有知难而上的勇气和必胜的信念,遇到调试错误不能灰心失望,要找到原因,积极改正。

更多相关推荐:
VB课程设计报告 (32)

沈阳航空航天大学课程设计任务书学院机电工程专业机械设计制造及其自动化班级04060101学号20xx040601011题目选择教师系统一课程设计时间20xx年3月59日第1周共计1周20学时二课程设计内容有5位...

VB课程设计报告(实例样本)1

VB程序设计报告学院土木工程专业工程管理班级1102学号20xx02938姓名若笔奇诺一课程设计题目成绩计算模拟系统二课程设计工作自20xx年5月15日起至20xx年6月1日止三课程设计地点兰州交通大学四课程设...

VB课程设计实验报告

VB课程设计实验报告题目:超市销售管理系统任课教师:专业:姓名:学号:班级:一、目的:本次课程设计结合是实际应用的要求,使课程设计既覆盖VB的知识点,又接近工程实际需要。目的是通过课程设计的综合训练,培养我们学…

vb课程设计报告-仓库管理系统

VB程序设计实验报告姓名:班级:学号:专业:软件工程指导老师:20##年5月13日目录实验题目3实验要求3设计思路3实验流程图3源程序清单4运行界面6存在问题6解决思路6心得6教师评语6评分6内容摘要:仓库管理…

VB课程设计报告样例

南京理工大学能源与动力工程学院VB课程设计报告题目1贪吃蛇游戏题目2列车时刻查询指导老师张小兵学生姓名学号专业班级1008320120xx年3月20日VB程序设计课程设计报告VB程序设计课程设计任务书题目用VB...

VB课程设计报告

课程设计报告书课程设计名称VB程序设计报告书系部专业班级学生姓名XXX学号指导教师完成日期20xx年1月6日山东科技大学泰山科技学院12课程设计报告书一前言VisualBasic是可视化程序设计语言具有简单易学...

VB课程设计报告

VisualBasic课程设计报告报告人王菁一题目介绍及功能要求每个现代人都有众多的亲戚朋友业务伙伴的通讯信息包括姓名性别生日工作单位电话号码和邮政编码等需要维护平常所使用的纸质通讯录不便于管理大量的通讯录信息...

VB学生信息管理系统 课程设计报告

专业实践课程设计报告班级姓名学号08计科一班学生信息管理系统1需求分析随着学校的规模不断扩大学生人数急剧增加有关学生的各种信息也成倍增长面对庞大的信息量需要有学生管理系统来提供学生管理工作的效率通过这样的系统可...

VB课程设计报告

经济管理学院本科课程设计说明书面向对象课程设计学号姓名杨凯班级专业信息管理与信息系统系别管理系指导教师20xx年12月7日目录第1章课设概述211学生信息管理系统开发背景介绍212课程设计的目的和意义213本课...

VB课程设计报告

VB课程设计报告课程题目动物管理员游戏难度4星姓名束方婷学号912101500202一题目分析动物管理员是一款非常有趣的游戏有很多的变种本题目要求编制一个玩法相对简单但是编程却不简单的版本如图程序的界面分为三部...

vb课程设计报告

VisualBasic程序设计综合实验学院北方科技学院专业通信工程学生学号指导教师王晓斌二一三年十一月一实验目的1掌握常用控件的使用2了解数据库应用程序开发过程3掌握ADO数据控件的使用4掌握数据绑定控件的使用...

yiVB课程设计报告

华东交通大学VB课程设计报告VB课程设计论文任务书土木建筑学院土木工程专业4班一课程设计论文题目小人移动二课程设计论文工作自20xx年6月16日起至20xx年6月22日止三课程设计论文地点计算中心8605四课程...

vb课程设计报告(36篇)