通訊錄管理軟件系統(tǒng)設計方案_第1頁
通訊錄管理軟件系統(tǒng)設計方案_第2頁
通訊錄管理軟件系統(tǒng)設計方案_第3頁
通訊錄管理軟件系統(tǒng)設計方案_第4頁
通訊錄管理軟件系統(tǒng)設計方案_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、通訊錄管理軟件系統(tǒng)設計方案通訊錄管理軟件系統(tǒng)設計方案 目 錄 第一章 項目開發(fā)計劃書 1 1.1 引言 1 編寫目的 1 背景 1 1.2 項目概述 1 工作內(nèi)容 1 主要參加人員 1 產(chǎn)品 2 服務 2 驗收標準 2 本計劃的批準者和批準日期 2 1.3 實施計劃 2 工作任務的分配與人員分工 2 進度 3 1.4 支持條件 3 計算機系統(tǒng)支持 3 第二章 可行性分析 4 2.1 可行性研究前提 4 2.2 對現(xiàn)有系統(tǒng)的分析 4 2.3 建議新系統(tǒng) 4 新系統(tǒng)說明 4 新系統(tǒng)的流程圖 5 2.4 經(jīng)濟上可行性 5 2.5 技術可行性 5 2.6 開發(fā)工具的選擇 6 2.7 新系統(tǒng)的影響 6

2、2.8 結(jié)論 6 第三章 需求分析 7 3.1 市場需求分析 7 3.2 系統(tǒng)功能性需求分析 7 功能劃分 7 功能描述 7 3.3 系統(tǒng)非功能性需求 7 可用性 7 可靠性 8 3.4 數(shù)據(jù)字典 8 3.5 實體-聯(lián)系圖 9 第四章 系統(tǒng)設計 10 4.1 總體設計 10 需求概述 10 聯(lián)系人管理系統(tǒng)功能設計 10 4.2 功能模塊的設計與實現(xiàn) 11 用戶注冊模塊 11 用戶登錄模塊 11 用戶管理自己聯(lián)系人信息模塊 12 第五章 系統(tǒng)測試 13 5.1 測試的作用和意義 13 5.2 測試方法 13 5.3 測試內(nèi)容 13 5.4 測試結(jié)果 14 注冊和登錄模塊測試 14 查詢模塊測試

3、14 聯(lián)系人信息添加、修改和刪除模塊測試 15 5.5 結(jié)論 15 第六章 總結(jié) 16 參考文獻 17 附錄:程序主要部分源代碼 17 第一章 項目開發(fā)計劃書 1.1 引言 編寫目的 通訊錄管理系統(tǒng)是一個專門針對存儲用戶聯(lián)系方式以及一些簡單個人信息的實用管理系統(tǒng),它方便了用戶對眾多客戶、朋友、同事等個人信息的儲存和快速查閱功能,大大縮減了查找時間,方便了人們的生活。 背景 日益繁多的人際交往使得我們很難搞清楚每個人之間的聯(lián)系方式,特別是對于經(jīng)常出差的人來說更難,所以,通訊錄能夠便捷的提供給我們所需要的相關信息。而隨著計算機的普及,人們的生活擺脫了傳統(tǒng)式的記事本、電話簿,越來越多人靠計算機來記住

4、這些事情。這就需要建立一個通訊錄管理系統(tǒng),使得用戶可以方便的通過自己電腦的通訊錄管理系統(tǒng),隨時查閱自己所需要的信息,而不必大費周章的去翻記事本。 1.2 項目概述 工作內(nèi)容 通訊錄管理系統(tǒng)針對用戶是所有需要對自己通訊錄進行管理的用戶,針對對象比較廣泛。添加新通訊錄模塊、查找通訊錄模塊、刪除通訊錄模塊、修改密碼模塊。 該系統(tǒng)需要實現(xiàn)如下功能: 添加新通訊錄的功能 :主要是想讓用戶在想要保存的他人的個人信息時對他人信息進行添加。 查找通訊錄:主要是用戶在需要查找他人信息的時候可以隨時的進行查找 刪除通訊錄:用戶可以對某些不需要的信息的時候,可以對其進行刪除。 修改密碼: 用戶可以對信息進行安全化的

