资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
C语言课程设计流星雨的设计功能说明:程序模拟一组流星飞向地面的情景。地面用多行#来表示,流星用大写字母不表示。程序产生一组流星(比如10个),从屏幕顶部下降飞向地面。一组流星中,每个流星的字符颜色是随机的,下降的位置是随机的,下降的速度也是随机的。一个流星下落只能去掉一个#号,当最后一行地面有#被去掉时,程序终止。C语言程序源代码:#include#include#include#includeintmain()voidload(charliuxin2580,charground580,intheng10,intlie10);voidecho(charout2580,intlie10,intcolor10);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(charliuxin2580);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,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,intcolor10)/将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)case0: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(charout2580,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;liuxin0liei1=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=;groundhengi1-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;
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号