c語言圖形時(shí)鐘課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p><b>  1.系統(tǒng)功能要求。</b></p><p>  2. 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及說明。</p><p>  3.程序結(jié)構(gòu)(畫流程圖)。</p><p><b>  4.各模塊的功能。</b></p>&l

2、t;p>  5.試驗(yàn)結(jié)果(包括輸入數(shù)據(jù)和輸出結(jié)果)。</p><p><b>  6.體會(huì)。</b></p><p><b>  7.參考文獻(xiàn)。</b></p><p>  8.附錄:程序清單及源程序。</p><p><b>  系統(tǒng)功能要求:</b></p>

3、;<p>  在屏幕上顯示一個(gè)圖形時(shí)鐘(用程序繪制一個(gè)與時(shí)鐘樣式相似即可),時(shí)間與系統(tǒng)時(shí)間一致,且要隨著時(shí)間的走動(dòng)準(zhǔn)確的走動(dòng)。</p><p><b>  數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及說明</b></p><p> ?。?) 圖形時(shí)鐘要用TC來編譯,學(xué)C語言時(shí)主要用VC,用TC對(duì)我有一定的挑戰(zhàn)性,不熟悉編譯,對(duì)圖形函數(shù)也沒有太多接觸,做這個(gè)有一定難度。<

4、/p><p>  (2) 先畫出時(shí)鐘基本組成,(時(shí)針分針秒針,中心點(diǎn),表盤及其分隔點(diǎn))。</p><p>  (3) 時(shí)鐘表設(shè)計(jì)思想:</p><p>  第一步,確定秒鐘的走時(shí)。將圓等分成60份每過一秒,秒鐘要轉(zhuǎn)1/60個(gè)圓,亦即一等份。</p><p>  第二步,確定分鐘的走時(shí)。將圓等分成60份每過一分,分鐘要轉(zhuǎn)1/60

5、個(gè)圓,亦即一等份。</p><p>  分鐘自己走的再加秒鐘的,才是分鐘此時(shí)的位置。</p><p>  第三步,確定時(shí)鐘的走時(shí)。將圓等分成12等分。每過一時(shí),時(shí)鐘走一等份。和分鐘一樣,</p><p>  得加上分鐘,秒鐘的走時(shí),才是此刻時(shí)鐘的位置。</p><p>  (4) 時(shí)鐘走動(dòng)與系統(tǒng)時(shí)間聯(lián)系:每過一秒畫出秒針,并除去前一

6、秒的秒針,分針秒針同樣可用。畫線函數(shù)與時(shí)間聯(lián)系使用變量。</p><p>  (5) 設(shè)置橫縱坐標(biāo)</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è)置表針的動(dòng)態(tài)坐標(biāo)點(diǎn) </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)動(dòng)流程圖:</b></p><p><b>  各模塊的功能</b></p><p>  試驗(yàn)結(jié)果(包括輸入數(shù)據(jù)和輸出結(jié)果)</p><p><b>  體會(huì):</b>

9、</p><p>  剛開始做時(shí)基本上什么都不懂,用TC做,我更不會(huì)。不過參考了很多資料,到網(wǎng)上查,泡了幾天圖書館,差不多能寫出基本程序,雖然很多是借鑒別人的,不過能寫成這樣,我心里還是挺高興的。</p><p>  有了一點(diǎn)成功我就很興奮,這是動(dòng)力。程序很奇特,很多問題都可以用程序編寫,看到那些大型程序我就感覺我也能寫出這樣的程序。</p><p>  程序設(shè)計(jì)主

10、要靠理解與運(yùn)用,有些沒有學(xué)過的知識(shí)不一定要懂得徹底,只要會(huì)運(yùn)用就行。</p><p>  不足之處也很多,程序思路不太清晰可能有些混亂。有很多程序設(shè)計(jì)使用并不熟練,甚至有些方法掌握不了,更容易忘記。算法結(jié)構(gòu)了解并不深入,獨(dú)立自主的想法占據(jù)總體達(dá)不到要求。需要加強(qiáng)練習(xí)和對(duì)知識(shí)的理解與掌握。</p><p><b>  參考文獻(xiàn):</b></p><p

11、>  《C程序設(shè)計(jì)思想與方法》</p><p><b>  《C語言完全手冊(cè)》</b></p><p>  《C語言課程設(shè)計(jì)指導(dǎo)》</p><p>  《百度知道 圖形時(shí)針》</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; /*確定橫坐標(biāo)*/</p><p>  y=a*sin(b*c*pi/180-pi/2)+240; /*確定縱坐標(biāo)*/</p><p>  line(300, 240

14、, x, y);/*繪制時(shí)針或分針或秒針*/</p><p><b>  }</b></p><p>  void init() /*劃時(shí)鐘邊框函數(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++) /*劃鐘點(diǎn)上的短線*/ </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);/*將當(dāng)前線與原有的線進(jìn)行異或操作*/</p><p>  gettime(t); /*將計(jì)算機(jī)時(shí)間寫入結(jié)構(gòu)體t中*/</p><p>  h = t[0].ti_hour; /*h賦初值當(dāng)前時(shí)數(shù)*/</p><p>  m = t[0].ti_min; /

23、*m賦初值當(dāng)前分?jǐn)?shù)*/</p><p>  s = t[0].ti_sec; /*s賦初值當(dāng)前秒數(shù)*/</p><p>  setcolor(7); </p><p>  draw(150, h, 30); /*畫時(shí)針*/</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); /*清除前面畫的時(shí)針*/</p><p>  h = t[0].ti_hour;</p><p>  draw(150, h, 30); /*畫時(shí)針*/</p><p><b>  }</

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論