版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、本科生畢業(yè)設計基于VC+的電子郵件客戶端的設計與實現(xiàn)Design and implementation of VC+ Mail Client system學生姓名所在專業(yè)信息管理與信息系統(tǒng)所在班級申請學位工學學士指導教師職稱高級工程師答辯時間2015年 5 月 30 日目 錄目 錄II設計總說明I1項目概述11.1開發(fā)背景11.2開發(fā)現(xiàn)狀11.3意義12可行性分析32.1 技術可行性32.2 用戶可行性32.3法律可行性32.4結論43 需求分析53.1 整體目標53.2 功能需求53.3 系統(tǒng)功能建模53.3.1業(yè)務流程圖53.3.2數(shù)據(jù)流程圖73.3.3數(shù)據(jù)字典93.4 概念模型設計104
2、 概要設計124.1 數(shù)據(jù)模型設計124.1.1關系模式設計124.1.2物理結構設計124.2 體系結構設計134.2.1 HIPO圖134.2.2 IPO圖144.3 輸入輸出設計164.3.1 輸入設計164.3.2 輸出設計175 詳細設計205.1郵箱賬戶管理模塊205.2聯(lián)系人信息管理模塊205.3郵件管理模塊215.4系統(tǒng)管理模塊215.5程序流程圖216 系統(tǒng)實現(xiàn)236.1創(chuàng)建和連接數(shù)據(jù)庫236.2系統(tǒng)主框架246.3賬戶管理模塊296.4聯(lián)系人管理模塊326.5郵件功能模塊337 測試427.1 測試的方法427.2 系統(tǒng)主要測試用例舉例427.3 功能評定44鳴謝45參考文
3、獻46設計總說明本文主要闡述了基于VC+電子郵件客戶端的設計與實現(xiàn),較為系統(tǒng)地介紹了電子郵件用戶的登錄、收發(fā)電子郵件、郵件目錄操作、郵件群發(fā)、通訊錄建立與維護等功能。郵件服務器按照提供的服務類型,可以分為發(fā)送郵件服務器(簡稱發(fā)送服務器)和接收郵件服務器(簡稱接收服務器)。發(fā)送郵件服務器使用郵件發(fā)送協(xié)議,現(xiàn)在常用的是SMTP,所以通常發(fā)送郵件服務器也稱為SMTP服務器;接收郵件服務器使用接收郵件協(xié)議,常用的有POP3協(xié)議和IMAP協(xié)議,所以通常接收郵件服務器也稱為POP3服務器或IMAP服務器。本系統(tǒng)使用了面向對象的軟件開發(fā)方法,按照軟件工程的基本步驟對系統(tǒng)進行分析、設計和實現(xiàn)。關鍵詞: 電子郵
4、件,郵件服務,郵件客戶端INTRODUCTIONThis paper mainly discusses VC+ E-mail system based on the design, realization and systematically introduces the email login, email, mail, E-mail group operating directory, contacts the establishment and the maintenance etc. Function. Mail server according to provide service
5、type, can be divided into the email server (referred to send and receive E-mail servers server) (hereinafter referred to as the receiving server). Send mail server use email to send agreement, now commonly used is so often send e-mails SMTP server is also called SMTP server, Receiving mail server us
6、e E-mail agreement, commonly have POP3 and IMAP protocol, so usually receive E-mail server also called POP3 server or IMAP server.The Mail System using the object-oriented software development method, in accordance with the basic steps of software engineering are system analysis, design and Implemen
7、tation Keywords: E-mail Mail Service Mail client 基于VC+的電子郵件客戶端的設計與實現(xiàn)信息管理與信息系統(tǒng),指導教師:xxx作者Q 2792310853,可幫調試此系統(tǒng)系統(tǒng)及演示 .視 .頻畢業(yè)設計說明書1項目概述1.1開發(fā)背景隨著互聯(lián)網(wǎng)的不斷發(fā)展,越來越多的企業(yè)單位通過電子郵件來協(xié)同工作,打破時間與地域的限制,大大提高了工作效率。電子郵件已地經(jīng)成為人們生活中不可缺少的一部分。但是,當前流行的各大郵件客戶端軟件除了最主要的收發(fā)信件之外,功能越來越復雜,但是人們平常真正用到的功能很少,很多功能尤其對于那些計算機知識相對缺乏的人來說,更加顯得太過于華
8、麗而不實用。所以這次的畢業(yè)設計,我選擇了制作一個操作簡單,又可以實現(xiàn)最基本的電子郵件的收發(fā)功能的工具。1.2開發(fā)現(xiàn)狀電子郵件E-mail是Internet最基本的和最重要的服務之一。據(jù)統(tǒng)計,Internet上百分之三十以上的業(yè)務量是電子郵件。由于我國的通訊基礎設施較差,網(wǎng)絡速度較慢,因而,與Internet其它功能如WWW、FTP、NEWS等相比,電子郵件服務具有更大的實用性。CINNIC中國互聯(lián)網(wǎng)絡發(fā)展狀況統(tǒng)計報告中指出。71.65%的中國用戶最常使用的網(wǎng)絡服務就是電子郵件,這個比例遠遠高于搜索引(50.40%)和軟件上傳或下載服務(44.16%)等其他服務。1.3意義 隨著互聯(lián)網(wǎng)的普及,國
9、內外的互聯(lián)網(wǎng)用戶數(shù)呈指數(shù)增長。為滿足不斷增長的信息交流需要,作為因特網(wǎng)第一應用的電子郵件系統(tǒng)變得越來越重要。隨著網(wǎng)絡環(huán)境的建設與完善,許多用戶已經(jīng)提出這樣的要求:擁有自己的電子郵件系統(tǒng)。國外的電子郵件系統(tǒng)可真叫四通八達,這種手段已經(jīng)成為他們通信最流行的幾種方式之一了。相比較國內,電子郵件系統(tǒng)還不算太完善,電子郵件通信的方式還不算太流行,如何才能把這種方式大眾化、流行化呢?這還需要我們去認識它、了解它、使用它。國外已經(jīng)有了許許多多的電子郵件系統(tǒng),國內也有一些這樣的系統(tǒng),我覺得這些還不夠充實這個龐大的流行團體,所以我自己要開發(fā)一個簡單的屬于我自己的電子郵件系統(tǒng),來滿足我及其他用戶的需要。2可行性分
10、析 可行性分析是通過對項目的主要內容和配套條件,如市場需求、資源供應、建設規(guī)模、工藝路線、設備選型、環(huán)境影響、資金籌措、盈利能力等,從技術、經(jīng)濟、操作、法律等方面進行調查研究和分析比較,并對項目建成以后可能取得的財務、經(jīng)濟效益及社會環(huán)境影響進行預測,從而提出該項目是否值得投資和如何進行建設的咨詢意見,為項目決策提供依據(jù)的一種綜合性的系統(tǒng)分析方法??尚行苑治鰬哂蓄A見性、公正性、可靠性、科學性的特點。2.1 技術可行性系統(tǒng)將采用以下技術:(1)采用OOP方法進行程序設計,選擇Visual Studio 2013為開發(fā)工具。(2)采用 ACCESS作為數(shù)據(jù)庫平臺,并采用JDBC的連接技術使應用程序
11、與數(shù)據(jù)庫連接,從使用性來說更加靈活。在大學本科四年的學習過程中對以上技術的使用我都已經(jīng)得到了充分的鍛煉,并且學校注重實踐能力,組織進行多次課程設計來讓我獲得相關經(jīng)驗。因此利用我所掌握的技術,在系統(tǒng)實現(xiàn)方面技術是可行的。2.2 用戶可行性 本系統(tǒng)是一個電子郵件客戶端,操作簡單且易用,用戶使用時并不需要對整個郵件服務器的工作流程進行了解,只需按操作提示即可輕松完成收發(fā)郵件。2.3法律可行性此系統(tǒng)學生完全憑借自已的軟件開發(fā)技術進行開發(fā),系統(tǒng)開發(fā)所用軟件為正版的Visual Studio和ACCESS。系統(tǒng)開發(fā)中堅決遵守自主開發(fā)的原則,絕不借用其他相關系統(tǒng)的代碼,系統(tǒng)架構和完成符合雙方協(xié)定,所有涉及操
12、作、使用軟件均為正版,且該軟件各項指標不違反相關法律法規(guī),技術資料都由提出方保管,數(shù)據(jù)信息均可保證合法來源,故不會涉及到軟件侵權等相關事宜。2.4結論綜上所述,使用本系統(tǒng)將大大節(jié)省人力、物力和才力,客戶得到更佳的使用體驗,符合社會信息化發(fā)展的需要。因此開發(fā)電子郵件客戶端系統(tǒng)是完全可行的。3 需求分析 軟件需求分析的目標是深入描述軟件的功能和性能,確定軟件設計的約束和軟件同其它系統(tǒng)元素的接口細節(jié),定義軟件的其它有效懷需求。需求分析階段研究的對象是軟件項目的用戶要求。一方面,必須充分了解用戶的各種要求,但又不能全盤接受全部的要求,另一方面,要準確地表達被接受的用戶要求。只有經(jīng)過確切描述的軟件需求才
13、能打下堅實的軟件設計的基礎。3.1 整體目標本郵件程序可以同時管理多個郵箱賬號,實時提醒,可以發(fā)送附件、圖片。支持郵件群發(fā),黑名單。而作為一個企業(yè)或學校,應該有一個自己的郵件服務器及郵件收發(fā)程序,防止信息瀉密及廣告騷擾。而且沒有容量限制,告別網(wǎng)絡免費郵因不穩(wěn)定或網(wǎng)絡故障帶來的不能查看郵件的不便。3.2 功能需求使用本軟件要求用戶比較熟悉Windows 操作系統(tǒng),并且具備一定的軟件操作基礎。 應用環(huán)境以Internet/Intranet技術為核心。軟件采用B/S結構開發(fā),主要包含郵件收發(fā)、賬號管理、用戶管理、郵箱管理功能。3.3 系統(tǒng)功能建模本系統(tǒng)采用結構化的分析方法,采用業(yè)務流程圖來表達系統(tǒng)功
14、能的運行以及數(shù)據(jù)的流向和定義。3.3.1業(yè)務流程圖業(yè)務流程圖簡稱TFD,這是用來描述系統(tǒng)內各功能模塊之間業(yè)務關系、作業(yè)順序和管理信息流向的圖表,利用它可以幫助分析業(yè)務流程中的不合理流向,為了使業(yè)務流程圖所描述業(yè)務結構更加清晰,容易閱讀。下面為該圖符號作相關說明:業(yè)務流程圖的符號說明見表3-1。表3-1業(yè)務流程圖符號說明圖形符號符號說明或表示輸入輸出的報表、計劃、單據(jù)或報告,框內寫明其名稱。表示單位或個人,圈內寫明單位或個人職務的名稱。表示各種賬目、規(guī)范、定額手冊、報表積累等大量存檔信息,符號內部寫明其名稱。表示業(yè)務處理,框內寫明處理的名稱。表示信息或處理的流向。電子郵件系統(tǒng)業(yè)務流程圖如圖3-1
15、所示。圖3-1電子郵件系統(tǒng)業(yè)務流程圖 用戶寫郵件收郵件聯(lián)系人管理賬戶管理系統(tǒng)設置發(fā)件信息收件信息聯(lián)系人信息賬戶信息系統(tǒng)信息系統(tǒng)信息賬戶信息系統(tǒng)設置聯(lián)系人信息收件信息發(fā)件信息賬戶管理聯(lián)系人管理 用戶收郵件寫郵件圖3-1電子郵件系統(tǒng)業(yè)務流程圖3.3.2數(shù)據(jù)流程圖數(shù)據(jù)流程圖簡稱DFD,它用來描述目標系統(tǒng)的邏輯結構,它是由實體部分、處理部分、數(shù)據(jù)存儲部分和數(shù)據(jù)流部分四部分組成,為了使數(shù)據(jù)流圖所描述邏輯結構更加清晰,容易閱讀,對數(shù)據(jù)流圖作如下說明:(1)每一細化過程的實體、處理、數(shù)據(jù)流都用漢字標識,并給出相應的標號。(2)數(shù)據(jù)流程圖符號說明。數(shù)據(jù)流圖的符號說明見表3-2。表3-2數(shù)據(jù)流程圖符號說明圖形符
16、號名稱符號說明PMC實體記述系統(tǒng)之外的數(shù)據(jù)提供或數(shù)據(jù)獲得組織機構或個人,框內為實體名稱。處理記述某種業(yè)務的手工或計算機處理,其中,PM區(qū)記述處理標號,C區(qū)記述處理名稱。DN S數(shù)據(jù)存儲記述與處理有關的數(shù)據(jù)存儲,DN區(qū)記述存儲的標號,S區(qū)記述存儲數(shù)據(jù)的名稱FM數(shù)據(jù)流記述數(shù)據(jù)流的流動方向,F(xiàn)M記述數(shù)據(jù)流的名稱。電子郵件系統(tǒng)數(shù)據(jù)流程圖如圖3-2至3-3所示。P用戶操作結果用戶操作信息用戶用戶電子郵件系統(tǒng) 圖3-3用戶子系統(tǒng)數(shù)據(jù)流圖 圖3-2 電子郵件系統(tǒng)頂級數(shù)據(jù)流程圖 P1用戶子系統(tǒng)F1發(fā)件信息D1 發(fā)件信息表D1 系統(tǒng)信息表D1 賬戶信息表F5系統(tǒng)信息F4賬戶信息D3 聯(lián)系人信息表 F3聯(lián)系人信息
17、F2收件信息D2 收件信息表3.3.3數(shù)據(jù)字典數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合,是進行詳細的數(shù)據(jù)的收集和數(shù)據(jù)分析秘獲得的主要成果。數(shù)據(jù)字典是對DFD中所有元素(數(shù)據(jù)流、數(shù)據(jù)存儲、數(shù)據(jù)流及數(shù)據(jù)存儲中的數(shù)據(jù)元素、數(shù)據(jù)處理)的定義和集合。它們的定義常常是以卡形式給出的,數(shù)據(jù)流定義用數(shù)據(jù)流卡,數(shù)據(jù)存儲定義用數(shù)據(jù)存儲卡,數(shù)據(jù)處理定義用數(shù)據(jù)處理卡,數(shù)據(jù)元素定義用數(shù)據(jù)元素卡。數(shù)據(jù)字典在數(shù)據(jù)庫設計中占據(jù)了十分重要的地位。電子郵件系統(tǒng)數(shù)據(jù)字典如表3-3至3-8所示。表3-3 發(fā)件信息數(shù)據(jù)字典名字:發(fā)件信息別名:發(fā)件信息記錄描述:記錄已發(fā)郵件的編號,郵件主題、郵件正文、附件定義:發(fā)件信息=郵件編號+郵件主題+郵
18、件正文+附件表3-4 收信息數(shù)據(jù)字典名字:收件信息別名:收件信息記錄描述:存放已接收郵件信息的數(shù)據(jù)表,以供用戶查閱定義:收伯信息=郵件編號+郵件主題+郵件正文 表3-5 聯(lián)系人數(shù)據(jù)字典名字:聯(lián)系人信息別名:聯(lián)系人描述:存放聯(lián)系人信息的數(shù)據(jù)表,以供用戶查詢,并作相應操作定義:訂單=訂單編號+訂單金額 表3-6 郵箱賬戶數(shù)據(jù)字典名字:郵件賬戶別名:賬戶信息描述:存放郵箱賬戶信息的數(shù)據(jù)表,以供用戶查閱賬戶信息,并作相應操作定義:購物車=購物車編號+購物總額 表3-7 系統(tǒng)信息數(shù)據(jù)字典名字:系統(tǒng)詳情別名:系統(tǒng)詳情信息描述:存放系統(tǒng)信息的文件,以供用戶查閱系統(tǒng)詳情信息,并作相應設置定義:系統(tǒng)詳情=系統(tǒng)詳
19、情信息3.4 概念模型設計概念設計是一種面向對象的數(shù)據(jù)模型,是根據(jù)用戶的觀點來對數(shù)據(jù)和信息進行建模。它描述了從用戶角度看到的數(shù)據(jù),它反映了用戶的實現(xiàn)環(huán)境,這種方法用ER圖描述現(xiàn)實世界中的實體,而不涉及這些實體在系統(tǒng)中的方法。概念設計中最著名的方法之一就是實體聯(lián)系方法(ER方法),建立ER模型,用ER圖描述概念結構,得到數(shù)據(jù)庫的概念模型。為了使ER圖所描述邏輯結構更清晰,更易讀,下面對ER圖作進行說明:(1)ER圖的符號說明見表3-3。表3-3ER圖符號說明圖形符號名稱符號說明實體屬性聯(lián)系 用矩形表示,矩形框內寫明實體名。用橢圓形表示,橢圓內寫明屬性名稱,并用連線與實體連接起來。如果屬性較多,為
20、使圖形更加簡明,有時也將實體與其相應的屬性另外單獨用列表表示。用菱形表示,菱形框內寫明聯(lián)系名,并用連線分別與有關實體連接起來,同時在連線旁標上聯(lián)系的類型。ER模型中包含“實體”,“聯(lián)系”和“屬性”。在本系統(tǒng)中,多對多的關系用(m-n)表示。電子郵件系統(tǒng)總體ER圖如圖3-8所示。主題n1n1接收n1管理正文n1管理 密碼發(fā)件人賬號郵箱地址姓名管理n1郵箱賬戶 發(fā)送郵件聯(lián)系人用戶圖3-8 電子郵件系統(tǒng)總體ER圖 4 概要設計4.1 數(shù)據(jù)模型設計數(shù)據(jù)模型設計是軟件開發(fā)的靈魂和根本,關系到整個系統(tǒng)成功與否,是開發(fā)高品質應用的前提,鑒于數(shù)據(jù)庫設計的重要性,設計過程應按照概念模型設計關系模型設計物理數(shù)據(jù)庫
21、設計的步驟進行。4.1.1關系模式設計關系模式設計是由系統(tǒng)的概念模型導出關系模式。將一個實體型轉換為一個關系模式,實體的屬性就是關系的屬性,實體的鍵就是關系的鍵。先確定該聯(lián)系的類型,再確定相應的鍵。最后進行規(guī)范化處理,求出關系模式中的最小依賴集,并依據(jù)規(guī)范化理論,將關系模式規(guī)范到三范式。依據(jù)上述原則,得出本系統(tǒng)的關系模式:(1)郵箱賬戶表(郵箱賬戶,郵箱密碼,備注名,POP3,SMTP,狀態(tài))(2)聯(lián)系人信息表(聯(lián)系人郵箱,姓名,電話,地址,備注,黑名單)(3)郵件信息表(郵件編號,接收人,發(fā)送人,郵件主題,郵件正文,修改時間,類型,已讀,已刪)4.1.2物理結構設計下面將主要介紹關鍵數(shù)據(jù)表的
22、數(shù)據(jù)庫設計的詳細說明,見表4-1至表4-3。1)t_account數(shù)據(jù)表存儲了郵箱賬戶信息,表結構如表4-1所示:表4-1 t_account 數(shù)據(jù)表字段名稱數(shù)據(jù)類型字段大小備注userjie文本50帳戶名passwordjie文本50賬戶密碼namejie文本50備注名POP3jie文本50POP3服務器SMTPjie文本50SMTP服務器statusjie文本50默認發(fā)件賬戶2)t_contact數(shù)據(jù)表存儲了聯(lián)系人信息,表結構如表4-2所示:表4-2 t_contact數(shù)據(jù)表字段名稱數(shù)據(jù)類型字段大小備注mail文本50聯(lián)系人郵箱、主鍵name文本5050聯(lián)系人姓名Phone1文本50聯(lián)系人
23、電話1Phone2文本50聯(lián)系人電話2address文本50聯(lián)系人地址remark備注65535備注blacklist文本50黑名單3)t_message數(shù)據(jù)表存儲了收發(fā)郵件的相關信息,表結構如表4-3所示:表4-3 t_message數(shù)據(jù)表字段名稱數(shù)據(jù)類型字段大小備注Id長整型11自動編號、主鍵receiver備注65535收件人列表sender文本50發(fā)件人theme備注6553郵件主題body備注65535郵件正文lastTime文本50修改時間type文本50郵件類型IsRead文本50已讀IsDelete文本50已刪4.2 體系結構設計4.2.1 HIPO圖 根據(jù)對系統(tǒng)需求分析中的總
24、體目標和具體目標的分析,得到系統(tǒng)的功能樹如圖4-3所示。添加聯(lián)系人刪除聯(lián)系人聯(lián)系人管理快速查找系統(tǒng)設置恢復數(shù)據(jù)備份數(shù)據(jù)系統(tǒng)管理 修改賬戶刪除賬戶郵件收發(fā) 添加賬戶郵件刪除郵件管理賬戶管理模塊電子郵件客戶端圖4-3 電子郵件系統(tǒng)結構圖4.2.2 IPO圖(1)郵箱賬戶管理功能:該功能是實現(xiàn)郵箱賬戶管理功能,其IPO圖如下輸入(input)輸入郵箱賬戶用戶名(varchar(50)輸入郵箱賬戶密碼(varchar(50) 輸出(output)輸出相應的信息提示處理(process)將所錄入的信息存入數(shù)據(jù)庫(1)(1)(2)(3)(2)聯(lián)系人管理輸入(input)輸入聯(lián)系人的郵箱地址、姓名等相關信息
25、該功能是將聯(lián)系人的相關信息寫入數(shù)據(jù)庫保存起來以便用戶查詢和向相應聯(lián)系人發(fā)送郵件,IPO圖如下 輸出(output)輸出添加聯(lián)系人后的相應信息提示處理(process)實現(xiàn)將聯(lián)系人所有信息保存到數(shù)據(jù)庫中(3)郵件管理該功能是將接收到或已發(fā)送的郵件信息寫入數(shù)據(jù)庫保存起來以便用戶查閱,其IPO圖如下輸入(input)輸入:郵件的收件人,主題,正文等相關信息接收:郵件發(fā)件人,主題,正文等相關信息處理(process)實現(xiàn)將接收或發(fā)送的郵件保存到數(shù)據(jù)庫中去 輸出(output)輸出添加類別后結果的相應信息提示(4)系統(tǒng)管理通過該功能可備份還原數(shù)據(jù)庫,避免本郵件系統(tǒng)數(shù)據(jù)的丟失,其IPO圖如下:輸入(inp
26、ut)輸入:數(shù)據(jù)庫備份路徑 輸出(output)輸出備份處理的提示信息處理(process)關閉系統(tǒng)數(shù)據(jù)庫連接并制作當前數(shù)據(jù)庫的拷貝到輸入的路徑。4.3 輸入輸出設計4.3.1 輸入設計輸入設計擔負著將系統(tǒng)外的數(shù)據(jù)以一定的格式送入計算機,輸入設計的一條重要原則是確保系統(tǒng)輸入的信息準確無誤。如圖4-4、4-5所示。圖4-4新郵件信息輸入圖圖4-5 郵箱賬戶信息輸入圖4.3.2 輸出設計輸出主要是指文字的輸出和查詢的輸出,本系統(tǒng)輸出設計如圖4-6所示。圖4-6 郵件列表輸出圖4.4 接口設計數(shù)據(jù)庫這一概念提出后,先后出現(xiàn)了幾種數(shù)據(jù)模型。其中基本的數(shù)據(jù)模型有三種:層次模型系統(tǒng)、網(wǎng)絡模型系統(tǒng)、和關系模
27、型系統(tǒng)。六十年代末期提出的關系模型具有數(shù)據(jù)結構簡單靈活、易學易懂且具有雄厚的數(shù)學基礎等特點,從七十年代開始流行,發(fā)展到現(xiàn)在已成為數(shù)據(jù)庫的標準。目前廣泛使用的數(shù)據(jù)庫軟件都是基于關系模型的關系數(shù)據(jù)庫管理系統(tǒng)。1.用戶接口 本產(chǎn)品的用戶一般需要通過終端進行操作,進入主界面后點擊相應的窗口,分別進入相對應的界面(如:輸入界面、輸出界面)。用戶對程序的維護,最好要有備份。2.軟件接口 windows7/8操作系統(tǒng),漢語編程系統(tǒng)。5 詳細設計在數(shù)據(jù)庫系統(tǒng)開始設計的時候應該盡量考慮全面,尤其應該仔細考慮用戶的各種需求,避免浪費不必要的人力和物力。5.1郵箱賬戶管理模塊(1)模塊編號:P0101(2)模塊名稱
28、:賬戶管理(3)模塊功能:增加、刪除、查詢賬戶,設置、修改賬戶密碼。(4)輸入項目:賬戶名、賬戶密碼、標識、POP3、SMTP。(5)輸出項目:賬戶名、標識、POP3、SMTP。(6)算法:insert into account(userjie,passwordjie,namejie,pop3jie,smtpjie) values('賬戶名','賬戶密碼','標識','POP3','SMTP')Delete from tb_user where 條件update account set passwordjie=
29、39;新密碼',namejie='新標識',pop3jie='新POP3',smtpjie='新SMTP' where userjie='賬戶名'select * from account where userjie='賬戶名'5.2聯(lián)系人信息管理模塊(1)模塊編號:P0201(2)模塊名稱:聯(lián)系人信息管理(3)模塊功能:增加、刪除、修改、查詢聯(lián)系人(4)輸入項目:聯(lián)系人姓名、郵箱、電話、地址。(5)輸出項目:聯(lián)系人信息列表。(6)算法:insert into contact(name,mail,phone
30、1,phone2,address,remark,blackList) values('姓名','郵箱','電話1','電話2','地址','備注','黑名單')delete from contact where mail='郵箱'select * from contact ORDER BY blackList,nameupdate contact set name='姓名',phone1='電話1',phone2='電話2
31、9;,address='地址',remark='備注',blackList='黑名單' where mail='郵箱'5.3郵件管理模塊(1)模塊編號:P0301(2)模塊名稱:郵件管理(3)模塊功能:新建、保存、接收郵件信息(4)輸入項目:收件人、郵件主題、郵件正文、附件。(5)輸出項目:郵件信息列表。(6)算法:insert into message(receiver,sender,theme,body,lastTime,type) values('收件人','發(fā)件人','郵件主題
32、9;,'郵件正文','修改時間','已發(fā)送')5.4系統(tǒng)管理模塊(1)模塊編號:P0401(2)模塊名稱:系統(tǒng)管理(3)模塊功能:備份或還原數(shù)據(jù)庫(4)輸入項目:數(shù)據(jù)庫備份路徑或要還原的數(shù)據(jù)庫路徑。(5)輸出項目:數(shù)據(jù)庫操作結果提示。5.5程序流程圖本系統(tǒng)設計程序所采用的程序流程圖如下。 聯(lián) 系 人 管 理圖5.1 郵件系統(tǒng)流程圖 郵 件 管 理 賬 戶 管 理 系 統(tǒng) 管 理開始結束功能選擇主界面6 系統(tǒng)實現(xiàn)本設計是基于VC+的電子郵件客戶端系統(tǒng)。軟件作為系統(tǒng)與用戶直接交互的媒介,在實現(xiàn)完善的功能的同時,也考慮到了管用戶操作的簡單性和方便性。并
33、且對界面進行設計。6.1創(chuàng)建和連接數(shù)據(jù)庫本次設計的基于VC+的電子郵件客戶端系統(tǒng)分為兩部分,前臺軟件和后臺數(shù)據(jù)庫。因此首先需要在JDBC中創(chuàng)建系統(tǒng)所用的數(shù)據(jù)庫,數(shù)據(jù)庫的表結構和關系已在上一章中介紹,不再重復對于任何數(shù)據(jù)庫進行操作之前,都需要先進行連接,而連接過程中必須加載JDBC驅動程序。JDBC使用的驅動程序可以是一個本地模塊。如JDBCODBC橋,也可以是一個動態(tài)鏈接庫。本程序通過特定的協(xié)議在網(wǎng)絡上與服務器進行通信。CAccessDB類主要是對數(shù)據(jù)的操作,如連接、關閉數(shù)據(jù)庫及執(zhí)行SQL語句操作數(shù)據(jù)庫。每一種操作對應一個方法。(1)導入所需的動態(tài)鏈接庫,代碼如下:#import "
34、C:Program FilesCommon FilesSystemadoMSADO15.DLL" no_namespace rename ("EOF", "adoEOF") (2)創(chuàng)建獲取數(shù)據(jù)庫連接的方法,方法中使用_ConnectionPtr類的CreateInstance方法獲取一個Connection類實例,即獲取一個數(shù)據(jù)庫連接。代碼如下: CString strSQL;_ConnectionPtr pConn;/連接對象指針_bstr_t bstr;_RecordsetPtr pRst = NULL;pRst.CreateInstanc
35、e(_uuidof(Recordset);CoInitialize(NULL);/初始化系統(tǒng)環(huán)境pConn.CreateInstance(_uuidof(Connection);/創(chuàng)建連接tryprovider.Format(L"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;persist security info=false;Jet OLEDB:Database Password=daf82sadfADSF65a=+d5", GetAccessRoute();pConn->Open(_bstr_t)provider
36、, "", "", adModeUnknown);/打開數(shù)據(jù)庫連接bstr = (_bstr_t)strSQL;pRst = pConn->Execute(bstr, NULL, adCmdText);/執(zhí)行SQL語句catch (_com_error e)AfxMessageBox(L"SQLExecute() Error!" + e.Description();Close();(3)創(chuàng)建對數(shù)據(jù)庫進行關閉的close()方法,在該方法中主要是通過調用_RecordsetPtr類對象的Close()方法實現(xiàn)對數(shù)據(jù)庫的關閉,代碼如
37、下: public void Close() if (pConn)pConn->Close();if (pRst)pRst->Close();6.2系統(tǒng)主框架本系統(tǒng)采用B/S模式,后臺使用Access作為后臺的數(shù)據(jù)管理系統(tǒng),而在前臺使用MSADO15.DLL動態(tài)鏈接庫組件來調用存儲過程的。SQL(Structured Query Language,結構查詢語言)是一個功能強大的數(shù)據(jù)庫語言。SQL通常使用于數(shù)據(jù)庫的通訊。ANSI(美國國家標準學會)聲稱,SQL是關系數(shù)據(jù)庫管理系統(tǒng)的標準語言。SQL語句通常用于完成一些數(shù)據(jù)庫的操作任務,比如在數(shù)據(jù)庫中更新數(shù)據(jù),或者從數(shù)據(jù)庫中檢索數(shù)據(jù)。它
38、具有簡單,高效,功能強大等特點,一直是廣大程序員喜愛的編程工具,并且運用C+作為編程語言。C+具有面向對象編程語言所應有的的一切特性,如封裝,繼承和多態(tài)。在 C+眾多的優(yōu)勢中,它在數(shù)據(jù)庫方面的特長顯得尤為突出:適合于多種數(shù)據(jù)庫結構,從客戶/服務機模式到多層數(shù)據(jù)結構模式,而且C+編寫的代碼具有更好的可讀性,而且減少了發(fā)生命名沖突的可能。本系統(tǒng)摒棄了傳統(tǒng)的下拉式菜單,采用了Ribbon功能區(qū)。它是新的Microsoft Office Fluent用戶界面(UI)的一部分。它是一人收藏了命令按鈕和圖示的面板。它把命令組成一組“標簽”,每一組包含了相關的命令。每一個應用程序都有一個不同的標簽組,展示了
39、程序所提供的功能,非常的華麗、直觀。主框架運行效果如圖6-2所示。圖6-2 系統(tǒng)主框架本程序難度最大、開發(fā)耗時最長的就是主框架的開發(fā)以及郵件功能模塊的開發(fā)。主框架開發(fā)時在切割功能區(qū)時遇到了很多問題,經(jīng)過不懈的努力,終于將功能區(qū)一分為二,左邊是分類按鈕,右邊是相應的經(jīng)過篩選的郵件列表。核心代碼如下:BOOL CMainFrame:OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)if (!m_wndSplitter.CreateStatic(this, 2, 1)return FALSE;if (!m_wndSplitter
40、.CreateView(0, 0, RUNTIME_CLASS(CToolView), CSize(0, 0), pContext)return FALSE;m_toolview = (CToolView*)m_wndSplitter.GetPane(0, 0);/注意先后順序,不然絕對杯劇,輕則后期無法添加數(shù)據(jù),重則崩潰if (!m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CMessageList), CSize(100, 100), pContext)return FALSE;m_messageList = (CMessageList*)m_w
41、ndSplitter.GetPane(1, 0);return CFrameWndEx:OnCreateClient(lpcs, pContext);程序功能區(qū)的郵件列表的顯示及刪除、刪除等操作都是基CMessageList類來完成的。CMessageList類繼承于CListView類,并在此基礎上添加了全選、雙擊、多選操作及刷新郵件列表的響應方法。CMessageList類初始化操作如下:void CMessageList:OnInitialUpdate()CListView:OnInitialUpdate();LONG lStyle;lStyle = GetWindowLong(m_hW
42、nd, GWL_STYLE);/獲取當前窗口風格 lStyle &= LVS_TYPEMASK; /清除顯示方式位lStyle |= LVS_REPORT; /設置報表風格 SetWindowLong(m_hWnd, GWL_STYLE, lStyle); /設置窗口風格/m_list->SetExtendedStyle(m_list->GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_CHECKBOXES);DWORD styles = LVS_EX_FULLROWSELECT |
43、LVS_EX_GRIDLINES | LVS_EX_CHECKBOXES;ListView_SetExtendedListViewStyleEx(m_hWnd, styles, styles);/m_list.SetBkColor(RGB(200, 200, 200); /設置背景顏色 /m_list.SetTextBkColor(RGB(200, 200, 200); /設置文本背景顏色 /m_list.SetTextColor(RGB(10, 10, 80); /設置文本顏色 /插入列的標題 GetListCtrl().InsertColumn(0, L"SEL", L
44、VCFMT_CENTER, 40);GetListCtrl().InsertColumn(1, L"ID", LVCFMT_CENTER, 50);GetListCtrl().InsertColumn(2, L"發(fā)件人", LVCFMT_CENTER, 130);GetListCtrl().InsertColumn(3, L"收件人", LVCFMT_CENTER, 130);GetListCtrl().InsertColumn(4, L"狀態(tài)", LVCFMT_CENTER, 50);GetListCtrl().
45、InsertColumn(5, L"主題", LVCFMT_CENTER, 130);GetListCtrl().InsertColumn(6, L"正文", LVCFMT_CENTER, 130);GetListCtrl().InsertColumn(7, L"時間", LVCFMT_CENTER, 180);當雙擊功能區(qū)的郵件列表中的某一條記錄時,打開郵件編輯器,可以對此條記錄進行相應的修改及發(fā)送操作,函數(shù)代碼如下:void CMessageList:OnLButtonDblClk(UINT nFlags, CPoint poin
46、t)/ TODO: 在此添加消息處理程序代碼和/或調用默認值int nHitItem = m_list->HitTest(point, NULL);if (nHitItem >= 0)/CString ID, receiver, sender, theme, body, lastTime, type, IsRead, IsDelete;ID = m_list->GetItemText(nHitItem, 1);strSQL.Format(L"update message set IsRead='' where ID=%s", ID);db.
47、SQLExecute(strSQL, &boolresult);sender = m_list->GetItemText(nHitItem, 2);receiver = m_list->GetItemText(nHitItem, 3);/AfxMessageBox(receiver);/IsRead = m_list->GetItemText(nHitItem, 4);theme = m_list->GetItemText(nHitItem, 5);body = m_list->GetItemText(nHitItem, 6);/lastTime = m_
48、list->GetItemText(nHitItem, 7);/AfxMessageBox(body);CMailEditerDlg dlg;/dlg.ID = ID;dlg.sender = sender;dlg.receiver = receiver;/dlg.IsRead = ID;dlg.theme = theme;dlg.body = body;dlg.IsSave = true;/dlg.lastTime = IDlastTime;CMainFrame *pMain = (CMainFrame*)AfxGetApp()->m_pMainWnd;pMain->Upd
49、atePosition();dlg.DoModal();CListView:OnLButtonDblClk(nFlags, point);在對郵件列表的管理方面,集成了全選和自由選擇的功能,可以對郵件進行自由刪除和移動,方法代碼如下:int CMessageList:OnDelTheSelected()UpdateData();/刷新窗口數(shù)據(jù),否則取消打勾仍被程序視為打勾狀態(tài)int selCount = 0;CString selID;for (int i = 0; i < m_list->GetItemCount(); i+)if (m_list->GetItemState
50、(i, LVIS_SELECTED) = LVIS_SELECTED | m_list->GetCheck(i)selCount+;selID = m_list->GetItemText(i, 1);strSQL.Format(L"delete * from message where ID=%s", selID);db.SQLExecute(strSQL, &boolresult);if (selCount = 0)AfxMessageBox(L"請在SEL一列中打勾");return selCount;6.3賬戶管理模塊 本電子郵
51、件系統(tǒng)因為涉及到個人賬戶密碼信息的管理等安全性需求較高的功能,因此對數(shù)據(jù)庫進行加密。1)設計思路首先創(chuàng)建添加郵箱賬戶對話框并關聯(lián)到類CUserDlg。其次,賬戶信息中的數(shù)據(jù)關系到用戶的個人信息,必須保證其安全性。本系統(tǒng)不提供賬戶自主注冊功能,用戶的注冊都需要在對應電子郵箱服務器中進行。最后,因為登錄界面是整個系統(tǒng)的門面,所以程序界面稍作設計,使其看起來簡潔美觀。 2)技術分析(1)添加郵箱賬戶并保存時,會查詢數(shù)據(jù)庫中是否已有此郵箱賬戶,如果已有,則提示是否修改,如果沒有,則自動創(chuàng)建。的方法如下:void CUserDlg:OnBnClickedSave2()SetDlgItemText(IDC
52、_INFO, L"");GetDlgItemText(IDC_MAIL, mail);GetDlgItemText(IDC_PASSWORD, password);if (!db.IsMailAddress(mail)|password.IsEmpty()AfxMessageBox(L"請輸入密碼和正確的郵箱地址!");elseGetDlgItemText(IDC_REMARK, remark);GetDlgItemText(IDC_POP3, pop3);GetDlgItemText(IDC_SMTP, smtp);strSQL.Format(L&qu
53、ot;select * from account where userjie='%s'", mail);if (db.IsRecordExist(strSQL)if (MessageBox(L"是否修改已有賬號?", L"", MB_ICONWARNING | MB_YESNO) = IDYES)strSQL.Format(L"update account set passwordjie='%s',namejie='%s',pop3jie='%s',smtpjie=
54、9;%s' where userjie='%s'", password, remark, pop3, smtp,mail);db.SQLExecute(strSQL,&boolresult);if (boolresult)SetDlgItemText(IDC_INFO, L"修改賬號成功!");elseSetDlgItemText(IDC_INFO, L"出錯啦:>_<:n修改賬號失敗!");else/if (MessageBox(L"此賬號不在數(shù)據(jù)庫中,是否創(chuàng)建?", L"", MB_ICONQUESTION | MB_YESNO) = IDYES)strSQL.Format(L"insert into ac
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年基礎設施建設項目施工圖設計委托合同3篇
- 2025年度高端健身房裝修施工合同范本4篇
- 2025版木雕工藝品市場調研與品牌推廣合同3篇
- 水稻種植保險服務2025年度合同2篇
- 二零二五版門窗行業(yè)環(huán)保與可持續(xù)發(fā)展合作合同3篇
- 2025年電梯安裝與城市更新項目合同2篇
- 二零二五年度船舶船員勞務合同(海洋工程咨詢)3篇
- 二零二五年度廚房電器配件采購合同樣本4篇
- 2025年度新能源汽車核心部件承攬合同(GF(2024版)規(guī)范)4篇
- 2025年鎂質磚項目可行性研究報告
- 鄉(xiāng)村治理中正式制度與非正式制度的關系解析
- 2024版義務教育小學數(shù)學課程標準
- 智能護理:人工智能助力的醫(yī)療創(chuàng)新
- 國家中小學智慧教育平臺培訓專題講座
- 5G+教育5G技術在智慧校園教育專網(wǎng)系統(tǒng)的應用
- 服務人員隊伍穩(wěn)定措施
- VI設計輔助圖形設計
- 淺談小學勞動教育的開展與探究 論文
- 2023年全國4月高等教育自學考試管理學原理00054試題及答案新編
- 河北省大學生調研河北社會調查活動項目申請書
- JJG 921-2021環(huán)境振動分析儀
評論
0/150
提交評論