應(yīng)用軟件系統(tǒng)綜合設(shè)計課程設(shè)計簡單個人電話號碼查詢系統(tǒng)_第1頁
應(yīng)用軟件系統(tǒng)綜合設(shè)計課程設(shè)計簡單個人電話號碼查詢系統(tǒng)_第2頁
應(yīng)用軟件系統(tǒng)綜合設(shè)計課程設(shè)計簡單個人電話號碼查詢系統(tǒng)_第3頁
應(yīng)用軟件系統(tǒng)綜合設(shè)計課程設(shè)計簡單個人電話號碼查詢系統(tǒng)_第4頁
應(yīng)用軟件系統(tǒng)綜合設(shè)計課程設(shè)計簡單個人電話號碼查詢系統(tǒng)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、武漢工程大學(xué) 計算機科學(xué)與工程學(xué)院綜合設(shè)計報告設(shè)計名稱:設(shè)計名稱: 應(yīng)用軟件系統(tǒng)綜合設(shè)計應(yīng)用軟件系統(tǒng)綜合設(shè)計 設(shè)計題目:設(shè)計題目: 簡單個人電話號碼查詢系統(tǒng)簡單個人電話號碼查詢系統(tǒng) 學(xué)生學(xué)號:學(xué)生學(xué)號: 專業(yè)班級:專業(yè)班級: 軟件工程軟件工程 2 班班 學(xué)生姓名:學(xué)生姓名: 學(xué)生成績:學(xué)生成績: 指導(dǎo)教師(職稱):指導(dǎo)教師(職稱): 課題工作時間:課題工作時間: 2011-9-14 至至 2011-9-23 說明:1、報告中的第一、二、三項由指導(dǎo)教師在綜合設(shè)計開始前填寫并發(fā)給每個學(xué)生;四、五兩項(中英文摘要)由學(xué)生在完成綜合設(shè)計后填寫。2、學(xué)生成績由指導(dǎo)教師根據(jù)學(xué)生的設(shè)計情況給出各項分值及總評

