2013级VC课程设计题目.doc_第1页
2013级VC课程设计题目.doc_第2页
2013级VC课程设计题目.doc_第3页
2013级VC课程设计题目.doc_第4页
2013级VC课程设计题目.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2013级计算机科学与技术专业面向对象程序设计课程设计题目1、吹泡泡游戏【问题描述】:当用户在窗口客户区中单击鼠标左键时,即可产生一个泡泡(图形)。既要求产生不同的颜色的大小随机的泡泡,又要能使这些泡泡升起或降落,最后消失。【基本要求】:1) 在屏幕上画一个矩形框,开始为空白。2) 当鼠标的左键单击矩形框内的任何位置时,在该位置产生1个随机大小的红色泡泡(实心园),并开始下降。3) 当鼠标的右键单击矩形框内的任何位置时,在该位置产生1个随机大小的蓝红泡泡(实心园),并开始上升。4) 上升或下降到矩形框边界时,泡泡自行消失5) 矩形框右边显示当前矩形框中红色/蓝色泡泡的正确数目6) 矩形框内应可以同时容纳多个泡泡(100个以上)7) 各泡泡在漂移过程中还会改变形状【实现提示】每个泡泡的大小用一个CRECT对象来存储,可以使用一个CRECT数组来存储一组红色泡泡的大小信息。再使用一个布尔数组来存储泡泡的状态信息。这两个数组是相对应的。当布尔值为FLASE时,表示该位置没有存储泡泡。反之亦然。产生一个新的泡泡时,依次搜索布尔数组,找出第一个FLASE的位置,存储新的泡泡。每隔一定的时间,更新泡泡的大小和位置,使泡泡运动增大。2、壁球游戏【问题描述】:屏幕上有一个球场,球场中央有一个球,以随机方向运动,遇到左、右、上方的墙壁可以反弹,如球落到地面则游戏结束。在屏幕下方有一球拍(侧面形状为一很扁的矩形),球遇到球拍后也可以反弹。球拍由左、右方向键控制,以防落到地面。【基本要求】:1) 球场、球拍和球显示比例合理、色彩美观大方;2) 球的运动方向随机,可以任意角度斜向运动,反弹方向合理(入射角等于反射角);3) 可以用左右方向键控制球拍左右移动;用“难度”菜单设置难度,速度越高,球拍越短,则难度越大;4) 按下菜单选项“开始”,球开始运动,球接触地面游戏结束5) 球每遇到墙壁或球拍反弹一次计10分,并显示当前得分【实现提示】1) 直接用角度m_nballDirection来表示小球随机运动在360度的范围的任意的角度2) 垂直向下的方向角度为0,逆时针旋转,可以计算出小球在水平和垂直两个方向运动的偏移量,并由三角函数的性质,直接和原来的位置坐标相加就可以得到新的位置坐标(无需考虑计算结果的符号)3) 小球运动到边界时,分两种情况来考虑A 当从上、下(球拍)两边界反弹时,新的角度为180m_nballDirection,从左、右两边界反弹时,新的角度为360m_nballDirection。(可以借助示意图来考虑)4)在垂直方向小球的底部坐标应该大于等于球拍的上边的坐标,同时小球的底部坐标又不应该大于等于球拍的上边坐标太多(超过一个时间单位的垂直位移量,小球已经到了球拍的下面)5) 在水平方向,小球的左边界坐标应小于球拍的右边界坐标,并且小球的右边界坐标应大于左边界坐标。3、俄罗斯方块(差1)【问题描述】:屏幕的中央有一个矩形容器,程序刚开始时是空的;当鼠标单击“开始”菜单时,矩形容器内从上向下随机出现俄罗斯方块部件。通过键盘上的左右键分别左右移动部件(一个单位),向上键顺时针旋转90度。当部件达到容器底部或已停止的部件上时,停止;当容器的同一行被部件填满时,该行消失。其他依次向下移动。 计分方法:一次消去一行100分,同时消去2行、3行和4行分别为300、500和900分。在适当位置上显示当前累计分。当部件总行数超过矩形容器高度时,提示“游戏失败”信息,并停止。 设有三个级别的游戏难度供选择。难度越大,下落越快。【基本要求】:1) 屏幕的中央有一个矩形容器,当鼠标单击“开始”菜单时,矩形容器内从上向下随机出现俄罗斯方块部件并在容器中从上往下落。2) 有七种标准俄罗斯方块部件,并随着键盘上的左右键分别左右移动,随着键盘上的向上键分别顺时针旋转90度3)当部件达到容器底部或已停止的部件上时,停止;当容器的同一行被部件填满时,该行消失,其他行向下移动,在适当位置上显示当前累计分4) 当部件总行数超过矩形容器高度时,提示“游戏失败”信息,并停止。【实现提示】:1) 所有的部件以及停止的部件均用小方块表示;2) 整个游戏区域对应一个二维数组,数组为0时,表示空白,为1时表示已有方格(如果表示一个方块使用一个22矩阵,实际存储为(1,1,1,1);依次类推其他矩阵;3)判断部件是否可以下落、旋转、左移或右移时,将表示部件的数组对应到游戏区域的二维数组中,再判断是否允许改操作;当部件数组中对应项填入游戏区域对应的二维数组中;4)判游戏结束的标志:A 判断二维数组某一行是否全为1;B 判断该数组的第一行有一项为1或者已没有空白使新的部件可以加入到游戏区域中,则游戏结束。4、障碍赛跑游戏(0)【问题描述】:障碍赛跑的场地为矩形格子组成的环形跑道,共有40格。参赛选手2人,分别用红蓝两色的圆形棋子代表。游戏开始时两枚棋子均放在起点处(跑道左上角),从红方棋子开始,轮流通过执骰子确定行走步数。图中设有小吃部(可以在执一次骰子)、陷井(退回起点)和栅栏(停走一次),均用不同的格子表示。当两名选手均跑到终点时比赛结束,显示比赛结果。【基本要求】:1)为该程序设计一个美观大方的图标;2)场地显示得体大方,色彩和谐。跑道公40格,有两个小吃部,两个陷井和两个栅栏,各用不同的格子;3)骰子各面上分别刻有16的数码,在跑道中央显示,只显示其中的一面。通过单击鼠标左键掷骰子,骰子点数由随机数确定,值的范围为16;4)棋子可以按骰子点数移动相应的格数;5)可以显示轮哪位选手走棋的信息;6)遇到小吃部可以再掷一次骰子;7)在遇到陷井则退回起点,轮另一位选手走棋;8)遇到栅栏则停走一次;9)棋局结束后可正确显示得胜的选手;【实现提示】:1)40 个格子的坐标放在一维数组中,通过循环的方式对40个格子进行近乎重复的重绘2) 40 个格子大小相等,位置不变,只是内容变化3)通过修改数组来预置陷井和栅栏的位置和数量5、交通灯程序(1)【问题描述】:在交通路口显示一个交通灯,分红色和绿色两种,红色表示停车,绿色表示通行。有两辆汽车在道路上行使,交通灯安设值得时间自动指挥交通,汽车安交通规则行使。【基本要求】:1)正确设置游戏菜单(开始,结束);2)两辆汽车以位图方式显示;3)交通等按设置得失建红绿交替显示,自动指挥交通。4)有两辆汽车在道路上行使,交通灯是红色表示要停车,绿色表示可以通行。5) 正确显示通过的车辆次数。【实现提示】: 如何判断当交通灯是红色的汽车要停,当是绿色是,汽车可以通过以及交通灯按设置的时间红绿交替显示有两种情况:1)是红色时,汽车停车要考虑两个因素:交通灯是红灯、汽车的位置需要进行综合判断才能符合实际情况2)交通灯按设计时间红绿交替显示的过程是通过设置两个定时器来处理的 6、简单记事本程序【问题描述】:中国人要自力更生,我们不用微软的记事本,我们要搞一个国产记事本,界面模仿微软的记事本,功能可要强于它。【基本要求】:1)能够打开,输入,保存文本格式的文件2)能够编辑文本,如改变文字的字体,大小,颜色,能够响应退格键,换行键等以实现销毁文字,换行等功能。3)光标能够随着鼠标的点击移动位置,随着文字的录入向后移动,睡着删除文字向前移动。4)最终达到类似微软系统自带的记事本功能【实现提示】“格式”中又有子菜单“字体”,“颜色”,然后在其相应的函数OnFont和OnColor中设置对对话框的调用,从而实现对字体和背景颜色的改变。8、 接球程序(0)【问题描述】:实现一个接球游戏设计蓝筐、产生篮球、篮筐的移动和接住篮球、自动积分(如过关就显示“恭喜你过关了”)、自动计时(显示过每关结束时所用的相应时间)【基本要求】:1) 玩家利用方向键控制篮筐的移动并当篮球落在它上面时接住它。2) 接住一个就自动的加50分3) 当玩家点击菜单栏“开始”时,篮球自动的产生并自动的掉下。4) 此游戏分为三关,随着关数的上升,球下降的速度也增加,随着球的个数增加当球的个数达到20并且限定时间内(100秒)输出“恭喜你过第一关”否则就输出“you failed to win the game5) 当玩家没有过关又想几结束游戏时可以点击菜单栏的“结束”来结束游戏。【实现提示】为了简单起见,我们用矩形代替篮,用圆圈代替球。在界面右侧有运行时间,接到的小球个数等信息,有小球下落,玩家可以控制一个盒子左右移动(方向键),来接小球,按 Esc 键退出,最后会显示接到的小球的数目。9、小闹钟【问题描述】:编辑一个时钟提醒工具,当运行该程序后, 显示当前系统时间,并且出现提醒时间设定, 输入要提醒的时间和提醒的事件,程序运行, 在到达设定时间时,程序会提醒!【基本要求】:1) 能够获得系统时间,自定义时间,设置闹钟时间,闹钟提示音2) 从“闹钟时”下拉框选择要闹铃的小时(0-23),从“闹钟分”下拉框选择要闹铃的分钟。当闹铃时间前1分钟会弹出一个提醒窗口,持续闹铃3分钟。3) 如果不想听了可以把提醒窗口关掉。如果不想设置而不小心又点了下拉框,可点击“不设置”。【实现提示】播放音乐,需要用到音频处理函数(简单的音频处理函数,仅能处理wav格式的,而不能处理mp3格式!) 事件提醒,可以弹出一个对话框,或者,在屏幕上打印提醒文字等等!10、五子棋(0)【问题描述】:编制一个程序,使用者可以通过这个程序下五子棋。在一台机上实现二人对走。【基本要求】:1、在文本或图形方式下绘制五子棋盘面,要求14*14网格。2、能够以不同的符号显示双方的棋子,双方能够通过键盘方向键在棋盘上交替落子。3、能够判断双方输赢。4、能够对双方或某方设定时间限制。5、能够支持悔棋(在另一方同意的前提下)。6、能够统计双方的输赢次数,各自总的用时和悔棋次数。7、能够将双方所走棋路存成文件,保存时应提示用户输入文件名。并可调出复盘。8、能够实现计算机与人的对弈。【实现提示】一次绿棋,一次红棋。不能连续两次下相同的棋。若两次下相同的棋则提醒用户。规定在30秒内必须要下,否则用提示框提醒用户。在客户区中产生14*14棋盘,每个空格处刚好可以容纳一个五子棋,鼠标单击的位置若位于棋盘以外不能产生五子棋。当按下回车键,屏幕上的五子棋全部消失!并弹出一个提示框:本盘结束,下盘开始!当出现了196子的时候,提醒用户不能再下了。11、四则运算演示软件【问题描述】:一个能处理四则运算的程序【基本要求】:主要用于计算四则运算表达式的值,同时可以实现四种进制任意两种之间的转换。 主要功能:1.四则运算:能够解释并执行四则运算表达式。四则运算就是包含+、*、/、.(小数点)和数字的运算表达式,例如:3+2.9*(5-6/3) -4+(+8*6)等【实现提示】12、大屏幕显示数字时钟【问题描述】:模拟LED风格显示的数字钟源代码【基本要求】:【实现提示】VC 纯代码实现LED数字时钟,不依赖任何位图资源,可以设置背景和前景色,13、设计一个模拟时钟转动的程序(0)【问题描述】:编写一个模拟时钟程序,此程序在屏幕左边有一个指针式钟面,右方有两个矩形框,上面以数字方式显示日期和时间,该时间应与指针显示的时间一致,下方的矩形框作为秒表。用菜单选项或按钮设置时间和秒表。时间不必与机器系统时间相同,可任意设置。【基本要求】:1、 要求电子表取电脑系统时间,无须人工进行调制。2、 时钟程序就是根据我们平时所接触到的一般的手表、家庭挂钟的特点所制做的。它包括表盘、指针(分针、时针、秒针)、以及与时钟同步的一个电子表。3、 时针、分针和秒针形象美观,即使各指针重合也可辨认。4、 各指针运动规律正确。为便于演示,时钟速度应比实际时间快20倍,即1小时相当于3分钟。5、 数字式时钟的时间显示与指针式时钟显示一致。6、 按下设置时间按钮或菜单项可弹出一对话框,用于设置当前的时间和日期。7、 按下秒表控制按钮后,秒表显示窗中显示从0开始的时间,单位为百分之一秒。再次按下秒表控制按钮后计时停止,该窗口显示累计时间。【实现提示】本题主要涉及到的知识点有:时钟指针运动算法、屏幕重绘方法、定时器消息、鼠标消息、菜单命令、对话框、画笔/画刷、显示文字等。指针运动算法和屏幕重绘方法是本程序主要难点所在。不论何种指针,每次转动均以/30弧度(一秒的角度)为基本单位,且都以表盘中心为转动圆心。计算指针端点(x, y)的公式如下:x =圆心x坐标 + 指针长度 * cos (指针方向角)y =圆心y坐标 + 指针长度 * sin (指针方向角)注意,指针长度是指自圆心至指针一个端点的长度(是整个指针的一部分),由于指针可能跨越圆心,因此一个指针需要计算两个端点。三个指针的运动是相关联的,秒针转一圈引起分针运动一格,分针转一圈引起时针运动一格,因此应该使用一个定时器消息来处理指针的运动。若用三个定时器消息分别处理时针、分针和秒针的运动,就会使问题复杂化且不易实现三个指针联动的正确规律。采用一个定时器消息可以很容易实现指针联动算法。由于屏幕的重绘速度很快(50 ms一次),如果采用全屏删除式重绘则闪烁十分明显,显示效果不佳。本程序采用非删除式重绘,假定指针将要移动一格,则先采用背景色(这里是白色)重绘原来指针以删除原来位置的指针,再采用指针的颜色在当前位置绘制指针;如果指针没有动,则直接绘制指针。另外,秒表需要采用单独的定时器消息控制。14、打字测验程序(【问题描述】: 屏幕上有三个矩形框,左面

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论