版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p><b> 1.系統(tǒng)功能要求。</b></p><p> 2. 數(shù)據(jù)結(jié)構(gòu)設(shè)計及說明。</p><p> 3.程序結(jié)構(gòu)(畫流程圖)。</p><p><b> 4.各模塊的功能。</b></p>&l
2、t;p> 5.試驗結(jié)果(包括輸入數(shù)據(jù)和輸出結(jié)果)。</p><p><b> 6.體會。</b></p><p><b> 7.參考文獻。</b></p><p> 8.附錄:程序清單及源程序。</p><p><b> 系統(tǒng)功能要求:</b></p>
3、;<p> 在屏幕上顯示一個圖形時鐘(用程序繪制一個與時鐘樣式相似即可),時間與系統(tǒng)時間一致,且要隨著時間的走動準確的走動。</p><p><b> 數(shù)據(jù)結(jié)構(gòu)設(shè)計及說明</b></p><p> (1) 圖形時鐘要用TC來編譯,學(xué)C語言時主要用VC,用TC對我有一定的挑戰(zhàn)性,不熟悉編譯,對圖形函數(shù)也沒有太多接觸,做這個有一定難度。<
4、/p><p> ?。?) 先畫出時鐘基本組成,(時針分針秒針,中心點,表盤及其分隔點)。</p><p> ?。?) 時鐘表設(shè)計思想:</p><p> 第一步,確定秒鐘的走時。將圓等分成60份每過一秒,秒鐘要轉(zhuǎn)1/60個圓,亦即一等份。</p><p> 第二步,確定分鐘的走時。將圓等分成60份每過一分,分鐘要轉(zhuǎn)1/60
5、個圓,亦即一等份。</p><p> 分鐘自己走的再加秒鐘的,才是分鐘此時的位置。</p><p> 第三步,確定時鐘的走時。將圓等分成12等分。每過一時,時鐘走一等份。和分鐘一樣,</p><p> 得加上分鐘,秒鐘的走時,才是此刻時鐘的位置。</p><p> ?。?) 時鐘走動與系統(tǒng)時間聯(lián)系:每過一秒畫出秒針,并除去前一
6、秒的秒針,分針秒針同樣可用。畫線函數(shù)與時間聯(lián)系使用變量。</p><p> (5) 設(shè)置橫縱坐標</p><p> x=a*cos(b*c*pi/180-pi/2)+300; </p><p> y=a*sin(b*c*pi/180-pi/2)+240; </p><p> 設(shè)置表針的動態(tài)坐標點 </p>
7、<p> x1=200*sin(i*6*pi/180)+300; y1=200*cos(i*6*pi/180)+240; </p><p> x2=(200-l)*sin(i*6*pi/180)+300; </p><p> y2=(200-l)*cos(i*6*pi/180)+240;</p><p> 程序結(jié)構(gòu)(畫流程圖)</p>
8、<p><b> 總流程圖:</b></p><p><b> 指針轉(zhuǎn)動流程圖:</b></p><p><b> 各模塊的功能</b></p><p> 試驗結(jié)果(包括輸入數(shù)據(jù)和輸出結(jié)果)</p><p><b> 體會:</b>
9、</p><p> 剛開始做時基本上什么都不懂,用TC做,我更不會。不過參考了很多資料,到網(wǎng)上查,泡了幾天圖書館,差不多能寫出基本程序,雖然很多是借鑒別人的,不過能寫成這樣,我心里還是挺高興的。</p><p> 有了一點成功我就很興奮,這是動力。程序很奇特,很多問題都可以用程序編寫,看到那些大型程序我就感覺我也能寫出這樣的程序。</p><p> 程序設(shè)計主
10、要靠理解與運用,有些沒有學(xué)過的知識不一定要懂得徹底,只要會運用就行。</p><p> 不足之處也很多,程序思路不太清晰可能有些混亂。有很多程序設(shè)計使用并不熟練,甚至有些方法掌握不了,更容易忘記。算法結(jié)構(gòu)了解并不深入,獨立自主的想法占據(jù)總體達不到要求。需要加強練習(xí)和對知識的理解與掌握。</p><p><b> 參考文獻:</b></p><p
11、> 《C程序設(shè)計思想與方法》</p><p><b> 《C語言完全手冊》</b></p><p> 《C語言課程設(shè)計指導(dǎo)》</p><p> 《百度知道 圖形時針》</p><p> 附錄:程序清單及源程序 (使用TC)</p><p> # include <grap
12、hics.h> </p><p> # include <math.h> </p><p> # include <dos.h></p><p> # define pi 3.1415926 </p><p> void draw(int a, int b, int c)</p><p
13、><b> {</b></p><p> float x, y;</p><p> x=a*cos(b*c*pi/180-pi/2)+300; /*確定橫坐標*/</p><p> y=a*sin(b*c*pi/180-pi/2)+240; /*確定縱坐標*/</p><p> line(300, 240
14、, x, y);/*繪制時針或分針或秒針*/</p><p><b> }</b></p><p> void init() /*劃時鐘邊框函數(shù)*/ </p><p><b> { </b></p><p> int i,l,x1,x2,y1,y2; </p><p&g
15、t; circle(300,240,200);/*以(300,240)為圓心,200為半徑畫圓*/</p><p> circle(300,240,5);/*以(300,240)為圓心,5為半徑畫圓*/</p><p> for(i=0;i<60;i++) /*劃鐘點上的短線*/ </p><p><b> { </b></
16、p><p> if(i%5==0) </p><p><b> l=15; </b></p><p><b> else </b></p><p><b> l=5; </b></p><p> x1=200*sin(i*6*pi/180)+300
17、; /*畫線函數(shù)*/</p><p> y1=200*cos(i*6*pi/180)+240; </p><p> x2=(200-l)*sin(i*6*pi/180)+300; </p><p> y2=(200-l)*cos(i*6*pi/180)+240; </p><p> line(x1,y1,x2,y2); </p&
18、gt;<p><b> } </b></p><p><b> } </b></p><p><b> main()</b></p><p><b> {</b></p><p> int x, y,i;</p>&l
19、t;p> int gdriver, gmode;</p><p> unsigned char h, m, s;</p><p> struct time t[1];</p><p> gdriver = DETECT;</p><p> initgraph(&gdriver, &gmode, "&q
20、uot;); /*初始化*/</p><p> for(i=0;i<=6;i++) </p><p><b> { </b></p><p> outtextxy(300,80,"12") ; </p><p> outtextxy(300,390,"6"); &l
21、t;/p><p> outtextxy(140,230,"9"); </p><p> outtextxy(460,230,"3"); </p><p><b> } </b></p><p> init(); /*調(diào)用init()函數(shù)*/</p
22、><p> setwritemode(1);/*將當前線與原有的線進行異或操作*/</p><p> gettime(t); /*將計算機時間寫入結(jié)構(gòu)體t中*/</p><p> h = t[0].ti_hour; /*h賦初值當前時數(shù)*/</p><p> m = t[0].ti_min; /
23、*m賦初值當前分數(shù)*/</p><p> s = t[0].ti_sec; /*s賦初值當前秒數(shù)*/</p><p> setcolor(7); </p><p> draw(150, h, 30); /*畫時針*/</p><p> setcolor(14);</p><p&g
24、t; draw(170, m, 6); /*畫分針*/</p><p> setcolor(4);</p><p> draw(190, s, 6); /*畫秒針*/</p><p> while (!kbhit())</p><p><b> {</b></p>
25、<p> while (t[0].ti_sec == s)</p><p> gettime(t);</p><p> setcolor(4);</p><p> draw(190, s, 6); /*清除前面畫的秒針*/</p><p> s = t[0].ti_sec;</p><p&
26、gt; draw(190, s, 6); /*畫秒針*/</p><p> if (t[0].ti_min != m)</p><p><b> {</b></p><p> setcolor(14);</p><p> draw(170, m, 6); /*清除前面畫的分針*/</p
27、><p> m = t[0].ti_min;</p><p> draw(170, m, 6); /*畫分針*/</p><p><b> }</b></p><p> if (t[0].ti_hour != h)</p><p><b> {</b>&l
28、t;/p><p> setcolor(7);</p><p> draw(150, h, 30); /*清除前面畫的時針*/</p><p> h = t[0].ti_hour;</p><p> draw(150, h, 30); /*畫時針*/</p><p><b> }</
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖形模擬時鐘c語言課程設(shè)計
- c語言課程設(shè)計實驗報告資料
- c語言課程設(shè)計實踐報告--時鐘
- 高級語言課程設(shè)計——迷宮實驗報告
- c語言課程設(shè)計實驗報告汽車租賃管理系統(tǒng)剖析
- c語言課程設(shè)計實驗報告成績記錄簿
- c語言課程設(shè)計實驗報告成績記錄簿
- c語言課程設(shè)計報告-模擬時鐘轉(zhuǎn)動程序
- c語言課程設(shè)計設(shè)計報告--模擬電子時鐘
- c語言課程設(shè)計(電子時鐘)
- c語言課程設(shè)計實驗報告--高校在職職工管理軟件
- 《程序語言綜合課程設(shè)計》實驗報告
- 課程設(shè)計實驗報告
- c語言課程設(shè)計---整點報時時鐘
- 單片機應(yīng)用課程設(shè)計實驗報告-電子時鐘
- 51單片機電子時鐘課程設(shè)計實驗報告
- 51單片機電子時鐘課程設(shè)計實驗報告
- 51單片機電子時鐘課程設(shè)計實驗報告
- c語言課程設(shè)計報告-- 簡單圖形處理系統(tǒng)
評論
0/150
提交評論