C語言課程設(shè)計(jì)說明書電子時(shí)鐘_第1頁(yè)
C語言課程設(shè)計(jì)說明書電子時(shí)鐘_第2頁(yè)
C語言課程設(shè)計(jì)說明書電子時(shí)鐘_第3頁(yè)
C語言課程設(shè)計(jì)說明書電子時(shí)鐘_第4頁(yè)
C語言課程設(shè)計(jì)說明書電子時(shí)鐘_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、23 課程設(shè)計(jì)說明書課程設(shè)計(jì)名稱 c語言課程設(shè)計(jì) 課程設(shè)計(jì)題目 電子時(shí)鐘 學(xué)院名稱 信息工程學(xué)院 專業(yè)名稱 計(jì)算機(jī)科學(xué)與技術(shù) 班級(jí) 090451 學(xué)號(hào)09045131 姓名 評(píng)分_指導(dǎo)教師 目錄1.設(shè)計(jì)課題32.設(shè)計(jì)目的.33.設(shè)計(jì)內(nèi)容34.總體設(shè)計(jì).3(1)系統(tǒng)結(jié)構(gòu)圖.4(2)數(shù)據(jù)結(jié)構(gòu).5.5.詳細(xì)設(shè)計(jì).5(1)電子時(shí)鐘執(zhí)行主流程.5(2)歡迎界面.6(3)電子時(shí)鐘顯示.7(4)時(shí)鐘按鍵控制模塊.8(5)時(shí)鐘動(dòng)畫處理模塊.8(6)數(shù)字時(shí)鐘處理模塊.9(7)漢字處理模塊96.調(diào)試分析.97.課程設(shè)計(jì)總結(jié)和心得體會(huì).108.參考文獻(xiàn).12附錄:(源代碼)12一 .設(shè)計(jì)課題:電子時(shí)鐘課程設(shè)計(jì)二.設(shè)

2、計(jì)目的:本程序中涉及時(shí)間結(jié)構(gòu)體,數(shù)組、繪圖等方面的知識(shí),通過本程序的訓(xùn)練,使我們有一個(gè)更深刻的了解,掌握利用c語言相關(guān)函數(shù)開發(fā)電子時(shí)鐘的基本原理,為進(jìn)一步開發(fā)高質(zhì)量的程序打下堅(jiān)實(shí)的基礎(chǔ)。提高運(yùn)用c語言解決實(shí)際問題的能力。三.設(shè)計(jì)內(nèi)容 (1) 歡迎界面,以一個(gè)笑臉開始 (2)主界面,包括數(shù)字時(shí)鐘和電子時(shí)鐘和按鍵提示。(3)設(shè)計(jì)者介紹和功能提示。四.總體設(shè)計(jì) 電子時(shí)鐘是針對(duì)人們判斷時(shí)間的落后和不準(zhǔn)確性,通過利用計(jì)算機(jī)來實(shí)行對(duì)時(shí)間的系統(tǒng)計(jì)算,增加了準(zhǔn)確性。在軟件的總體設(shè)計(jì)中采用自上而下,逐步細(xì)化,模塊化設(shè)計(jì),結(jié)構(gòu)化編碼方式進(jìn)行。(1) 系統(tǒng)結(jié)構(gòu)圖 (2) 數(shù)據(jù)結(jié)構(gòu)a. time結(jié)構(gòu)圖struct t

3、ime unsigned char ti-min;unsigned char ti-hour;unsigned char ti-sec;數(shù)據(jù)成員 時(shí) 分 秒成員類型字符型字符型 字符型b全局變量下面對(duì)程序用到的全局變量及數(shù)組進(jìn)行說明。l double h,m,s;此三個(gè)全局變量分別用來保存小時(shí)、分鐘、秒數(shù)。l double x,x1,x2,y,y1,y2;保存數(shù)字時(shí)鐘中小時(shí)、分、秒在屏幕中顯示的坐標(biāo)值。l struct time t:定義一個(gè)time結(jié)構(gòu)類型的結(jié)構(gòu)體變量。五.詳細(xì)設(shè)計(jì)(1)電子時(shí)鐘執(zhí)行主流程首先,程序調(diào)用initgraph()函數(shù),使系統(tǒng)進(jìn)入圖像模式,然后通過使用line(),