5、管理。 主要參加人員 組長:李亞運 。 設計: 胡雨婷、吳浩宇。 開發(fā): 李亞運、宋昕、何旭華。 產(chǎn)品 系統(tǒng)開發(fā)計劃書 系統(tǒng)需求說明書 系統(tǒng)設計說明書 測試計劃 一個能正確運行的可執(zhí)行程序 源程序清單(有注釋) 服務 安裝、維護和運行支持從使用該系統(tǒng)開始,維護期限為一年。 驗收標準 各個功能均能正常使用,滿足用戶的需求。 本計劃的批準者和批準日期 批準者:顏富強 批準日期:2011年6月6日 1.3 實施計劃 工作任務的分配與人員分工 組長: 任務: (1)系統(tǒng)總的開發(fā)計劃書 (2)每周至少組織小組討論一次,列出本周開發(fā)計劃 (3)項目開發(fā)進度的管理 (4)團隊的組織和協(xié)調(diào) 設計: 任務: (

6、1)參與小組討論 (2)進行系統(tǒng)的需求分析和系統(tǒng)設計 (3)完成系統(tǒng)需求說明書和系統(tǒng)設計說明書 (4)編寫測試計劃,參與系統(tǒng)測試 (5)協(xié)助文檔人員完成用戶相關文檔 開發(fā): 任務: (1)參與小組討論 (2)根據(jù)設計完成編碼,并注釋 (3)進行單元測試 進度 系統(tǒng)規(guī)劃階段: 項目標志性事件 開始到完成 開發(fā)階段: 項目開發(fā)計劃書的完成 6.5-6.7 需求分析階段: 系統(tǒng)需求說明書完成 6.8-6.10 設計階段: 系統(tǒng)設計說明書 6.11-6.15 編碼實現(xiàn): 項目的形成 6.16-6.23 測試階段: 測試計劃 6.24-6.27 移交階段: 項目的遞交 6.28-6.30 1.4 支持條

7、件 計算機系統(tǒng)支持 操作系統(tǒng)需要: windows 2000 及以上;第二章 可行性分析 2.1 可行性研究前提 要求:滿足客戶查找、添加通訊錄的要求,并對聯(lián)系人的資料具有保密性。 目標:建立一個方便、快捷的通訊錄管理系統(tǒng),CPU占用率低,但程序運行流暢。 條件、假定、限制:本軟件自開發(fā)到運行結(jié)束至少可運行5年,開發(fā)成本不超過500人民幣,開發(fā)軟件到投入使用不超過1個月。 2.2 對現(xiàn)有系統(tǒng)的分析 如今沒有一個專門用于儲存、查找通訊錄的平臺。人們想要聯(lián)系朋友、同事、親人主要是翻看記事本或是電話薄。這樣做不僅花費大量時間,而且效率不高,浪費了大量的人力、物力、財力。在生活節(jié)奏日益加快的今天,這種

8、狀況已無法滿足人們的對通訊錄效率的要求了。 2.3 建議新系統(tǒng) 新系統(tǒng)說明 新系統(tǒng)能夠為用戶聯(lián)系客戶、同事、親友提供一個良好的平臺。使用戶能夠快速、便捷的找到需要聯(lián)系的人,提高了工作效率。而且本系統(tǒng)界面友好,操作簡單,對硬件要求不高,且用戶的花費是較低,因此十分有利于推廣。 新系統(tǒng)的流程圖 圖1 新系統(tǒng)的流程圖 2.4 經(jīng)濟上可行性 開發(fā)成本:500元人民幣。 效益:暫時無法具體衡量。 效益/投資比:暫時無法估算。 投資回收期:大約2個月。 2.5 技術可行性 軟件需求:操作系統(tǒng)WINDOWS 2000 及以上。 硬件需求:賽揚1.7G CPU、512M內(nèi)存 80G硬盤的計算機。 使用語言為:

9、C+ 2.6 開發(fā)工具的選擇 這次開發(fā)以功能強大的Microsoft Visual C+ 6.0 作為開發(fā)工具;因為我們目前對數(shù)據(jù)庫知識了解不夠,因此這次開發(fā)中沒有運用數(shù)據(jù)庫,僅以文件形式保存相關數(shù)據(jù)。 2.7 新系統(tǒng)的影響 設備的影響:創(chuàng)建新系統(tǒng)需要添置一臺性能良好的服務器。 人員的影響:新系統(tǒng)需要一個專職維護人員。 用戶的影響:用戶可準確、高效的添加和查找信息。 2.8 結(jié)論 綜上所述,通訊錄管理系統(tǒng)在技術非常成熟,主客觀條件都具備,且具有良好的效益,因此開發(fā)此系統(tǒng)是可行的。為了方便人們的聯(lián)系,建議立即開發(fā)。 第三章 需求分析 3.1 市場需求分析 過去人們他人信息的管理主要是通過隨記,名