2、成績。3、指導(dǎo)教師評語一欄由指導(dǎo)教師就學(xué)生在整個設(shè)計期間的平時表現(xiàn)、設(shè)計完成情況、報告的質(zhì)量及答辯情況,給出客觀、全面的評價。4、所有學(xué)生必須參加綜合設(shè)計的答辯環(huán)節(jié),凡不參加答辯者,其成績一律按不及格處理。答辯小組成員應(yīng)由 2 人及以上教師組成。5、報告正文字數(shù)一般應(yīng)不少于 5000 字,也可由指導(dǎo)教師根據(jù)本門綜合設(shè)計的情況另行規(guī)定。6、平時表現(xiàn)成績低于 6 分的學(xué)生,取消答辯資格,其本項綜合設(shè)計成績按不及格處理。7、此表格式為武漢工程大學(xué)計算機科學(xué)與工程學(xué)院提供的基本格式(適用于學(xué)院各類綜合設(shè)計) ,各教研室可根據(jù)本門綜合設(shè)計的特點及內(nèi)容做適當?shù)恼{(diào)整,并上報學(xué)院批準。成績評定表學(xué)生姓名: 王

3、純超 學(xué)號: 0905100218 班級: 軟件工程 2 班 類別合計分值各項分值評分標準實際得分合計得分備注平時表現(xiàn)1010按時參加綜合設(shè)計,無曠課、遲到、早退、違反實驗室紀律等情況。由設(shè)計負責(zé)人給出20按設(shè)計任務(wù)書的要求完成了全部任務(wù),能完整演示其設(shè)計內(nèi)容,符合要求。完成情況3010能對其設(shè)計內(nèi)容進行詳細、完整的介紹,并能就指導(dǎo)教師提出的問題進行正確的回答。10報告文字通順,內(nèi)容翔實,論述充分、完整,立論正確,結(jié)構(gòu)嚴謹合理;報告字數(shù)符合相關(guān)要求,工整規(guī)范,整齊劃一。5課題背景介紹清楚,綜述分析充分。5設(shè)計方案合理、可行,論證嚴謹,邏輯性強,具有說服力。5符號統(tǒng)一;圖表完備、符合規(guī)范要求。5

4、能對整個設(shè)計過程進行全面的總結(jié),得出有價值的結(jié)論或結(jié)果。報告質(zhì)量355參考文獻數(shù)量在 3 篇以上,格式符合要求,在正文中正確引用。10在規(guī)定時間內(nèi)能就所設(shè)計的內(nèi)容進行闡述,言簡意明,重點突出,論點正確,條理清晰。答辯情況2515在規(guī)定時間內(nèi)能準確、完整、流利地回答教師所提出的問題。總評成績: 分 補充說明: 指導(dǎo)教師: (簽字)日 期: 年 月 日答辯記錄表學(xué)生姓名: 王純超 學(xué)號: 0905100218 班級: 軟件工程 2 班 答辯地點: 答辯內(nèi)容記錄:合計分值各項分值評分標準實際得分合計得分備注答辯成2510在規(guī)定時間內(nèi)能就所設(shè)計的內(nèi)容進行闡述,言簡意明,重點突出,論點正確,條理清晰。績

5、15在規(guī)定時間內(nèi)能準確、完整、流利地回答教師所提出的問題。答辯小組成員(簽字): 年 月 日指導(dǎo)教師評語指導(dǎo)教師: (簽字)日 期: 年 月 日一、綜合設(shè)計目的、條件、任務(wù)和內(nèi)容要求:1、設(shè)計目的綜合設(shè)計是專業(yè)教學(xué)過程中重要的實踐性教學(xué)環(huán)節(jié),旨在使學(xué)生對所學(xué)過的理論知識和專業(yè)知識進行一次全面、系統(tǒng)的回顧和總結(jié),通過設(shè)計分析,使理論實踐相結(jié)合,鞏固和發(fā)展所學(xué)理論知識,掌握正確的思想方法和基本技能,并培養(yǎng)學(xué)生全面考慮問題,抓住主要矛盾解決問題的思維方法,提高獨立思考能力和團隊精神,培養(yǎng)學(xué)生調(diào)查研究、查閱技術(shù)文獻、資料、手冊以及編寫技術(shù)文獻的能力,樹立嚴肅認真的工作作風(fēng)。本次綜合設(shè)計的課題是設(shè)計一個

6、模擬手機電話本的簡單個人電話號碼查詢系統(tǒng),人們在日常生活中經(jīng)常需要查找某個人或某個單位的電話號碼,本實驗將實現(xiàn)一個簡單的個人電話號碼查詢系統(tǒng),根據(jù)用戶輸入的信息(例如姓名等)進行快速查詢。并提供其他一些基本的功能,如添加和刪除用戶,修改用戶記錄。2、設(shè)計任務(wù)(1) 在外存上,用文件保存電話號碼信息;(2) 在內(nèi)存中,設(shè)計數(shù)據(jù)結(jié)構(gòu)存儲電話號碼信息;(3) 提供查詢功能:根據(jù)姓名、號碼實現(xiàn)快速查詢;(4) 提供其他維護功能:例如插入、刪除、修改等;(5) 按電話號碼進行排序。3、內(nèi)容要求簡單個人電話號碼查詢系統(tǒng)是一個模擬系統(tǒng),具有查詢、插入、刪除和修改的功能。當用戶輸入一個聯(lián)系人的姓名和電話號碼之

7、后,單擊插入,軟件會自動判別記錄是否已經(jīng)存在,如不存在,軟件會進一步判斷該聯(lián)系人的號碼是否與當前聯(lián)系人中的某位號碼相同,若相同,則禁止插入并提示號碼已經(jīng)存在,否則完成插入;當單擊查詢時,軟件會進行兩個層次的查詢,首先查詢當前記錄里是否有記錄與待查找記錄部分匹配,有則返回,若沒有,則查找與待查找記錄有關(guān)聯(lián)的記錄;當單擊刪除或修改時,完成刪除和修改的功能。軟件運行時,會自動把當前記錄顯示出來,退出時會提示用戶是否保存修改。 指導(dǎo)教師簽字: 年 月 日二、進度安排:集中設(shè)計時間:3 周-4 周答辯時間:4 周周五下午三、應(yīng)收集資料及主要參考文獻:1武偉.操作系統(tǒng)教程z.北京:機械工業(yè)出版社, 200

8、4,第 280 頁.2湯小丹,梁紅兵,哲鳳萍等.計算機操作系統(tǒng)第三版z.西安:西安電子科技大學(xué)出版社,2008,第 312 頁.3馬石安,魏文平.visual c+程序設(shè)計與應(yīng)用教程題解及課程設(shè)計z.北京:清華大學(xué)出版社,2009,第 14 頁至第 45 頁.4張宏軍,黨留群,趙天巨等.visual c+6.0 編程案例精解z.北京:電子工業(yè)出版社,2005,第 59 頁.5嚴蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(c 語言版)z.北京:清華大學(xué)出版社,2006,第 152頁至 160 頁.6齊德翌.數(shù)據(jù)結(jié)構(gòu)與算法z.北京:清華大學(xué)出版社,2003,第 364 頁.7james o. coplien. mul

9、ti-paradigm design for c+z.美國:中國電力出版社,2004,第 152 頁.8劉鎏.visual c+6.0 用戶界面制作技術(shù)與應(yīng)用實例z.北京:中國水利水電出版社,1999,第 20 頁至第 68 頁.四、綜合設(shè)計(課程設(shè)計)摘要(中文):電話號碼查詢管理系統(tǒng)是用于輔助個人完成其通訊信息有序管理的計算機軟件系統(tǒng),系統(tǒng)實施的目的旨在幫助用戶完成其私人通訊信息管理的數(shù)字化,以提供比手工方式更高效、更少出錯的方式。電話號碼查詢體統(tǒng)是為了方便用戶查找所需的電話號碼。本軟件使用了提供的雙端隊列,采用順序查找的算法,搜索雙端隊列。在內(nèi)存中用雙端隊列保存文件。界面采用 mfc 提

10、供的可視化界面,采用文檔視圖結(jié)構(gòu),程序思路清晰,結(jié)構(gòu)合理。經(jīng)過基本的測試,已經(jīng)基本達到設(shè)計要求,實現(xiàn)了簡單的常用的電話號碼管理操作,能適用姓名、號碼實現(xiàn)精確和模糊查找。五、綜合設(shè)計(課程設(shè)計)abstract(英文):telephone number searching and managing system is a software system which is designed to assist users in the realization of digitalization of the management of personal telecommunication info

11、rmation and to provide a more efficient and less errant method than the manual style, thus facilitating the search for the specific telephone number.this software adopts linear search algorithm to search the double-end queue ,in which the file is stored, provided by stl(standard template library),an

12、d interface from mfc(microsoft foundation class) visual view, and document-view structure. it has a clear logic and a reasonable structure. after a series of basic test, it proves to fulfill the fundamental requirements of the design and has offered the common operation command for telephone number

13、management, of which using name or telephone number to exactly find and fuzzy search stands out. 武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- i -目目 錄錄目目 錄錄.i第一章第一章 課題背景(或緒論、概述)二號字黑體課題背景(或緒論、概述)二號字黑體.11.1 背景.11.2 目的.11.3 意義.11.4 主要問題 .11.5 技術(shù)要求.11.6 工作完成的目標.1第二章第二章 設(shè)計簡介及設(shè)計方案論述設(shè)計簡介及設(shè)計方案論述.22.1 設(shè)計簡介 .22.2 設(shè)計方案 .22.2.1 數(shù)據(jù)結(jié)

14、構(gòu) .22.2.2 數(shù)據(jù)成員 .32.2.3 程序流程圖 .3第三章第三章 詳細設(shè)計詳細設(shè)計 .43.1 窗體設(shè)計 .43.2 初始化 .53.3 插入.53.4 查找.53.5 修改.53.6 刪除.53.7 退出.53.8 程序的容錯性 .53.8.1 插入時檢查 .53.8.2 查找時檢查 .63.8.3 修改時檢查 .6第四章第四章 設(shè)計結(jié)果及分析設(shè)計結(jié)果及分析.64.1 開始界面.74.2 添加功能.74.3 查找功能.84.4 刪除功能 .94.5 修改功能 .94.6 退出.10總總 結(jié)結(jié).10致致 謝謝.11參考文獻參考文獻 .12程序代碼程序代碼 .13武漢工程大學(xué)計算機科學(xué)

15、與工程學(xué)院 綜合設(shè)計報告- ii -摘 要電話號碼查詢管理系統(tǒng)是用于輔助個人完成其通訊信息有序管理的計算機軟件系統(tǒng),系統(tǒng)實施的目的旨在幫助用戶完成其私人通訊信息管理的數(shù)字化,以提供比手工方式更高效、更少出錯的方式。電話號碼查詢體統(tǒng)是為了方便用戶查找所需的電話號碼。本軟件使用了提供的雙端隊列,采用順序查找的算法,搜索雙端隊列。在內(nèi)存中用雙端隊列保存文件。界面采用 mfc 提供的可視化界面,采用文檔視圖結(jié)構(gòu),程序思路清晰,結(jié)構(gòu)合理。經(jīng)過基本的測試,已經(jīng)基本達到設(shè)計要求,實現(xiàn)了簡單的常用的電話號碼管理操作,能適用姓名、號碼實現(xiàn)精確和模糊查找。關(guān)鍵詞:電話號碼查詢管理系統(tǒng);雙端隊列;mfc;模糊查找武

16、漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- iii -abstracttelephone number searching and managing system is a software system which is designed to assist users in the realization of digitalization of the management of personal telecommunication information and to provide a more efficient and less errant method than the

17、manual style, thus facilitating the search for the specific telephone number.this software adopts linear search algorithm to search the double-end queue ,in which the file is stored, provided by stl(standard template library),and interface from mfc(microsoft foundation class) visual view, and docume

18、nt-view structure. it has a clear logic and a reasonable structure. after a series of basic test, it proves to fulfill the fundamental requirements of the design and has offered the common operation command for telephone number management, of which using name or telephone number to exactly find and

19、fuzzy search stands out.keywords:telephone number searching and managing system;double-end queue; mfc; fuzzy search武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 1 -第一章第一章 課題背景(或緒論、概述)二號字黑課題背景(或緒論、概述)二號字黑體體1.1 背景隨著計算機技術(shù)的飛速發(fā)展,計算機的普及,利用計算機實現(xiàn)通訊管理已經(jīng)是這一趨勢的必然要求。計算機管理具有無法比擬的檢索迅速、可靠性高、存儲量大、成本低、方便快捷的巨大優(yōu)勢。這給人們帶來了極大的方便,尤其是商務(wù)人士,免去了他

20、們記憶大量信息的痛苦。1.2 目的考察面向?qū)ο蟮姆椒▽W(xué),以及利用 mfc 的可視化界面設(shè)計設(shè)計具有良好友好界面的能力。1.3 意義通訊錄是日常生活中十分便捷有效且必備的工具,能實現(xiàn)對個人信息記錄備案的工具,是常用的應(yīng)用軟件之一。它能給我們的生活帶來極大的便捷。1.4 主要問題1.利用合適的數(shù)據(jù)結(jié)構(gòu)以實現(xiàn)快速查詢2.模糊搜索3.數(shù)據(jù)的永久化保存1.5 技術(shù)要求面向?qū)ο蟪绦蛟O(shè)計技術(shù),數(shù)據(jù)結(jié)構(gòu),visual c+ 程序設(shè)計1.6 工作完成的目標(1) 在外存上,用文件保存電話號碼信息;(2) 在內(nèi)存中,設(shè)計數(shù)據(jù)結(jié)構(gòu)存儲電話號碼信息;(3) 提供查詢功能:根據(jù)姓名、號碼實現(xiàn)快速查詢;(4) 提供其他維