4、arc(),outtextxy(),和circle()等函數(shù)來繪制主窗口及電子時(shí)鐘界面,然后調(diào)用clockhandle()函數(shù)來處理時(shí)鐘的運(yùn)轉(zhuǎn)及數(shù)字時(shí)鐘的顯示。在clcockhandle()函數(shù)中,使用bioskeu()函數(shù)來獲取用戶的按鍵值,當(dāng)用戶按鍵為esc時(shí),程序會(huì)從clockhandle()函數(shù)中返回,從而退出程序。如左圖。(2)歡迎界面利用畫圖函數(shù)circle(),arc()及outtextxy()來畫歡迎界面和歡迎辭。(3) 電子時(shí)鐘顯示電子時(shí)鐘界面的難度主要在于模擬時(shí)鐘運(yùn)轉(zhuǎn)的動(dòng)畫時(shí)鐘的時(shí)間刻度是用大小不同的圓來表示的,3根長(zhǎng)度不同的但有一端在相同坐標(biāo)位置的直線分別表示時(shí)、分、秒針

5、。(4) 時(shí)鐘按鍵控制模塊在按鍵控制模塊中,使用bioskey()函數(shù)來讀取按鍵的鍵值,然后調(diào)用keyhandle()函數(shù)對(duì)鍵盤按鍵值進(jìn)行判斷,執(zhí)行相應(yīng)的操作,具體操作如下:a. tab鍵是用來清除上一個(gè)光標(biāo),然后再新位置處繪制一個(gè)光標(biāo)。b. 光標(biāo)上移鍵是用來增加相應(yīng)的時(shí)、分、秒值。c. 光標(biāo)下移鍵是用來減少相應(yīng)的時(shí)、分、秒值。d. esc鍵是用來結(jié)束程序的。(5) 時(shí)鐘動(dòng)畫處理模塊 先通過坐標(biāo)點(diǎn)的計(jì)算再做好時(shí)鐘動(dòng)畫處理流程,最后退出程序。(6) 數(shù)字時(shí)鐘處理模塊在數(shù)字時(shí)鐘處理模塊中,會(huì)每隔一秒調(diào)用gettime()函數(shù),獲取系統(tǒng)時(shí)間,再調(diào)用digitclock()函數(shù)再相應(yīng)的位置顯示時(shí)、分、

6、秒值。數(shù)字的修改有當(dāng)前光標(biāo)的位置和上、下移鍵共同決定的。(7)漢字處理模塊運(yùn)用點(diǎn)陣法,調(diào)用drawmat()函數(shù)實(shí)現(xiàn)。六.調(diào)試分析在此次課程設(shè)計(jì)中,遇到了一些問題,通過老師的指導(dǎo)和組員之間的協(xié)作,最后都解決了問題。a. 要減少調(diào)試時(shí)間首先要害死程序?qū)懗鰜淼恼Z法錯(cuò)誤少,那就喲啊養(yǎng)成良好的習(xí)慣,比如寫主函數(shù)main()后寫了左花括號(hào)“”馬上補(bǔ)右括號(hào)“”等等。b. 另一個(gè)重要的方面就是數(shù)據(jù)的類型一定要對(duì)應(yīng),還有格式也非常重要,在寫程序時(shí)一定要注意。c. 函數(shù)功能描述七課程設(shè)計(jì)總結(jié)和心得體會(huì)1. 通過這次課程設(shè)計(jì),加強(qiáng)了我們動(dòng)手、思考和解決問題的能力。而且在設(shè)計(jì)過程中,經(jīng)常會(huì)遇到這樣那樣的情況,就是心