10、片等方式 。這些方式在查找的時候相當浪費時間,效率十分低下。現(xiàn)在通過通訊錄管理系統(tǒng)對他人信息就行管理,不僅節(jié)約時間,同時檢索迅速、查找方便、可靠性高、存儲量大、保密性好。這樣極大的提高了通訊錄管理的效率。 3.2 系統(tǒng)功能性需求分析 功能劃分 本系統(tǒng)的目標使用人群是廣大的電腦用戶,將有助于改善通訊錄管理,對通訊錄進行系統(tǒng)化的管理,方便人們互相聯(lián)系。 用戶首先通過該系統(tǒng)注冊功能建立自己的通訊錄。其中涉及到密碼的設置,用戶在登錄的時候會用到用戶名和密碼。用戶在登錄該系統(tǒng)后,可以對通訊錄聯(lián)系人信息進行添加、刪除、修改、查詢等操作。其中密碼的設置是為了用戶通訊錄的安全性。 功能描述 添加聯(lián)系人:方便用

11、戶添加聯(lián)系人資料,以方便互相聯(lián)系。 查找聯(lián)系人:為用戶提供方便快捷的查找,方便用戶在聯(lián)系人很多的時候,快速找到想要的聯(lián)系人資料。 刪除聯(lián)系人:保證用戶可以及時刪除已失效的聯(lián)系人資料,使得通訊錄管理更高效。 修改密碼: 確保用戶可以隨時更改自己的密碼,以防信息泄漏。 3.3 系統(tǒng)非功能性需求 可用性 本系統(tǒng)針對的對象比較廣泛,可以是學生、公司管理人員等等。因此對本系統(tǒng)的可操作性和易用性都提出了很高的要求。過于復雜的操作將不可避免的損失大量的用戶,本系統(tǒng)應能讓任何用戶都不必借助任何操作手冊或相關的系統(tǒng)幫助就能順利地進行各種操作。 可靠性 系統(tǒng)建成后預計將有大量的用戶用該系統(tǒng)進行通訊錄的管理,因此對

12、系統(tǒng)的穩(wěn)定性也有比較高的要求。一旦系統(tǒng)不能正常工作,會給用戶群帶來巨大的損失也將導致失去用戶對系統(tǒng)的信任。 3.4 數(shù)據(jù)字典 通過系統(tǒng)需求分析,對通訊錄管理系統(tǒng)編制數(shù)據(jù)字典如下: 各主要數(shù)據(jù)流的定義如表1至表3所示。 表1 表2 表 3 3.5 實體-聯(lián)系圖 根據(jù)需求分析,可以畫出系統(tǒng)E-R圖如下: 圖2 通訊錄管理系統(tǒng)E-R圖 第四章 系統(tǒng)設計 4.1 總體設計 需求概述 本系統(tǒng)的目標是建立一個操作簡單、管理高效的聯(lián)系人信息管理平臺。使得用戶可以在本系統(tǒng)的幫助下,可以非常方便的與他人互相聯(lián)系。因此,本系統(tǒng)需要實現(xiàn)對聯(lián)系人信息的添加、刪除、查詢和修改的功能。同時為了保證用戶的個人信息的安全,系

13、統(tǒng)還需要有密碼功能。在用戶使用前必須在系統(tǒng)注冊,登錄。即系統(tǒng)還需實現(xiàn)用戶的注冊、登錄功能。 聯(lián)系人管理系統(tǒng)功能設計 根據(jù)系統(tǒng)需求分析和系統(tǒng)功能模塊結(jié)構(gòu)圖來看,該系統(tǒng)應具備如下基本功能: 用戶注冊 已注冊用戶的聯(lián)系人信息添加、修改、查詢、刪除等。 其功能模塊結(jié)構(gòu)圖如下: 圖 程序功能模塊圖 圖10 快速查找聯(lián)系人界面 修改密碼模塊 系統(tǒng)的修改密碼功能主要是為了防止用戶密碼因為泄漏而導致個人損失,用戶可以通過點擊修改密碼按鈕進入修改密碼模塊。如下圖所示: 圖11 修改密碼界面第五章 系統(tǒng)測試 5.1 測試的作用和意義 系統(tǒng)測試是管理信息系統(tǒng)的開發(fā)周期中的一個十分重要環(huán)節(jié)。盡管在系統(tǒng)開發(fā)周期的各個階

