欢迎来到天天文库
浏览记录
ID:57820280
大小:122.50 KB
页数:16页
时间:2020-03-30
《c语言 流星雨的实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、题目:流星雨的实现学院:班级:姓名:学号:指导教师:时间:16目录一课程设计目的2二设计内容与要求3三概要设计3四详细设计4五运行界面5六设计总结15七教师评语1616一课程设计目的程序模拟一组流星飞向地面的情境,地面用多行#来表示,流星用大写字母表示。二设计内容与要求1内容:程序产生一组流星(比如10个),从屏幕顶部下降飞向地面。2一组流星中,每个流星的字符颜色是随机的,下降的位置是随机的,下降的速度也是随机的。一个流星下落只能去掉一个#号,当最后一行地面有#被去掉时,程序终止。三概要设计首先定义二维数组screen表示地面和天空,此数组是一个
2、24行81列的字符数组。上面的行表示天空,数组单元的值是空格;最下面的几行(如5行)表示地面,数组单元的值是’#’;整个屏幕的大小是80*25,即25行80列,为了在输出最后一行时不换行滚屏,程序只能利用上面的24行空间。把数组定义成81列的目的是,每行的最后字符赋值成’ ’,就可以按照字符串的方式输出每行文本了。16编写的程序在下降过程中,程序必须知道流星的字符、颜色、位置、速度,因此程序需要定义以下几个数组变量:存放流星字符的数组,存放流星字符颜色的数组,存放流星行位置的数组,存放流星列位置的数组,存放流星下降速度的数组。输出时程序首先输出
3、地面和天空,即输出定义的二维数组screen中的字符串,前21行是空行,后3行是#号。这样screen[24][81]的字符矩阵就与整个屏幕对应起来。然后随时机产生一组流星数据,包括字符、颜色、位置和速度。速度用一次下降多少行来表示,最大的速度是4。由于要随机产生这些数据,因此需要调用random函数。(random函数的原型是intrandom(intnum);这个函数产生一个0—num-1之间的一个随机数。流星字符可以这样产生:random(26)+’A’;流星字符的颜色可以这样产生:random(16)+1;流星下降的位置可以这样产生:ra
4、ndom(4)+1;流星的行位置一开始都是1;流星的列位置可以这样产生:random(80)+1;但要保证所有流星的列位置不能相同。调用random之前,用randomize()库函数进行初始化。两个库函数都在stdlib.h文件中。)设置后,每个流星按照自己的速度下落,所谓的下落就是逐行移动流星字符:在下一行新的位置上显示流星字符,在原来的位置上显示空格以便擦除流星字符,然后再延迟等待几十毫秒。这样循环往复就构成了流星下落的动画。但要注意,流星的速度各不相同,而一次下落多行的流星也要逐行下落。如果流星的新位置所对应的screen的单元格的值是’
5、#’,则表示撞到了地面。这种情况下在流星的新位置上输出空格,擦除#号,并且对screen相应的单元赋值为空格,流星字符也要赋值为空格,以表示流星消失。当screen[23]中任何一个单元格是空格时,程序终止。16四详细设计模块一:输入天空和地面,天空和地面都是静止的。模块二:产生一组流星,流星的表示。模块三:流行的颜色,位置,速度。模块四:若碰到#号,流星和#号同时消失。模块五:若第24行的流星被碰到,程序终止。流星的实现输入天空和地面产生一组流星流行的颜色,位置,速度若碰到#号,流星和#号同五运行界面1程序框图162程序清单#include
6、tdio.h>#include#include#include#include#defineROW2416#defineCOL81#defineREAL100#defineNUM10#defineSPEED4intrandom(intnum);staticvoidsetSky();staticvoiddisplay();intcheck_last_row();voidword_n_down();intword_one_down(intbegin,intposition,i
7、ntspeed,intword,int*word_end);voidgotoxy(intx,inty);charsky_ground[REAL][COL];inttest=0;intcycle_end=0;intword_end[NUM];intlist=0;intbegin[NUM];16intposition[NUM];intword[NUM];intspeed[NUM];intmain(){intend_flag=0;time_tt;srand((unsigned)time(&t));setSky();while(!(end_flag=ch
8、eck_last_row())){for(inta=0;a
此文档下载收益归作者所有