![C語言模擬時(shí)鐘轉(zhuǎn)動(dòng)課程設(shè)計(jì)報(bào)告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/801d13cf-57e9-432e-8472-1f83fa0d17a6/801d13cf-57e9-432e-8472-1f83fa0d17a61.gif)
![C語言模擬時(shí)鐘轉(zhuǎn)動(dòng)課程設(shè)計(jì)報(bào)告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/801d13cf-57e9-432e-8472-1f83fa0d17a6/801d13cf-57e9-432e-8472-1f83fa0d17a62.gif)
![C語言模擬時(shí)鐘轉(zhuǎn)動(dòng)課程設(shè)計(jì)報(bào)告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/801d13cf-57e9-432e-8472-1f83fa0d17a6/801d13cf-57e9-432e-8472-1f83fa0d17a63.gif)
![C語言模擬時(shí)鐘轉(zhuǎn)動(dòng)課程設(shè)計(jì)報(bào)告_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/801d13cf-57e9-432e-8472-1f83fa0d17a6/801d13cf-57e9-432e-8472-1f83fa0d17a64.gif)
![C語言模擬時(shí)鐘轉(zhuǎn)動(dòng)課程設(shè)計(jì)報(bào)告_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/801d13cf-57e9-432e-8472-1f83fa0d17a6/801d13cf-57e9-432e-8472-1f83fa0d17a65.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告題目: 模擬時(shí)鐘轉(zhuǎn)動(dòng)程序 班級(jí): 組別: 組員: 指導(dǎo)教師: 目錄第一章 課程設(shè)計(jì)的題目.21.1 C語言課程設(shè)計(jì)的題目.2第二章 課程設(shè)計(jì)的要求.22.1 C語言課程設(shè)計(jì)的要求.2第三章 課程設(shè)計(jì)的目的.23.1 C語言課程設(shè)計(jì)的目的.2第四章 課程設(shè)計(jì)的內(nèi)容.34.1 C語言課程設(shè)計(jì)的程序清單和注釋.3第五章 課程設(shè)計(jì)的運(yùn)行結(jié)果.75.1 C語言課程設(shè)計(jì)的運(yùn)行結(jié)果.7第六章 課程設(shè)計(jì)的結(jié)果分析.86.1 C語言課程設(shè)計(jì)的結(jié)果分析.8第七章 課程設(shè)計(jì)的心得體會(huì).97.1 C語言課程設(shè)計(jì)的心得體會(huì).9模擬時(shí)鐘轉(zhuǎn)動(dòng)程序第一章 課程設(shè)計(jì)的題目 C語言課程設(shè)計(jì)的題目 本次為
2、期兩周的課程設(shè)計(jì)的題目為設(shè)計(jì)一個(gè)模擬時(shí)鐘轉(zhuǎn)動(dòng)的程序。第二章 課程設(shè)計(jì)的要求2.1 C語言課程設(shè)計(jì)的要求能模擬機(jī)械鐘表行走;要準(zhǔn)確地利用數(shù)字顯示日期和時(shí)間;在屏幕上顯示一個(gè)活動(dòng)時(shí)鐘;程序界面設(shè)計(jì)合理,色彩得體大方,顯示正確;各指針運(yùn)動(dòng)規(guī)律正確;數(shù)字式時(shí)鐘的時(shí)間顯示與指針式時(shí)鐘顯示一致;按任意鍵時(shí)程序退出。第三章 課程設(shè)計(jì)的目的3.1 C語言課程設(shè)計(jì)的目的加深對(duì)講授內(nèi)容的理解,尤其是一些語法規(guī)定。通過課程設(shè)計(jì),自然地、熟練地掌握。熟悉所用的計(jì)算機(jī)系統(tǒng)的操作方法,也就是熟悉語言程序開發(fā)的環(huán)境。學(xué)會(huì)上機(jī)調(diào)試程序。第四章 課程設(shè)計(jì)的內(nèi)容4.1 C語言課程設(shè)計(jì)的程序清單和注釋模擬時(shí)鐘轉(zhuǎn)動(dòng)程序清單+注釋#i
3、nclude<windows.h> /包含窗口頭文件#include<math.h> /頭文件,包含了一些數(shù)學(xué)計(jì)算的函數(shù)#define TWOPI (2*3.14159)#define IDTIMER 1 /計(jì)時(shí)器ID#define ANGLE TWOPI/360 /2PILRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam ); /回調(diào)函數(shù)Int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, L
4、PSTR lpCmdLine,int nCmdShow ) / 應(yīng)用啟動(dòng)函數(shù)mian TCHAR szClassName = TEXT("analogCloc"); MSG msg; /定義消息 HWND hwnd; /窗口句柄 WNDCLASS wndclass; /系統(tǒng)支持結(jié)構(gòu),定義并初始化窗口結(jié)構(gòu) wndclass.cbClsExtra = 0; /窗口類無擴(kuò)展 wndclass.cbWndExtra = 0; /窗口勢(shì)力無擴(kuò)展 wndclass.hbrBackground = (HBRUSH):GetStockObject(WHITE_BRUSH);/窗口背景為白色
5、 wndclass.hCursor = NULL; wndclass.hIcon = NULL; wndclass.hInstance = hInstance; /當(dāng)前實(shí)例句柄 wndclass.lpfnWndProc = WindowProc; /關(guān)聯(lián)到消息回調(diào)函數(shù) wndclass.lpszClassName = szClassName; wndclass.lpszMenuName = NULL; /窗口中無菜單 wndclass.style = CS_HREDRAW | CS_VREDRAW ; /窗口重繪風(fēng)格 RegisterClass(&wndclass); hwnd Cre
6、ateWindow(szClassName,TEXT("Clock"),WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, NULL, NULL, hInstance, NULL); /創(chuàng)建窗口 ShowWindow(hwnd,nCmdShow); /顯示窗口 UpdateWindow(hwnd); /更新窗口,強(qiáng)制顯示 while(GetMessage(&msg,NULL,0,0) /函數(shù)GetMessage 是 從調(diào)用線程的消息隊(duì)列里取得一個(gè)消息并將其放于指
7、定的結(jié)構(gòu) TranslateMessage(&msg); /消息處理 DispatchMessage(&msg); /消息派遣 return maram; /windows應(yīng)用程序的消息循環(huán)形式void setISOTROPIC(HDC hdc,int cxClient,int cyClient)/設(shè)置映射模式,使之成為笛卡爾坐標(biāo)系的映射模式 SetMapMode(hdc,MM_ISOTROPIC); SetWindowExtEx(hdc,1000,1000,NULL); / 邏輯單位與設(shè)備單位比1/2 SetViewportExtEx(hdc,cxClient/2,-cyCl
8、ient/2,NULL); SetViewportOrgEx(hdc,cxClient/2,cyClient/2,NULL); /豎坐標(biāo)向上為正,下為負(fù)void drawClock(HDC hdc) / 畫時(shí)鐘圓盤 int x, y, radius; /以邏輯單位表示的窗口原點(diǎn)坐標(biāo) SelectObject(hdc,CreateSolidBrush(RGB(1,148,138);/設(shè)置整個(gè)窗口線條顏色 for(int i=0;i<360;i+=6) x = (int)(cos(TWOPI/360*i)*900); y = (int)(sin(TWOPI/360*i)*900); radi
9、us = !(i%5)?40:10; Ellipse(hdc,x-radius,y-radius,x+radius,y+radius);/ 把弧度制轉(zhuǎn)換成坐標(biāo)形式,Ellipse函數(shù)用來畫圓 void drawHands(HDC hdc,SYSTEMTIME *pst,BOOL hChange)/ draw hands函數(shù)負(fù)責(zé)繪制時(shí)鐘的時(shí)針、分針和秒針的輪廓 int radius3 = 500,700,850; int angle3; angle0 = pst->wHour*30+pst->wMinute/12*6; angle1 = pst->wMinute*6; angl
10、e2 = pst->wSecond*6; for(int i=hChange?0:2;i<3;i+) MoveToEx(hdc,0,0,NULL); LineTo(hdc,(int)(radiusi*cos(ANGLE*(90-anglei), (int)(radiusi*sin(ANGLE*(90-anglei); LRESULT CALLBACK WindowProc( HWND hwnd, UINT message, / 消息標(biāo)識(shí)符,標(biāo)識(shí)某個(gè)特定的消息 WPARAM wParam, LPARAM lParam ) /消息處理函數(shù) TCHAR time40; PAINTSTRU
11、CT ps; HDC hdc; static int cxClient, cyClient; SYSTEMTIME st; /定義結(jié)構(gòu)體變量 static SYSTEMTIME preSt; BOOL hChange; switch(message) /switch 語句 一個(gè)case代表一種情況 case WM_CREATE: / 窗口創(chuàng)建事件 SetTimer(hwnd,IDTIMER,1000,NULL); /創(chuàng)建一個(gè)1000ms定時(shí)器 GetLocalTime(&st); /得到當(dāng)前系統(tǒng)時(shí)間 wsprintf(time,TEXT("%d年%d月%d日%d時(shí)%d分%d秒
12、"), /記錄系統(tǒng)時(shí)間,包括年、月、日、時(shí)、分、秒 st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond); SetWindowText(hwnd,time); / 設(shè)置當(dāng)前時(shí)間為窗口title preSt = st; return 0; case WM_SIZE: cxClient = LOWORD(lParam); cyClient = HIWORD(lParam); return 0; case WM_TIMER: /定時(shí)器到時(shí),即是每隔一秒要重畫下界面 GetLocalTime(&st); /每次
13、都要獲取當(dāng)前時(shí)間 hChange = st.wHour!=preSt.wHour|st.wMinute!=preSt.wMinute; hdc = GetDC(hwnd); setISOTROPIC(hdc,cxClient,cyClient); SelectObject(hdc,GetStockObject(WHITE_PEN); drawHands(hdc,&preSt,hChange); SelectObject(hdc,GetStockObject(BLACK_PEN); drawHands(hdc,&st,TRUE); ReleaseDC(hwnd,hdc);wspr
14、intf(time,TEXT("%d年%d月%d日%d時(shí)%d分%d秒"),/記錄系統(tǒng)時(shí)間,包括年、月、日、時(shí)、分、秒st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond); SetWindowText(hwnd,time); /setwindowText函數(shù):系統(tǒng)里的函數(shù) preSt = st; / 更新完畢后記錄前一次的狀態(tài) return 0; case WM_KEYDOWN: case WM_CHAR: DestroyWindow(hwnd); / 關(guān)閉窗口return 0; case WM_PAI
15、NT: /窗口繪制消息 hdc = BeginPaint(hwnd,&ps); /開始繪制 setISOTROPIC(hdc,cxClient,cyClient); drawClock(hdc); drawHands(hdc,&preSt,TRUE); EndPaint(hwnd,&ps); /結(jié)束繪制 return 0; case WM_DESTROY: /程序退出消息 PostQuitMessage(0); return 0; return DefWindowProc(hwnd,message,wParam,lParam);/其他消息有系統(tǒng)默認(rèn)處理第五章 課程設(shè)計(jì)的運(yùn)行結(jié)果5.1 C語言課程設(shè)計(jì)的運(yùn)行結(jié)果第六章 課程設(shè)計(jì)的結(jié)果分析6.1 C語言課程設(shè)計(jì)的結(jié)果分析運(yùn)行結(jié)果分析問題 一:程序清單中某個(gè)符號(hào)添加錯(cuò)誤,導(dǎo)致編譯時(shí)出現(xiàn)錯(cuò)誤,執(zhí)行不出結(jié)果。分析:經(jīng)小組討論分析與搜索,源程序中符號(hào)“:”無意義,刪除程序清單中所有“:”符號(hào),在編譯時(shí),無錯(cuò)誤。問題 二:若直接建立一個(gè)C +文件,執(zhí)行時(shí)則找不到“”源文件,結(jié)果不能運(yùn)行出來。分析:在運(yùn)行VC +6.0時(shí),需要建立一個(gè)Win 32 application工程,然后再新建一個(gè)C +文件,輸
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度股東保密協(xié)議及企業(yè)風(fēng)險(xiǎn)管理合同
- 2025年度綠色建筑環(huán)保施工合同規(guī)范范本
- 漯河2024年河南漯河市臨潁縣事業(yè)單位招聘30人筆試歷年參考題庫附帶答案詳解
- 瀘州四川瀘州瀘縣氣象局見習(xí)基地招收見習(xí)人員2人筆試歷年參考題庫附帶答案詳解
- 江西2025年江西應(yīng)用工程職業(yè)學(xué)院招聘7人筆試歷年參考題庫附帶答案詳解
- 杭州浙江杭州西湖區(qū)住房和城鄉(xiāng)建設(shè)局招聘編外合同制工作人員筆試歷年參考題庫附帶答案詳解
- 2025年中國塑料保潔車市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國兒童塑料椅市場(chǎng)調(diào)查研究報(bào)告
- 2025至2031年中國雨敵行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國通PLUS1軟件行業(yè)投資前景及策略咨詢研究報(bào)告
- 交管12123學(xué)法減分題庫(含答案)
- 山東省濟(jì)南市槐蔭區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期期末語文試題(含答案)
- 北京市海淀區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 23G409先張法預(yù)應(yīng)力混凝土管樁
- 2025年廣西柳州市中級(jí)人民法院招錄聘用工作人員17人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年全國職業(yè)院校技能大賽高職組(研學(xué)旅行賽項(xiàng))考試題庫(含答案)
- 十八項(xiàng)核心制度
- 工程施工安全培訓(xùn)教育
- 2024年08月浙江2024渤海銀行杭州分行秋季校園招考筆試歷年參考題庫附帶答案詳解
- 2025年潔凈室工程師培訓(xùn):從理論到實(shí)踐的全面提升
- “德能勤績(jī)廉”考核測(cè)評(píng)表
評(píng)論
0/150
提交評(píng)論