版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、模擬時針轉(zhuǎn)動程序姓名:學(xué)號:完成日期:2012年12月 設(shè)計目的加深對講授內(nèi)容的理解,尤其是一些語法規(guī)定。通過課程設(shè)計,自然地、熟練地掌握。熟悉所用的計算機(jī)系統(tǒng)的操作方法,也就是熟悉語言程序開發(fā)的環(huán)境。學(xué)會上機(jī)調(diào)試程序。熟悉C語言圖形模式下的編程,掌握利用C語言相關(guān)函數(shù)開發(fā)電子時鐘的基本原理。能模擬機(jī)械鐘表行走;要準(zhǔn)確地利用數(shù)字顯示時間;在屏幕上顯示一個活動時鐘;程序界面設(shè)計合理,色彩得體大方,顯示正確;各指針運(yùn)動規(guī)律正確;數(shù)字式時鐘的時間顯示與指針式時鐘顯示一致。 總體設(shè)計電子時鐘動畫顯示模塊轉(zhuǎn)動時針處理模塊數(shù)字時鐘處理模塊 電子時鐘的功能描述開始進(jìn)入圖形模式進(jìn)入主體界面 顯示動態(tài)圖像結(jié)束退
2、出系統(tǒng)顯示轉(zhuǎn)動時鐘數(shù)字時鐘的顯示 電子時鐘流程圖模塊描述動畫處理模塊 在屏幕上顯示sin和cos型的動態(tài)函數(shù)圖像,顯示運(yùn)動的問候語。轉(zhuǎn)時針動處理模塊 指針式的時鐘表盤為橢圓形并且圓周上有分布均勻的12個刻度刻度顯示清楚鐘面上有長度不相同的指針即時針、分針、秒針指針的運(yùn)動具有規(guī)律性為順時針。數(shù)字時鐘處理模塊 數(shù)字鐘顯示時間的格式是年月日時分秒小時為24進(jìn)制,分鐘和秒是60進(jìn)制,指針式的時鐘和數(shù)字式的時鐘顯示的時間同步且兩個時鐘所顯示的時間與計算機(jī)的系統(tǒng)時間一致。 詳細(xì)設(shè)計time結(jié)構(gòu)體strume time usigned char ti_min; usigned char ti_hour; u
3、signed char ti_hud; usigned char ti_sec; ;time 結(jié)構(gòu)體定義在dos.h文件中,可以保存系統(tǒng)的當(dāng)前時間。全局變量double h,m,s;這三個變量分別保存小時,分鐘,秒。double x,y,x1,y1,x2,y2;保存數(shù)字時鐘中小時分鐘秒在屏幕中顯示的位置。struct time t1;定義一個time結(jié)構(gòu)類型的數(shù)組。函數(shù)功能的描述1. def()函數(shù)原型: void def()def()函數(shù)是用來輸出一組彩帶的,通過輸入位置和顏色的變化來輸出sin型的彩帶,且在整個函數(shù)中保留結(jié)果。2. abc()函數(shù)原型: void abc()abc()函數(shù)是
4、用來在退出系統(tǒng)是輸出運(yùn)動的問候語,函數(shù)類型單一且比較簡單。3 .digitclock()函數(shù)原型:void digitclock()digitclock函數(shù)用于在(x,y)位置顯示clock值,clock值為時分秒。4. clockhandle()函數(shù)原型:void clockhandle()clockhandle()函數(shù)用于完成時針轉(zhuǎn)動和數(shù)字時鐘的顯示,包括時針轉(zhuǎn)動角度的運(yùn)算,還有對聲音的輸出。5 . main()函數(shù)原型: void main()main()函數(shù)是主函數(shù),既包括繪畫表盤的基本框架,又有對其他函數(shù)的調(diào)用。 函數(shù)測試與調(diào)試 在函數(shù)編寫完成后,進(jìn)行過多次測試。在測試過程中遇到很多
5、的問題,像數(shù)字時鐘的顯示位置與理想中的有偏差,轉(zhuǎn)動時針移動后痕跡不能清除。這些問題通過對clockhandle()的調(diào)整得到了很好的解決。 還有就是在動畫處理上運(yùn)動時間的間隔和遇到路程的測試遇到了問題,但最后通過查閱資料都得到了解決。 源程序清單#include#include#include#include#include#include#define PI 3.1415926#define ESC 0x11b#define step 10 /*函數(shù)聲明*/int digithour(double);int digitmin(double);int digitsec(double);void
6、 digitclock(int,int,int);void clockhandle();void abc();void def();double h,m,s,day,mon;double x,x1,x2,y,y1,y2;struct time t1; /*主函數(shù)*/main() int driver,mode=0,i,j; driver=DETECT; /*自動檢測顯示設(shè)備*/ initgraph(&driver,&mode,); /*初始化圖形系統(tǒng) */ setlinestyle(0,0,3); setbkcolor(0); /*畫主體框架的邊線*/ setcolor(12); line(8
7、2,430,558,430); line(70,62,70,418); line(82,50,558,50); line(570,62,570,418); line(70,62,570,62); line(76,56,295,56); line(342,56,564,56); /*畫主體框架的邊角弧線*/ setlinestyle(0,0,3); arc(82,62,90,180,12); setlinestyle(0,0,3); arc(558,62,0,90,12); setlinestyle(0,0,3); arc(82,418,180,279,12); setlinestyle(0,0
8、,3); arc(558,418,270,360,12); setlinestyle(0,0,7); setcolor(9); outtextxy(301,53,CLOCK); setcolor(15); outtextxy(299,53,CLOCK); /*顯示標(biāo)題*/ setcolor(9); rectangle(342,72,560,380); /*繪制矩形時鐘框架 */ setwritemode(0); /*規(guī)定劃線的方式(將所畫位置的原來信息覆蓋)*/ setcolor(13); outtextxy(405,75,BeiJing Shijian); /*繪制電子時鐘的邊框*/ set
9、linestyle(0,0,1); setcolor(7); line(392,310,510,310); line(392,330,510,330); arc(392,320,90,270,10); arc(510,320,270,90,10); /*繪制數(shù)字時鐘的分隔符*/ setcolor(5); for(i=431;i=470;i+=39) for(j=317;j=324;j+=7) setlinestyle(0,0,3); circle(i,j,1); /*繪制表示小時的圓點(diǎn)*/ for(i=0,m=0,h=0;i=11;i+,h+) x=100*sin(h*60+m)/360*PI
10、)+451; y=200-100*cos(h*60+m)/360*PI); setlinestyle(0,0,3); setcolor(5); circle(x,y,1); /*繪制表示分針或秒針的圓點(diǎn)*/ setcolor(3); for(i=0,m=0;i28) n=0; /*利用此循環(huán),延時一秒*/ while(t0.ti_sec=s&t0.ti_min=m&t0.ti_hour=h) gettime(t); if(bioskey(1)!=0) k=bioskey(0); /*數(shù)字時鐘的秒針*/ setcolor(15); digitclock(485,318,digitsec(s)+1
11、); /*用原來的顏色在原來位置再繪制秒針,清除當(dāng)前秒針*/ setcolor(12); x2=98*sin(s/30*PI)+451; y2=200-98*cos(s/30*PI); line(451,200,x2,y2); /*分針處理*/ if(t0.ti_min!=m) /*消除當(dāng)前分針*/ setcolor(15); x1=80*sin(m/30*PI)+451; y1=200-80*cos(m/30*PI); line(451,200,x1,y1); /*繪制新的分針*/ m=t0.ti_min; digitclock(446,318,digitmin(m); /*在數(shù)字時鐘中顯示
12、新的鐘值*/ x1=80*sin(m/30*PI)+451; y1=200-80*cos(m/30*PI); line(451,200,x1,y1); /*小時處理*/ if(t0.ti_hour*60+t0.ti_min)!=(h*60+m) /*消除當(dāng)前時針*/ setcolor(15); x=50*sin(h*60+m)/360*PI)+451; y=200-50*cos(h*60+m)/360*PI); line(451,200,x,y); /*繪制新的時針*/ h=t0.ti_hour; digitclock(408,318,digithour(h); x=50*sin(h*60+m
13、)/360*PI)+451; y=200-50*cos(h*60+m)/360*PI); line(451,200,x,y); /*在指定位置顯示數(shù)字時鐘*/ void digitclock(int x,int y,int clock) char bufferl10; setfillstyle(0,2); bar(x,y,x+15,328); /*畫一個二維碼*/ if(clock=60) clock=0; sprintf(bufferl,%d,clock); outtextxy(x,y,bufferl); /*將double型的小時數(shù)轉(zhuǎn)換成int型*/ int digithour(doubl
14、e h) int i; for(i=0;i=23;i+) if(h=i) return i; /*將double型的分針數(shù)轉(zhuǎn)換成int型*/ int digitmin(double m) int i; for(i=0;i=59;i+) if(m=i) return i; /*將double型的秒鐘數(shù)轉(zhuǎn)換成int型*/ int digitsec(double s) int i; for(i=0;i=59;i+) if(s=i) return i; /*滾動的字幕*/ void abc() int n,size,q=0; static int startx=5; static int starty=10; setbkcolor(1); while(q10) q=q+1; for(n=1;n=35;n+) cleardevice(); setcolor(2); setlinestyle(0,0,1); setfillstyle(1,10); rectangle(startx+n*step,starty+n*step,startx+n*step+160,starty+n*step+80); /*繪制矩形*/ floodfill(startx+n*step+10,starty+n*step+20,2); settextstyle(1,0,2
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度掛車銷售售后服務(wù)合同
- 2025年度環(huán)保產(chǎn)業(yè)股份轉(zhuǎn)讓與環(huán)保技術(shù)許可合同
- 2025年度廣告公司廣告宣傳品設(shè)計合同
- 2025年度海洋運(yùn)輸貨物保險與海洋環(huán)境保護(hù)合同
- 2025年度股東擔(dān)保房產(chǎn)抵押借款合同范本
- 2025年度智能消防系統(tǒng)研發(fā)與應(yīng)用項目合同
- 二零二四汽車掛靠租賃合同環(huán)境保護(hù)與可持續(xù)發(fā)展范本3篇
- 2025年度金融科技高峰論壇會務(wù)服務(wù)合同協(xié)議書
- 2025年度廣告公司創(chuàng)意設(shè)計團(tuán)隊勞動合同
- 二零二四淘寶合作商家售后服務(wù)保障合同
- (新版)工業(yè)機(jī)器人系統(tǒng)操作員(三級)職業(yè)鑒定理論考試題庫(含答案)
- 教育環(huán)境分析報告
- 人力資源服務(wù)公司章程
- (正式版)CB∕T 4552-2024 船舶行業(yè)企業(yè)安全生產(chǎn)文件編制和管理規(guī)定
- 病案管理質(zhì)量控制指標(biāo)檢查要點(diǎn)
- 2024年西藏中考物理模擬試題及參考答案
- 九型人格與領(lǐng)導(dǎo)力講義
- 人教版五年級上冊數(shù)學(xué)脫式計算練習(xí)200題及答案
- 卵巢黃體囊腫破裂教學(xué)查房
- 醫(yī)院定崗定編
- 2023年大學(xué)物理化學(xué)實(shí)驗報告化學(xué)電池溫度系數(shù)的測定
評論
0/150
提交評論