21、護功能:例如插入、刪除、修改等;(5) 按電話號碼進行排序。武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 2 -第二章第二章 設(shè)計簡介及設(shè)計方案論述設(shè)計簡介及設(shè)計方案論述2.1 設(shè)計簡介程序啟動后,在初始化應(yīng)用程序?qū)嵗龝r,程序自動將文件里的內(nèi)容讀到內(nèi)存并更新數(shù)據(jù)在程序界面上的顯示,程序提供了插入、查詢、刪除、編輯的功能。當選擇查詢功能時,程序會采取三層查詢方式,第一層,當用戶在輸入待查詢信息時,程序?qū)崟r地檢索文件記錄,并將結(jié)果顯示在程序界面的列表框中;第二層,當用戶輸入的信息是不完整的信息時,程序自動檢查文件記錄里是否有記錄含有待查找信息,若有則自動顯示出來;第三層,若前兩層檢索失敗,當單

22、擊查詢(search)按鈕時,程序在文件記錄里查找任何與待查找信息有關(guān)聯(lián)的記錄,只要記錄里包含一個與待查找記錄相同的字符,就將其返回,否則三層查找失敗。當單擊插入時,將記錄插入到雙端隊列里,并更新顯示。當單擊刪除和編輯按鈕時,執(zhí)行相應(yīng)的操作,并更新顯示。在程序退出時,程序提示是否保存,是則保存,否則不保存修改。2.2 設(shè)計方案2.2.1 數(shù)據(jù)結(jié)構(gòu)自定義類 crecord 用以保存單個用戶的記錄,類聲明如下:class crecord public:void settel(cstring& tl);void setname(cstring& nm);const cstring& gettel()