7、里想老著這樣的接法可以行得通,經(jīng)過老師一點(diǎn)撥就放棄了這種想法。2. 我沉得做課程設(shè)計(jì)同時(shí)也是對(duì)課本知識(shí)的鞏固和加強(qiáng),由于課本上的知識(shí)太多,平時(shí)課間的學(xué)習(xí)并不能很好的理解和運(yùn)用各個(gè)函數(shù)的功能,而且考試內(nèi)容有限,所以在這次課程設(shè)計(jì)過程中,我們了解了很多函數(shù)的功能,并且對(duì)于其在程序中的使用有了更多的認(rèn)識(shí)。3.平時(shí)看課本時(shí),有時(shí)問題老是弄不懂,做完課程設(shè)計(jì),那些問題就迎刃而解了。而且還可以記住很多東西。比如一些程序功能的實(shí)現(xiàn),平時(shí)看課本,這次看了,下次就忘了,通過動(dòng)手實(shí)踐讓我們對(duì)各個(gè)函數(shù)印象深刻。認(rèn)識(shí)來源于實(shí)踐,實(shí)踐是認(rèn)識(shí)的動(dòng)力和最終目的,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。所以這兩個(gè)星期的課程設(shè)計(jì)對(duì)我們的作用

8、是非常大的。經(jīng)過兩個(gè)星期的學(xué)習(xí),過程曲折可謂一語難盡。在此期間我們也失落過,也曾一度熱情高漲。從開始時(shí)滿富盛激情到最后汗水背后的復(fù)雜心情,點(diǎn)點(diǎn)滴滴無不令我回味無長(zhǎng)。此次課程設(shè)計(jì),學(xué)到了很多課內(nèi)學(xué)不到的東西,比如獨(dú)立思考解決問題,出現(xiàn)差錯(cuò)的隨機(jī)應(yīng)變,和與人合作共同提高,都受益非淺,今后的制作應(yīng)該更輕松,自己也都能扛的起并高質(zhì)量的完成項(xiàng)目。、在此,感謝于老師的細(xì)心指導(dǎo),也同樣謝謝其他各組同學(xué)的無私幫助!八參考文獻(xiàn)a. 姜靈芝等.c語言課程設(shè)計(jì)案例精編.北京:清華大學(xué)出版社.2008b. 胡景春等。大學(xué)生計(jì)算機(jī)課程實(shí)踐優(yōu)秀作品選編.南京:東南大學(xué)出版社.2010附錄(源代碼):/*頭文件,結(jié)構(gòu)體和汗

9、水聲明*/#include#include#include#include#define pi 3.1415926 /*定義常量*/#define up 0x4800 /*上移鍵:修改時(shí)間*/#define down 0x5000 /*下移鍵:修改時(shí)間*/#define esc 0x11b /*esc鍵:退出系統(tǒng)*/#define tab 0xf09 /*tab鍵:移動(dòng)光標(biāo)*/int keyhandle(int,int); /*鍵盤按鍵判斷,并調(diào)用相關(guān)函數(shù)處理*/int timeupchange(int); /*處理上移按鍵*/int timedownchange(int); /*處理下移按鍵

10、*/int digithour(double); /*將double型的小時(shí)數(shù)轉(zhuǎn)換成int型*/int digitmin(double); /*將double型的分鐘數(shù)轉(zhuǎn)換成int型*/int digitsec(double); /*將double型的秒鐘數(shù)轉(zhuǎn)換成int型*/void digitclock(int,int,int ); /*在指定位置顯示時(shí)鐘或分鐘或秒鐘數(shù)*/void drawcursor(int); /*繪制一個(gè)光標(biāo)*/void clearcursor(int); /*消除前一個(gè)光標(biāo)*/void clockhandle();/*時(shí)鐘處理*/double h,m,s; /*全局

11、變量:小時(shí)、分、秒*/double x,x1,x2,y,y1,y2; /*全局變量:坐標(biāo)值*/struct time t; /*定義一個(gè)結(jié)構(gòu)體變量*/void drawmat(char *mat,int matsize,int x,int y,int color); /*函數(shù)聲明*/ char shi16s=/* 以下是 時(shí) 的 16點(diǎn)陣宋體 字模,32 byte */ 0x00,0x10,0x00,0x10,0x7c,0x10,0x44,0x10, 0x47,0xfe,0x44,0x10,0x7c,0x10,0x45,0x10, 0x44,0x90,0x44,0x90,0x7c,0x10,0

