一、课程设计内容及要求

程序模拟一组流星飞向地面的情景。地面用多行#来表示,流星用大写字母不表示。程序产生一组流星(比如10个),从屏幕顶部下降飞向地面。一组流星中,每个流星的字符颜色是随机的,下降的位置是随机的,下降的速度也是随机的。一个流星下落只能去掉一个#号,当最后一行地面有#被去掉时,程序终止。

二、设计思路

  • 程序在下降过程中,程序必须知道流星的字符、颜色、位置、速度,因此程序需要定义以下几个数组变量:存放流星字符的数组,存放流星字符颜色的数组,存放流星行位置的数组,存放流星列位置的数组,存放流星下降速度的数组

  • 可定义二维数组screen表示地面和天空,此数组是一个24行81列的字符数组。上面的行表示天空,数组单元的值是空格;最下面的几行(如5行)表示地面,数组单元的值是’#’;整个屏幕的大小是80*25,即25行80列, 为了在输出最后一行时不换行滚屏,程序只能利用上面的24行空间。把数组定义成81列的目的是,每行的最后字符赋值成’\0’,就可以按照字符串的方式输出每行文本了

  • 程序首先输出地面和天空,即输出定义的二维数组screen中的字符串,前19行是空行,后5行是#号。这样screen[24][81]的字符矩阵就与整个屏幕对应起来

  • 然后随时机产生一组流星数据,包括字符、颜色、位置和速度。速度用一次下降多少行来表示,最大的速度是4。由于要随机产生这些数据,因此需要调用random函数。random函数的原型是 int random(int num); 这个函数产生一个0—num-1之间的一个随机数。 流星字符可以这样产生:random(26)+’A’; 流星字符的颜色可以这样产生:random(16)+1;流星下降的位置可以这样产生:random(4)+1;流星的行位置一开始都是1; 流星的列位置可以这样产生:random(80)+1;但要保证所有流星的列位置不能相同(设计一个算法来判断)

  • 调用random之前,用randomize()库函数进行初始化。 两个库函数都在stdlib.h文件中

  • 每个流星按照自己的速度下落,所谓的下落就是逐行移动流星字符:在下一行新的位置上显示流星字符,在原来的位置上显示空格以便擦除流星字符,然后再延迟等待几十毫秒。这样循环往复就构成了流星下落的动画。 但要注意,流星的速度各不相同,而一次下落多行的流星也要逐行下落

  • 如果流星的新位置所对应的screen的单元格的值是’#’,则表示撞到了地面。 这种情况下在流星的新位置上输出空格,擦除#号,并且对screen相应的单元赋值为空格,流星字符也要赋值为空格,以表示流星消失

  • 当screen[23]中任何一个单元格是空格时,程序终止

点击此处下载文档和源码

基于C语言实现的流星雨模拟课程设计相关推荐

  1. [源码和文档分享]基于C语言实现的流星雨模拟课程设计

    一.课程设计内容及要求 程序模拟一组流星飞向地面的情景.地面用多行#来表示,流星用大写字母不表示.程序产生一组流星(比如10个),从屏幕顶部下降飞向地面.一组流星中,每个流星的字符颜色是随机的,下降的 ...

  2. c语言经典案例 俄罗斯方块,C语言实现俄罗斯方块经典游戏课程设计

    C语言实现俄罗斯方块经典游戏课程设计 计算机实习报告 一.功能说明 1.1总体功能说明 本工程用C++语言实现了俄罗斯方块经典游戏. 俄罗斯方块游戏特点:俄罗斯方块的基本规则是通过键盘控制移动.旋转和 ...

  3. matlab中eacf函数,基于MATLAB的切比雪夫I型模拟低通滤波器设计

    基于MATLAB的切比雪夫I型模拟低通滤波器设计课程设计名称:数字信号处理课程设计专业班级 : 电信0604 学生姓 名 : 学号 : 20064300430 指导教师 : 课程设计时间:2009.6 ...

  4. 《基于Cortex-M4的ucOS-III的应用》课程设计 结题报告

    <基于Cortex-M4的ucOS-III的应用>课程设计 结题报告 小组成员姓名:20155211 解雪莹 20155217 杨笛 20155227 辜彦霖 指导教师:娄嘉鹏 一.设计方 ...

  5. 基于matlab的回波,基于matlab回波的产生与消除课程设计

    <基于matlab回波的产生与消除课程设计>由会员分享,可在线阅读,更多相关<基于matlab回波的产生与消除课程设计(11页珍藏版)>请在人人文库网上搜索. 1.信号与系统课 ...

  6. 基于YOLO的密集人脸检测(课程设计)

    基于YOLO的密集人脸检测(课程设计) 数据集+代码下载地址:下载地址 实现的功能 添加关键点检测分支,使用wing loss Installation Clone and install 使用src ...

  7. c语言上机指导答案清华,第一章自测练习答案清华大学c语言习题实验指导及课程设计...

    第一章自测练习答案清华大学c语言习题实验指导及课程设计 第一章 自测练习参考答案 一.简答题 1.源程序是程序员创建的,目标程序是编译器创建的,可执行程序是连接器创建的. 2.步骤如下:1)说明程序需 ...

  8. c语言学生成员管理代码报告怎么写,C语言学生通信录管理系统课程设计报告

    <C语言学生通信录管理系统课程设计报告>由会员分享,可在线阅读,更多相关<C语言学生通信录管理系统课程设计报告(18页珍藏版)>请在人人文库网上搜索. 1.实验名称 :学生通信 ...

  9. 速算C语言程序设计,C语言速算24数据结构课程设计最终版(备份存档)

    <C语言速算24数据结构课程设计.doc>由会员分享,可免费在线阅读全文,更多与<C语言速算24数据结构课程设计(最终版)>相关文档资源请在帮帮文库(www.woc88.com ...

最新文章

  1. 调查显示:企业将部署SDN提上议程
  2. 64位环境编译DiskSim 4.0
  3. python精通书籍-清华学霸整理,Python入门到精通这几本书帮你快速入行
  4. sql backup database备份d盘_Oracle RMAN备份与恢复
  5. Win10:tensorflow-gpu安装总结
  6. Mysql的date_format与date_sub
  7. 开平区教育局资源分布式存储解决方案
  8. 如何借助配置中心ACM加速企业IT服务快速迭代
  9. Shiro(二)——Shiro认证入门案例
  10. matlab实习维纳滤波,自编Matlab程序,维纳滤波器的Matlab实现
  11. 老电脑适合用linux,老旧电脑适于装什么操作系统
  12. java pdf转jpg_java pdf转换jpg
  13. Python绘制箱形图全解
  14. git报 “The stash entry is kept in case you need it again“ 错误解析
  15. 倒角距离(Chamfer distance)
  16. 【车牌识别】模板匹配新能源车牌识别【含Matlab源码 865期】
  17. 《夏风》刊发的几组诗词
  18. 单缓冲、双缓冲、循环缓冲
  19. 计算机网络第三章习题
  20. 铁电存储器FRAM的特性

热门文章

  1. 腾讯QQ至尊宝功能停止申请 已试运营三年
  2. 各种计算机语言简短简介
  3. 三大类计算机语言的相关知识,计算机语言有哪些
  4. 强化学习1-思想及分类
  5. 思想学习——细节决定成败
  6. php项目分布式架构设计,【转】互联网项目架构之基于服务的分布式架构
  7. SSM ==> 超市管理系统(mysql)
  8. 物理服务器和云服务器各有什么优势?
  9. HiPER 840负责均衡问题
  10. 怎么看计算机电源型号,鲁大师怎么看电源 鲁大师电源参数查看方法