![c語言-流星雨的實(shí)現(xiàn)_第1頁](http://file4.renrendoc.com/view/17434f4309ea45f3e2f819e66659bf28/17434f4309ea45f3e2f819e66659bf281.gif)
![c語言-流星雨的實(shí)現(xiàn)_第2頁](http://file4.renrendoc.com/view/17434f4309ea45f3e2f819e66659bf28/17434f4309ea45f3e2f819e66659bf282.gif)
![c語言-流星雨的實(shí)現(xiàn)_第3頁](http://file4.renrendoc.com/view/17434f4309ea45f3e2f819e66659bf28/17434f4309ea45f3e2f819e66659bf283.gif)
![c語言-流星雨的實(shí)現(xiàn)_第4頁](http://file4.renrendoc.com/view/17434f4309ea45f3e2f819e66659bf28/17434f4309ea45f3e2f819e66659bf284.gif)
![c語言-流星雨的實(shí)現(xiàn)_第5頁](http://file4.renrendoc.com/view/17434f4309ea45f3e2f819e66659bf28/17434f4309ea45f3e2f819e66659bf285.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
下載可編輯題目:流星雨的實(shí)現(xiàn)學(xué)院:班級(jí):姓名:學(xué)號(hào):指導(dǎo)教師:時(shí)間:.專業(yè).整理.下載可編輯目錄一課程設(shè)計(jì)目的 3二設(shè)計(jì)內(nèi)容與要求 3三概要設(shè)計(jì)......................................3四詳細(xì)設(shè)計(jì)......................................5五運(yùn)行界面......................................6六設(shè)計(jì)總結(jié).....................................15七教師評(píng)語.....................................17.專業(yè).整理.下載可編輯一課程設(shè)計(jì)目的程序模擬一組流星飛向地面的情境,地面用多行 #來表示,流星用大寫字母表示。二設(shè)計(jì)內(nèi)容與要求1內(nèi)容:程序產(chǎn)生一組流星(比如 10個(gè)),從屏幕頂部下降飛向地面。一組流星中,每個(gè)流星的字符顏色是隨機(jī)的,下降的位置是隨機(jī)的,下降的速度也是隨機(jī)的。一個(gè)流星下落只能去掉一個(gè)#號(hào),當(dāng)最后一行地面有#被去掉時(shí),程序終止。三概要設(shè)計(jì)○1首先定義二維數(shù)組screen表示地面和天空,此數(shù)組是一個(gè)24行81列的字符數(shù)組。上面的行表示天空,數(shù)組單元的值是空格;最下面的幾行(如5行)表示地面,數(shù)組單元的值是’#’;整個(gè)屏幕的大小是80*25,即25行80列,為了在輸出最后一行時(shí)不換行滾屏,程序只能利用上面的 24行空間。把數(shù)組定義成81列的目的是,每行的最后字符賦值成’ 0’,就可以按照字符串的方式輸出每行文本了。.專業(yè).整理.下載可編輯○2編寫的程序在下降過程中,程序必須知道流星的字符、顏色、位置、速度,因此程序需要定義以下幾個(gè)數(shù)組變量:存放流星字符的數(shù)組,存放流星字符顏色的數(shù)組,存放流星行位置的數(shù)組,存放流星列位置的數(shù)組,存放流星下降速度的數(shù)組?!? 輸出時(shí)程序首先輸出地面和天空,即輸出定義的二維數(shù)組screen 中的字符串,前 21行是空行,后 3行是#號(hào)。這樣screen[24][81] 的字符矩陣就與整個(gè)屏幕對(duì)應(yīng)起來。 然后隨時(shí)機(jī)產(chǎn)生一組流星數(shù)據(jù),包括字符、顏色、位置和速度。速度用一次下降多少行來表示,最大的速度是 4。由于要隨機(jī)產(chǎn)生這些數(shù)據(jù),因此需要調(diào)用random函數(shù)。(random函數(shù)的原型是intrandom(intnum);這個(gè)函數(shù)產(chǎn)生一個(gè)0—num-1之間的一個(gè)隨機(jī)數(shù)。流星字符可以這樣產(chǎn)生:random(26)+’A’; 流星字符的顏色可以這樣產(chǎn)生:random(16)+1;流星下降的位置可以這樣產(chǎn)生: random(4)+1;流星的行位置一開始都是 1;流星的列位置可以這樣產(chǎn)生:random(80)+1;但要保證所有流星的列位置不能相同。調(diào)用 random之前,用randomize()庫函數(shù)進(jìn)行初始化。 兩個(gè)庫函數(shù)都在 stdlib.h 文件中。)設(shè)置后,每個(gè)流星按照自己的速度下落,所謂的下落就是逐行移動(dòng)流星字符: 在下一行新的位置上顯示流星字符,在原來的位置上顯示空格以便擦除流星字符, 然后再延遲等待幾十毫秒。這樣循環(huán)往復(fù)就構(gòu)成了流星下落的動(dòng)畫。 但要注意,流星的速度各不相同,而一次下落多行的流星也要逐行下落。如果流星的新位置所對(duì)應(yīng)的screen 的單元格的值是’#’,則表示撞到了地面。 這種情況下在.專業(yè).整理.下載可編輯流星的新位置上輸出空格,擦除#號(hào),并且對(duì)screen相應(yīng)的單元賦值為空格,流星字符也要賦值為空格,以表示流星消失?!?當(dāng)screen[23]中任何一個(gè)單元格是空格時(shí),程序終止。四詳細(xì)設(shè)計(jì)模塊一:輸入天空和地面,天空和地面都是靜止的。模塊二:產(chǎn)生一組流星,流星的表示。模塊三:流行的顏色,位置,速度。模塊四:若碰到#號(hào),流星和#號(hào)同時(shí)消失。模塊五:若第 24行的流星被碰到,程序終止。流星的實(shí)現(xiàn)輸入天空和 產(chǎn)生一組流 流行的顏色, 若碰到#號(hào),地面 星 位置,速度 流星和#號(hào)同.專業(yè).整理.下載可編輯五運(yùn)行界面程序框圖程序清單#include<stdio.h>#include<stdlib.h>#include<time.h>.專業(yè).整理.下載可編輯#include<windows.h>#include<conio.h>#defineROW24#defineCOL81#defineREAL100#defineNUM10#defineSPEED4intrandom(intnum);staticvoidsetSky();staticvoiddisplay();intcheck_last_row();voidword_n_down();int word_one_down(int begin,int position,int speed ,intword,int*word_end);voidgotoxy(intx,inty);charsky_ground[REAL][COL];inttest=0;intcycle_end=0;.專業(yè).整理.下載可編輯intword_end[NUM];intlist=0;intbegin[NUM];intposition[NUM];intword[NUM];intspeed[NUM];intmain(){intend_flag=0;time_tt;srand((unsigned)time(&t));setSky();while(!(end_flag=check_last_row())){for(inta=0;a<NUM;a++)word_end[a]=0;list=0;cycle_end=0;word_n_down();}.專業(yè).整理.下載可編輯system("pause");return0;}staticvoidsetSky(){for(intb=0;b<REAL;b++){for(intc=0;c<COL-1;c++){sky_ground[b][c]='';}sky_ground[b][COL-1]='\0';}for(intd=ROW-5;d<ROW;d++){for(inte=0;e<COL-1;e++){sky_ground[d][e]='#';}sky_ground[d][COL-1]='\0';.專業(yè).整理.下載可編輯}}staticvoiddisplay(){gotoxy(0,0);for(intf=0;f<ROW;f++){printf("%s",sky_ground[f]);}}intrandom(intnum){return(rand()%num);}intcheck_last_row(){for(intg=0;g<COL;g++){if(sky_ground[23][g]=='').專業(yè).整理.下載可編輯return1;}return0;}voidword_n_down(){for(inth=0;h<NUM;h++){begin[h]=random(ROW-5);position[h]=random(COL-2);word[h]=random(26)+'A';speed[h]=random(SPEED)+1;}while(1){if(cycle_end>=NUM)break;test=list-1;if(test<0)test=0;if(check_last_row()).專業(yè).整理.下載可編輯{system("pause");exit(0);}for(inti=0;i<NUM;i++)word_one_down(begin[i],position[i],speed[i],word[i],&word_end[i]);list++;display();Sleep(200);}}int word_one_down(int begin,int position,int speed,intword,int*word_end){if((*word_end)==0){if(begin+list*speed>=ROW)return0;sky_ground[begin+test*speed][position]='';if(begin+list*speed>=19).專業(yè).整理.下載可編輯{for(intz=19;z<ROW;z++){if(sky_ground[z][position]=='#'){sky_ground[z][position]='';*word_end=1;cycle_end++;break;}}}else{sky_ground[begin+list*speed][position]=word;}}return0;}voidgotoxy(intx,inty){COORDcoord;.專業(yè).整理.下載可編輯coord.X=x;coord.Y=y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);}3、系統(tǒng)運(yùn)行結(jié)果.專業(yè).整理.下載可編輯六設(shè)計(jì)總結(jié)經(jīng)過一個(gè)星期的上機(jī)實(shí)踐學(xué)習(xí),使我對(duì)C語言有了更進(jìn)一步的認(rèn)識(shí)和了解,要想學(xué)好它要重在實(shí)踐,要通過不斷的上機(jī)操作才能更好地學(xué)習(xí)它,通過實(shí)踐,我也發(fā)現(xiàn)我的好多不足之處,首先是自己在指法上還不行,經(jīng)常按錯(cuò)字母,通過學(xué)習(xí)也有所改進(jìn);再有對(duì)C語言的一些標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對(duì)函數(shù)調(diào)用的正確使用不夠熟悉,還有對(duì)C語言中經(jīng)常出現(xiàn)的錯(cuò)誤也不了解,通過實(shí)踐,使我在這幾個(gè)方面的認(rèn)識(shí)有所提高。雖然設(shè)計(jì)時(shí)完成了,但是我覺得其中還是由一些不足之處:1. 警告句。程序中缺少一些警告句,例如 :“是否真的刪除.專業(yè).整理.下載可編輯y/n)?”。2.重名的情況。由于考慮的不周全,沒有設(shè)計(jì)遇到重名的情況該怎么處理。3.選擇單一。我們?cè)O(shè)計(jì)的程序中,只設(shè)計(jì)了按名字選擇,進(jìn)行操作,忽略了重名的情況。短短的一周課程設(shè)計(jì)結(jié)束了,但是這段時(shí)間
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 提高銷售管理能力的培訓(xùn)課程
- 2025天津市農(nóng)資買賣合同范文
- 家居裝飾設(shè)計(jì)與施工方案
- 勞動(dòng)合同知識(shí)產(chǎn)權(quán)保密條款
- 房屋中介買賣服務(wù)合同范本
- 2025《代理企業(yè)所得稅年度納稅申報(bào)合同》(合同模版)
- 的買賣合同范本
- 社工勞動(dòng)合同
- 2025工程外包合同模板
- 農(nóng)業(yè)機(jī)械設(shè)備采購安裝合同
- JTGT H21-2011 公路橋梁技術(shù)狀況評(píng)定標(biāo)準(zhǔn)
- 賣花生混聲合唱簡(jiǎn)譜
- 【永輝超市公司員工招聘問題及優(yōu)化(12000字論文)】
- 柴油加氫裝置知識(shí)培訓(xùn)課件
- 汽油安全技術(shù)說明書(MSDS)
- 中國直銷發(fā)展四個(gè)階段解析
- 2024屆浙江省寧波市鎮(zhèn)海區(qū)鎮(zhèn)海中學(xué)高一物理第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- 部編版語文四年級(jí)下冊(cè) 教材解讀
- 《一次函數(shù)與方程、不等式》說課稿
- 動(dòng)火作業(yè)安全管理要求及控制措施
- 詩豪劉禹錫一生部編教材PPT
評(píng)論
0/150
提交評(píng)論