12、x00,0x10, 0x00,0x10,0x00,0x10,0x00,0x50,0x00,0x20,;char jian16s=/* 以下是 間 的 16點(diǎn)陣宋體 字模,32 byte */ 0x20,0x00,0x13,0xfc,0x10,0x04,0x40,0x04, 0x47,0xe4,0x44,0x24,0x44,0x24,0x47,0xe4, 0x44,0x24,0x44,0x24,0x47,0xe4,0x40,0x04, 0x40,0x04,0x40,0x04,0x40,0x14,0x40,0x08,;char jiu16s=/* 以下是 就 的 16點(diǎn)陣宋體 字模,32 byte

13、 */ 0x10,0x20,0x08,0x28,0xff,0x24,0x00,0x24, 0x00,0x20,0x7f,0xfe,0x42,0x50,0x42,0x50, 0x7e,0x50,0x08,0x50,0x2c,0x50,0x2a,0x90, 0x4a,0x92,0x89,0x12,0x2a,0x0e,0x10,0x00,;char shia16s=/* 以下是 是 的 16點(diǎn)陣宋體 字模,32 byte */ 0x00,0x00,0x0f,0xf0,0x08,0x10,0x0f,0xf0, 0x08,0x10,0x0f,0xf0,0x00,0x00,0xff,0xfe, 0x01,

14、0x00,0x09,0x00,0x09,0xf8,0x09,0x00, 0x15,0x00,0x23,0x00,0x40,0xfe,0x00,0x00,;char sheng16s=/* 以下是 生 的 16點(diǎn)陣宋體 字模,32 byte */ 0x00,0x80,0x10,0xc0,0x10,0x80,0x10,0x88, 0x1f,0xfc,0x20,0x80,0x20,0x80,0x40,0x88, 0x9f,0xfc,0x00,0x80,0x00,0x80,0x00,0x80, 0x00,0x80,0x00,0x84,0x7f,0xfe,0x00,0x00,;char ming16s=

15、/* 以下是 命 的 16點(diǎn)陣宋體 字模,32 byte */ 0x01,0x00,0x02,0x80,0x04,0x40,0x08,0x20, 0x10,0x18,0x2f,0xee,0xc0,0x04,0x3e,0xf8, 0x22,0x88,0x22,0x88,0x22,0x88,0x3e,0x88, 0x22,0xb8,0x20,0x90,0x00,0x80,0x00,0x80,;char she16s=/* 以下是 設(shè) 的 16點(diǎn)陣宋體 字模,32 byte */ 0x40,0x00,0x21,0xf0,0x31,0x10,0x21,0x10, 0x01,0x10,0x01,0x10

16、,0xe2,0x0e,0x25,0xf8, 0x21,0x08,0x21,0x08,0x20,0x90,0x20,0x90, 0x28,0x60,0x30,0x90,0x23,0x0e,0x0c,0x04,;char ji16s=/* 以下是 計(jì) 的 16點(diǎn)陣宋體 字模,32 byte */ 0x40,0x20,0x20,0x20,0x30,0x20,0x20,0x20, 0x00,0x20,0xf3,0xfe,0x10,0x20,0x10,0x20, 0x10,0x20,0x10,0x20,0x10,0x20,0x12,0x20, 0x14,0x20,0x18,0x20,0x10,0x20,

