基于C语言实现的流星雨模拟课程设计
一、课程设计内容及要求
程序模拟一组流星飞向地面的情景。地面用多行#来表示,流星用大写字母不表示。程序产生一组流星(比如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语言实现的流星雨模拟课程设计相关推荐
- [源码和文档分享]基于C语言实现的流星雨模拟课程设计
一.课程设计内容及要求 程序模拟一组流星飞向地面的情景.地面用多行#来表示,流星用大写字母不表示.程序产生一组流星(比如10个),从屏幕顶部下降飞向地面.一组流星中,每个流星的字符颜色是随机的,下降的 ...
- c语言经典案例 俄罗斯方块,C语言实现俄罗斯方块经典游戏课程设计
C语言实现俄罗斯方块经典游戏课程设计 计算机实习报告 一.功能说明 1.1总体功能说明 本工程用C++语言实现了俄罗斯方块经典游戏. 俄罗斯方块游戏特点:俄罗斯方块的基本规则是通过键盘控制移动.旋转和 ...
- matlab中eacf函数,基于MATLAB的切比雪夫I型模拟低通滤波器设计
基于MATLAB的切比雪夫I型模拟低通滤波器设计课程设计名称:数字信号处理课程设计专业班级 : 电信0604 学生姓 名 : 学号 : 20064300430 指导教师 : 课程设计时间:2009.6 ...
- 《基于Cortex-M4的ucOS-III的应用》课程设计 结题报告
<基于Cortex-M4的ucOS-III的应用>课程设计 结题报告 小组成员姓名:20155211 解雪莹 20155217 杨笛 20155227 辜彦霖 指导教师:娄嘉鹏 一.设计方 ...
- 基于matlab的回波,基于matlab回波的产生与消除课程设计
<基于matlab回波的产生与消除课程设计>由会员分享,可在线阅读,更多相关<基于matlab回波的产生与消除课程设计(11页珍藏版)>请在人人文库网上搜索. 1.信号与系统课 ...
- 基于YOLO的密集人脸检测(课程设计)
基于YOLO的密集人脸检测(课程设计) 数据集+代码下载地址:下载地址 实现的功能 添加关键点检测分支,使用wing loss Installation Clone and install 使用src ...
- c语言上机指导答案清华,第一章自测练习答案清华大学c语言习题实验指导及课程设计...
第一章自测练习答案清华大学c语言习题实验指导及课程设计 第一章 自测练习参考答案 一.简答题 1.源程序是程序员创建的,目标程序是编译器创建的,可执行程序是连接器创建的. 2.步骤如下:1)说明程序需 ...
- c语言学生成员管理代码报告怎么写,C语言学生通信录管理系统课程设计报告
<C语言学生通信录管理系统课程设计报告>由会员分享,可在线阅读,更多相关<C语言学生通信录管理系统课程设计报告(18页珍藏版)>请在人人文库网上搜索. 1.实验名称 :学生通信 ...
- 速算C语言程序设计,C语言速算24数据结构课程设计最终版(备份存档)
<C语言速算24数据结构课程设计.doc>由会员分享,可免费在线阅读全文,更多与<C语言速算24数据结构课程设计(最终版)>相关文档资源请在帮帮文库(www.woc88.com ...
最新文章
- 调查显示:企业将部署SDN提上议程
- 64位环境编译DiskSim 4.0
- python精通书籍-清华学霸整理,Python入门到精通这几本书帮你快速入行
- sql backup database备份d盘_Oracle RMAN备份与恢复
- Win10:tensorflow-gpu安装总结
- Mysql的date_format与date_sub
- 开平区教育局资源分布式存储解决方案
- 如何借助配置中心ACM加速企业IT服务快速迭代
- Shiro(二)——Shiro认证入门案例
- matlab实习维纳滤波,自编Matlab程序,维纳滤波器的Matlab实现
- 老电脑适合用linux,老旧电脑适于装什么操作系统
- java pdf转jpg_java pdf转换jpg
- Python绘制箱形图全解
- git报 “The stash entry is kept in case you need it again“ 错误解析
- 倒角距离(Chamfer distance)
- 【车牌识别】模板匹配新能源车牌识别【含Matlab源码 865期】
- 《夏风》刊发的几组诗词
- 单缓冲、双缓冲、循环缓冲
- 计算机网络第三章习题
- 铁电存储器FRAM的特性