23、;const cstring& getname();crecord(cstring nm=,cstring tl=);virtual crecord();private:cstring tel;cstring name;武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 3 -;采用 stl 提供的雙短隊列用以在內(nèi)存中保存文件,并聲明為程序主對話框的類的數(shù)據(jù)成員聲明如下:cphonebookdlg:std:deque m_internalbook;2.2.2 數(shù)據(jù)成員ccombobox m_combotel;組合框?qū)ο?,用以輸入電話號碼;ccombobox m_comboname;組合框?qū)ο螅?/p>

24、以輸入姓名;clistctrl m_listnow;列表控件對象,顯示當前文件中的記錄;clistctrl m_listresult;列表控件對象,用以顯示搜索結(jié)果;cstringm_strcomboname;組合框?qū)ο蟮臄?shù)據(jù)成員,用于保存姓名;cstringm_strcombotel;組合框?qū)ο蟮臄?shù)據(jù)成員,用于保存電話號碼;cfile phonebook;文件類對象,用于讀寫外存文件;std:deque m_internalbook;雙端隊列對象,用于在內(nèi)存保存文件。武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 4 -2.2.3 程序流程圖 n y y y n n y n 圖 2-1-3

25、 程序流程圖開始輸入信息刪除指定項將文件內(nèi)容載入程序是否完整選中待修改項并修改有無相同記錄和號碼相同的記錄是否為空插入查找是否保存修改結(jié)束保存武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 5 -第三章第三章 詳細設(shè)計詳細設(shè)計3.1 窗體設(shè)計程序的界面如下圖: 圖 3-1 程序主界面3.2 初始化程序運行之后初始化,將文件中的內(nèi)容讀入內(nèi)存,并顯示在窗體上。3.3 插入在姓名和號碼欄里輸入信息,單擊插入按鈕,程序進行必要的數(shù)據(jù)合法性檢查之后將其插入。3.4 查找在姓名欄或號碼欄里輸入信息,程序獲取其信息之后,在內(nèi)存中的雙端隊列中搜索相關(guān)聯(lián)的記錄。武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告-

