mfc界面的通訊錄管理系統(tǒng)_第1頁
mfc界面的通訊錄管理系統(tǒng)_第2頁
mfc界面的通訊錄管理系統(tǒng)_第3頁
mfc界面的通訊錄管理系統(tǒng)_第4頁
mfc界面的通訊錄管理系統(tǒng)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第頁共21頁實(shí)用文檔課程設(shè)計(jì)(論文)題目:通訊錄管理系統(tǒng)院(系):__________________專業(yè)班級:姓名:學(xué)號:指導(dǎo)教師:年月日

設(shè)計(jì)總說明我的題目是“通訊錄管理系統(tǒng)”,具有對聯(lián)系人進(jìn)行增刪改查等功能,只有一個窗口,窗口左邊是聯(lián)系人的詳細(xì)信息,右邊是聯(lián)系人姓名列表。窗口上列出所有的“通訊錄管理系統(tǒng)”的操作。例如:增加聯(lián)系人,刪除聯(lián)系人,插入聯(lián)系人,按姓名查找聯(lián)系人,按電話查找聯(lián)系人等,界面簡潔方便,功能齊全。本程序利用MFC界面編程,運(yùn)用對話框,控件等資源實(shí)現(xiàn)界面化的通訊錄,使其不但具有美觀的界面,同時(shí)方便了用戶的操作。關(guān)鍵字:通訊錄,信息管理系統(tǒng)方便效率目錄設(shè)計(jì)總說明 21.設(shè)計(jì)目的 32.問題描述 43.需求分析 43.1數(shù)據(jù)需求 43.2基本功能需求 43.3非功能性需求 44.概要設(shè)計(jì) 54.1數(shù)據(jù)結(jié)構(gòu) 54.2系統(tǒng)包含的函數(shù) 54.3函數(shù)間的關(guān)系 64.4系統(tǒng)功能模塊圖 75.詳細(xì)設(shè)計(jì) 85.1結(jié)構(gòu)體的詳細(xì)定義 85.2系統(tǒng)函數(shù)詳細(xì)介紹 85.3系統(tǒng)功能模塊介紹 105.4具體模塊設(shè)計(jì) 105.4.1增加聯(lián)系人: 115.4.2:插入聯(lián)系人 125.4.3:刪除聯(lián)系人 135.4.4:保存聯(lián)系人 145.4.5:查找聯(lián)系人 155.4.6:其它輔助功能 156.調(diào)試分析 167.使用說明 178.設(shè)計(jì)總結(jié) 209.參考文獻(xiàn) 21

