C語言圖形時鐘課程設(shè)計實驗報告_第1頁
C語言圖形時鐘課程設(shè)計實驗報告_第2頁
C語言圖形時鐘課程設(shè)計實驗報告_第3頁
C語言圖形時鐘課程設(shè)計實驗報告_第4頁
C語言圖形時鐘課程設(shè)計實驗報告_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 目錄1.系統(tǒng)功能要求。2. 數(shù)據(jù)結(jié)構(gòu)設(shè)計及說明。3.程序結(jié)構(gòu)(畫流程圖)。4.各模塊的功能。5.試驗結(jié)果(包括輸入數(shù)據(jù)和輸出結(jié)果)。6.體會。7.參考文獻。8.附錄:程序清單及源程序。l 系統(tǒng)功能要求:在屏幕上顯示一個圖形時鐘(用程序繪制一個與時鐘樣式相似即可),時間與系統(tǒng)時間一致,且要隨著時間的走動準確的走動。l 數(shù)據(jù)結(jié)構(gòu)設(shè)計及說明(1) 圖形時鐘要用TC來編譯,學(xué)C語言時主要用VC,用TC對我有一定的挑戰(zhàn)性,不熟悉編譯,對圖形函數(shù)也沒有太多接觸,做這個有一定難度。(2) 先畫出時鐘基本組成,(時針分針秒針,中心點,表盤及其分隔點)。 (3) 時鐘表設(shè)計思想:第一步,確定秒鐘的走時。將圓等

2、分成60份每過一秒,秒鐘要轉(zhuǎn)1/60個圓,亦即一等份。第二步,確定分鐘的走時。將圓等分成60份每過一分,分鐘要轉(zhuǎn)1/60個圓,亦即一等份。 分鐘自己走的再加秒鐘的,才是分鐘此時的位置。第三步,確定時鐘的走時。將圓等分成12等分。每過一時,時鐘走一等份。和分鐘一樣, 得加上分鐘,秒鐘的走時,才是此刻時鐘的位置。 (4) 時鐘走動與系統(tǒng)時間聯(lián)系:每過一秒畫出秒針,并除去前一秒的秒針,分針秒針同樣可用。畫線函數(shù)與時間聯(lián)系使用變量。(5) 設(shè)置橫縱坐標x=a*cos(b*c*pi/180-pi/2)+300; y=a*sin(b*c*pi/180-pi/2)+240; 設(shè)置表針的動態(tài)坐標點 x1=20

3、0*sin(i*6*pi/180)+300; y1=200*cos(i*6*pi/180)+240; x2=(200-l)*sin(i*6*pi/180)+300; y2=(200-l)*cos(i*6*pi/180)+240;l 程序結(jié)構(gòu)(畫流程圖) 總流程圖:開始確定橫縱坐標寫出時鐘表盤并將表盤分60份的函數(shù)圖形方式初始化函數(shù)使指針轉(zhuǎn)動并除去前一秒的指針畫出時針分針秒針獲取系統(tǒng)時間并寫入結(jié)構(gòu)體t中在表盤適當(dāng)位置插入12、3、6、9結(jié)束指針轉(zhuǎn)動流程圖:結(jié)束開始t0.ti_sec=sgettime(t);setcolor(4);draw(190,s,6);s=t0.ti_sec;draw(19

4、0, s, 6);t0.ti_min != mNYsetcolor(14);draw(170, m, 6); m = t0.ti_min;draw(170, m, 6);t0.ti_hour != hNYsetcolor(7);draw(150, h, 30); h = t0.ti_hour;draw(150, h, 30);YN l 各模塊的功能功能確定橫縱坐標,確定針分針秒針函數(shù)void draw(int a, int b, int c) void init()main()劃時鐘邊框函數(shù)和畫鐘點上的短線主函數(shù) 圖形初始化 時鐘添加12點、3點、6點、9點 獲取系統(tǒng)時間,畫時針分針秒針 將系

5、統(tǒng)時間與時鐘聯(lián)系功能功能l 試驗結(jié)果(包括輸入數(shù)據(jù)和輸出結(jié)果)12369l 體會:剛開始做時基本上什么都不懂,用TC做,我更不會。不過參考了很多資料,到網(wǎng)上查,泡了幾天圖書館,差不多能寫出基本程序,雖然很多是借鑒別人的,不過能寫成這樣,我心里還是挺高興的。有了一點成功我就很興奮,這是動力。程序很奇特,很多問題都可以用程序編寫,看到那些大型程序我就感覺我也能寫出這樣的程序。 程序設(shè)計主要靠理解與運用,有些沒有學(xué)過的知識不一定要懂得徹底,只要會運用就行。 不足之處也很多,程序思路不太清晰可能有些混亂。有很多程序設(shè)計使用并不熟練,甚至有些方法掌握不了,更容易忘記。算法結(jié)構(gòu)了解并不深入,獨立自主的想法

6、占據(jù)總體達不到要求。需要加強練習(xí)和對知識的理解與掌握。l 參考文獻:C程序設(shè)計思想與方法C語言完全手冊C語言課程設(shè)計指導(dǎo)百度知道 圖形時針l 附錄:程序清單及源程序 (使用TC)# include # include # include # define pi 3. void draw(int a, int b, int c) float x, y; x=a*cos(b*c*pi/180-pi/2)+300; /*確定橫坐標*/ y=a*sin(b*c*pi/180-pi/2)+240; /*確定縱坐標*/ line(300, 240, x, y);/*繪制時針或分針或秒針*/void ini

7、t() /*劃時鐘邊框函數(shù)*/ int i,l,x1,x2,y1,y2; circle(300,240,200);/*以(300,240)為圓心,200為半徑畫圓*/ circle(300,240,5);/*以(300,240)為圓心,5為半徑畫圓*/ for(i=0;i60;i+) /*劃鐘點上的短線*/ if(i%5=0) l=15; else l=5; x1=200*sin(i*6*pi/180)+300; /*畫線函數(shù)*/ y1=200*cos(i*6*pi/180)+240; x2=(200-l)*sin(i*6*pi/180)+300; y2=(200-l)*cos(i*6*pi/

8、180)+240; line(x1,y1,x2,y2); main() int x, y,i; int gdriver, gmode; unsigned char h, m, s; struct time t1; gdriver = DETECT; initgraph(&gdriver, &gmode, ); /*初始化*/ for(i=0;i=6;i+) outtextxy(300,80,12) ; outtextxy(300,390,6); outtextxy(140,230,9); outtextxy(460,230,3); init(); /*調(diào)用init()函數(shù)*/ setwrite

9、mode(1);/*將當(dāng)前線與原有的線進行異或操作*/ gettime(t); /*將計算機時間寫入結(jié)構(gòu)體t中*/ h = t0.ti_hour; /*h賦初值當(dāng)前時數(shù)*/ m = t0.ti_min; /*m賦初值當(dāng)前分數(shù)*/ s = t0.ti_sec; /*s賦初值當(dāng)前秒數(shù)*/ setcolor(7); draw(150, h, 30); /*畫時針*/ setcolor(14); draw(170, m, 6); /*畫分針*/ setcolor(4); draw(190, s, 6); /*畫秒針*/ while (!kbhit() while (t0.ti_sec = s) gettime(t); setcolor(4); draw(190, s, 6); /*清除前面畫的秒針*/ s = t0.ti_sec; draw(190, s, 6); /*畫秒針*/ if (t0.ti_min != m) setcolor(14); draw(170, m, 6); /*清除前面畫的分針*/ m = t0.ti_min; draw(170, m, 6

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論