14、段均采取了嚴格的技術審查,但依然難免會留下錯誤,如果沒有在投入運行前的系統(tǒng)測試階段被發(fā)現(xiàn)并糾正,問題遲早會在運行中暴露出來,到那時要糾正錯誤將會付出更大的代價。系統(tǒng)測試占用的時間、花費的人力和成本占軟件開發(fā)的很大比例。統(tǒng)計表明,開發(fā)較大規(guī)模的系統(tǒng),系統(tǒng)測試的工作量大約占整個軟件開發(fā)工作量的40,50,。而對于一些特別重要的大系統(tǒng),測試的工作量和成本更大,甚至超過系統(tǒng)開發(fā)其他各階段的總和的若干倍。因此做好系統(tǒng)交付前的系統(tǒng)測試的目的就是在系統(tǒng)在投入生產(chǎn)性運行之前,盡可能多的發(fā)現(xiàn)系統(tǒng)的潛在錯誤,這是保證系統(tǒng)質(zhì)量的關鍵,也是減少系統(tǒng)后期維護投入的最佳方法。 5.2 測試方法 本次測試主要是對系統(tǒng)進行黑

15、盒測試。由未參與系統(tǒng)編程的組員參與。通過設計不同的等價輸入類對系統(tǒng)的各項功能進行反復運行,觀察系統(tǒng)的返回結(jié)果來判斷系統(tǒng)的各項功能的實現(xiàn)情況。 5.3 測試內(nèi)容 軟件的正常運行、關閉及退出時保存記錄情況。 用戶界面是否友好,可操作性及安全性能是否良好。 數(shù)據(jù)庫的可維護性好,數(shù)據(jù)的錄入、刪除及更改是否能順利完成。 各模塊的共能是否能達到預期要求。 系統(tǒng)的穩(wěn)定性是夠良好。 5.4 測試結(jié)果 注冊和登錄模塊測試 經(jīng)過測試,用戶能在本系統(tǒng)進行正常的注冊和登錄,并在用戶輸入不存在的用戶名或錯誤的密碼后能給出提示。說明本系統(tǒng)的注冊和登錄模塊的各項功能都圓滿實現(xiàn)了。 圖12 輸入錯誤的用戶名或密碼后系統(tǒng)的提示

16、界面 查詢模塊測試 在本系統(tǒng)的搜索框中輸入不同類容進行搜索時系統(tǒng)都能返回準確的結(jié)果。例如下圖是在搜索輸入框中輸入“姓名”,系統(tǒng)返回的結(jié)果,從中可看出本系統(tǒng)的搜索功能可以正常運行,即說明本系統(tǒng)的查詢模塊的各項功能都能良好實現(xiàn)。 圖13 搜索結(jié)果界面 聯(lián)系人信息添加、修改和刪除模塊測試 通過在本系統(tǒng)添加若干個房屋信息和系統(tǒng)返回的結(jié)果觀察,可知本系統(tǒng)的信息發(fā)布、修改和刪除等各項功能均運行良好。 圖14 5.5 結(jié)論 經(jīng)過反復測試,系統(tǒng)完成后運行用戶注冊、登錄、管理聯(lián)系人信息等功能均正常,發(fā)布1.0版。雖然此系統(tǒng)仍存在許多缺陷,但是通過該系統(tǒng)設計達到了系統(tǒng)設計目的意義,基本掌握了軟件開發(fā)的主要步驟,了

17、解了各環(huán)節(jié)在開發(fā)時要注意的問題,從方便用戶的角度出發(fā),去考慮開發(fā)出好的軟件。另外,在設計過程中我們也學會了團隊合作,了解了團隊精神的可貴。因此本設計雖然較粗糙,但是從學習的角度上看,非常有意義。 第六章 總結(jié) 在本系統(tǒng)的開發(fā)過程中,使我們更清楚的了解了 C+系統(tǒng)的開發(fā)流程, 但由于是第一次把 C+ 語言應用于MFC工程, 因此系統(tǒng)必然會存在一些缺陷和不足,特別是在功能方面不是很完善,但我們會在今后的學習過程中不斷修改,使系統(tǒng)更加完善。這次課程設計使我們懂得了理論和實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學到的理論知識和實際相結(jié)合,從理論中得出結(jié)論,才能真正提高自己的動手能力和獨

18、立思考能力。在本次課程設計中,我們受益匪淺,這對于我以后的工作和學習都有很大的好處。在此,感謝顏富強老師耐心的輔導。另外,在系統(tǒng)開發(fā)過程中通過組員之間的密切合作,大家互相幫助,勇于向?qū)嶋H困難挑戰(zhàn),基本完成此次設計,這極大的增強了團隊合作意識。 參考文獻 張海藩著,軟件工程導論(第五版),清華大學出版社,2008年 鄭人杰著,軟件工程,人民郵電出版社,2009年 孫鑫 余安萍著,VC+深入詳解,電子工業(yè)出版社,2007年 附錄:程序主要部分源代碼 登錄界面主要程序部分: / prj01Dlg.cpp : implementation file / #include stdafx.h #inclu

