当前位置:首页 > vb课程设计指导书
第4题 打冰雹游戏
【涉及知识点】
1. 控件数组;2. Timer定时器控件;3. 颜色;4. 随机值的生成。
【题目介绍】
如图4.1所示,“打冰雹”游戏是指从窗口顶部落下多个圆球表示的“冰雹”,用户使用鼠标来指引箭头表示的“枪”瞄准其中一个圆球,单击鼠标射击。如果打中圆球则加分,没打中减分。若累积有5个圆球一直未被击中而落到地面(用水平黑线表示),则失败。用户玩游戏的目标是在尽量短的时间内得尽量多的分数,同时避免圆球落地。
图4.1 主窗口
【功能要求】
1.设计图4.1所示的窗口界面。程序启动时,自动进入游戏状态,10个不同颜色的圆球从窗口顶部向下运动。用户使用鼠标指向其中一个圆球,然后单击。如果击中圆球则加1分,未击中则减1分,分数显示在“得分”文本框中。“所用时间”文本框中显示当前已用的时间。被击中的圆球立即消失,新的圆球从顶部落下。
2.要求同时显示10个圆球,每个圆球的颜色和下落速度各不相同。窗口底部的箭头一直指向鼠标指针的方向。单击鼠标射击时,显示一条从箭头发出到达鼠标指针的直线表示子弹轨迹。
3.程序共有4个难度等级,分别是“简单”、“中等”、“较难”和“高级”。默认的难度为“中等”。不同的等级对应不同的总体下落速度。在游戏过程中,随时可以通过“选择难度”组合框来改变难度级别。
12
4.游戏开始时,提供的“能量”数是5。如果有一个圆球落到地面,则减1。当能量为O时,显示如图4.2所示的消息框。然后,程序自动将难度改为“简单”让用户重新开始,这时能量恢复为5,得分从O开始。
图4.2 “失败”提示图4.3 “鼓励”提示
圆球落地后立即消失,新的圆球从顶部落下,窗口上始终保持有10个圆球。
5.游戏过程中,当得分达到25时,显示如图4.3所示的提示;当得分达到50时,显示如图4.4所示的提示;当得分达到100时,显示如图4.5所示的提示,并自动将难度设为“较难”;当得分达到150时,自动将难度设为“高级”。
图4.4 “加油”提示图4.5 “祝贺”提示
【难点与提示】
1.使用Shape类型的控件数组来表示“冰雹”;使用随机数函数使之具有不同的颜色和速度。因为每个“冰雹”下落速度不同,故应定义数组保存每个“冰雹”的速度。
2.程序应该用到多个定时器控件,分别使圆球下落和显示游戏时间。不同的难度等级对应定时器控件不同的Interval属性值。
3.代表“枪”的箭头可以使用六条直线控件实现。程序运行过程中,通过MouseMove事件得到鼠标指针的当前位置并不断地调整每条直线的位置使箭头总是指向鼠标指针。
【更上一层楼】
为了增加本游戏的趣味性,试着为程序加上紧张的背景音乐和响亮的射击声,当到达不同的阶段时用不同的声音进行提示来取代消息框提示。
13
第5题计算器
【涉及知识点】
1.控件数组;2. 字符串处理;3. 多模块程序设计;4. 数学函数的使用。
【题目介绍】
本题目要求编制一个“计算器”程序,实现加、减、乘、除等简单运算和常用数学函数的功能,并要求可以进行数制转换等操作。
【功能要求】
1.“计算器”界面如图6.1所示。包含的功能有:加、减、乘、除运算,正弦、余弦、正切、余切、反正弦、反余弦、反正切、反余切、自然对数、以10为底的对数和阶乘等函数功能。
图6.1 “计算器”界面
2.要求计算器上数字,0~9为一个控件数组,加、减、乘、除为一个控件数组,存储清0(O→M)、存储显示(RM)、存储相加(M+)为一个控件数组,所有的函数功能按钮(如Sin、Cos、Ln及n!等)为一控件数组。
3.输入的原始数据、运算中间数据和结果数据都显示在窗口顶部的同一个文本框中。
4.能用系统内部函数的计算功能尽量用系统函数(如Sin、Cos等函数);没有相应系统函数的计算功能要定义单独的函数。如计算阶乘可以编制一个独立的自定义函数Factor。
Private Function Factor(n As Integer)AS Long ‘求阶乘的自定义函数
5. 对于三角函数,其输入的角度单位为度;对于反三角函数,输出的结果单位也是度,要求当输入的单位或数值不符合题意时,程序能及时地用消息框提示。如:反正弦函数,原始数据范围为[-1,1],若用户输入的数值为2时,程序能告诉用户“数据超出反正弦的数值范围,请重新输入”(如图6.2所示),并自动将文本框中的数据清掉。
14
图6.2 输入数据超出范围时以消息框提示
程序应自动判断输入数据的正确性,保证不出现多于一个小数点、以“0”开头等不正常现象。 6. 计算器有一个存储器,可以存储一个值。当存储器中的数值不是0时会在计算器的显示屏左上角显示一个“M”,否则“M”消失。
“O→M”按钮可以将存储器中的数值清0。“M+”按钮将当前显示的值加到存储器中(即与存储器中原有的值相加后再存入存储器中)。“RM”按钮可以调出存储器中的数值显示到计算器的显示屏上,并可参与当前进行的计算。
7. 每按一次“→”按钮可以删除当前显示数据的最后一位,当全部删除后显示“0”;“C”按钮可以清除所有已输入的数据从头计算;“CE”按钮只清除当前输入的数据,重新输入数据可以继续当前计算。
8. 要求计算器可以“连算”,即前一次计算的结果自动当作下一次计算的第一个数。不要求考虑优先级问题,即不要求先乘除后加减。比如依次输入“3+3×3”是先算出6然后乘3得18。
9. 单击计算器右下角的“
”按钮弹出图6.3所示的“进制转换器”窗口。要求该窗口能在二进
制、八进制、十进制和十六进制任意两种之间进行整型数值的转换。要求为每种转换定义专门的函数来实现。
图6.3 进制转换窗口
如果用户输入了对于当前数制不合法的符号(如在八进制时输入了“9”),显示如图6.4所示的消息框以警告。
图6.4 提示信息
10. 单击进制转换窗口右上角的关闭按钮可以返回“计算器”窗口。单击计算器右上角的OFF按钮,关闭程序。
15
共分享92篇相关文档