26、 6 -3.5 修改在姓名欄或號碼欄里輸入信息,選中要修改的記錄,單擊修改按鈕,程序使用原信息找到雙端隊列中的記錄將其修改,并更新顯示在列表控件里。3.6 刪除在姓名欄或號碼欄里輸入信息,選中要刪除的記錄,單擊刪除按鈕,程序使用原信息找到雙端隊列中的記錄將其刪除,并更新顯示列表控件里內(nèi)容。3.7 退出單擊退出或程序上的關(guān)閉按鈕,將會彈出是否保存修改的對話框,如果選擇是,則保存,否則不保存。3.8 程序的容錯性3.8.1 插入時檢查若輸入時,信息未輸入完全,不允許插入。在插入時,若記錄已經(jīng)存在,則不允許重復(fù)插入。還有一種情況,在現(xiàn)實生活中,一個人可以有多個號碼,但是不可能有多個人擁有同一個號碼,

27、因此若待插入的號碼已經(jīng)存在,也不能插入。另外若號碼中含有非數(shù)字字符時,不允許插入。3.8.2 查找時檢查若輸入時,信息未輸入完全,不能查找,否則根據(jù)輸入內(nèi)容查找。3.8.3 修改時檢查若輸入時,信息未輸入完全或未選中待修改項,不能修改。武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 7 -第四章第四章 設(shè)計結(jié)果及分析設(shè)計結(jié)果及分析4.1 開始界面 圖 4-1 程序界面4.2 添加功能只輸入姓名,運行結(jié)果如下圖 4-2-1: 只輸入號碼,運行結(jié)果如下圖 4-2-2: 圖 4-2-1 只輸入姓名結(jié)果圖 圖 4-2-2 只輸入號碼結(jié)果圖武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 8 -合法記

28、錄插入如下圖: 圖 4-2-3 插入過程4.3 查找功能在輸入過程中動態(tài)現(xiàn)實搜索結(jié)果,如圖 圖 4-3-1 搜索結(jié)果 1 圖 4-3-2 搜索結(jié)果 2按名搜索,沒有找到記錄,如圖 4-3-3 圖 4-3-3 搜索結(jié)果 3武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 9 -單擊搜索按鈕,找到關(guān)聯(lián)項,如圖 4-3-4 圖 4-3-4 搜索結(jié)果 44.4 刪除功能刪除記錄: 圖 4-4-1 刪除前 圖 4-4-2 刪除后4.5 修改功能圖 4-5-1 修改前武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 10 - 圖 4-5-2 修改后4.6 退出 圖 4-6-1 退出武漢工程大學(xué)計算機科學(xué)與

