版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 模擬時鐘行走 課程設(shè)計總體要求 采用模塊兒化程序設(shè)計; 鼓勵可視化編程; 源程序中有足夠的注釋; 學(xué)生可自行增加新功能模塊兒; 必須上機調(diào)試通過; 注重算法運用,優(yōu)化存儲效率與運算效率; 需提交源程序及相關(guān)文件;目錄1 課程任務(wù)書2 系統(tǒng)設(shè)計3 模塊設(shè)計3.1 總體結(jié)構(gòu) 3.2 流程圖3.3 使用的主要函數(shù)4 調(diào)試及測試 1、調(diào)試過程中的問題 2、調(diào)試結(jié)果5 設(shè)計總結(jié)6 心得體會及致謝7 答辯記錄8 教師意見一、課程設(shè)計任務(wù)書在屏幕上顯示一個活動時鐘;能模擬機械鐘表行走;準(zhǔn)確地利用數(shù)字顯示日期和時間;按任意鍵時程序退出。二、 系統(tǒng)設(shè)計總體結(jié)構(gòu):在繪圖窗口中先畫出表盤后獲取系統(tǒng)的時間,利用得到
2、的系統(tǒng)時間計算表針的位置,并將時間在屏幕上輸出。每隔一秒讀取一次時間,直到鍵盤有輸入為止。流程圖開始初始化繪畫窗口畫表盤 否檢測是否有鍵盤輸入 是獲取系統(tǒng)時間將時間轉(zhuǎn)化為字符并輸出計算表針位置畫表針結(jié)束使用的主要函數(shù):setlinestyle 設(shè)置畫線setcolor 設(shè)置顏色line(int x1,int y1,int x2,int y2) 畫直線circle(int x,int y,int r) 畫圓outtextxy(int x,int y,char *textstring) 在指定位置輸出字符initgraph(int x, int y); 初始化繪圖窗口setwritemode( )
3、; 設(shè)置繪圖模式kbhit() 檢查是否有鍵盤輸入GetLocalTime(&ti); 獲取當(dāng)前時間sleep() 程序暫停若干時間三、模塊設(shè)計主要模塊功能、源代碼及注釋:1.計算表針的位置并畫出表針void Drawzhizhen(int hour, int minute, int second) double a_hour, a_min, a_sec; / 時、分、秒針的弧度值 int x_hour, y_hour, x_min, y_min, x_sec, y_sec; / 時、分、秒針的位置 a_sec = second * 2 * PI / 60; / 計算時、分、秒針的弧度
4、值 a_min = minute * 2 * PI / 60 + a_sec / 60; a_hour= hour * 2 * PI / 12 + a_min / 12; x_sec = int(120 * sin(a_sec); y_sec = int(120 * cos(a_sec); /計算 時、分、秒針的位置 x_min = int(100 * sin(a_min); y_min = int(100 * cos(a_min); x_hour= int(70 * sin(a_hour); y_hour= int(70 * cos(a_hour); setlinestyle(PS_SOLI
5、D, NULL, 10); / 畫時針 setcolor(BLUE); line(300 + x_hour, 240 - y_hour, 300, 240 ); setlinestyle(PS_SOLID, NULL, 5);/ 畫分針 setcolor(GREEN); line(300 + x_min, 240 - y_min, 300, 240 ); setlinestyle(PS_SOLID, NULL, 2); / 畫秒針 setcolor(WHITE); line(300 + x_sec, 240 - y_sec, 300, 240 );2.畫表盤void Drawbiaopan()
6、 int i,l,x1,x2,y1,y2; setbkcolor(1); circle(300,240,180); circle(300,240,185); for(i=0;i<60;i+) /*劃鐘點上的短線*/ if(i%5=0) l=15; else l=5; x1=180*sin(i*6*PI/180)+300; y1=180*cos(i*6*PI/180)+240; x2=(180-l)*sin(i*6*PI/180)+300; y2=(180-l)*cos(i*6*PI/180)+240; line(x1,y1,x2,y2); outtextxy(300,80,"1
7、2") ; outtextxy(300,390,"6"); outtextxy(140,230,"9"); outtextxy(460,230,"3"); outtextxy(380,100,"1"); outtextxy(220,100,"11"); outtextxy(430,160,"2"); outtextxy(430,310,"4"); outtextxy(380,370,"5"); outtextxy(220,37
8、0,"7"); outtextxy(160,160,"10"); outtextxy(160,310,"8");3.將獲取的整數(shù)型時間變量轉(zhuǎn)換成字符型void ch1(int a,int x) /將年轉(zhuǎn)換成字符型并輸出char b,c,d,e;b=(char)(a/1000+48);c=(char)(a%1000)/100+48);d=(char)(a%100)/10+48);e=(char)(a%10+48);outtextxy(x,10,b);outtextxy(x+10,10,c);outtextxy(x+20,10,d);ou
9、ttextxy(x+30,10,e);void ch2(int a,int x) /其他時間轉(zhuǎn)換成字符型并輸出char b,c;b=(char)(a/10+48);c=(char)(a%10+48);outtextxy(x,10,b);outtextxy(x+10,10,c);主函數(shù):void main() initgraph(640, 480); / 初始化繪圖窗口 Drawbiaopan(); / 繪制表盤 setwritemode(R2_XORPEN); / 設(shè)置繪圖模式 SYSTEMTIME ti; / 定義ti保存當(dāng)前時間 while(!kbhit() / 按任意鍵退出鐘表程序 Ge
10、tLocalTime(&ti); / 獲取當(dāng)前時間 ch1(ti.wYear,10); outtextxy(50,10,"年"); /輸出時間 ch2(ti.wMonth,65); outtextxy(85,10,"月"); ch2(ti.wDay,100); outtextxy(120,10,"日"); ch2(ti.wHour,135); outtextxy(155,10,":"); ch2(ti.wMinute,165); outtextxy(185,10,":"); ch2(ti
11、.wSecond,195); Drawzhizhen(ti.wHour, ti.wMinute, ti.wSecond); / 畫表針 Sleep(1000); / 延時 1 秒 Drawzhizhen(ti.wHour, ti.wMinute, ti.wSecond); / 畫表針 closegraph(); / 關(guān)閉繪圖窗口四 調(diào)試及測試使用vc企業(yè)版進(jìn)行反復(fù)調(diào)試五 設(shè)計總結(jié)調(diào)試過程出現(xiàn)的問題:1.Vc+6.0中沒有“graphics.h”,安裝turboc.2.0中的函數(shù)庫EasyX后出現(xiàn)權(quán)限問題。解決辦法:安裝vc企業(yè)版解決權(quán)限問題,然后導(dǎo)入graphics.h。 2.無法獲取系統(tǒng)時間
12、 解決辦法:使用函數(shù)GetLocalTime( );并使用#include <time.h>聲明3Outtextxy()函數(shù)無法顯示整數(shù)型時間解決辦法:將整數(shù)型時間變量轉(zhuǎn)換為字符型再輸出六、心得體會及致謝 由于C語言沒有學(xué)過圖形方面的知識,很多東西都要去查資料。在設(shè)計的過程中遇到很多問題,都需要花很多時間去嘗試,去解決。這個程序總體來說不復(fù)雜,思路也簡單,編寫的過程中詢問了相關(guān)知識的專業(yè)人士,上網(wǎng)搜集很多前人所作的資料,查詢借閱圖書館的相關(guān)書籍,對自己在思維方面的幫助很大。參考文獻(xiàn)1.譚浩強著,C程序設(shè)計(第三版),北京:清華大學(xué)出版社。2. Gary J.Bronson著,劉勇譯,C+程序開發(fā)與設(shè)計(第二版)北京:人民郵電出版社3.朱站立編著,數(shù)據(jù)結(jié)構(gòu)使用C語言(第4版)北京:電子工業(yè)出版社4.譚浩強,張基溫,唐永炎編著,C語言程序設(shè)計教程,北京:高等教育出版社19925.譚浩強編著,C程序設(shè)計題解與上機指導(dǎo)(第二版),北京:清華大學(xué)出版社,19926.譚浩強編著,QBASIC語言教程,北京:電子工業(yè)出版社,19977.譚浩強編著,田數(shù)清編著,PASCAL語言程序設(shè)計(第
溫馨提示
- 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勞動合同法實施條例【全文】
- 2025國際技術(shù)服務(wù)合同
- 2025年開封考貨運資格證模擬試題
- 2025年河南貨物運輸從業(yè)資格考試答題模板
- 2025年湖州貨運從業(yè)資格證模擬考試
- 2025年百色貨運資格證考試真題
- 2025加工承攬合同的范本
- 上海外國語大學(xué)賢達(dá)經(jīng)濟(jì)人文學(xué)院《品牌戰(zhàn)略傳播》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025nba史上最大合同
- 2024-2025學(xué)年高二上學(xué)期期末數(shù)學(xué)試卷(基礎(chǔ)篇)(含答案)
- 直系親屬股權(quán)無償轉(zhuǎn)讓合同(2篇)
- 2023-2024學(xué)年廣東省廣州市白云區(qū)九年級(上)期末語文試卷
- 汽車吊籃使用專項施工方案
- 2024年典型事故案例警示教育手冊15例
- 中秋國慶慰問品采購?fù)稑?biāo)方案
- 110kV變電站及110kV輸電線路運維投標(biāo)技術(shù)方案(第二部分)
- 【打印版】2021年上海市浦東新區(qū)中考一模數(shù)學(xué)試卷及解析
- 【數(shù)據(jù)結(jié)構(gòu)】A類停車場管理系統(tǒng)
- 外貿(mào)參展攻略
- 心可寧膠囊作用機理探析
評論
0/150
提交評論