《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)通訊錄管理系統(tǒng)1.設(shè)計(jì)目的“數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)一門十分重要的專業(yè)技術(shù)基礎(chǔ)課,計(jì)算機(jī)科學(xué)各領(lǐng)域及有關(guān)的應(yīng)用軟件都要使用到各種數(shù)據(jù)結(jié)構(gòu)。對于從事計(jì)算機(jī)科學(xué)及其應(yīng)用的科技工作者來說,數(shù)據(jù)結(jié)構(gòu)與算法是必須透徹地掌握的重要基礎(chǔ)。學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法的最終目的是解決實(shí)際的應(yīng)用問題,特別是非數(shù)值計(jì)算類型的應(yīng)用問題。課程設(shè)計(jì)是加強(qiáng)學(xué)生實(shí)踐能力的一個強(qiáng)有力手段。課程設(shè)計(jì)所安排的題目,在難度和深度方面都大于平時(shí)的上機(jī)訓(xùn)練,要求同學(xué)在完成設(shè)計(jì)和編寫中小型軟件的過程中,深化對數(shù)據(jù)結(jié)構(gòu)與算法課程中基本概念、理論和方法的理解;訓(xùn)練綜合運(yùn)用所學(xué)知識處理實(shí)際問題的能力,強(qiáng)化面向?qū)ο蟮某绦蛟O(shè)計(jì)理念;使同學(xué)的程序設(shè)計(jì)與調(diào)試水平有一個明顯的提高。課程設(shè)計(jì)要求學(xué)生在完成程序設(shè)計(jì)的同時(shí)能夠撰寫比較規(guī)范的設(shè)計(jì)報(bào)告。嚴(yán)格實(shí)施課程設(shè)計(jì)這一環(huán)節(jié),對于學(xué)生基本程序設(shè)計(jì)素養(yǎng)的培養(yǎng)和軟件工作者工作作風(fēng)的訓(xùn)練,將起到顯著的促進(jìn)作用。2.問題描述本程序主要是為了解決聯(lián)系人的信息管理而制作的通訊錄管理系統(tǒng)??蓪β?lián)系人帶進(jìn)行添加、修改、刪除、及對保存的聯(lián)系人按不同方式進(jìn)行查詢。也加入了其它微小的輔助功能,如跳到最后一個聯(lián)系人。實(shí)現(xiàn)聯(lián)系人信息的方便管理。3.需求分析3.1數(shù)據(jù)需求聯(lián)系人信息:詳細(xì)信息包括姓名,性別,電話,郵編,住址。3.2基本功能需求對聯(lián)系人進(jìn)行增加,插入,修改,刪除,保存,按姓名查詢,按電話查詢。3.3非功能性需求用戶界面需求:簡潔、易用、易懂、友好的用戶界面。硬件要求:裝有Visualstudio2012的計(jì)算機(jī)??煽啃孕枨螅罕WC用戶在正常使用本系統(tǒng)時(shí),用戶的操作或誤操作不會產(chǎn)生數(shù)據(jù)的丟失。4.概要設(shè)計(jì)4.1數(shù)據(jù)結(jié)構(gòu)用結(jié)構(gòu)struct定義聯(lián)系人信息,用鏈表實(shí)現(xiàn)對聯(lián)系人信息的存儲及維護(hù)。以文件的形式保存聯(lián)系人信息到硬盤。4.2系統(tǒng)包含的函數(shù)類class:CmyDlg該類的成員函數(shù)及功能如下:函數(shù)原型:voidDataInit() 功能:完成從文件讀取數(shù)據(jù)的操作,如果文件不存在則只建立鏈表 函數(shù)原型:voidOnFirst() 功能:讓鏈表的當(dāng)前指針返回開頭,并在編輯框中顯示第一個記錄函數(shù)原型:voidOnNext() 功能:讓鏈表的當(dāng)前指針向后移一個位置,并在編輯框中顯示出來 .函數(shù)原型:voidOnPrior() 功能:讓鏈表的當(dāng)前指針向前移一個位置,并在編輯框中顯示出來 函數(shù)原型:voidOnLast() 功能:讓鏈表的當(dāng)前指針跳到結(jié)尾,并在編輯框中顯示出來 函數(shù)原型:voidOnAdd() 功能:在鏈表結(jié)尾添加一個結(jié)點(diǎn)并在用戶列表中顯示 函數(shù)原型:voidOnInsert() 功能:在鏈表當(dāng)前結(jié)點(diǎn)和下一結(jié)點(diǎn)間添加一個結(jié)點(diǎn)并在用戶列表中顯示 函數(shù)原型:voidOnDelete() 功能:刪除鏈表和用戶列表的當(dāng)前結(jié)點(diǎn)函數(shù)原型:voidOnSave() 功能:將編輯框中輸入的信息存儲到鏈表和用戶列表中去 函數(shù)原型:voidOnExit() 功能:關(guān)閉程序并將鏈表信息存入文件persondata.txt函數(shù)原型:voidOnSearchway1() 功能:完成按姓名查找用戶信息的功能并在編輯框和用戶列表中顯示出來 函數(shù)原型:voidOnSearchway2() 功能:完成按電話號碼查找用戶信息的功能并在編輯框和用戶列表中顯示出來 函數(shù)原型:voidOnSelchangeNamelist() 功能:完成在列表框點(diǎn)擊某項(xiàng)時(shí)將該項(xiàng)信息在編輯框中顯示出來函數(shù)原型:voidLoadInfo(structpersondata*p) 功能:將結(jié)點(diǎn)中存放的數(shù)據(jù)信息顯示在文本框中 輸入為當(dāng)前結(jié)點(diǎn)的地址值,輸出為空。 函數(shù)原型:voidOnClose() 功能:關(guān)閉程序并將鏈表信息存入文件persondata.txt 4.3函數(shù)間的關(guān)系進(jìn)入程序調(diào)用DataInit()從硬盤讀取數(shù)據(jù),并將信息放入鏈表中。通過OnSave()把信息保存到鏈表中,當(dāng)退出程序時(shí)自動存盤。用函數(shù)OnDelete()刪除鏈表和用戶列表的當(dāng)前結(jié)點(diǎn),可用函數(shù)OnAdd()在鏈表結(jié)尾添加一個結(jié)點(diǎn)并在用戶列表中顯示OnSearchway1()和OnSearchway2()可實(shí)現(xiàn)按不同方式進(jìn)行聯(lián)系人查詢。 函數(shù)OnSelchangeNamelist()完成在列表框點(diǎn)擊某項(xiàng)時(shí)將該項(xiàng)信息在編輯框中顯示出來函數(shù)LoadInfo(structpersondata*p)將結(jié)點(diǎn)中存放的數(shù)據(jù)信息顯示在文本框中。以上這些函數(shù)各自有各自的功能,是通訊錄管理系統(tǒng)的基本功能的實(shí)現(xiàn),缺一不可。 其它函數(shù)OnLast()和OnPrior()和OnNext()和OnFirst()是額外添加的一些輔助功能,僅僅是為了方便使用。4.4系統(tǒng)功能模塊圖通訊錄管理系統(tǒng)通訊錄管理系統(tǒng)保存聯(lián)系人修改保存聯(lián)系人修改聯(lián)系人增加聯(lián)系人刪除聯(lián)系人退出查找聯(lián)系人按姓名按姓名查找按電話查找圖4-1系統(tǒng)功能模塊圖5.詳細(xì)設(shè)計(jì)5.1結(jié)構(gòu)體的詳細(xì)定義structpersondata{ charname[10];//姓名 charphonum[15];//電話號碼 charaddress[15];//地址 charpostcode[7];//郵編 charsex;//性別 structpersondata*pre;//上一節(jié)點(diǎn) structpersondata*next;//下一結(jié)點(diǎn)}5.2系統(tǒng)函數(shù)詳細(xì)介紹類名:CmyDlg以下是其成員函數(shù)及功能說明:函數(shù)原型:voidDataInit() 功能:完成從文件讀取數(shù)據(jù)的操作,如果文件不存在則只建立鏈表 函數(shù)原型:voidOnFirst() 功能:讓鏈表的當(dāng)前指針返回開頭,并在編輯框中顯示第一個記錄函數(shù)原型:voidOnNext() 功能:讓鏈表的當(dāng)前指針向后移一個位置,并在編輯框中顯示出來 .函數(shù)原型:voidOnPrior() 功能:讓鏈表的當(dāng)前指針向前移一個位置,并在編輯框中顯示出來 函數(shù)原型:voidOnLast() 功能:讓鏈表的當(dāng)前指針跳到結(jié)尾,并在編輯框中顯示出來 函數(shù)原型:voidOnAdd() 功能:在鏈表結(jié)尾添加一個結(jié)點(diǎn)并在用戶列表中顯示 函數(shù)原型:voidOnInsert() 功能:在鏈表當(dāng)前結(jié)點(diǎn)和下一結(jié)點(diǎn)間添加一個結(jié)點(diǎn)并在用戶列表中顯示 函數(shù)原型:voidOnDelete() 功能:刪除鏈表和用戶列表的當(dāng)前結(jié)點(diǎn)函數(shù)原型:voidOnDelete() 功能:刪除鏈表和用戶列表的當(dāng)前結(jié)點(diǎn)函數(shù)原型:voidOnSave() 功能:將編輯框中輸入的信息存儲到鏈表和用戶列表中去 函數(shù)原型:voidOnExit() 功能:關(guān)閉程序并將鏈表信息存入文件persondata.txt函數(shù)原型:voidOnSearchway1() 功能:完成按姓名查找用戶信息的功能并在編輯框和用戶列表中顯示出來 函數(shù)原型:voidOnSearchway2() 功能:完成按電話號碼查找用戶信息的功能并在編輯框和用戶列表中顯示出來 函數(shù)原型:voidOnSelchangeNamelist() 功能:完成在列表框點(diǎn)擊某項(xiàng)時(shí)將該項(xiàng)信息在編輯框中顯示出來函數(shù)原型:voidLoadInfo(structpersondata*p) 功能:將結(jié)點(diǎn)中存放的數(shù)據(jù)信息顯示在文本框中 輸入為當(dāng)前結(jié)點(diǎn)的地址值,輸出為空。 函數(shù)原型:voidOnClose() 功能:關(guān)閉程序并將鏈表信息存入文件persondata.txt

5.3系統(tǒng)功能模塊介紹系統(tǒng)只有一個模塊,通訊錄管理。其中包含了聯(lián)系人的增加,聯(lián)系人的刪除,保存,查找(分按姓名查找和按電話查找),及其它輔助功能:跳到上個聯(lián)系人,跳到下個聯(lián)系人,跳到第一個聯(lián)系人,跳到最后一個聯(lián)系人。5.4具體模塊設(shè)計(jì)

5.4.1增加聯(lián)系人:增加聯(lián)系人增加聯(lián)系人啟用文本框控件啟用文本框控件每一個字符數(shù)組的每一元素都賦值為空格再初始化每一個字符數(shù)組的每一元素都賦值為空格再初始化在列表框中插入新名字并選中在列表框中插入新名字并選中總結(jié)點(diǎn)數(shù)加1,在尾結(jié)點(diǎn)后插入新結(jié)點(diǎn)總結(jié)點(diǎn)數(shù)加1,在尾結(jié)點(diǎn)后插入新結(jié)點(diǎn)啟用按鈕控件,在文本框顯示個人信息啟用按鈕控件,在文本框顯示個人信息圖5.1增加聯(lián)系人(注:此時(shí)需要點(diǎn)擊保存聯(lián)系人才能有效保存存入的聯(lián)系人)5.4.2:插入聯(lián)系人插入聯(lián)系人插入聯(lián)系人啟用文本框控件啟用文本框控件總結(jié)點(diǎn)數(shù)加1總結(jié)點(diǎn)數(shù)加1將默認(rèn)的數(shù)據(jù)復(fù)制到當(dāng)前結(jié)點(diǎn)將默認(rèn)的數(shù)據(jù)復(fù)制到當(dāng)前結(jié)點(diǎn)在列表框中插入新名字并選中在列表框中插入新名字并選中新建臨時(shí)指針p新建臨時(shí)指針p當(dāng)前結(jié)點(diǎn)是不是尾結(jié)點(diǎn)否是當(dāng)前結(jié)點(diǎn)是不是尾結(jié)點(diǎn)否是cur->next=p;p->pre=cur;p->next=NULL;cur=p;cur->next->pre=p;p->next=cur->next;cur->next=p;p->pre=cur;cur=p;cur->next=p;p->pre=cur;p->next=NULL;cur=p;cur->next->pre=p;p->next=cur->next;cur->next=p;p->pre=cur;cur=p;啟用按鈕控件,在文本框顯示個人信息啟用按鈕控件,在文本框顯示個人信息圖5.2插入聯(lián)系人刪除聯(lián)系人5.4.3:刪除聯(lián)系人刪除聯(lián)系人得到所選記錄在列表框中的序號得到所選記錄在列表框中的序號新建臨時(shí)指針P新建臨時(shí)指針P彈出確認(rèn)對話框:是否刪除聯(lián)系人?是彈出確認(rèn)對話框:是否刪除聯(lián)系人?是否否當(dāng)前節(jié)點(diǎn)是否為尾節(jié)點(diǎn)結(jié)束當(dāng)前節(jié)點(diǎn)是否為尾節(jié)點(diǎn)結(jié)束是是否否cur=cur->next; cur->pre=p->pre; cur=cur->next; cur->pre=p->pre; p->pre->next=cur;m_namelist.SetCurSel(sel+1);cur=cur->pre;cur->next=NULL;last=cur;m_namelist.SetCurSel(sel-1);總用戶信息數(shù)減一在列表框中刪除記錄總用戶信息數(shù)減一在列表框中刪除記錄圖5.3刪除聯(lián)系人5.4.4:保存聯(lián)系人保存聯(lián)系人保存聯(lián)系人將編輯框輸入的信息傳遞給變量將編輯框輸入的信息傳遞給變量檢查輸入是否合法,不合法無法繼續(xù)檢查輸入是否合法,不合法無法繼續(xù)獲取列表框記錄的位置,用于修改列表框中的記錄獲取列表框記錄的位置,用于修改列表框中的記錄將編輯框中信息存入當(dāng)前結(jié)點(diǎn)將編輯框中信息存入當(dāng)前結(jié)點(diǎn)將編輯框信息存入鏈表,更新列表框信息將編輯框信息存入鏈表,更新列表框信息保存成功保存成功圖5.4刪除聯(lián)系人5.4.5:查找聯(lián)系人查找聯(lián)系人查找聯(lián)系人遍歷鏈表,是否存在該聯(lián)系人遍歷鏈表,是否存在該聯(lián)系人不存在不存在存在存在提示框:"查無記錄!"將找到的信息輸入編輯框,在用戶列表中顯示提示框:"查無記錄!"將找到的信息輸入編輯框,在用戶列表中顯示圖5.5查找聯(lián)系人(注:查找聯(lián)系人分按姓名和電話查找,只是方式不同而已。)5.4.6:其它輔助功能1:退出:退出并存盤。2:跳到其它聯(lián)系人:跳到上個聯(lián)系人,跳到下個聯(lián)系人,跳到第一個聯(lián)系人,跳到最后一個聯(lián)系人。6.調(diào)試分析本軟件是基于Windows的編程開發(fā),所以,軟件調(diào)試必須在Windows環(huán)境下進(jìn)行。調(diào)試前須做好準(zhǔn)備工作:需要安裝VisualStudio2012的計(jì)算機(jī)一臺;配置好之后,在VisualStudio2012環(huán)境下進(jìn)行軟件的調(diào)試。(1) 測試數(shù)據(jù):聯(lián)系人信息輸入:在“添加”模塊中,點(diǎn)擊“添加”會新建一個名字初始化為“新姓名”,其它信息為空的聯(lián)系人信息,可添加信息。聯(lián)系人信息修改:點(diǎn)擊需要修改的聯(lián)系人,在編輯框內(nèi)即可修改信息,修改后點(diǎn)擊保存即修改成功。聯(lián)系人信息刪除:點(diǎn)擊需要修改的聯(lián)系人,點(diǎn)擊刪除,再次確認(rèn)后即可刪除。聯(lián)系人的查詢:按姓名進(jìn)行查詢、按電話號進(jìn)行查詢這兩個功能模塊在具體編程實(shí)現(xiàn)上基本上是一樣的,因?yàn)槎际轻槍β?lián)系人信息的查詢。因此我們僅以“按姓名進(jìn)行查詢”為例來說明一下這兩個個功能模塊的詳細(xì)實(shí)現(xiàn)過程。輸入需要查詢的姓名,點(diǎn)擊按姓名查找,如果存在該聯(lián)系人就跳到該聯(lián)系人,并且顯示詳細(xì)信息。值得注意的是,兩種查找方式當(dāng)存在信息相同的情況,比如具有相同的姓名的有多個,則顯示的是第一個人的信息。(2) 算法改進(jìn)設(shè)想:在程序設(shè)計(jì)前期,我們并沒有用txt文件來保存學(xué)生信息。經(jīng)過我不斷的修改以及調(diào)試后,該程序總算可以進(jìn)行txt文本的讀出與寫入,并且添加學(xué)生信息后可以直接將信息保存在txt文本文件中。7.使用說明1.雙擊Txl.exe進(jìn)入程序主界面。圖7.1系統(tǒng)主界面2.添加聯(lián)系人圖7.2添加聯(lián)系人添加新聯(lián)系人時(shí),添加到列表最后,姓名初始化為:“新名字”其它信息均為空。若想添加到其它位置,請使用插入功能。3插入聯(lián)系人選擇要插入的位置,點(diǎn)擊“插入”即插入了新聯(lián)系人。添加信息后點(diǎn)擊保存即可4.保存聯(lián)系人點(diǎn)擊“保存”進(jìn)行保存,注意電話號碼限定了長度,如果輸入不符合11位長度則無法保存4.刪除聯(lián)系人圖7.3刪除聯(lián)系人選擇需要刪除的聯(lián)系人,點(diǎn)擊“刪除”,確認(rèn)刪除后,即可刪除成功。5.查找聯(lián)系人分按姓名查找和按電話查找。如圖輸入姓名點(diǎn)擊“按姓名查找”:圖7.4按姓名查找聯(lián)系人輸入電話號碼點(diǎn)擊“按電話查找”圖7.5按電話查找聯(lián)系人如圖,因?yàn)殡娫捥柎a里查找不到“王五”,彈出“查無記錄”。6.其它輔助功能點(diǎn)擊“第一個”跳到第一個聯(lián)系人信息;點(diǎn)擊“下一個”;點(diǎn)擊“上一個”跳到上一個聯(lián)系人信息;點(diǎn)擊“最后一個”跳到最后一個聯(lián)系人信息。7.退出點(diǎn)擊“退出”退出程序,此時(shí)系統(tǒng)自動進(jìn)行存盤。8.設(shè)計(jì)總結(jié)。課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識

,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對我們的實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握程序開發(fā)技術(shù)是十分重要的,而MFC編程又是最常見,功能最強(qiáng)大的一種高級語言,因此做好和MFC編程課程設(shè)計(jì)是十分必要的。

回顧起此次課程設(shè)計(jì),至今我們?nèi)愿锌H多,的確,自從拿到題目到完成整個編程,從理論到實(shí)踐,在整整兩周里,可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論