19、de prj01.h #include prj01Dlg.h #include #include Message.h #include Register.h #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE _FILE_; #endif / / CAboutDlg dialog used for App About class CAboutDlg : public CDialog public: CAboutDlg ; / Dialog Data / AFX_DATA CAboutDlg enu

20、m IDD IDD_ABOUTBOX ; / AFX_DATA / ClassWizard generated virtual function overrides / AFX_VIRTUAL CAboutDlg protected: virtual void DoDataExchange CDataExchange* pDX ; / DDX/DDV support / AFX_VIRTUAL / Implementation protected: / AFX_MSG CAboutDlg / AFX_MSG DECLARE_MESSAGE_MAP ; CAboutDlg:CAboutDlg :

21、 CDialog CAboutDlg:IDD / AFX_DATA_INIT CAboutDlg / AFX_DATA_INIT void CAboutDlg:DoDataExchange CDataExchange* pDX CDialog:DoDataExchange pDX ; / AFX_DATA_MAP CAboutDlg / AFX_DATA_MAP BEGIN_MESSAGE_MAP CAboutDlg, CDialog / AFX_MSG_MAP CAboutDlg / No message handlers / AFX_MSG_MAP END_MESSAGE_MAP / /

22、CPrj01Dlg dialog CPrj01Dlg:CPrj01Dlg CWnd* pParent /* NULL*/ : CDialog CPrj01Dlg:IDD, pParent / AFX_DATA_INIT CPrj01Dlg m_username _T ; m_password _T ; / AFX_DATA_INIT / Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon AfxGetApp - LoadIcon IDR_MAINFRAME ; void CPrj01Dlg:

23、DoDataExchange CDataExchange* pDX CDialog:DoDataExchange pDX ; / AFX_DATA_MAP CPrj01Dlg DDX_Control pDX, IDC_REGISTER, m_RegStatic ; DDX_Text pDX, IDC_EDIT1, m_username ; DDX_Text pDX, IDC_EDIT2, m_password ; / AFX_DATA_MAP BEGIN_MESSAGE_MAP CPrj01Dlg, CDialog / AFX_MSG_MAP CPrj01Dlg ON_WM_SYSCOMMAN

24、D ON_WM_PAINT ON_WM_QUERYDRAGICON ON_BN_CLICKED IDC_BUTTON1, OnEnter ON_BN_CLICKED IDC_BUTTON2, OnButton2 ON_BN_CLICKED IDC_REGISTER, OnRegister / AFX_MSG_MAP END_MESSAGE_MAP / / CPrj01Dlg message handlers BOOL CPrj01Dlg:OnInitDialog CDialog:OnInitDialog ; / Add About. menu item to system menu. / ID

25、M_ABOUTBOX must be in the system command range. ASSERT IDM_ABOUTBOX & 0 xFFF0 IDM_ABOUTBOX ; ASSERT IDM_ABOUTBOX 0 xF000 ; CMenu* pSysMenu GetSystemMenu FALSE ; if pSysMenu ! NULL CString strAboutMenu; strAboutMenu.LoadString IDS_ABOUTBOX ; if !strAboutMenu.IsEmpty pSysMenu- AppendMenu MF_SEPARATOR

26、; 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 dialog SetIcon m_hIcon, TRUE ; / Set big icon SetIcon m_hIcon, FALSE ; / Set small icon / TODO: Add extra initialization h

27、ere LoadUserData ; return TRUE; / return TRUE unless you set the focus to a control void CPrj01Dlg:OnSysCommand UINT nID, LPARAM lParam if nID & 0 xFFF0 IDM_ABOUTBOX CAboutDlg dlgAbout; dlgAbout.DoModal ; else CDialog:OnSysCommand nID, lParam ; / If you add a minimize button to your dialog, you will

28、 need the code below / to draw the icon. For MFC applications using the document/view model, / this is automatically done for you by the framework. void CPrj01Dlg:OnPaint if IsIconic CPaintDC dc this ; / device context for painting SendMessage WM_ICONERASEBKGND, WPARAM dc.GetSafeHdc , 0 ; / Center i

29、con in client rectangle int cxIcon GetSystemMetrics SM_CXICON ; int cyIcon GetSystemMetrics SM_CYICON ; CRect rect; GetClientRect &rect ; int x rect.Width - cxIcon + 1 / 2; int y rect.Height - cyIcon + 1 / 2; / Draw the icon dc.DrawIcon x, y, m_hIcon ; else CDialog:OnPaint ; / The system calls this