29、工程學(xué)院 綜合設(shè)計報告- 11 -總總 結(jié)結(jié)通過設(shè)計這個簡單個人電話號碼查詢系統(tǒng),使我對 mfc 有了更深的理解(特別是列表控件)同時對 c,c+的編程以及算法的實現(xiàn)產(chǎn)生了比較大的興趣。之前也曾經(jīng)看到過關(guān)于列表控件的書籍,但是每當看到一大堆的代碼頭就開始暈了!很難看得懂?,F(xiàn)在到自己真的需要用到它的時候就不同了,遇到某個不知道如何實現(xiàn)的功能時就不斷去找資料上網(wǎng)去搜索,經(jīng)過多方面的努力最終終于達到了實現(xiàn)自己想要功能的目的。由于在設(shè)計系統(tǒng)的過程中需要利用到數(shù)據(jù)結(jié)構(gòu)中的知識如順序表、鏈表和排序,因此對它們有了更加深刻的理解和更加熟悉如何應(yīng)用;除了之后設(shè)計了這個簡單個人電話號碼查詢系統(tǒng)才真正體會了知識學(xué)

30、而致用,而不是學(xué)習(xí)這門課程是僅僅為了應(yīng)付考試而已。總之,我覺得設(shè)計這個簡單個人電話號碼查詢系統(tǒng)對提升我們的思考能力和動手能力有很大的幫助,可以說是受益匪淺。在這次程序設(shè)計中,我覺得重要的一點,那就是不要人云亦云,要有自己的主見,不管別人如何,一定要有自己的思想,并且始終不改變的去堅持,縱然,可能會遇到很多難以解決的困難,都要自始到終,相信自己能把這個程序做得出來。當自己最終在自己的努力下完成任務(wù)的時候,那就會有更多屬于自己的收獲,包括成功的喜悅以及程序中體現(xiàn)的思想。其次是我認為調(diào)試功能是整個編寫程序過程中很重要的一個環(huán)節(jié)。通過此次實驗我對調(diào)試有了更加深刻的理解,懂得怎么樣去調(diào)試程序,如何發(fā)現(xiàn)錯

31、誤,如何更高效的改正,最終能把程序?qū)崿F(xiàn)。武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 12 -致致 謝謝首先要感謝相關(guān)文獻的作者,從他們的作品中我學(xué)到了很多課本上沒有學(xué)到的東西,感謝他們的辛勤勞動。其次,在本次課程設(shè)計的整個過程中,要特別感謝自始至終給我提供幫助和指導(dǎo)的余年勝和馮呈龍同學(xué)和姚老師,是他們耐心的指導(dǎo)才使得本次設(shè)計得以順得完成,同時,也要感謝身邊的好多同學(xué),在此還要特別感謝為我們提供良好上機環(huán)境的學(xué)校.如果沒有以上老師,同學(xué)和學(xué)校的幫助和支持,本次設(shè)計實難完成.再次感謝老師的精心輔導(dǎo)和同學(xué)的相互幫助,使我們順利完成此次設(shè)計以及為學(xué)習(xí)以后的科目打下良好的基礎(chǔ).武漢工程大學(xué)計算機科

32、學(xué)與工程學(xué)院 綜合設(shè)計報告- 13 -參考文獻參考文獻1武偉.操作系統(tǒng)教程z.北京:機械工業(yè)出版社, 2004,第 280 頁.2湯小丹,梁紅兵,哲鳳萍等.計算機操作系統(tǒng)第三版z.西安:西安電子科技大學(xué)出版社,2008,第 312 頁.3馬石安,魏文平.visual c+程序設(shè)計與應(yīng)用教程題解及課程設(shè)計z.北京:清華大學(xué)出版社,2009,第 14 頁至第 45 頁.4張宏軍,黨留群,趙天巨等.visual c+6.0 編程案例精解z.北京:電子工業(yè)出版社,2005,第 59 頁.5嚴蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(c 語言版)z.北京:清華大學(xué)出版社,2006,第 152 頁至 160 頁.6齊德翌.

33、數(shù)據(jù)結(jié)構(gòu)與算法z.北京:清華大學(xué)出版社,2003,第 364 頁.7james o. coplien. multi-paradigm design for c+z.美國:中國電力出版社,2004,第 152 頁.8劉鎏.visual c+6.0 用戶界面制作技術(shù)與應(yīng)用實例z.北京:中國水利水電出版社,1999,第 20 頁至第 68 頁.武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 14 -程序代碼程序代碼record.hclass crecord public:void settel(cstring& tl);void setname(cstring& nm);const cstring

34、& gettel();const cstring& getname();crecord(cstring nm=,cstring tl=);virtual crecord();private:cstring tel;cstring name;/record.cpp/ record.cpp: implementation of the crecord class./#include stdafx.h#include phonebook.h#include record.h#ifdef _debug#undef this_filestatic char this_file=_file_;#defin

35、e new debug_new#endif/ construction/destruction/crecord:crecord(cstring nm,cstring tl):name(nm),tel(tl)武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 15 -crecord:crecord()const cstring& crecord:getname()return name;const cstring& crecord:gettel()return tel;void crecord:setname(cstring &nm)name=nm;void crecord:settel(cstr

