個人通訊錄管理系統(tǒng)_第1頁
個人通訊錄管理系統(tǒng)_第2頁
個人通訊錄管理系統(tǒng)_第3頁
個人通訊錄管理系統(tǒng)_第4頁
個人通訊錄管理系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

個人通訊錄管理系統(tǒng)(MFC版)專業(yè)班級:學號:姓名:成績:目錄引言通訊錄管理系統(tǒng)分析1、通訊錄管理系統(tǒng)的意義2、預期目的通訊錄管理系統(tǒng)設計1、MFC介紹2、系統(tǒng)整體框架圖3、多個功效的實現(xiàn)運行與測試1、插入統(tǒng)計的測試2、刪除統(tǒng)計的測試3、修改統(tǒng)計的測試4、導入的測試5、保存統(tǒng)計和退出的測試設計總結附錄1.插入信息對話框代碼2.通訊錄窗口代碼引言21世紀是IT普及的世界,到處都存在IT的身影,實時通訊已是占據(jù)它不可或缺的地位。一種好的、強大的通訊錄系統(tǒng)的好壞,不僅能夠直接影響到公司、個人的人際關系,并且會間接的影響到公司、個人經(jīng)濟利益和社會地位。隨著社會的發(fā)展,科技的進步,計算機的應用在社會各領域中都得到了普及,越來越多的人都感受到運用計算機進行各類管理的科學和便捷,運用計算機進行通訊管理已經(jīng)是一種趨勢。MFC是MicrosoftFoundationClassLibrary(微軟基礎類庫)的縮寫形式。它是C++的類集,提供面對對象框架,運用這個框架,程序員能夠輕松的創(chuàng)立Windows應用程序?;贛FC的通訊管理系統(tǒng)含有美觀的窗口界面、充足可靠的信息數(shù)據(jù)、簡樸方便的維護手段和靈活多變的查詢方式以及快捷而精確的查詢成果。因此,對于通訊錄管理系統(tǒng)的設計重要涉及數(shù)據(jù)庫的建立、維護以及應用程序的開發(fā)兩個方面。對于前者而言規(guī)定建立起數(shù)據(jù)一致性及完整性強、數(shù)據(jù)安全性好的數(shù)據(jù)庫。對于后者而言則規(guī)定含有應用程序功效全,易使用等,運行穩(wěn)定等特點。因此,擬選用的開發(fā)軟件是Microsoft公司出品的VisualC++6.0MFC平臺進行系統(tǒng)的開發(fā)。通訊錄管理系統(tǒng)的分析1、通訊錄管理系統(tǒng)的意義管理信息系統(tǒng)(ManagementInformationSystem,下列簡稱為MIS),是一種將公司生產(chǎn)和經(jīng)營中的多個內、外部信息進行收集、加工、整頓、傳遞,并有序地存儲,以用于管理和決策,是公司增效的信息系統(tǒng)。它能夠使公司更加及時、精確、全方面、詳實的理解所需的信息數(shù)據(jù)。同時管理信息系統(tǒng)對多個信息數(shù)據(jù)的進一步加工,能使公司領導層的生產(chǎn)、經(jīng)營、管理決策根據(jù)更加充足,更含有合理性、科學性;從而為社會發(fā)明出更多的價值,為公司的發(fā)展發(fā)明出更多的機會。對于企、事業(yè)單位的通訊錄管理系統(tǒng)來說,不需要大型的數(shù)據(jù)庫系統(tǒng)。只需要一種操作方便,功效實用,能滿足本中心對數(shù)據(jù)的管理及需求的系統(tǒng),能夠提高通訊錄管理的效率。預期目的我們的目的就是使用C++輸入/輸出流設計一種基于對話框的通訊錄,用于編輯和保存顧客的姓名、電話和E-mail信息,開發(fā)出一種功效比較實用、操作非常方便、簡樸的通訊錄管理系統(tǒng)。并在功效上實現(xiàn)插入統(tǒng)計、刪除統(tǒng)計、修改統(tǒng)計、保存統(tǒng)計、導入與退出等基本功效,滿足我們通訊錄日常所需。通訊錄管理系統(tǒng)的設計1、MFC介紹MFC是MicrosoftFoundationClassLibrary(微軟基礎類庫)的縮寫形式。它是C++的類集,提供面對對象框架,運用這個框架,程序員能夠輕松地創(chuàng)立Windows應用程序。MFC還提供應用程序開發(fā)模型。用MFCAppwizard來創(chuàng)立一種基于對話框的應用程序,過程以下從“文獻”菜單中單擊“新建”,顯示“新建”對話框的Projects(項目)選項卡,其中列出了VisualC++中的向導。選擇標有MFCAppWizard(exe)的圖標,如圖1所示,為項目輸入一種名字。在位置文本框中指定一種途徑。直到選擇列表中的一種圖標,并輸入一種項目名后,OK按鈕才干用。單擊OK。圖1單擊“擬定”之后,在出現(xiàn)的界面中選擇“基于對話框”如圖2所示,即MFC應用程序向導環(huán)節(jié)一圖2點擊“下一步”,進入圖3界面,即MFC應用程序向導環(huán)節(jié)二圖3點擊“下一步”,進入圖4界面,即MFC應用程序向導環(huán)節(jié)三圖4點擊“下一步”,進入圖5界面,再點擊“完畢”,即完畢應用程序的建立圖5系統(tǒng)整體框架圖通訊錄管理系統(tǒng)通訊錄管理系統(tǒng)刪除統(tǒng)計修改統(tǒng)計保存統(tǒng)計插入統(tǒng)計通訊錄管理系統(tǒng)設計重要進行四個功效:插入統(tǒng)計、刪除統(tǒng)計、修改統(tǒng)計、保存統(tǒng)計,在此基礎上增加兩個高級功效:導入與退出。多個功效的實現(xiàn)在“查看”菜單中選擇ClassWizard命令,在打開的對話框中切換到MemberVariable選項卡。選中列表控件的IDC_LIST1,單擊【AddVariable】按鈕,添加組員變量的名稱為m_list,類型為CListCtrl,其設計成果如圖6.1所示,選中列表控件的IDC_EDIT1選項,添加Membervariablename為m_name,類型為CString,單擊【OK】按鈕返回,依次解決IDC_EDIT2、IDC_EDIT3,最后設計成果如圖6.2圖6.1圖6.2(2)在文獻視圖FileView中單擊SourceFiles目錄,雙擊1111Dlg.cpp選項打開該文獻。在文獻中找到OnInitDialog()函數(shù),在//TODO:Addextrainitializationhere的提示下,添加下列代碼:m_list.ModifyStyle(0,LVS_REPORT); //修改顯示風格 m_list.InsertColumn(0,"姓名",LVCFMT_CENTER,70,NULL); //添加“姓名”列 m_list.InsertColumn(1,"電話",LVCFMT_CENTER,100,NULL); //添加“電話”列 m_list.InsertColumn(2,"Email",LVCFMT_CENTER,150,NULL); //添加“Email”列輸入信息對話框的設計:添加對話框,雙擊該對話框,創(chuàng)立一種新類,添加類名為Inputdlg,其設計如圖7.1,整體效果設計圖為7.2圖7.1圖7.2在“通訊錄”對話框中,雙擊【插入統(tǒng)計】按鈕,彈出對話框,如圖8所示,保持函數(shù)名默認值為OnBUTTONinsert(),單擊【OK】按鈕進行代碼編輯。依這類推,解決其它按鈕。圖8(5)【插入統(tǒng)計】按鈕的組員函數(shù)為:voidCMy1111Dlg::OnBUTTONinsert()對應代碼:Inputdlgdlg; if(IDOK==dlg.DoModal()) {m_list.InsertItem(0,dlg.m_name); m_list.SetItemText(0,1,dlg.m_phone); m_list.SetItemText(0,2,dlg.m_email); } k=0;【刪除統(tǒng)計】按鈕的組員函數(shù)為:voidCMy1111Dlg::OnBUTTONdelete()對應代碼:if(!m_list.GetItemCount()){ MessageBox("沒有統(tǒng)計能夠刪除","Error",MB_ICONERROR|MB_OKCANCEL); return;}intindex=0;index=m_list.GetNextItem(0,LVNI_SELECTED);if(-1==index){if(IDOK==MessageBox("擬定刪除?","Information",MB_OKCANCEL)){ m_list.DeleteItem(0);}}else{if(IDOK==MessageBox("擬定刪除?","Information",MB_OKCANCEL)){ m_list.DeleteItem(index);}}}【修改統(tǒng)計】按鈕的組員函數(shù)為:voidCMy1111Dlg::OnBUTTONmodify()對應代碼:if(!m_list.GetItemCount()){MessageBox("沒有統(tǒng)計能夠修改");return;}Inputdlgdlg;dlg.m_name=m_list.GetItemText(0,0);dlg.m_phone=m_list.GetItemText(0,1);dlg.m_email=m_list.GetItemText(0,2);intindex=0;index=m_list.GetNextItem(0,LVNI_SELECTED);if(-1==index){dlg.m_name=m_list.GetItemText(0,0);dlg.m_phone=m_list.GetItemText(0,1);dlg.m_email=m_list.GetItemText(0,2);if(dlg.DoModal()){m_list.SetItemText(0,0,dlg.m_name); m_list.SetItemText(0,1,dlg.m_phone); m_list.SetItemText(0,2,dlg.m_email);}}else{dlg.m_name=m_list.GetItemText(index,0);dlg.m_phone=m_list.GetItemText(index,1);dlg.m_email=m_list.GetItemText(index,2);if(dlg.DoModal()){m_list.SetItemText(index,0,dlg.m_name);m_list.SetItemText(index,1,dlg.m_phone);m_list.SetItemText(index,2,dlg.m_email);}}}【保存統(tǒng)計】按鈕的組員函數(shù)為:voidCMy1111Dlg::OnBUTTONsave()對應代碼:CStringstr; fstreamoutfile("book.txt",ios::out); intCount=m_list.GetItemCount(); for(inti=Count-1;i>=0;i--) { for(intj=0;j<3;j++) { str=m_list.GetItemText(i,j); str+=''; outfile<<str; } outfile<<endl; } outfile.close(); k=1;【導入】按鈕的組員函數(shù)為:voidCMy1111Dlg::OnBUTTONload()對應代碼:BOOLend=FALSE; charp[100]; introw=0,column=0; fstreaminfile("book.txt",ios::in|ios::nocreate); if(!infile) {MessageBox("您沒有保存過信息!"); return; } while(1) {m_list.InsertItem(m_list.GetItemCount(),NULL,NULL);for(column=0;column<3;column++) {if(!(infile>>p)) {end=TRUE; break; } m_list.SetItemText(row,column,p); } row++; if(TRUE==end) {break; } } infile.close();}【退出】按鈕的組員函數(shù)為:voidCMy1111Dlg::OnButton6()對應代碼:if(k==0)MessageBox("您輸入的數(shù)據(jù)未保存,請保存后再繼續(xù)!"); elseDestroyWindow();(6)“通訊錄”對話框的設計從控件列表框中選擇按鈕控件和列表控件置于對話框上,修改按鈕控件的屬性,達成如圖9的設計效果圖9運行與測試插入統(tǒng)計的測試如圖10.1我將自己信息插入,特別是在輸入Email的時候,如果輸入沒有“@”為不正當格式,將會出現(xiàn)如圖10.2所示狀況。圖10.1圖10.2刪除統(tǒng)計的測試剛開始我保存了三個人的聯(lián)系方式如圖11.1所示,刪除時出現(xiàn)圖11.2的界面,之后如圖11.3的界面。圖11.1圖11.2圖11.3修改統(tǒng)計的測試如果我先現(xiàn)我姐姐的電話輸入錯了,對的的號碼是90909090,那么在圖12的界面下修改電話號碼,然后點擊擬定即可圖12導入的測試如圖13.1,我在我和姐姐的信息基礎上增加了我父親媽媽的個人通信信息,然后運行程序“導入”,之后出現(xiàn)如圖13.2的界面。圖13.1圖13.2保存統(tǒng)計和退出的測試程序在設計時考慮文獻的保存問題,因此當碰到東西沒有保存狀況下選擇了退出系統(tǒng),系統(tǒng)會出現(xiàn)警告,那么會出現(xiàn)圖14的界面。圖14設計總結在本次基于MFC的簡易通訊錄管理系統(tǒng)設計中,該系統(tǒng)擁有插入統(tǒng)計。刪除統(tǒng)計、修改統(tǒng)計、保存統(tǒng)計、導入和退出功效。輸入信息涉及姓名、電話號碼、Email。其中導入txt文本信息和退出時檢查與否保存數(shù)據(jù)為較高級功效。系統(tǒng)運行很正常,算較成功的程序設計。但是這只是對MFC的簡樸的應用,通過它,我對MFC的工作機制有了初步的理解,對MFC的進一步理解還需要更多的時間和更多的實踐,設計中所設計功效都是最簡樸的功效,有待提高。我后來會嘗試把數(shù)據(jù)庫MicrosoftSQLServer或Access等軟件學習好,然后再和MFC相結合做出功效更強大的應用程序來。附錄1.插入信息對話框代碼:voidInputdlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(Inputdlg) DDX_Text(pDX,IDC_EDIT1,m_name); DDX_Text(pDX,IDC_EDIT2,m_phone); DDX_Text(pDX,IDC_EDIT3,m_email); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(Inputdlg,CDialog) //{{AFX_MSG_MAP(Inputdlg) ON_WM_SHOWWINDOW() //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////InputdlgmessagehandlersvoidInputdlg::OnOK()//確認按鈕的代碼{ //TODO:Addextravalidationhere UpdateData(TRUE); GetDlgItem(IDC_EDIT1)->SetFocus(); if(m_email.Find('@',0)<0)//檢測郵箱與否符合格式(有@) {MessageBox("Email不對的,請重新輸入"); GetDlgItem(IDC_EDIT3)->SetFocus(); return; } CDialog::OnOK();}voidInputdlg::OnShowWindow(BOOLbShow,UINTnStatus){ CDialog::OnShowWindow(bShow,nStatus); GetDlgItem(IDC_EDIT1)->SetFocus(); //TODO:Addyourmessagehandlercodehere }2.通訊錄窗口代碼:#include"stdafx.h"#include"1111.h"#include"1111Dlg.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif#include"inputdlg.h"#include"fstream.h"intk=1;//k值擬定與否保存///////////////////////////////////////////////////////////////////////////////CAboutDlgdialogusedforAppAboutclassCAboutDlg:publicCDialog{public: CAboutDlg();//DialogData //{{AFX_DATA(CAboutDlg) enum{IDD=IDD_ABOUTBOX}; //}}AFX_DATA //ClassWizardgeneratedvirtualfunctionoverrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport //}}AFX_VIRTUAL//Implementationprotected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg():CDialog(CAboutDlg::IDD)//有關{ //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT}voidCAboutDlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAboutDlg,CDialog) //{{AFX_MSG_MAP(CAboutDlg) //Nomessagehandlers //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CMy1111DlgdialogCMy1111Dlg::CMy1111Dlg(CWnd*pParent/*=NULL*/) :CDialog(CMy1111Dlg::IDD,pParent){ //{{AFX_DATA_INIT(CMy1111Dlg) //NOTE:theClassWizardwilladdmemberinitializationhere //}}AFX_DATA_INIT //NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32 m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);}voidCMy1111Dlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMy1111Dlg) DDX_Control(pDX,IDC_LIST1,m_list); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CMy1111Dlg,CDialog) //{{AFX_MSG_MAP(CMy1111Dlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON1,OnBUTTONinsert) ON_BN_CLICKED(IDC_BUTTON2,OnBUTTONdelete) ON_BN_CLICKED(IDC_BUTTON3,OnBUTTONmodify) ON_BN_CLICKED(IDC_BUTTON4,OnBUTTONsave) ON_BN_CLICKED(IDC_BUTTON5,OnBUTTONload) ON_BN_CLICKED(IDC_BUTTON6,OnButton6) //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CMy1111DlgmessagehandlersBOOLCMy1111Dlg::OnInitDialog()//初始化對話框{ CDialog::OnInitDialog(); //Add"About..."menuitemtosystemmenu. //IDM_ABOUTBOXmustbeinthesystemcomm

溫馨提示

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

評論

0/150

提交評論