C语言课程设计流星雨

上传人:夏** 文档编号:455109469 上传时间:2022-09-29 格式:DOCX 页数:8 大小:15.03KB
返回 下载 相关 举报
C语言课程设计流星雨_第1页
第1页 / 共8页
C语言课程设计流星雨_第2页
第2页 / 共8页
C语言课程设计流星雨_第3页
第3页 / 共8页
C语言课程设计流星雨_第4页
第4页 / 共8页
C语言课程设计流星雨_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《C语言课程设计流星雨》由会员分享,可在线阅读,更多相关《C语言课程设计流星雨(8页珍藏版)》请在金锄头文库上搜索。

1、C语言课程设计流星雨的设计功能说明:程序模拟一组流星飞向地面的情景。地面用多行#来表示,流星用大写字母不表示。程序产生一组流星(比如10个),从屏幕顶部下降飞向地面。一组流星中,每个流星的字符颜色是随机的,下降的位置是随机的,下降的速度也是随机的。一个流星下落只能去掉一个#号,当最后一行地面有#被去掉时,程序终止。C语言程序源代码:#include#include#include#includeintmain()voidload(charliuxin2580,charground580,intheng10,intlie10);voidecho(charout2580,intlie10,intc

2、olor10);voidmake(charout2580,charliuxin2580,charmark10,intlie10,intheng10,intcolor10,intspeed10,intexist10);voidfall(charout2580,charliuxin2580,intspeed10,charground580,intexist10,intheng10,intlie10);voidpanduan(charground580);voidcon(charout2580,charliuxin2580,charground580);intexist_or(charliuxin2

3、580);charout2580,liuxin2580,ground580,mark10;intexist10,lie10,heng10,color10,speed10;load(liuxin,ground,heng,lie);srand(int)time(0);con(out,liuxin,ground);echo(out,lie,color);while(1)make(out,liuxin,mark,lie,heng,color,speed,exist);产生一组10个不同颜色不同字母不同下落速度的流星雨while(1)con(out,liuxin,ground);echo(out,lie

4、,color);panduan(ground);Sleep(1);fall(out,liuxin,speed,ground,exist,heng,lie);if(exist_or(liuxin)=0)break;return0;return0;面inti1,i2;for(i1=0;i125;i1+)for(i2=0;i280;i2+)liuxini1i2=;for(i1=0;i15;i1+)for(i2=0;i280;i2+)groundi1i2=#;for(i1=0;i110;i1+)hengi1=0;liei1=i1;voidecho(charout2580,intlie10,intcol

5、or10)/将out数组输出到屏幕上inti1,i2,i3=0;COORDcoord;coord.X=0;coord.Y=0;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);for(i1=0;i125;i1+)i3=0;for(i2=0;i280;i2+)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);if(i2=liei3)if(outi1i2!=&outi1i2!=#)switch(colori3)cas

6、e0:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);break;case1:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);break;case2:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);break;i3+=1;printf(%c,outi1i2);heng10,intvoidmake(char

7、out2580,charliuxin2580,charmark10,intlie10,intcolor10,intspeed10,intexist10)inti1,i2,t,change,base=1;for(i1=0;i110;i1+)hengi1=0;marki1=(abs(rand()%26+65);colori1=abs(rand()%3;while(1)base=0;t=(abs(rand()%80);for(i2=0;i210;i2+)if(t=liei2)base=1;if(base=0)break;liei1=t;speedi1=(abs(rand()%4)+1;liuxin0

8、liei1=marki1;existi1=1;for(i1=0;i110;i1+)for(i2=0;i2liei2+1)change=liei2;liei2=liei2+1;liei2+1=change;voidfall(charout2580,charliuxin2580,intspeed10,charground580,intexist10,intheng10,intlie10)inti1,i2;for(i1=0;i110;i1+)if(existi1=1)for(i2=1;i2=20)if(groundhengi1-20liei1=#)liuxinhengi1liei1=;groundh

9、engi1-20liei1=;existi1=0;break;intexist_or(charliuxin2580)/判断是否还有流星,如果没有就开始新的make函数inti1,i2,t=0;for(i1=0;i125;i1+)for(i2=0;i280;i2+)if(liuxini1i2!=)t=1;break;returnt;voidpanduan(charground580)/判断最后一行是否有空格inti,a=0;for(i=0;i80;i+)if(ground4i=)getchar();voidcon(charout2580,charliuxin2580,charground580)/将流行数组与地面数组整合到out数组中inti1,i2;for(i1=0;i125;i1+)for(i2=0;i280;i2+)outi1i2=liuxini1i2;for(i1=20;i125;i1+)for(i2=0;i280;i2+)if(groundi1-20i2=#)outi1i2=groundi1-20i2;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号