30、to obtain the cursor to display while the user drags / the minimized window. HCURSOR CPrj01Dlg:OnQueryDragIcon return HCURSOR m_hIcon; void CPrj01Dlg:OnEnter / TODO: Add your control notification handler code here UpdateData ; if m_username | m_password return; int ret checkUsername ; if ret 1 m_log

31、inUser m_username; m_username ; m_password ; UpdateData FALSE ; CMessage msgDlg; msgDlg.pDlg this; this- ShowWindow SW_HIDE ; msgDlg.DoModal ; PostQuitMessage 0 ; /退出函數(shù) /CloseWindow ; else if ret 0 MessageBox 用戶名或密碼不正確,請重新輸入,錯誤 ; else if ret -1 MessageBox 用戶名不存在,錯誤 ; void CPrj01Dlg:LoadUserData ifst

32、ream fs; fs.open dataUser.dat ; while !fs.eof CUserData tmpUD; char field256; fs field; tmpUD.Name field; fs field; tmpUD.Password field; m_userdata.push_back tmpUD ; int CPrj01Dlg:checkUsername vector :iterator it; for it m_userdata.begin ; it! m_userdata.end ; it+ if m_username it- Name if m_passw

33、ord it- Password return 1; else return 0; return -1; void CPrj01Dlg:SaveUserData ofstream fs; fs.open dataUser.dat ; if !fs MessageBox error ; vector :iterator it; for it m_userdata.begin ;it! m_userdata.end ;it+ fs it- Name.GetBuffer it- Name.GetLength ; fs it- Password.GetBuffer it- Password.GetLe

34、ngth endl;void CPrj01Dlg:OnButton2 / TODO: Add your control notification handler code here m_username ; m_password ; UpdateData FALSE ; void CPrj01Dlg:OnRegister / TODO: Add your control notification handler code here CRegister regDlg; regDlg.pMaindlg this; regDlg.DoModal ; 系統(tǒng)主界面主要程序部分: / Message.cp

35、p : implementation file / #include stdafx.h #include prj01.h #include Message.h #include #include PropNormal.h #include PropOther.h #include SetPWD.h #include ADDMsg.h #include resource.h #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE _FILE_; #endif / / CMessage dialog CM

36、essage:CMessage CWnd* pParent /* NULL*/ : CDialog CMessage:IDD, pParent / / AFX_DATA_INIT CMessage m_LName _T ; m_addr _T ; m_birthday _T ; m_comment _T ; m_email _T ; m_postCode _T ; m_ _T ; m_tel _T ; m_Search _T 搜索聯(lián)系人 ; / AFX_DATA_INIT void CMessage:DoDataExchange CDataExchange* pDX CDialog:DoDat

37、aExchange pDX ; / AFX_DATA_MAP CMessage DDX_Control pDX, IDC_MsgDetails, m_MsgDetails ; DDX_Text pDX, IDC_NAME, m_LName ; DDX_Text pDX, IDC_LADDR, m_addr ; DDX_Text pDX, IDC_LBIRTH, m_birthday ; DDX_Text pDX, IDC_LCOMMENT, m_comment ; DDX_Text pDX, IDC_LEMAIL, m_email ; DDX_Text pDX, IDC_LPOST, m_po

38、stCode ; DDX_Text pDX, IDC_L, m_ ; DDX_Text pDX, IDC_LTEL, m_tel ; DDX_Text pDX, IDC_SEARCH, m_Search ; / AFX_DATA_MAP BEGIN_MESSAGE_MAP CMessage, CDialog ON_WM_CONTEXTMENU / AFX_MSG_MAP CMessage ON_NOTIFY NM_CLICK, IDC_MsgDetails, OnClickMsgDetails ON_NOTIFY NM_DBLCLK, IDC_MsgDetails, OnDblclkMsgDe

39、tails ON_BN_CLICKED IDC_ADD, OnAdd ON_BN_CLICKED IDC_SetPwd, OnSetPwd ON_NOTIFY NM_RCLICK, IDC_MsgDetails, OnRclickMsgDetails ON_COMMAND ID_MENUITEM32771, OnMenuitem32771 ON_COMMAND MENU_ITEM_UPDATA, OnItemUpdata ON_COMMAND MENU_ITEM_DEL, OnItemDel ON_EN_CHANGE IDC_SEARCH, OnChangeSearch ON_EN_SETFO

40、CUS IDC_SEARCH, OnSetfocusSearch ON_EN_KILLFOCUS IDC_SEARCH, OnKillfocusSearch ON_LBN_SELCHANGE IDC_SEARCH_LIST, OnSelchangeSearchList / AFX_MSG_MAP END_MESSAGE_MAP / / CMessage message handlers BOOL CMessage:OnInitDialog CDialog:OnInitDialog ; / TODO: Add extra initialization here LoadMsgData ; /載入

