下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、中南大學(xué)本科生課程設(shè)計(jì)(實(shí)踐)任務(wù)書、設(shè)計(jì)報(bào)告(C+程序設(shè)計(jì))題 目時(shí)鐘控件學(xué)生指導(dǎo)教師學(xué) 院交通運(yùn)輸工程學(xué)院專業(yè)班級(jí)學(xué)生學(xué)號(hào)電腦基礎(chǔ)教學(xué)實(shí)驗(yàn)中心20122012 年 9 9 月 7 7 日C+程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)任務(wù)書對(duì)象:粉冶、信息、能源、交通工程實(shí)驗(yàn)2101學(xué)生 時(shí)間:2012.6 2周1819周 指導(dǎo)教師:王小玲1.課程設(shè)計(jì)的任務(wù)、性質(zhì)與目的本課程設(shè)計(jì)是在學(xué)完C+程序設(shè)計(jì)基礎(chǔ)課程后,進(jìn)行的一項(xiàng)綜合程序設(shè)計(jì)。在設(shè)計(jì) 當(dāng)中學(xué)生綜合 “面向?qū)ο蟪绦蛟O(shè)計(jì)與結(jié)構(gòu)化程序設(shè)計(jì)” 的思想方法和知識(shí)點(diǎn), 編制一個(gè)小型 的應(yīng)用程序系統(tǒng)。 通過此設(shè)計(jì)進(jìn)一步提高學(xué)生的動(dòng)手能力。 并能使學(xué)生清楚的知道開發(fā)一個(gè)
2、管理應(yīng)用程序的思想、方法和流程。2.課程設(shè)計(jì)的配套教材及參考書C+程序設(shè)計(jì),鐵道出版社,主編 楊長(zhǎng)興 劉衛(wèi)國(guó) 。C+程序設(shè)計(jì)實(shí)踐教程 ,鐵道出版社,主編 劉衛(wèi)國(guó) 楊長(zhǎng)興。Visual C+課程設(shè)計(jì)案例精編 ,中國(guó)水力電力出版社,嚴(yán)華峰等編著。3.課程設(shè)計(jì)的內(nèi)容及要求(1) 自己任選一個(gè)題目進(jìn)行開發(fā)如畫筆、游戲程序、練習(xí)打字軟件等 ,要求 利用MFC工具操作實(shí)現(xiàn)。(2) 也可選一個(gè)應(yīng)用程序管理系統(tǒng)課題如:通訊錄管理系統(tǒng);產(chǎn)品入庫查詢 系統(tǒng);學(xué)生成績(jī)管理;圖書管理等 ;設(shè)計(jì)所需數(shù)據(jù)庫及數(shù)據(jù)庫中的數(shù)據(jù)表,建立表之間的關(guān)系。 設(shè)計(jì)所選課題的系統(tǒng)主封面系統(tǒng)開發(fā)題目、作者、指導(dǎo)教師、日期 。 設(shè)計(jì)進(jìn)入系統(tǒng)
3、的各級(jí)口令如系統(tǒng)管理員口令,用戶級(jí)口令 。設(shè)計(jì)系統(tǒng)的主菜單。要求具備以下基本功能:數(shù)據(jù)的瀏覽和查詢 數(shù)據(jù)的統(tǒng)計(jì) 數(shù)據(jù)的各種報(bào)表 打印輸出 幫助系統(tǒng)多種形式的窗體設(shè)計(jì)至少有查詢窗體、輸入窗體注意:開發(fā)的應(yīng)用程序工作量應(yīng)保證在2周時(shí)間完成,工作量不能太少 或太多??梢?人合作,但必須將各自的分工明確。4.寫出設(shè)計(jì)論文 論文基本內(nèi)容及撰寫順序要求:內(nèi)容摘要 系統(tǒng)開發(fā)設(shè)計(jì)思想 系統(tǒng)功能及系統(tǒng)設(shè)計(jì)介紹 系統(tǒng)開發(fā)的體會(huì)論文基本格式要求: 封面,見附件1正文,見附件2考核方式與評(píng)分方法 出勤考核成績(jī)占總成績(jī)20%。 設(shè)計(jì)成果評(píng)價(jià)總總成績(jī)的60%。 實(shí)踐論文評(píng)價(jià)占總成績(jī)的20%。2012年6月6日時(shí)鐘控件摘要
4、:使用vc+6.0編寫一個(gè)模擬時(shí)鐘程序, 此程序在屏幕左方有一 個(gè)指針式鐘面,右方有兩個(gè)矩形框,上面以數(shù)字方式顯示日期和時(shí)間, 該時(shí)間應(yīng)與指針顯示的時(shí)間一致, 下方的矩形框作為秒表。 用菜單項(xiàng) 選擇項(xiàng)或按鈕設(shè)置時(shí)間和秒表。 時(shí)間不必與機(jī)器系統(tǒng)時(shí)間相同, 可任 意設(shè)置。關(guān)鍵詞:C+程序設(shè)計(jì)、mfc.exe、面向?qū)ο蟆r(shí)鐘、秒表僅供參考一、時(shí)鐘程序開發(fā)設(shè)計(jì)思想該程序設(shè)計(jì)主要涉及到的知識(shí)點(diǎn)有: 時(shí)鐘指針運(yùn)動(dòng)算法、 屏幕重 繪方法、定時(shí)器消息、鼠標(biāo)消息、菜單命令、對(duì)話框、畫筆/畫刷、 顯示文字、 修改程序圖標(biāo)等。 其中最關(guān)鍵的是指針運(yùn)動(dòng)算法和屏幕重 繪方法的應(yīng)用。其中,在設(shè)計(jì)表盤指針的時(shí)候,由于不管何
5、種指針,每次轉(zhuǎn)動(dòng)均以n/30弧度一秒的角度為基本單位,且都以表盤中心為轉(zhuǎn)動(dòng)圓 心。計(jì)算指針端點(diǎn)x, y的公式如下:x =圓心x坐標(biāo)+指針長(zhǎng)度* cos (指針方向角)y =圓心y坐標(biāo)+指針長(zhǎng)度* sin (指針方向角)而指針長(zhǎng)度是指自圓心至指針一個(gè)端點(diǎn)的長(zhǎng)度 是整個(gè)指針的一 部分,由于指針可能跨越圓心,因此一個(gè)指針需要計(jì)算兩個(gè)端點(diǎn)。 另一方面, 三個(gè)指針的運(yùn)動(dòng)是相關(guān)聯(lián)的, 秒針轉(zhuǎn)一圈引起分針運(yùn)動(dòng)一 格,分針轉(zhuǎn)一圈引起時(shí)針運(yùn)動(dòng)一格, 因此需要使用一個(gè)定時(shí)器消息來 處理指針的運(yùn)動(dòng)。 假設(shè)用三個(gè)定時(shí)器消息分別處理時(shí)針、 分針和秒針 的運(yùn)動(dòng),就會(huì)使問題復(fù)雜化且不易實(shí)現(xiàn)三個(gè)指針聯(lián)動(dòng)的正確規(guī)律。 采 用一
6、個(gè)定時(shí)器消息可以很容易實(shí)現(xiàn)指針聯(lián)動(dòng)算法。 代碼的編寫當(dāng)中可 以使用我們所學(xué)過的if語句來實(shí)現(xiàn)指針的聯(lián)動(dòng)。由于屏幕的重繪速度很快50 ms一次,如果采用全屏刪除式 重繪則閃爍十分明顯,顯示效果不佳。本程序采用非刪除式重繪,假 定指針將要移動(dòng)一格,則先采用背景色這里是白色重繪原來指針 以刪除原來位置的指針, 再采用指針的顏色在當(dāng)前位置繪制指針; 如 果指針沒有動(dòng),則直接繪制指針。另外,秒表采用的是單獨(dú)的定時(shí)器消息控制。二、時(shí)鐘功能及程序設(shè)計(jì)介紹1、系統(tǒng)功能介紹1左邊部分是一個(gè)圓形表盤,右邊部分上面是一個(gè)數(shù)字式時(shí) 鐘,右邊下面是一個(gè)秒表。2圓形表盤時(shí)針、分針而后秒針運(yùn)動(dòng)規(guī)律正確且即使重合在 一起也能
7、清楚的進(jìn)行識(shí)別; 數(shù)字式時(shí)鐘可以顯示年、 月、日、時(shí)、分、 秒等數(shù)據(jù)。時(shí)間顯示與指針式時(shí)鐘顯示一致; 秒表顯示窗中顯示從0開始的時(shí)間, 單位為百分之一秒。再次按下秒表控制按鈕后計(jì)時(shí)停止, 該窗口顯示累計(jì)時(shí)間。3按下設(shè)置時(shí)間菜單項(xiàng)可彈出一對(duì)話框,用于設(shè)置當(dāng)前的時(shí) 間和日期。4具有一個(gè)美觀大方的圖標(biāo)和個(gè)性的幫助信息。2、程序設(shè)計(jì)介紹1首先在mfc AppWizard中生成一個(gè)名為Clock的單文檔程 序框架。然后在classview中修改cclockapp中l(wèi)nitlnstance中 的代碼, 去掉單文檔窗口中上面和下面部分的工具欄, 使得界面更加 美觀。然后修改resourceview中dial
8、og和version下面的信息, 添 加、修改程序的圖標(biāo)與定制個(gè)性化的幫助信息。2編輯項(xiàng)目的菜單資源,在主框架窗口的主菜單 IDR_MAINFRAM沖添加一個(gè)名為“時(shí)鐘控制”的下拉菜單。在“時(shí) 鐘控制”菜單中添加三個(gè)菜單項(xiàng)選擇項(xiàng)“啟動(dòng)時(shí)鐘” 、 “停止時(shí)鐘”和 “時(shí)間設(shè)置”。 并在菜單屬性項(xiàng)中設(shè)定“啟動(dòng)時(shí)鐘”菜單的ID標(biāo)號(hào)為ID_START“停止時(shí)鐘”菜單的ID標(biāo)號(hào)為ID_STOP“時(shí)間設(shè)置”菜 單的ID標(biāo)號(hào)為ID_SETTIME。3利用ClassWizard為視圖類添加菜單命令處理函數(shù)。進(jìn)入僅供參考ClassWizard的Message Maps選項(xiàng)卡,選擇Class Name項(xiàng)為CCIoc
9、kView類, 在Object IDs列表框中分別選擇新添加的菜單項(xiàng)選 擇項(xiàng)的ID, 在Messages列表框中選擇COMMAND按下Add Function按鈕添加成員函數(shù)。ClassWizard會(huì)為“啟動(dòng)時(shí)鐘”、“停止時(shí)鐘”和 “時(shí)間設(shè)置”菜單項(xiàng)選擇項(xiàng)添加相應(yīng)的消息響應(yīng)函數(shù)OnStart ( )、OnStop ( )和OnSettime ( )。4利用ClassWizard為視圖類添加定時(shí)器和鼠標(biāo)消息處理函 數(shù)。進(jìn)入ClassWizard的MessageMaps選項(xiàng)卡,選擇Class Name項(xiàng) 為CClockView類,在Messages列表框中分別選擇定時(shí)器消息WM_TIME和鼠標(biāo)消息
10、WM_LBUTIONDOWN下Add Function按鈕添加 成員函數(shù)。ClassWizard會(huì)添加相應(yīng)的定時(shí)器和鼠標(biāo)消息響應(yīng)函數(shù)On Timer和On LButto nDown5使用Developer Studio菜單的Insert / Resource選項(xiàng)調(diào)出Insert Source對(duì)話框,為項(xiàng)目添加新的對(duì)話框資源。在對(duì)話框 屬性中,修改對(duì)話框名為“時(shí)間設(shè)定”。在對(duì)話框中增加用來輸入年、 月、日、時(shí)、分、秒的編輯框控件。并通過控件屬性,將年、月、日、 時(shí)、分、秒等編輯控件的ID改為IDC_YEAR IDC_MONTHIDC_DAY IDC_HOURIDC_MINUT和IDC_SECON
11、D6設(shè)計(jì)好這個(gè)對(duì)話框模板后,利用ClassWizard自動(dòng)建立對(duì) 話框類。進(jìn)入ClassWizard后,它會(huì)發(fā)現(xiàn)已建立的對(duì)話框模板資源, 并彈出一個(gè)對(duì)話框詢問是否要為該對(duì)話框模板建立類。按下“OK按鈕,會(huì)彈出New Class對(duì)話框,在Name欄填寫對(duì)話框類的名稱CSetTimeDIg后按“OK按鈕,即可為對(duì)話框創(chuàng)建一個(gè)對(duì)應(yīng)的類。7利用ClassWizard為對(duì)話框類添加與各控件對(duì)應(yīng)的數(shù)據(jù)成員。選擇Membervariables選項(xiàng)卡,確保Class Name項(xiàng)為對(duì)話框CSetTimeDlg類,然后在選項(xiàng)卡下方的窗口中選擇各控件的ID并按下“Add Variable”按鈕,為其添加對(duì)應(yīng)成員變量
12、,如下表所示。編輯控件屬性Co ntrolIDsVariable TypeMember variablen ameVariableRangeIDC_YEARintm_Year03000IDC_MONT卜1intm_Mouth112僅供參考IDC_DAYimtm_Day131IDC_HOURimtm_Hour023IDC_MINUTEintm_Mi nute059IDC_SECONDintm_Sec ond059最后一列為變量取值范圍。8完成以上工作后,即可修改程序框架,在關(guān)鍵部分添加必要的代碼來實(shí)現(xiàn)表盤的繪制、計(jì)時(shí)器的設(shè)置、指針的計(jì)算和屏幕的重 繪等要求。9組建、運(yùn)行、調(diào)試。最終效果圖3、程序
13、設(shè)計(jì)過程中遇到的問題以及解決方法1漏打字母。比方在前面clockView中添加的引用頭文件的語句中csettimedlg打成了csetimedlg,而頭文件是#in elude“SetTimeDIg. H,導(dǎo)致在組建調(diào)試的時(shí)候總是提示引用不到頭文件、 沒有這個(gè)文件,后來是一行行仔細(xì)檢查代碼的時(shí)候發(fā)現(xiàn)的。2錯(cuò)打符號(hào)。在clockview.cpp中添加代碼的時(shí)候,有個(gè)AFX_DATA_INIT(CSetTimeDlg)/ AFX_DATA_INIT當(dāng)中的和打if汕0; 11-口*1口 * * o *flit成了|,結(jié)果導(dǎo)致后面設(shè)定初始時(shí)間的代碼無法找到對(duì)應(yīng)的 頭文件。這是我通過比照其他沒有修改過的
14、原來就存在的函數(shù)的格式 發(fā)現(xiàn)并改正的。 這件事也讓我糾正了原來一直有的一個(gè)誤區(qū),/符號(hào) 后面的不一定只有對(duì)代碼無任何影響的注釋。3窗口大小設(shè)置的問題。我通過movewindow函數(shù)來設(shè)置窗口 大小,但是總是沒有成功, 后來考慮到窗口大小對(duì)程序的正常使用沒 有多大影響, 而且設(shè)置了窗口大小的話, 就不好確定表盤右邊秒表方 框的位置了, 所以這件事就不了了之了, 這也是本次程序設(shè)計(jì)過程當(dāng) 中的一大遺憾。4屏幕的重繪問題。存在兩個(gè)問題,第一個(gè)是本程序由于完 全在OnDraw函數(shù)中實(shí)現(xiàn), 因此屏幕重繪較為麻煩。 如果在On Darw函 數(shù)中采用“異或”屏幕重繪方式,在程序窗口最大、最小化及移出屏 幕時(shí)
15、,會(huì)顯示異常。通過查閱資料得知, 解決這一問題較理想的方式 是在定時(shí)器處理函數(shù)On Timer中采用“異或”方式直接重繪屏幕,而 不采用調(diào)用Inv alidate ()函數(shù)的方式;同時(shí)在OnDraw函數(shù)中顯示指針的最后狀態(tài), 以便處理程序窗口最大、 最小化及移出屏幕的情況。 第二個(gè)是采用全屏刪除式重繪則屏幕閃爍明顯, 顯示效果不佳。 可以 通過采用非刪除式重繪的方式來緩解這一現(xiàn)象。三、時(shí)鐘開發(fā)的體會(huì)這是我第一次使用mfc開發(fā)小程序,由于只是對(duì)vc+和mfc相 關(guān)的知識(shí)的掌握程度不是很咼,所以我在圖書館和網(wǎng)絡(luò)當(dāng)中查找了很 多相關(guān)的資料,但是甚至照著書本制作的過程當(dāng)中還是出現(xiàn)了很多問 題,使得我調(diào)試了很長(zhǎng)時(shí)間,才發(fā)現(xiàn)這是一件很費(fèi)精力的事情,這件 事使得我覺得程序開發(fā)是很不容易的,尤其是大型的程序。僅供參考另外,這次電腦課程設(shè)計(jì)不
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度文化創(chuàng)意企業(yè)間品牌推廣無償借款合同3篇
- 2024年度健身俱樂部教練服務(wù)合同3篇
- 2024年度珠寶首飾展覽服務(wù)合同2篇
- 2024年度專業(yè)CAD設(shè)計(jì)軟件銷售協(xié)議3篇
- 2024版養(yǎng)老養(yǎng)生社區(qū)代建與醫(yī)療配套服務(wù)合同范本3篇
- 2024年標(biāo)準(zhǔn)場(chǎng)地承包商業(yè)經(jīng)營(yíng)協(xié)議樣本版B版
- 2024年代駕服務(wù)合同:司機(jī)與公司的合作共贏3篇
- 2024年版權(quán)購買及許可協(xié)議
- 2024年度展會(huì)現(xiàn)場(chǎng)觀眾服務(wù)協(xié)議2篇
- 2024年度城市核心區(qū)商品房銷售代理服務(wù)協(xié)議9篇
- 燈具安裝施工組織設(shè)計(jì)(完整版)
- 上海市安全生產(chǎn)管理讀本試習(xí)題(考試專用)
- 馬克思主義基本原理第一章第一節(jié)
- AHP層次分析法-EXCEL表格自動(dòng)計(jì)算
- 計(jì)算機(jī)基礎(chǔ)認(rèn)識(shí)鍵盤鍵盤教程 (課堂PPT)
- SOP作業(yè)指導(dǎo)書模板
- 小學(xué)科學(xué)實(shí)驗(yàn)室儀器名稱匯總
- 威信旅行社團(tuán)體報(bào)價(jià)單
- 企業(yè)績(jī)效考核大全設(shè)計(jì)包裝人員績(jī)效考核
- TPRI設(shè)計(jì)常用模塊說明
- (完整版)倍長(zhǎng)中線法的應(yīng)用教案
評(píng)論
0/150
提交評(píng)論