17、0x00,0x20,;char zhe16s=/* 以下是 者 的 16點(diǎn)陣宋體 字模,32 byte */ 0x01,0x00,0x01,0x08,0x3f,0xec,0x01,0x10, 0x01,0x20,0x7f,0xfe,0x00,0x80,0x03,0x00, 0x07,0xf8,0x1c,0x08,0xe4,0x08,0x07,0xf8, 0x04,0x08,0x04,0x08,0x07,0xf8,0x04,0x08,;char liu16s=/* 以下是 劉 的 16點(diǎn)陣宋體 字模,32 byte */ 0x10,0x04,0x08,0x04,0x04,0x04,0x7f,0x

18、a4, 0x01,0x24,0x21,0x24,0x12,0x24,0x0a,0x24, 0x04,0x24,0x06,0x24,0x0a,0x24,0x11,0x04, 0x21,0x84,0x41,0x14,0x80,0x08,0x00,0x00,;char song16s=/* 以下是 松 的 16點(diǎn)陣宋體 字模,32 byte */ 0x10,0x10,0x10,0x90,0x10,0xd0,0xfe,0x90, 0x10,0x88,0x11,0x08,0x39,0x04,0x36,0x46, 0x54,0x64,0x50,0xc0,0x90,0x80,0x11,0x08, 0x12,

19、0x04,0x17,0xfe,0x10,0x04,0x10,0x00,;char yang16s=/* 以下是 楊 的 16點(diǎn)陣宋體 字模,32 byte */ 0x10,0x00,0x13,0xf8,0x10,0x10,0xfe,0x20, 0x10,0x40,0x10,0x80,0x39,0xfc,0x34,0x54, 0x54,0x94,0x50,0xa4,0x91,0x24,0x12,0x44, 0x10,0x84,0x11,0x04,0x10,0x14,0x10,0x08,;char wang16s=/* 以下是 望 的 16點(diǎn)陣宋體 字模,32 byte */ 0x10,0x00,

20、0x08,0xfc,0xfe,0x84,0x20,0xfc, 0x20,0x84,0x24,0xfc,0x28,0x84,0x31,0x1c, 0x00,0x00,0x3f,0xfc,0x01,0x00,0x1f,0xf8, 0x01,0x00,0x01,0x00,0x7f,0xfe,0x00,0x00,;char zhan16s=/* 以下是 占 的 16點(diǎn)陣宋體 字模,32 byte */ 0x02,0x00,0x02,0x00,0x02,0x00,0x03,0xfc, 0x02,0x00,0x02,0x00,0x02,0x00,0x3f,0xf0, 0x20,0x10,0x20,0x10

21、,0x20,0x10,0x20,0x10, 0x20,0x10,0x3f,0xf0,0x20,0x10,0x00,0x00,;char li16s=/* 以下是 麗 的 16點(diǎn)陣宋體 字模,32 byte */ 0x00,0x00,0xff,0xfe,0x00,0x00,0x00,0x00, 0x7e,0xfc,0x42,0x84,0x42,0xc4,0x62,0xa4, 0x52,0xb4,0x5a,0xa4,0x52,0x84,0x42,0x84, 0x42,0x84,0x4e,0xbc,0x44,0x88,0x00,0x00,;char qin16s=/* 以下是 琴 的 16點(diǎn)陣宋體

22、字模,32 byte */ 0x00,0x00,0x7e,0xfe,0x08,0x10,0x3e,0x7c, 0x08,0x10,0x7e,0xfe,0x01,0x00,0x02,0x80, 0x0c,0x60,0x31,0x1e,0xc0,0x84,0x0f,0xf0, 0x00,0x20,0x00,0x40,0x00,0x80,0x00,0x00,;void draw() outtextxy(230,310,tab : cursor move); outtextxy(230,325,up : time +); outtextxy(230,340,down: time -); outtextxy(230,355,esc : quit system!); d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論