41、通訊錄詳情 /擴展樣式設置 DWORD dwStyle m_MsgDetails.GetExtendedStyle ; /獲取當前擴展樣式 dwStyle | LVS_EX_FULLROWSELECT; /選中某行使整行高亮(report風格時) /dwStyle | LVS_EX_GRIDLINES; /網(wǎng)格線(report風格時) /dwStyle | LVS_EX_CHECKBOXES; /item前生成checkbox控件 m_MsgDetails.SetExtendedStyle dwStyle ; /設置擴展風格 /插入列標題 m_MsgDetails.InsertColumn 0

42、,姓名,LVCFMT_LEFT,80 ; m_MsgDetails.InsertColumn 1,電話,LVCFMT_LEFT,120 ; m_MsgDetails.InsertColumn 2,郵箱,LVCFMT_LEFT,160 ; put2List ; /添加聯(lián)系人詳情到聯(lián)系人列表 m_index -1; /獲取 搜索結(jié)果列表框 m_pResultList CListBox* this- GetDlgItem IDC_SEARCH_LIST ; return TRUE; / return TRUE unless you set the focus to a control / EXCEP

43、TION: OCX Property Pages should return FALSE void CMessage:LoadMsgData ifstream fs; fs.open dataMsgDetails.dat ; if !fs MessageBox error ; while !fs.eof CMsgData tmpMsg; char str256; fs str; tmpMsg.UserId str; fs str; tmpMsg.Name str; fs str; tmpMsg.Tel str; fs str; tmpMsg. str; fs str; tmpMsg.Email

44、 str; fs str; tmpMsgment str; fs str; tmpMsg.Birth str; fs str; tmpMsg.Addr str; fs str; tmpMsg.Post str; m_msgdata.push_back tmpMsg ; void CMessage:put2List vector :iterator it; int index 0; for it m_msgdata.begin ; it! m_msgdata.end ; it+, index+ if it- UserId pDlg- m_loginUser /MessageBox it- Use

45、rId ; int nRow m_MsgDetails.InsertItem m_MsgDetails.GetItemCount ,it- Name ; m_MsgDetails.SetItemText nRow,1,it- Tel ; m_MsgDetails.SetItemText nRow,2,it- Email ; /記錄在整個文件中的索引號 m_MsgDetails.SetItemData nRow, DWORD index ; void CMessage:OnClickMsgDetails NMHDR* pNMHDR, LRESULT* pResult / TODO: Add yo

46、ur control notification handler code here LPNMITEMACTIVATE pData LPNMITEMACTIVATE pNMHDR; /pData- iItem is the selected one int index pData- iItem; /獲取當前選擇項 if index -1 return; /當前沒有選擇項 setFriendInfo index ; *pResult 0; NMHDR g_pNMHDR; void CMessage:OnDblclkMsgDetails NMHDR* pNMHDR, LRESULT* pResult

47、 int index m_index; m_index -1; if index -1 LPNMITEMACTIVATE pData LPNMITEMACTIVATE pNMHDR; /pData- iItem is the selected one index pData- iItem; /獲取當前選擇項 if index 0 return; /當前沒有選擇項 /*CString str; str.Format %d,index ; MessageBox str ; */ Noindex m_MsgDetails.GetItemData index ; / 當前選擇項在vector中的編號

48、CADDMsg changeMsg 修改聯(lián)系人信息 ; / 創(chuàng)建修改聯(lián)系人信息對話框 changeMsg.pDlg this; if IDOK changeMsg.DoModal CMsgData tmpData; CPropNormal *pNormal &changeMsg.m_pNormal; CPropOther *pOther &changeMsg.m_pOther; UpdateData TRUE ; CString t1 10 ,enter 13 ; enter+ t1; pNormal- m_WName.Replace , ; pNormal- m_WComment.Repla

49、ce , ; pNormal- m_WComment.Replace enter, ; pOther- m_WAddr.Replace , ; pOther- m_WAddr.Replace enter, ; if pNormal- m_WName! tmpData.Name pNormal- m_WName; if pNormal- m_WTelphone ! tmpData.Tel pNormal- m_WTelphone; if pNormal- m_W ! tmpData. pNormal- m_W; if pNormal- m_WComment ! tmpDatament pNorm

