




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Windows程序設(shè)計課程設(shè)計報告要求:1、必須在visual2010以上編程環(huán)境開發(fā)、從建工程開始開就在2010以上環(huán)境開發(fā),發(fā)現(xiàn)以前開發(fā)痕跡、視為抄襲!2、所有代碼必須自主完成、發(fā)現(xiàn)二人代碼相同的,視為相互抄襲!3、所有抄襲者,在本學期結(jié)束前重新驗收方才合格。4、選擇合適的課設(shè)題目,題目分值60分以上方可驗收。5、驗收完成后需提交課程設(shè)計報告。課程設(shè)計題2:設(shè)計一個簡單的通訊錄應(yīng)用程序(視圖方式)(30分)一、設(shè)計目標與內(nèi)容:了解Windows編程的基礎(chǔ)知識,掌握MFC應(yīng)用程序的基本知識;基本掌握面向?qū)ο蟪绦蛟O(shè)計的基本思路和方法;掌握用VC++開發(fā)應(yīng)用程序的的一般步驟和方法;學習掌握文檔視圖架構(gòu)學習掌握文檔序列化機制能夠利用所學的基本知識,設(shè)計一個簡單的通訊錄應(yīng)用程序,具有以下功能:①用文件來保存通訊錄信息(必須實現(xiàn)的功能)②編程實現(xiàn)通訊錄記錄的添加、刪除、修改、瀏覽和查詢(必須實現(xiàn)的功能)。二、功能描述:用VC++進行編碼,實現(xiàn)應(yīng)用程序的功能。注重編碼質(zhì)量,代碼要有適當?shù)淖⑨專徊捎脝挝臋n視圖框架編寫,列表視圖中顯示每個學生的通信信息通過菜單和工具條可以增加一條學生通信記錄可以刪除一條學生通信記錄采用序列化機制保存將學生信息保存到文件。利用序列化機制從文件中讀取學生信息,并顯示新建工程tongxunlu新建工程tongxunlu,默認選擇單文檔應(yīng)用程序,完成。程序運行后,界面如下在這里,我們可以看到通過我們單文檔視圖中菜單“通訊錄操作”可以進行相應(yīng)的學生信息的添加、刪除、修改、查詢。而這里,下來菜單中的每一個選項我們將通過對話框的形式進行呈現(xiàn)。為了便于對學生信息進行操作和保存,我們這里用到了結(jié)構(gòu)體。定義如下:structAbook{ CStringname; intnumber; intphone;};學生信息添加對話框給工程添加一個對話框,然后給該對話框建立類向?qū)砑覥Tianjia類CTianjiaCStringm_name:public intm_number:public intm_phone:public然后為菜單選項中“添加”選項添加響應(yīng)函數(shù)OnTianjia()。代碼如下:voidCtongxunluView::OnTianjia(){ /*CDC*pDC=NULL;*/ CtongxunluDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc); CTianjiaa; if(a.DoModal()==IDOK) { pDoc->A_bool[pDoc->i].name=a.m_name; pDoc->A_bool[pDoc->i].number=a.m_number; pDoc->A_bool[pDoc->i].phone=a.m_phone; pDoc->i++; pDoc->SetModifiedFlag(); pDoc->UpdateAllViews(NULL); this->Invalidate(); } UpdateData(false);}學生信息刪除對話框由于刪除學生信息前要查詢這個學生是否存在,所以這里我們要添加一個對話框類CShanchu().代碼如下:voidCtongxunluView::OnShanchu(){ //TODO:在此添加命令處理程序代碼 CtongxunluDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc); Shanchuc; intj=0; if(c.DoModal()==IDOK) { for(inti=0;i<10;i++) { if(pDoc->A_bool[i].number==c.m_number2) { j=1; pDoc->A_bool[i].name=pDoc->A_bool[i+1].name; pDoc->A_bool[i].number=pDoc->A_bool[i+1].number; pDoc->A_bool[i].phone=pDoc->A_bool[i+1].phone; } if(j==1&&i<9) { pDoc->A_bool[i].name=pDoc->A_bool[i+1].name; pDoc->A_bool[i].number=pDoc->A_bool[i+1].number; pDoc->A_bool[i].phone=pDoc->A_bool[i+1].phone; } if(i==9) { pDoc->A_bool[i].name=""; pDoc->A_bool[i].number=0; pDoc->A_bool[i].phone=0; } } pDoc->SetModifiedFlag(); pDoc->UpdateAllViews(NULL); this->Invalidate(); } UpdateData(false);}學生信息修改添加菜單選項中“修改”的響應(yīng)函數(shù)OnXiugai(),先調(diào)用對話框來判斷該學生是否存在,若存在則調(diào)用對話框?qū)W生信息進行修改若不存在則提示該學生不存在。代碼如下:voidCtongxunluView::OnXiugai(){ //TODO:在此添加命令處理程序代碼 CtongxunluDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc); CXiugaib; if(b.DoModal()==IDOK) { for(inti=0;i<10;i++) { if(pDoc->A_bool[i].number==b.m_xuehao1) { pDoc->A_bool[i].name=b.m_name1; pDoc->A_bool[i].phone=b.m_phone1; } } pDoc->SetModifiedFlag(); pDoc->UpdateAllViews(NULL); this->Invalidate(); } UpdateData(false);}學生信息查詢對話框?qū)W生信息查詢對話框和刪除學生信息對話框基本上是一樣的,都是通過查詢學生是否存在,若存在則顯示該學生的信息,若不存在則提示學生不存在。為菜單選項中的“查詢”添加相應(yīng)函數(shù)OnChaxun()代碼如下:voidCtongxunluView::OnChaxun(){ //TODO:在此添加命令處理程序代碼 CtongxunluDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc); Cchaxund; if(d.DoModal()==IDOK) { for(inti=0;i<10;i++) { if(pDoc->A_bool[i].name==d.m_name2) { pDoc->j=1; pDoc->k=i; } } pDoc->SetModifiedFlag(); pDoc->UpdateAllViews(NULL); this->Invalidate(); } UpdateData(false);}文檔和在視圖的關(guān)聯(lián)在Windows程序設(shè)計中,文檔和視圖的關(guān)聯(lián)是很重要的,所以我們要弄明白他們之間互動的機制。在這個程序中,我們每一次在文檔類里更改學生信息都要把信息傳遞到視圖里面進行更新,在這里我們會用到UpdateAllViews()函數(shù)通過這個函數(shù)把信息的改變傳遞給視圖,然后對視圖進行更新。UpdateAllViews函數(shù)的原型如下:voidUpdateAllViews(CView*pSender,LPARAMlHint=0L,CObiect*pHint=NULL);其中,參數(shù)pSender表示試圖指針,若在派生文檔類的成員函數(shù)中調(diào)用該函數(shù),側(cè)此參數(shù)應(yīng)為NULL,若被派生視圖中的成員函數(shù)調(diào)用,側(cè)此參數(shù)應(yīng)為this。lHint表示更新視圖是發(fā)送的相關(guān)消息,pHint表示存儲信息的對象指針。當UpdateAllViews函數(shù)被調(diào)用時,如果參數(shù)pSender指向某個特定的試圖對象,那么除了該指定的視圖之外,文檔的所有其他視圖的OnUpdate函數(shù)就會被調(diào)用。課程設(shè)計題目3:設(shè)計一個簡單的計算器應(yīng)用程序(30分)一、設(shè)計目標與內(nèi)容:了解Windows編程的基礎(chǔ)知識,掌握MFC應(yīng)用程序的基本知識;基本掌握面向?qū)ο蟪绦蛟O(shè)計的基本思路和方法;掌握用VC++開發(fā)應(yīng)用程序的的一般步驟和方法;能夠利用所學的基本知識,設(shè)計一個簡單的計算器應(yīng)用程序,實現(xiàn)基本的加、減、乘、除、求平方根,求倒數(shù)等基本運算(必須實現(xiàn)的功能),實現(xiàn)求角度的正弦、余弦、正切等基本運算、實現(xiàn)求指數(shù)、自然對數(shù)、常用對數(shù)等基本運算(這部分功能選做)。在程序中注意處理數(shù)據(jù)和運算符的輸入,計算結(jié)果的顯示。二,設(shè)計要求:用VC++進行編碼,實現(xiàn)應(yīng)用程序的功能。注重編碼質(zhì)量,代碼要有適當?shù)淖⑨專惶峤辉O(shè)計報告一份(課程設(shè)計任務(wù)書、目錄、設(shè)計的基本思路、設(shè)計的步驟及主要代碼、心得體會、參考文獻)。設(shè)計過程創(chuàng)建MFC應(yīng)用程序框架使用MFCAppWizard[exe]向?qū)梢粋€基于對話框的應(yīng)用程序Calculator,并將主窗口對話框的C aption改為Calculator。編輯對話框打開對話框編輯器,Calculator窗口中共有21個控件,一個編輯框,二十個按鈕控件。編輯框設(shè)置為只讀,不能輸入;+、—、×、/、為操作按鈕;+/—、Sqrt、1/x、分別為取負、求平方根及求倒數(shù)按鈕;Back為倒退按鈕;Clear為清除按鈕;單擊“=”按鈕,在編輯框顯示結(jié)果。添加成員變量(1)利用MFCAppWizard為編輯框在CCalculatorDlg對話框類中添加double型成員變量m_result。(2)為CCalculatorDlg類添加兩個int型變量m_OperationCount、m_NumberCount,一個double型數(shù)組m_number[15]和一個int型數(shù)組m_Operation[15]。變量m_OperationCount用來存放輸入的加減乘除四種運算符的順序號,m_NumberCount存放輸入的操作數(shù)的順序號,數(shù)組m_number[15]存放輸入的操作數(shù),數(shù)組m_Operation[15]存放輸入的操作符。添加消息映射及成員函數(shù)(1)手工加入ON_COMMAND_RANGE命令消息映射,處理分配給一系列相鄰編號的命令I(lǐng)D。在CalculatorDlg.h頭文件中聲明消息映射函數(shù)。afx_msgvoidOnNumberKey(UINTnID); afx_msgvoidOnOperationKey(UINTnID);其中,OnNumberKey()用來響應(yīng)數(shù)字按鈕的單擊操作,OnOperationKey()用來響應(yīng)操作符按鈕的單擊操作。在CalculatorDlg.cpp實現(xiàn)文件的消息映射表中加入ON_COMMAND_RANGE命令消息。ON_COMMAND_RANGE(IDC_NUMBER1,IDC_NUMBER0,OnNumberKey) ON_COMMAND_RANGE(IDC_MINUS,IDC_RESULT,OnOperationKey)在CalculatorDlg.cpp實現(xiàn)文件中加入消息處理函數(shù)。voidCCalculatorDlg::OnNumberKey(UINTnID){//處理單擊數(shù)字按鈕操作,記錄輸出的操作數(shù) intn=0; switch(nID)//根據(jù)單擊的數(shù)字鍵ID,記錄輸入數(shù)字 { caseIDC_NUMBER1: n=1; break; caseIDC_NUMBER2: n=2; break; caseIDC_NUMBER3: n=3; break; caseIDC_NUMBER4: n=4; break; caseIDC_NUMBER5: n=5; break; caseIDC_NUMBER6: n=6; break; caseIDC_NUMBER7: n=7; break; caseIDC_NUMBER8: n=8; break; caseIDC_NUMBER9: n=9; break; caseIDC_NUMBER0: n=0; break; }//計算操作數(shù) m_number[m_NumberCount]=m_number[m_NumberCount]*10+n; m_result=m_number[m_NumberCount]; UpdateData(false);//在編輯框中顯示操作數(shù)}voidCCalculatorDlg::OnOperationKey(UINTnID){//處理單機操作符按鈕操作,記錄輸入的操作符 inti; switch(nID) { caseIDC_ADD: m_Operation[m_OperationCount]=1; break; caseIDC_SUBTRACT: m_Operation[m_OperationCount]=2; break; caseIDC_MULTIPLY: m_Operation[m_OperationCount]=3; break; caseIDC_DIVIDE: m_Operation[m_OperationCount]=4; break; caseIDC_MINUS://取負 m_number[m_NumberCount]=-m_number[m_OperationCount]; break; caseIDC_SQRT://求平方根 m_number[m_NumberCount]=sqrt(m_number[m_NumberCount]); break; caseIDC_RECIPROCAL://求倒數(shù) m_number[m_NumberCount]=(double)1/m_number[m_NumberCount]; break; caseIDC_BACK://倒退 m_number[m_NumberCount]=(int)m_number[m_NumberCount]/10; m_result=m_number[m_NumberCount]; UpdateData(false); break; caseIDC_CLEAR://清屏 for(i=1;i<11;i++) { m_number[i]=0; m_Operation[m_OperationCount]=999; m_NumberCount=1; m_OperationCount=1; m_result=0; UpdateData(false); } break; caseIDC_RESULT://計算最后結(jié)果 cal(); break; } if(m_Operation[m_OperationCount]<5) { m_NumberCount++; m_OperationCount++; }}在CalculatorDlg對話框類中添加void型成員函數(shù)cal(),并在CalculatorDlg.cpp實現(xiàn)文件前加上包含語句#include“math.h”。voidCCalculatorDlg::cal(){ for(inti=1;i<15;i++) switch(m_Operation[i])//先處理乘、除運算 { case3: m_number[i]=m_number[i+1]=m_num
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年小區(qū)違停面試題及答案
- 2025年大學聲樂測試題及答案
- 2025年英語語用測試試題及答案
- 2025年海南會考試題及答案地理
- 工業(yè)分析與檢驗復(fù)習測試附答案
- 2025年行業(yè)知識面試題及答案
- 2025年晶體結(jié)構(gòu)測試題及答案
- 2025年車體安全測試題及答案
- 2025年遼寧工會面試題及答案
- 2025年語文惠州中考試題及答案
- 統(tǒng)編版(2024)道德與法治七年級下冊第一單元 珍惜青春時光 單元測試卷(含答案)
- 2025年甘肅省張掖市民樂縣招聘專業(yè)技術(shù)人員9人(第二期)歷年高頻重點模擬試卷提升(共500題附帶答案詳解)
- 2025年湖北武漢理工大學學生輔導(dǎo)員招聘18人歷年高頻重點模擬試卷提升(共500題附帶答案詳解)
- 北京服裝學院招聘考試題庫2024
- 金融科技概論-課件 第十五章 金融科技監(jiān)管與監(jiān)管科技
- 2024年江蘇省南京市中考數(shù)學試卷真題(含答案解析)
- 物資裝卸培訓(xùn)課件
- DB5101-T 71-2020 成都市電動汽車充電設(shè)施 安全管理規(guī)范
- 2025年烏蘭察布醫(yī)學高等??茖W校高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 高教版2023年中職教科書《語文》(基礎(chǔ)模塊)下冊教案全冊
- 《社群運營》全套教學課件
評論
0/150
提交評論