36、ing &tl)tel=tl;/phonebookdlg.h#include #include record.hclass cphonebookdlg : public cdialog/ constructionpublic:cphonebookdlg(cwnd* pparent = null);/ standard constructor/ dialog data/afx_data(cphonebookdlg)enum idd = idd_phonebook_dialog ;ccomboboxm_combotel;ccomboboxm_comboname;clistctrlm_listnow

37、;clistctrlm_listresult;cstring m_strcomboname;武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 16 -cstring m_strcombotel;/afx_data/ classwizard generated virtual function overrides/afx_virtual(cphonebookdlg)protected:virtual void dodataexchange(cdataexchange* pdx); / ddx/ddv support/afx_virtual/ implementationprotected:hic

38、on m_hicon;/ generated message map functions/afx_msg(cphonebookdlg)virtual bool oninitdialog();afx_msg void onsyscommand(uint nid, lparam lparam);afx_msg void onpaint();afx_msg hcursor onquerydragicon();afx_msg void onbtninsert();afx_msg void onbtnsearch();afx_msg void oneditchangecomboname();afx_ms

39、g void oneditchangecombotel();afx_msg void onbtnedit();virtual void oncancel();afx_msg void onbtndelete();afx_msg void onselchangecomboname();afx_msg void onselchangecombotel();/afx_msgdeclare_message_map()private:cfile phonebook;std:deque m_internalbook;/ phonebookdlg.cpp#include stdafx.h#include p

40、honebook.h#include phonebookdlg.h#include confirm.h#ifdef _debug#define new debug_new武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 17 -#undef this_filestatic char this_file = _file_;#endif/ caboutdlg dialog used for app aboutclass caboutdlg : public cdialogpublic:caboutdlg();/ dialog data/afx_data(caboutdlg)enum idd = i

41、dd_aboutbox ;/afx_data/ classwizard generated virtual function overrides/afx_virtual(caboutdlg)protected:virtual void dodataexchange(cdataexchange* pdx); / ddx/ddv support/afx_virtual/ implementationprotected:/afx_msg(caboutdlg)/afx_msgdeclare_message_map();caboutdlg:caboutdlg() : cdialog(caboutdlg:

42、idd)/afx_data_init(caboutdlg)/afx_data_initvoid caboutdlg:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(caboutdlg)/afx_data_map武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 18 -begin_message_map(caboutdlg, cdialog)/afx_msg_map(caboutdlg)/ no message handlers/afx_msg_mapend_message_map()/ cp

43、honebookdlg dialogcphonebookdlg:cphonebookdlg(cwnd* pparent /*=null*/): cdialog(cphonebookdlg:idd, pparent)/afx_data_init(cphonebookdlg)m_strcomboname = _t();m_strcombotel = _t();/afx_data_init/ note that loadicon does not require a subsequent destroyicon in win32m_hicon = afxgetapp()-loadicon(idr_m

44、ainframe);void cphonebookdlg:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(cphonebookdlg)ddx_control(pdx, idc_combo_tel, m_combotel);ddx_control(pdx, idc_combo_name, m_comboname);ddx_control(pdx, idc_list_now, m_listnow);ddx_control(pdx, idc_list_result, m_listresult);d