50、al- m_WComment; if pNormal- m_WEmail ! tmpData.Email pNormal- m_WEmail + + strEmailSuffix; if pOther- m_WAddr ! tmpData.Addr pOther- m_WAddr; if pOther- m_WPostcode ! tmpData.Post pOther- m_WPostcode; tmpData.Birth strYear+strMonth+strDay; tmpData.UserId pDlg- m_loginUser; m_msgdataNoindex tmpData;

51、m_MsgDetails.SetItemText index,0,tmpData.Name ; m_MsgDetails.SetItemText index,1,tmpData.Tel ; m_MsgDetails.SetItemText index,2,tmpData.Email ; /更新聯(lián)系人文件 SaveMsgData ; /MessageBox ok ; setFriendInfo index ; *pResult 0; void CMessage:OnAdd / TODO: Add your control notification handler code here CADDMs

52、g addMsg 添加聯(lián)系人 ; addMsg.pDlg this; if IDOK addMsg.DoModal CMsgData tmpData; CPropNormal *pNormal &addMsg.m_pNormal; CPropOther *pOther &addMsg.m_pOther; UpdateData TRUE ; if pNormal- m_WName ! | pNormal- m_WTelphone ! | pNormal- m_W ! | pNormal- m_WEmail ! | pNormal- m_WComment ! | pOther- m_WAddr !

53、 | pOther- m_WPostcode ! pNormal- m_WName.Replace , ; pNormal- m_WComment.Replace , ; CString t1 10 ,enter 13 ; enter+ t1; pNormal- m_WComment.Replace enter, ; pOther- m_WAddr.Replace , ; pOther- m_WAddr.Replace enter, ; if pNormal- m_WName! tmpData.Name pNormal- m_WName; if pNormal- m_WTelphone ! t

54、mpData.Tel pNormal- m_WTelphone; if pNormal- m_W ! tmpData. pNormal- m_W; if pNormal- m_WComment ! tmpDatament pNormal- m_WComment; if pNormal- m_WEmail ! tmpData.Email pNormal- m_WEmail + + strEmailSuffix; if pOther- m_WAddr ! tmpData.Addr pOther- m_WAddr; if pOther- m_WPostcode ! tmpData.Post pOth

55、er- m_WPostcode; tmpData.Birth strYear+strMonth+strDay; tmpData.UserId pDlg- m_loginUser; m_msgdata.push_back tmpData ; int nRow m_MsgDetails.InsertItem m_MsgDetails.GetItemCount ,tmpData.Name ; m_MsgDetails.SetItemText nRow,1,tmpData.Tel ; m_MsgDetails.SetItemText nRow,2,tmpData.Email ; /記錄在整個文件中的索

56、引號 m_MsgDetails.SetItemData nRow, DWORD m_msgdata.size -1 ; /更新聯(lián)系人文件 SaveMsgData ; void CMessage:setFriendInfo int i int index m_MsgDetails.GetItemData i ; CMsgData *pData &m_msgdataindex; m_LName pData- Name; m_addr ; if pData- Addr! none m_addr pData- Addr; m_birthday ; if pData- Birth! none m_bir

57、thday pData- Birth; m_comment ; if pData- Comment! none m_comment pData- Comment; m_email ; if pData- Email! none m_email pData- Email; m_postCode ; if pData- Post! none m_postCode pData- Post; m_ ; if pData- ! none m_ pData- ; m_tel ; if pData- Tel! none m_tel pData- Tel; UpdateData FALSE ; void CM

58、essage:SaveMsgData ofstream fs; fs.open dataMsgDetails.dat ; if !fs MessageBox error ; vector :iterator it; for it m_msgdata.begin ;it! m_msgdata.end ;it+ if it- UserId _VX#&*$ continue; fs it- UserId.GetBuffer it- UserId.GetLength ; fs it- Name.GetBuffer it- Name.GetLength ; /MessageBox it- Name ;

59、fs it- Tel.GetBuffer it- Tel.GetLength ; fs it- .GetBuffer it- .GetLength ; fs it- Email.GetBuffer it- Email.GetLength ; fs it- Comment.GetBuffer it- Comment.GetLength ; fs it- Birth.GetBuffer it- Birth.GetLength ; fs it- Addr.GetBuffer it- Addr.GetLength ; fs it- Post.GetBuffer it- Post.GetLength n

60、; void CMessage:OnSetPwd / TODO: Add your control notification handler code here CSetPWD dlg; dlg.pDlg this- pDlg; dlg.DoModal ; void CMessage:OnRclickMsgDetails NMHDR* pNMHDR, LRESULT* pResult / TODO: Add your control notification handler code here LPNMITEMACTIVATE pData LPNMITEMACTIVATE pNMHDR; /p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論