45、dx_cbstring(pdx, idc_combo_name, m_strcomboname);ddx_cbstring(pdx, idc_combo_tel, m_strcombotel);/afx_data_mapbegin_message_map(cphonebookdlg, cdialog)/afx_msg_map(cphonebookdlg)on_wm_syscommand()on_wm_paint()on_wm_querydragicon()on_bn_clicked(id_btn_insert, onbtninsert)on_bn_clicked(id_btn_search,

46、onbtnsearch)on_cbn_editchange(idc_combo_name, oneditchangecomboname)on_cbn_editchange(idc_combo_tel, oneditchangecombotel)on_bn_clicked(id_btn_edit, onbtnedit)on_bn_clicked(id_btn_delete, onbtndelete)武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 19 -on_cbn_selchange(idc_combo_name, onselchangecomboname)on_cbn_selchange(

47、idc_combo_tel, onselchangecombotel)/afx_msg_mapend_message_map()/ cphonebookdlg message handlersbool cphonebookdlg:oninitdialog()cdialog:oninitdialog();/ add about. menu item to system menu./ idm_aboutbox must be in the system command range.assert(idm_aboutbox & 0 xfff0) = idm_aboutbox);assert(idm_a

48、boutbox appendmenu(mf_separator);psysmenu-appendmenu(mf_string, idm_aboutbox, straboutmenu);/ set the icon for this dialog. the framework does this automatically/ when the applications main window is not a dialogseticon(m_hicon, true);/ set big iconseticon(m_hicon, false);/ set small icon/ todo: add

49、 extra initialization herem_listnow.insertcolumn(1,姓名,lvcfmt_left,60);m_listresult.insertcolumn(1,姓名,lvcfmt_left,60);m_listnow.insertcolumn(2,號碼,lvcfmt_left,90);m_listresult.insertcolumn(2,號碼,lvcfmt_left,90);m_listnow.setextendedstyle(lvs_ex_fullrowselect|lvs_ex_gridlines);m_listresult.setextendedst

50、yle(lvs_ex_fullrowselect|lvs_ex_gridlines);m_listnow.deleteallitems();武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 20 -m_listresult.deleteallitems();m_internalbook.empty();phonebook.open(phonebook.txt,cfile:modenotruncate|cfile:moderead | cfile:modecreate);char buf1024;phonebook.read(buf,phonebook.getlength();phonebook

51、.close();char* ptr=buf;cstring strtemp;/暫存一條記錄(一個人)的信息cstring strname,strtel;crecord record; while(*ptr!=&)if(*ptr!=.)strtemp+=*ptr;elsestrname=strtemp.left(strtemp.find(,);strtel=strtemp.right(strtemp.getlength()-strname.getlength()-1);int ncount = m_listnow.getitemcount();m_listnow.insertitem(ncou

52、nt,strname);m_listnow.setitemtext(ncount,1,strtel);m_comboname.addstring(strname);m_combotel.addstring(strtel);record.setname(strname);record.settel(strtel);m_internalbook.push_back(record);strtemp.empty();ptr+;return true; / return true unless you set the focus to a controlvoid cphonebookdlg:onsysc

53、ommand(uint nid, lparam lparam)if (nid & 0 xfff0) = idm_aboutbox)caboutdlg dlgabout;dlgabout.domodal();武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 21 -elsecdialog:onsyscommand(nid, lparam);/ if you add a minimize button to your dialog, you will need the code below/ to draw the icon. for mfc applications using the docu

54、ment/view model,/ this is automatically done for you by the framework.void cphonebookdlg:onpaint() if (isiconic()cpaintdc dc(this); / device context for paintingsendmessage(wm_iconerasebkgnd, (wparam) dc.getsafehdc(), 0);/ center icon in client rectangleint cxicon = getsystemmetrics(sm_cxicon);int c

55、yicon = getsystemmetrics(sm_cyicon);crect rect;getclientrect(&rect);int x = (rect.width() - cxicon + 1) / 2;int y = (rect.height() - cyicon + 1) / 2;/ draw the icondc.drawicon(x, y, m_hicon);elsecdialog:onpaint();/ the system calls this to obtain the cursor to display while the user drags/ the minim

56、ized window.hcursor cphonebookdlg:onquerydragicon()return (hcursor) m_hicon;void cphonebookdlg:onbtninsert()武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 22 -/ todo: add your control notification handler code herecstring rstringname,rstringtel;getdlgitemtext(idc_combo_name,rstringname);getdlgitemtext(idc_combo_tel,rstri

57、ngtel);rstringname.remove( );rstringtel.remove( );if(!(rstringname.getlength()&rstringtel.getlength()messagebox(the information you input is not intact!);elsebool found=false;std:deque:iterator ptr;for(ptr=m_internalbook.begin();ptr!=m_internalbook.end();ptr+)if (ptr-getname()=rstringname)&(ptr-gett

58、el()=rstringtel)messagebox(the record has already existed!);found=true;break;else if(ptr-gettel()=rstringtel)&(ptr-getname()!=rstringname)messagebox(the telephone number is now used by someone else!please check the correctness of your information!);found=true;break;if(!found)crecord record;record.se

59、tname(rstringname);record.settel(rstringtel);int nitemcount=m_listnow.getitemcount();m_listnow.insertitem(nitemcount,rstringname);m_listnow.setitemtext(nitemcount,1,rstringtel);m_internalbook.push_back(record);m_comboname.clear();m_combotel.clear();武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 綜合設(shè)計報告- 23 -void cphonebookdlg:onb

60、tnsearch()/ todo: add your control notification handler code herebool found=false;cstring rstringname;getdlgitemtext(idc_combo_name,rstringname);cstring rstringtel;getdlgitemtext(idc_combo_tel,rstringtel);rstringname.remove( );rstringtel.remove( );std:deque:iterator ptr;if (rstringname.getlength()|r

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論