桌面日歷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)—計(jì)算機(jī)畢業(yè)設(shè)計(jì)(論文)_第1頁
桌面日歷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)—計(jì)算機(jī)畢業(yè)設(shè)計(jì)(論文)_第2頁
桌面日歷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)—計(jì)算機(jī)畢業(yè)設(shè)計(jì)(論文)_第3頁
桌面日歷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)—計(jì)算機(jī)畢業(yè)設(shè)計(jì)(論文)_第4頁
桌面日歷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)—計(jì)算機(jī)畢業(yè)設(shè)計(jì)(論文)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、畢畢 業(yè)業(yè) 設(shè)設(shè) 計(jì)計(jì)( 論論 文文)桌面日歷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)桌面日歷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)論文作者姓名:論文作者姓名:申請(qǐng)學(xué)位專業(yè):申請(qǐng)學(xué)位專業(yè):申請(qǐng)學(xué)位類別:申請(qǐng)學(xué)位類別:指指導(dǎo)導(dǎo)教教師師姓姓名名(職職稱稱):論文提交日期:論文提交日期:桌面日歷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)桌面日歷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘摘 要要自上個(gè)世紀(jì)以來,隨著電腦的逐漸普及,人們的工作和生活越來越方便和快捷,也使越來越多的人依賴于電腦辦公。而傳統(tǒng)的日程記事本逐漸顯現(xiàn)出在當(dāng)今時(shí)代的不足和局限性,比如不便攜帶、不便查閱、不能自動(dòng)提醒等等,電腦桌面日歷由此孕育而生。很快,桌面日歷就以其方便的日期查詢、個(gè)性化的日程安排、精確的鬧鐘提醒與配套的日志系

2、統(tǒng)、美觀的界面設(shè)計(jì),受到廣大電腦辦公者的喜愛。本設(shè)計(jì)就是針對(duì)當(dāng)前網(wǎng)絡(luò)上眾多的桌面日歷,綜合其各項(xiàng)基本功能來開發(fā)一套屬于自己的個(gè)性化日歷日志系統(tǒng)。本設(shè)計(jì)主要采用 C#+SQL 的 C/S 設(shè)計(jì)模式,來實(shí)現(xiàn)不同用戶的登錄、日程編輯、日程提醒、日期查詢、節(jié)假日管理等工作。方便了使用者對(duì)每日行程的掌握,也保護(hù)了各使用者之間的私人信息。本設(shè)計(jì)按照功能模塊分為用戶登錄模塊、用戶注冊(cè)、日歷和時(shí)間模塊、節(jié)假日模塊、日程行程模塊、自動(dòng)提醒模塊、數(shù)據(jù)庫模塊。本文詳細(xì)地介紹了該日歷日程系統(tǒng)的功能需求、系統(tǒng)設(shè)計(jì)和具體實(shí)現(xiàn)。并簡(jiǎn)要介紹了系統(tǒng)開發(fā)采用的過程及方法。關(guān)鍵詞:關(guān)鍵詞:桌面日歷;日程;多用戶Design and

3、 Development of Desktop Calendar SystemAbstractAs PC becomes more and more popular since last century, peoples work and life become more and more convenient, and people rely increasingly on computers. However, the conventional notepad has revealed its deficiencies and limitations, such as inconvenie

4、nce. And conventional notepad can not alarm automatically also. So, the desktop calendar appears. Because of its convenient date inquiry, individualized schedule management system, accurate schedule alarm system and friendly user interface, desktop calendar is highly estimated among computer workers

5、.Combining the functions of a number of todays desktop calendars, this design aims to develop an individual desktop calendar and schedule system. It is developed by C# and SQL, based on C/S. Its functions include “multi-user login”, “schedule management”, “schedule alarm”, “date inquiry”, “holiday m

6、anagement” and so on. The calendar is convenient for users to check the schedule everyday, and also can protect each users private information.The calendar includes “user login” module, “user registry and edition” module, “date and time” module, “holiday manage” module, “schedule manage” module, “sc

7、hedule alarm” module and “database” module. This article describes the functional requirement, system design and detail implementation. It also describes the methods and development process of this system in brief.Key words: Desktop Calendar;Schedule;Multiple Users目目 錄錄論文總頁數(shù):23 頁1 引言.12 相關(guān)理論基礎(chǔ) .12.1

8、 C/S 模式.22.2 Visual Studio 2005 C#.22.2.1 C#的介紹.22.2.2 C#的弱點(diǎn).32.3 SQL Server 200 SQL 介紹.32.3.2 Microsoft SQL Server 2000 簡(jiǎn)介.43 系統(tǒng)需求分析 .43.1 用戶需求.43.2 功能需求.43.2.1 未登錄用戶.43.2.2 普通登錄用戶.53.2.3 管理員.53.3 性能需求.54 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn).64.1 系統(tǒng)功能設(shè)計(jì).64.2 數(shù)據(jù)庫設(shè)計(jì).64.3 各表之間的關(guān)系圖.74.4 系統(tǒng)功能實(shí)現(xiàn).84.4.1 用戶登錄模塊.84.4.2 用戶注冊(cè)模塊.9

9、4.4.3 日歷主模塊.114.4.4 日志記錄模塊.124.4.5 日志提醒模塊.144.4.6 節(jié)假日設(shè)置模塊.145 系統(tǒng)測(cè)試.155.1 測(cè)試環(huán)境.155.2 測(cè)試結(jié)果.165.3 系統(tǒng)的安全性測(cè)試.195.3.1 密碼的安全性.195.3.2 日志信息的安全性.195.3.3 數(shù)據(jù)庫的安全性.19結(jié) 論 .20參考文獻(xiàn) .20致 謝 .22聲 明 .231 1 引言引言自上個(gè)世紀(jì)以來,隨著電腦的逐漸普及,人們的工作和生活越來越方便和快捷,也使越來越多的人依賴于電腦辦公。而傳統(tǒng)的日歷和日程記事本逐漸顯現(xiàn)出在當(dāng)今時(shí)代的不足和局限性,比如傳統(tǒng)日歷或記事本一般為紙制品,加大了對(duì)森林資源的需求

10、,與當(dāng)今提倡綠色環(huán)保的思想相背;傳統(tǒng)記事本不方便攜帶、記錄和修改;一般不帶有日歷,即使有也僅僅局限于某一年的日歷,不方便使用者查詢?nèi)掌?;使用日歷和記事本當(dāng)查詢某天的日程信息的時(shí)候非常煩瑣,而且對(duì)該天前后的日程信息也很不好把握;沒有自動(dòng)提醒功能,不能對(duì)使用者的行程進(jìn)行很好的規(guī)劃和安排??傊?,傳統(tǒng)的日歷和記事本都不能對(duì)使用者的時(shí)間進(jìn)行系統(tǒng)化的規(guī)劃。針對(duì)以上的傳統(tǒng)日歷和記事本的局限性,電腦桌面日歷孕育而生。本文所介紹的桌面日歷系統(tǒng),就是專門為那些常年習(xí)慣于電腦辦公,喜歡對(duì)自己的行程進(jìn)行系統(tǒng)化管理的人們所開發(fā)的一款桌面軟件。該軟件的優(yōu)點(diǎn)如下:1,將日歷和記事本集成到一款軟件上,讓用戶在記錄和查詢?nèi)罩镜?/p>

11、時(shí)候也能方便得查閱日期情況。2,日志行程的自動(dòng)提醒,該系統(tǒng)能根據(jù)用戶自己設(shè)置的行程提醒時(shí)間來提醒用戶,時(shí)差是以毫秒級(jí)計(jì)算,非常之精確。3,人性化的節(jié)假日設(shè)置,可以根據(jù)用戶的喜好來記錄節(jié)假日和一些重要的日子,并在日歷主界面上顯示當(dāng)天的節(jié)假日信息。4,借助數(shù)據(jù)庫可以方便得對(duì)用戶資料和信息進(jìn)行存取,也有效得保護(hù)了各個(gè)用戶之間的信息。本文介紹了 C/S 模式下的桌面日歷系統(tǒng)的設(shè)計(jì)以及開發(fā)過程,主要包括了以下幾個(gè)方面的內(nèi)容:1,簡(jiǎn)要介紹 C#和 SQL 知識(shí)。2,介紹該系統(tǒng)的前期設(shè)計(jì)過程。3,介紹該系統(tǒng)的具體代碼實(shí)現(xiàn)過程。4,介紹開發(fā)過程中遇到的各種技術(shù)問題以及解決方案。計(jì)算機(jī)的發(fā)明應(yīng)用,被視為人類的第

12、三次重大的科學(xué)技術(shù)革命,是一次飛躍。過去的革命最高成就就是“用機(jī)器制造機(jī)器”,是手的延長(zhǎng),而計(jì)算機(jī)的出現(xiàn)卻能做到“用機(jī)器控制機(jī)器”,是腦的延伸,是提高生產(chǎn)效率的主要工具。通過以上分析不難得出結(jié)論,在計(jì)算機(jī)日益普及的今天,很多傳統(tǒng)的東西必須與電腦相結(jié)合才能進(jìn)一步發(fā)展。這樣一套桌面日歷系統(tǒng),也是讓傳統(tǒng)日歷和記事本繼續(xù)生存并發(fā)展的重要一步。2 2 相關(guān)理論基礎(chǔ)相關(guān)理論基礎(chǔ)該系統(tǒng)采用的是 C/S 模式,設(shè)計(jì)平臺(tái)為 Visual Studio 2005 C#,后臺(tái)數(shù)據(jù)庫系統(tǒng)為 SQL Server 2000。下面簡(jiǎn)單介紹下:2.12.1 C/S 模式模式C/S 全名為 Client/Server 應(yīng)用體

13、系,又稱客戶端/服務(wù)器模式。Client 使用各項(xiàng)操作的用戶界面接口來處理分析和數(shù)據(jù)輸入/輸出;Server 通常采用高性能的PC 機(jī)、工作站或小型機(jī),并采用大型的數(shù)據(jù)庫系統(tǒng),如 Oracle、SQL Server 等,主要實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)功能,以及相關(guān)的后臺(tái)業(yè)務(wù)邏輯流程處理。C/S 模式的優(yōu)點(diǎn)在于:能充分發(fā)揮客戶端 PC 機(jī)的處理能力,許多的工作可以交由客戶端處理后再提交給服務(wù)器,所以客戶端的響應(yīng)速度非常快。但 C/S 模式也有一些缺點(diǎn),比如:客戶端需要安裝專門的客戶端軟件;維護(hù)和升級(jí)的成本很高;對(duì)客戶端的操作系統(tǒng)也有一定的限制。CLIENTSERVER GUI 界面數(shù)據(jù)處理數(shù)據(jù)處理數(shù)據(jù)存儲(chǔ)圖

14、 1-1 C/S 結(jié)構(gòu)示意圖2.22.2 Visual Studio 2005 C#.1 C#的介紹的介紹在過去的二十年里,C 和 C+已經(jīng)成為在商業(yè)軟件的開發(fā)領(lǐng)域中使用最廣泛的語言。它們?yōu)槌绦騿T提供了十分靈活的操作,不過同時(shí)也犧牲了一定的效率。許多程序員都試圖尋找一種新的語言,希望能在功能與效率之間找到一個(gè)更為理想的權(quán)衡點(diǎn)。對(duì)于 C/C+用戶來說,最理想的解決方案無疑是在快速開發(fā)的同時(shí)又可以調(diào)用底層平臺(tái)的所有功能。C#是由微軟開發(fā)的一種全新的、面向?qū)ο蟮木幊陶Z言,作為 Visual Studio中的一部分推出。既保持了 C+中熟悉的語法,并且還包含了大量的高效代碼和面向?qū)ο筇?/p>

15、性。C#使得 C+程序員可以高效的開發(fā)程序,而絕不損失 C/C+原有的強(qiáng)大的功能。因?yàn)檫@種繼承關(guān)系,C#與 C/C+具有極大的相似性,熟悉類似語言的開發(fā)者可以很快的轉(zhuǎn)向 C#。C#語言將在保持 C/C+靈活性的基礎(chǔ)上為程序員帶來更高效的 RAD 開發(fā)方式。它不僅能用于 WEB 服務(wù)程序的開發(fā),并且還能開發(fā)強(qiáng)大的系統(tǒng)級(jí)程序。C#是種非常類似于 JAVA 的語言,適用于各種操作系統(tǒng),并且與 Windows緊密地結(jié)合在一起。微軟稱 C#是由 C 和 C+派生而來的一種“簡(jiǎn)單、流行、面向?qū)ο?、類型安全”的程序設(shè)計(jì)語言,C#意在綜合 Visual Basic 的高效率和 C+的強(qiáng)大功能。事實(shí)上,C#將是

16、完全依靠 Windows 的最完美產(chǎn)物。那些困繞 Java SDK, MFC 和 SET 的數(shù)據(jù)庫已成為過去。你想放入 C#的任何東西(無論何種語言) ,只要在 Windows 的.NET 子系統(tǒng)下建立和包裝后都可以使用 Windows 的運(yùn)行庫。.2 C#的弱點(diǎn)的弱點(diǎn)首先,在大量的現(xiàn)有 Windows 平臺(tái)上,C# 的程序還不能運(yùn)行,因?yàn)?C# 程序需要 .NET 運(yùn)行庫為基礎(chǔ),而 .NET 運(yùn)行庫將作為新一代的Windows(Whistler)的一部分發(fā)行, 或以 Service Pack 的形式提交給 Windows Me 和 Windows 2000 用戶。所以在近期,

17、C# 會(huì)主要在服務(wù)器上得到應(yīng)用。其次,C# 能夠使用的組件和庫還只有 .NET 運(yùn)行庫等很少的選擇,沒有豐富的第三方軟件庫可用,這需要有一個(gè)過程,同時(shí)各軟件開發(fā)商的支持也很重要。第三,JAVA 的成功因素里有一些是反微軟陣營(yíng)的吹捧,雖然“只寫一次,到處運(yùn)行”只是一句口號(hào),但畢竟已經(jīng)是一種成熟的技術(shù)。而 C# 的鼓吹者目前只有名聲不佳的微軟,且只能運(yùn)行在 Windows 上。實(shí)際上這兩種語言都不是不可替代的,理智的說,對(duì)軟件開發(fā)商而言,什么工具用的最熟,那就是最好的工具。尤其對(duì) C+的使用者,C# 沒有帶來任何新東西,因?yàn)?NET 運(yùn)行庫在C+中也可以使用,沒有要換的絕對(duì)的理由。2.32.3 S

18、QL Server 2000.1 SQL 介紹介紹SQL(Structured Query Language,結(jié)構(gòu)查詢語言)是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫語言。SQL 通常使用于數(shù)據(jù)庫的通訊。最早的是 IBM 的圣約瑟研究實(shí)驗(yàn)室為其關(guān)系數(shù)據(jù)庫管理系統(tǒng) System R 開發(fā)的一種查詢語言,它的前身是 Square 語言,其后由 IBM 公司 1981 年推出。ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì))聲稱,SQL 是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。SQL 語句通常用于完成一些數(shù)據(jù)庫的操作任務(wù),比如在數(shù)據(jù)庫中更新數(shù)據(jù),或者從數(shù)據(jù)庫中檢索數(shù)據(jù)。使用 SQL 的常見關(guān)系數(shù)據(jù)庫管理系統(tǒng)有:Oracle、 Sy

19、base、 Microsoft SQL Server、 Access、 Ingress 等等。雖然絕大多數(shù)的數(shù)據(jù)庫系統(tǒng)使用 SQL,但是它們同樣有它們自立另外的專有擴(kuò)展功能用于它們的系統(tǒng)。但是,標(biāo)準(zhǔn)的 SQL 命令,比如Select、 Insert、 Update、 Delete、 Create和 Drop常常被用于完成絕大多數(shù)數(shù)據(jù)庫的操作。.2 Microsoft SQL Server 2000 簡(jiǎn)介簡(jiǎn)介Microsoft SQL Server 2000 是目前使用最廣泛的數(shù)據(jù)庫,它與 Windows 網(wǎng)絡(luò)操作系統(tǒng)的無縫集成,智能化的內(nèi)容管理,強(qiáng)大的功能,使它得到廣大用戶的喜

20、愛。SQL Server 能與 Microsoft 其他組件有機(jī)地結(jié)合,并充分利用它們提供的服務(wù)或功能(如安全管理、事件日志、性能監(jiān)視器、內(nèi)存管理和異步處理等),從而增強(qiáng)了 SQL Server 數(shù)據(jù)庫系統(tǒng)的功能,同時(shí)占用較少的系統(tǒng)資源。另外,用戶可以使用 Web 瀏覽器查詢存儲(chǔ)在 SQL Server 2000 數(shù)據(jù)庫中的數(shù)據(jù),且分布式查詢使得我們可以引用來自不同數(shù)據(jù)源的數(shù)據(jù)。SQL Server 2000 數(shù)據(jù)庫容量龐大,每個(gè)數(shù)據(jù)庫中可創(chuàng)建多達(dá) 20 萬個(gè)數(shù)據(jù)表,數(shù)據(jù)表中的記錄的行數(shù)只受服務(wù)器硬盤空間的限制。此外,SQL Server 2000 數(shù)據(jù)庫與普通的本地類型數(shù)據(jù)庫系統(tǒng)(例如VFP

21、,DBASE,PARADOX,ACCESS)等不同,本地類型的數(shù)據(jù)庫系統(tǒng)只是簡(jiǎn)單的文件存取,缺乏 SQL Server2000 等系統(tǒng)所擁有的諸如:數(shù)據(jù)完整性、安全性、事務(wù)處理、網(wǎng)絡(luò)多用戶處理等必備的功能。3 3 系統(tǒng)需求分析系統(tǒng)需求分析3.13.1 用戶需求用戶需求該系統(tǒng)的用戶主要分為三種:未登錄用戶、登錄用戶、管理員。未登錄用戶只能查看日歷主界面和注冊(cè)模塊,登錄用戶可以使用除刪除用戶和修改其他用戶以外功能,管理員可以使用該桌面日歷所有功能。登錄用戶和系統(tǒng)管理員都是通過密碼驗(yàn)證登錄,當(dāng)角色操作完成后點(diǎn)擊“注銷”或“退出”按鈕退出登錄狀態(tài)。3.23.2 功能需求功能需求系統(tǒng)功能模塊主要包括以下

22、幾個(gè)方面:1,用戶注冊(cè)模塊;2,登錄模塊;3,日志提醒模塊;4,節(jié)假日模塊;5,日歷主模塊;6,用戶信息、節(jié)假日信息和日志信息都保存在數(shù)據(jù)庫模塊中.以下按照不同的用戶對(duì)具體功能進(jìn)行描述:.1 未登錄用戶未登錄用戶未登錄用戶運(yùn)行該系統(tǒng)后進(jìn)入日歷主界面,可以查看日歷信息,可以查看當(dāng)前的系統(tǒng)時(shí)間,當(dāng)點(diǎn)擊日歷上某一天時(shí)可以查看該天是否是已設(shè)置的節(jié)假日。用戶當(dāng)點(diǎn)擊“日志記錄”或“節(jié)日設(shè)置”的時(shí)候,系統(tǒng)提示對(duì)話框顯示“該用戶為未登錄用戶” ,點(diǎn)擊確定按鈕后進(jìn)入登錄界面,輸入賬號(hào)和密碼后實(shí)現(xiàn)用戶登錄。未登錄用戶在日歷主界面或登錄界面上點(diǎn)擊“用戶信息”可以進(jìn)入用戶注冊(cè)界面,在用戶注冊(cè)界面可以實(shí)

23、現(xiàn)用戶的注冊(cè),可以查看其他已注冊(cè)用戶的基本信息,可以對(duì)某用戶名進(jìn)行查找,但是不能刪除其他用戶或修改其他用戶的個(gè)人信息,當(dāng)點(diǎn)擊“刪除”或“修改”按鈕后有錯(cuò)誤信息提示。.2 普通登錄用戶普通登錄用戶用戶通過登錄模塊登錄系統(tǒng)后進(jìn)入日歷主界面,可以查看日歷信息,可以查看當(dāng)前的系統(tǒng)時(shí)間,當(dāng)點(diǎn)擊日歷上某一天時(shí)可以查看該天是否是已設(shè)置的節(jié)假日,可以訪問節(jié)日設(shè)置模塊并對(duì)節(jié)日進(jìn)行添加和刪除。登錄用戶可以訪問用戶日志模塊并對(duì)日志信息進(jìn)行添加和刪除,當(dāng)系統(tǒng)時(shí)間到達(dá)當(dāng)前登錄用戶設(shè)置的日志提醒時(shí)間時(shí),系統(tǒng)自動(dòng)加載日志提示模塊提醒用戶,用戶可以點(diǎn)擊日志提示界面上的“刪除日志”按鈕從數(shù)據(jù)庫中刪除該日志信息。

24、登錄用戶可以在日歷主界面上點(diǎn)擊“用戶信息”進(jìn)入用戶注冊(cè)和信息界面,在用戶注冊(cè)界面可以實(shí)現(xiàn)注冊(cè)其他用戶,可以查看其他已注冊(cè)用戶的基本信息,可以修改當(dāng)前登錄用戶的基本信息和密碼,可以對(duì)某用戶名進(jìn)行查找,但是不能刪除其他用戶或修改其他用戶的個(gè)人信息。當(dāng)點(diǎn)擊“刪除”或選擇其他用戶后點(diǎn)擊“修改”按鈕,有錯(cuò)誤信息提示。登錄用戶在日歷主界面上點(diǎn)擊“用戶注銷”可以退出當(dāng)前登錄,并連接到用戶登錄模塊。.3 管理員管理員管理員除了可以實(shí)現(xiàn)登錄用戶的所有功能外,還有更高的權(quán)限,可以對(duì)其他用戶信息進(jìn)行修改和刪除??梢詫?duì)數(shù)據(jù)庫進(jìn)行直接操作,可以查看其他用戶的資料等等。但是管理員不能查看其他注冊(cè)用戶的登錄

25、密碼和日志信息,因?yàn)槊艽a在數(shù)據(jù)庫里是采用的 MD5 加密,而日志信息也采用了 Unicode 編碼技術(shù),在一定程度上保護(hù)了其他注冊(cè)用戶的權(quán)益。3.33.3 性能需求性能需求該系統(tǒng)主要是為了方便用戶進(jìn)行日程管理,所以要求界面要簡(jiǎn)潔,操作要方便。功能要完善,并且不能出現(xiàn)導(dǎo)致該系統(tǒng)崩潰的重大 BUG。因?yàn)樵撓到y(tǒng)為多用戶系統(tǒng),所有用戶資料均保存在數(shù)據(jù)庫內(nèi),所以要求數(shù)據(jù)庫安全性要高,運(yùn)行要穩(wěn)定,執(zhí)行速度快。為保護(hù)用戶信息,各用戶密碼和每日行程不能在數(shù)據(jù)庫中以明文顯示。該系統(tǒng)基于 Windows 操作平臺(tái),符合當(dāng)前大多數(shù)人的操作系統(tǒng),更加大眾化。4 4 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.14.1 系統(tǒng)功能系

26、統(tǒng)功能設(shè)計(jì)設(shè)計(jì)該桌面日歷系統(tǒng)是基于 C/S 結(jié)構(gòu)的應(yīng)用程序系統(tǒng),由 C#+SQL 實(shí)現(xiàn)??蛻舳顺绦蛴?Visual Studio 2005 C#制作,用于與用戶交互;后臺(tái)數(shù)據(jù)庫使用 SQL 2000,由帶有邏輯結(jié)構(gòu)關(guān)聯(lián)的表組構(gòu)成。下圖為系統(tǒng)功能結(jié)構(gòu)示意圖: 登錄用戶普通用戶管理員刪除用戶資料修改用戶信息注冊(cè)新用戶使用日志記錄使用節(jié)假日模塊使用日志提醒使用日歷主模塊未登錄用戶圖 4-1 用戶功能示意圖如圖 4-1 所示,按登錄與否可分為登錄用戶和未登錄用戶,其中登錄用戶又可分為管理員和普通用戶,各類別的用戶擁有對(duì)該系統(tǒng)中各功能的訪問使用權(quán)限。4.24.2 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)根據(jù)需求分析,該系統(tǒng)

27、后臺(tái)數(shù)據(jù)庫共分為 4 個(gè)表,以下分別給出各個(gè)數(shù)據(jù)庫表的簡(jiǎn)單描述。UserLogin用戶登錄表用于存儲(chǔ)用戶登錄信息,以供登錄密碼驗(yàn)證,并分配用戶編號(hào)。該表分為 3 個(gè)字段,以 UserNumber 字段為主鍵分別與 UserInfo和 MsgInfo 表相關(guān)聯(lián),各字段的屬性和作用如表 4-1表 4-1:用戶登錄表UserInfo用戶基本信息表用于存儲(chǔ)用戶的基本信息,如年齡、性別等。該表分為 6 個(gè)字段,其中 UserNumber 作為外鍵與 UserLogin 表相關(guān)聯(lián),各字段的屬性和作用如表 4-2表 4-2:用戶基本信息表MsgInfo用戶日志信息表用于儲(chǔ)存各用戶設(shè)置的日志信息,以及系統(tǒng)自動(dòng)

28、提醒用戶的時(shí)間。該表分為 4 個(gè)字段,其中 UserNumber 作為外鍵與UserLogin 表相關(guān)聯(lián),各字段的屬性和作用如表 4-3表 4-3:用戶日志信息表JInfo節(jié)假日信息表用于儲(chǔ)存節(jié)假日信息,沒有與其他表相關(guān)聯(lián)。該表分為 4 個(gè)字段,其中 JID 作為該表的主鍵,各字段的屬性和作用如表 4-4表 4-4:節(jié)假日信息表字段名字段類型是否主鍵說明UserNamevarchar否定義用戶登錄名UserPwdvarchar否定義用戶登錄密碼UserNumberint是定義唯一標(biāo)識(shí)的用戶編號(hào)字段名字段類型是否主鍵說明UserNumberint是唯一標(biāo)識(shí)的用戶編號(hào)UserAgeint否定義用戶

29、的年齡UserSexint否定義用戶性別,1 為男,2 為女UserAddressvarchar否定義用戶的地址,允許為空UserTelvarchar否定義用戶的電話號(hào)碼,允許為空UserEmailvarchar否定義用戶的 E-Mail 地址,允許為空字段名字段類型是否主鍵說明MsgIDint是唯一標(biāo)識(shí)的用戶日志信息編號(hào)MsgInfoTextvarchar否定義用戶的日志信息內(nèi)容MsgDateTimedatatime否定義用戶的日志提醒時(shí)間UserNumberint是唯一標(biāo)識(shí)的用戶編號(hào)字段名字段類型是否主鍵說明JIDint是唯一標(biāo)識(shí)的節(jié)假日編號(hào)JNamevarchar否定義的節(jié)假日名稱JDa

30、teTimeMint否定義節(jié)假日的月份JDateTimeDint否定義節(jié)假日的日期4.34.3 各表之間的關(guān)系圖各表之間的關(guān)系圖該關(guān)系圖是由 SQL 數(shù)據(jù)庫的“新建關(guān)系圖向?qū)А弊詣?dòng)生成。UserLogin(用戶登錄表)、UserInfo(用戶基本信息表)和 MsgInfo(日志信息表)通過 UserNumber(用戶編號(hào))相關(guān)聯(lián),其中 UserLogin(用戶登錄表)的UserNumber 為 PK(主鍵) ,UserInfo(用戶基本信息表)和 MsgInfo(日志信息表)的UserNumber 為 FK(外鍵)。JInfo(節(jié)假日信息表)相對(duì)其他三張表獨(dú)立,沒有關(guān)聯(lián)關(guān)系。圖 4-2 數(shù)據(jù)庫

31、表關(guān)系圖4.44.4 系統(tǒng)功能實(shí)現(xiàn)系統(tǒng)功能實(shí)現(xiàn)根據(jù)系統(tǒng)功能需求分析,系統(tǒng)主要?jiǎng)澐譃橐韵铝鶄€(gè)模塊:.1 用戶登錄模塊用戶登錄模塊功能說明:通過用戶輸入的用戶名、密碼與數(shù)據(jù)庫 UserLogin 表的UserName 字段和 UserPwd 字段相比較判斷其有效性,來實(shí)現(xiàn)用戶的登錄。每次判斷用戶密碼時(shí)將密碼采用 MD5 加密后與數(shù)據(jù)庫 UserLogin 表的UserPwd 字段相比較。如是有效用戶則顯示“登錄成功”消息框,點(diǎn)擊“確定后”登錄到日歷主界面,并設(shè)置 username 為當(dāng)前登錄用戶名。如是無效用戶則顯示“登錄失敗”消息框,并提示重新輸入用戶名和密碼。以下為用戶登錄密碼

32、驗(yàn)證部分的偽代碼:if (密碼長(zhǎng)度 5)MessageBox.Show(密碼的長(zhǎng)度不對(duì),沒有小于 5 位的密碼,請(qǐng)重新輸入!);else if(密碼長(zhǎng)度 = 0)MessageBox.Show(密碼不能為空,請(qǐng)重新正確的輸入您的登錄密碼!);elseif (連接數(shù)據(jù)庫并將用戶名和采用 MD5 加密后的密碼與數(shù)據(jù)庫中資料對(duì)比 = true)MessageBox.Show(登錄成功!);關(guān)閉登錄界面并釋放資源;將當(dāng)前登錄的用戶名賦值到其他窗體;打開當(dāng)前登錄用戶的日志信息窗體;else MessageBox.Show(您輸入的密碼有錯(cuò)誤請(qǐng)重新輸入!);清除登錄密碼框內(nèi)的字符并設(shè)置為焦點(diǎn);4.4.24

33、.4.2 用戶注冊(cè)模塊用戶注冊(cè)模塊功能說明:用于用戶注冊(cè),資料修改,用戶刪除和查詢。注冊(cè)界面將從數(shù)據(jù)庫中讀取出的所有用戶信息顯示出來。圖 4-3 注冊(cè)模塊界面用戶注冊(cè)時(shí)根據(jù)用戶所填寫的信息存入數(shù)據(jù)庫。需要判斷用戶名是否合法,用戶名是否重復(fù),兩輸入密碼是否大于 6 位并相同,是否已選擇年齡。不合法的注冊(cè)信息顯示錯(cuò)誤消息框,并提示重新輸入。合法的用戶名和密碼保存在UserLogin 表中,用戶名采用明文保存,密碼采用 MD5 加密保存,并為該用戶分配一個(gè) UserNumber 的整型編號(hào)。合法的用戶個(gè)人資料保存在 UserInfo 表中,并使用 UserNumber 字段與 UserLogin 表

34、相關(guān)聯(lián)。資料修改時(shí)根據(jù)選中的用戶 UserNumber 修改用戶信息,未注冊(cè)用戶不能修改用戶信息,注冊(cè)用戶只能修改自己的信息,管理員可以修改所有用戶信息。修改用戶信息時(shí)也要判斷合法性,并將合法信息存放到相應(yīng)的表中。用戶刪除只有管理員可以訪問,根據(jù)選中的用戶 UserNumber 刪除用戶信息,并將數(shù)據(jù)庫中 MsgInfo 表、UserInfo 表和 UserLogin 表中該用戶的信息全部刪除。用戶查詢可以根據(jù)輸入的用戶名查詢顯示出的用戶,并將該用戶所在行選中。以下為部分代碼和偽代碼:/ MD5 32 位加密代碼static string UserMd5(string str)string c

35、l = str;string pwd = ;MD5 md5 = MD5.Create();/實(shí)例化一個(gè)md5對(duì)像/ 加密后是一個(gè)字節(jié)類型的數(shù)組,這里要注意編碼UTF8/Unicode等的選擇byte s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl);/ 通過使用循環(huán),將字節(jié)類型的數(shù)組轉(zhuǎn)換為字符串,此字符串是常規(guī)字符格式化所得for (int i = 0; i = 6 & 2 次輸入的密碼相同 & 性別選擇代碼 0) 連接數(shù)據(jù)庫;將新用戶信息插入到 UserLogin 表中,并為該用戶分配一個(gè)編號(hào);else輸出提示錯(cuò)誤信息;4.4.34

36、.4.3 日歷主模塊日歷主模塊功能說明:顯示每一年的日歷,顯示當(dāng)前系統(tǒng)時(shí)間,并根據(jù)數(shù)據(jù)庫中的節(jié)假日設(shè)置顯示選中日期的節(jié)日信息,是連接其他系統(tǒng)模塊的入口。該界面使用 C#自帶的 MonthCalendar 控件來顯示每一年的日歷,將當(dāng)前的系統(tǒng)時(shí)間顯示在 Label 靜態(tài)文本框里,并根據(jù)數(shù)據(jù)庫中的節(jié)假日設(shè)置顯示選中日期的節(jié)日信息。圖 4-4 日歷主界面當(dāng)用戶點(diǎn)擊“節(jié)日設(shè)置”按鈕或“日志記錄”按鈕時(shí),先判斷 username 是否為空。如果為空則提示錯(cuò)誤信息“用戶尚未登錄” ,并打開登錄界面。如果username 不為空則直接打開節(jié)假日設(shè)置界面或日志設(shè)置界面。此模塊還根據(jù)當(dāng)前系統(tǒng)時(shí)間和當(dāng)前登錄用戶的

37、日志信息來確定是否創(chuàng)建日志提醒窗體。當(dāng)用戶點(diǎn)擊“用戶信息”按鈕時(shí),直接打開用戶注冊(cè)界面。當(dāng)用戶點(diǎn)擊“注銷”按鈕時(shí),將 username 設(shè)置為空,并打開登錄界面。當(dāng)用戶點(diǎn)擊“系統(tǒng)退出”按鈕時(shí),退出桌日歷系統(tǒng),關(guān)閉所有窗體并釋放占有資源。以下為部分偽代碼。/ 當(dāng)當(dāng)前系統(tǒng)時(shí)間到達(dá)用戶設(shè)置的日志響應(yīng)時(shí)間時(shí)的事件處理偽代碼聲明一個(gè)空字符串 msg;if (當(dāng)前登錄用戶名 Username 不為空)連接數(shù)據(jù)庫,從數(shù)據(jù)庫 MsgInfo 表中讀取出當(dāng)前登錄用戶的日志信息;while (用戶設(shè)置了當(dāng)前時(shí)間的日志信息)將該日志信息的內(nèi)容放入 msg 中;if (日志信息不為空)以當(dāng)前登錄用戶名為參數(shù)創(chuàng)建日志提

38、醒模塊窗體;if (是否有模式地顯示窗體 != true)顯示窗體的文本信息 = 采用 Unicode 解碼后的 msg;顯示窗體的高度 = 獲取的屏幕分辨率高度 + 10;顯示窗體的左邊框 = 屏幕分辨率寬度 顯示窗體的寬度 + 5;顯示窗體的生存時(shí)間 = true;顯示日志提醒窗體;/ 顯示當(dāng)天節(jié)日偽代碼文本框文本 = 今天不是節(jié)日;設(shè)置用于數(shù)據(jù)庫查詢命令的參數(shù)數(shù)組,并將數(shù)組第一個(gè)元素設(shè)置為“月” ,數(shù)組第 2 個(gè)元素設(shè)置為“日”;從數(shù)據(jù)庫 MsgInfo 表中讀取選定日期的節(jié)假日信息;while (是否有該條記錄 = true)日歷主窗體的文本框文本 = 今天是:+當(dāng)天節(jié)假日名稱;4.4

39、.44.4.4 日志記錄模塊日志記錄模塊功能說明:用于根據(jù)當(dāng)前登錄的用戶名,從數(shù)據(jù)庫的 MsgInfo 表中讀出當(dāng)前登錄用戶的所有日志信息并顯示在 Datagridview 中。并根據(jù)用戶需要進(jìn)行添加和刪除日志信息。圖 4-5 日志記錄模塊界面當(dāng)點(diǎn)擊“添加”按鈕時(shí),系統(tǒng)將用戶輸入的日志信息和選擇的提醒日期時(shí)間儲(chǔ)存到數(shù)據(jù)庫的 MsgInfo 表中。為保護(hù)用戶的日志信息,MsgInfo 表MsgInfoText 字段的內(nèi)容采用 Unicode 編碼后儲(chǔ)存,從數(shù)據(jù)庫中讀出時(shí)采用Unicode 解碼后顯示。當(dāng)點(diǎn)擊“刪除”按鈕時(shí),系統(tǒng)按照用戶選擇的日志信息的編號(hào) MsgID 來從數(shù)據(jù)庫中刪除該條日志信息

40、。以下為部分偽代碼。/ Unicode 編碼,用于將用戶輸入的日志信息采用編碼形式儲(chǔ)存在數(shù)據(jù)庫中設(shè)置字符串型 encode 存放編碼后的字符串; 將字符串 code 按字節(jié)進(jìn)行編碼,并存放在數(shù)組中;try將數(shù)組中每一個(gè)字節(jié)型元素轉(zhuǎn)換為字符串型;catch處理異常;返回 encode;/ Unicode 解碼,用于將數(shù)據(jù)庫內(nèi)的日志信息正常顯示在 Datagridview 中,與編碼過程相反設(shè)置字符串型 decode 存放解碼后的字符串;將要解碼的字符串型 code 轉(zhuǎn)換為字節(jié)型;try將 code 信息解碼并轉(zhuǎn)換為字符串型并存放在 decode 中;catch處理異常;返回 decode;/ 刪

41、除日志按鈕事件的偽代碼,其他按鈕事件與此類似。if (當(dāng)前日志 ID 為空)MessageBox.Show(請(qǐng)先選擇您要?jiǎng)h除的日志!);else連接數(shù)據(jù)庫,根據(jù) MsgID 刪除日志信息;if (刪除成功)MessageBox.Show(日志刪除成功!);重新顯示 MsgInfo 表內(nèi)容;else MessageBox.Show(您的操作有錯(cuò)誤!);.5 日志提醒模塊日志提醒模塊功能說明:當(dāng)系統(tǒng)時(shí)間到達(dá)當(dāng)前登錄用戶設(shè)置的日志提醒時(shí)間時(shí),從數(shù)據(jù)庫的 MsgInfo 表中讀取出當(dāng)前登錄用戶的當(dāng)前系統(tǒng)時(shí)間的日志信息,并顯示在彈出的窗體中。當(dāng)用戶點(diǎn)擊“刪除”按鈕時(shí),系統(tǒng)從 MsgInf

42、o 表中刪除該條日志信息。以下為部分代碼。/當(dāng)點(diǎn)擊“刪除日志”按鈕后的事件處理代碼private void btnDeleteMsg_Click(object sender, EventArgs e)/設(shè)置數(shù)據(jù)庫操作語句sqlstring sql = delete from MsgInfo Where MsgID= + msgid + and UserNumber=(select UserNumber from UserLogin where UserName= + userName + );/連接數(shù)據(jù)庫并執(zhí)行sql語句SqlConDao.SqlHelper.ExecuteNonQuery(S

43、qlConDao.SqlHelper.ConnectionStringLocal, CommandType.Text, sql);this.Close();.6 節(jié)假日設(shè)置模塊節(jié)假日設(shè)置模塊功能說明:從數(shù)據(jù)庫的 JInfo 表中讀出當(dāng)前設(shè)置的所有節(jié)假日信息并顯示在Datagridview 中。并根據(jù)用戶需要進(jìn)行節(jié)假日信息的添加和刪除。圖 4-6 節(jié)假日模塊界面當(dāng)用戶通過下拉列表框選擇好日期,并輸入節(jié)假日名稱后點(diǎn)擊“添加”按鈕時(shí),系統(tǒng)將日期和節(jié)假日名稱儲(chǔ)存到數(shù)據(jù)庫的 JInfo 表中。當(dāng)點(diǎn)擊“刪除”按鈕時(shí),系統(tǒng)按照用戶選擇的節(jié)假日信息的編號(hào) JID 來從數(shù)據(jù)庫中刪除該條節(jié)假日信息

44、。以下為部分代碼。/ 點(diǎn)擊“添加”按鈕的事件處理private void btnAdd_Click(object sender, EventArgs e)/將 combox 內(nèi)選擇的日期分別儲(chǔ)存在 month 和 day 整型變量中int month = int.Parse(this.cmbMonth.SelectedItem.ToString();int day = int.Parse(this.cmbDay.SelectedItem.ToString();if (this.txtJName.Text.Trim().Length = 2)/設(shè)置數(shù)據(jù)庫添加記錄 sql 語句string sql

45、 = insert into JInfo values( + this.txtJName.Text.Trim() + ,+month+,+day+);/如果 sql 語句執(zhí)行成功if (SqlConDao.SqlHelper.ExecuteNonQuery(SqlConDao.SqlHelper.ConnectionStringLocal, CommandType.Text, sql) 0)MessageBox.Show(節(jié)假日添加成功!);/重新顯示數(shù)據(jù)庫內(nèi)的節(jié)假日信息GetJinfo();elseMessageBox.Show(您的操作有錯(cuò)誤!);elseMessageBox.Show(節(jié)

46、假日的輸入格式不正確!請(qǐng)重新輸入!);5 5 系統(tǒng)測(cè)試系統(tǒng)測(cè)試5.15.1 測(cè)試環(huán)境測(cè)試環(huán)境本系統(tǒng)測(cè)試環(huán)境;CPU:AMD 2500+ ,內(nèi)存:DDR2 512M, SQL SERVER 2000,WIN2000/XP,2003 下均測(cè)試通過.建議用戶 CPU PIII,內(nèi)存 256M 及以上,數(shù)據(jù)庫版本 SQL SERVER 2000,WIN2000PRO/XP,2003,WIN2000 SERVER 及以上軟硬件平臺(tái)使用。該測(cè)試以程序的功能實(shí)現(xiàn)是否符合設(shè)計(jì)標(biāo)準(zhǔn)和程序是否存在重大 BUG 為標(biāo)準(zhǔn)。5.25.2 測(cè)試結(jié)果測(cè)試結(jié)果由于條件所限,本測(cè)試僅對(duì)該系統(tǒng)進(jìn)行功能測(cè)試。經(jīng)測(cè)試,系統(tǒng)在上述軟硬

47、件環(huán)境下,對(duì)各模塊的功能均能測(cè)試通過,各邏輯流程均符合設(shè)計(jì)需要。以下為部分測(cè)試截圖以及簡(jiǎn)要說明:圖 5-1 密碼錯(cuò)誤提示信息在登錄模塊中,隨機(jī)輸入幾組用戶名和密碼進(jìn)行測(cè)試。經(jīng)測(cè)試,其處理流程與代碼設(shè)計(jì)里的處理流程一致。當(dāng)輸入的用戶密碼與數(shù)據(jù)庫內(nèi)該用戶的密碼不一致時(shí),提示用戶的錯(cuò)誤信息,如圖 5-1。當(dāng)輸入信息與數(shù)據(jù)庫信息一致時(shí)才登錄成功。一開始設(shè)計(jì)時(shí)忘記了密碼在數(shù)據(jù)庫中是采用 MD5 加密后儲(chǔ)存的,當(dāng)測(cè)試驗(yàn)證登錄密碼時(shí)沒有采用 MD5 加密就直接進(jìn)行比較,導(dǎo)致一直登錄不上去。后將密碼加密后再比較就正確登錄了。圖 5-2 未登錄用戶不能訪問日志模塊該系統(tǒng)采用多用戶模式,并對(duì)各用戶的訪問權(quán)限進(jìn)行了

48、設(shè)置,未登錄用戶只能訪問登錄模塊、注冊(cè)模塊以及日歷主模塊。因此,當(dāng)未登錄用戶點(diǎn)擊日歷主模塊上的“日志記錄”按鈕時(shí),系統(tǒng)提示用戶先登錄該系統(tǒng)才能訪問日志模塊,如圖 5-2 所示。圖 5-3 用戶名不得重復(fù)注冊(cè)圖 5-4 非管理員不得刪除用戶資料在用戶注冊(cè)模塊中,對(duì)注冊(cè)時(shí)的資料輸入進(jìn)行條件判斷,并提示出錯(cuò)誤信息,圖 5-3 所示。如用戶名是否重復(fù);密碼是否為空等等,避免了數(shù)據(jù)庫中的信息混亂。對(duì)于此模塊中的“修改”和“刪除”按鈕也進(jìn)行了一定的權(quán)限設(shè)置。如只有管理員才能刪除用戶資料,如圖 5-4 所示;未登錄用戶不能修改和刪除資料;登錄用戶只能修改自己的資料而不能修改他人的等等。在對(duì)此模塊進(jìn)行設(shè)計(jì)時(shí),

49、一開始在顯示用戶信息的 DataGridView 中,系統(tǒng)會(huì)自動(dòng)添加一行空行。當(dāng)用戶點(diǎn)擊該空行時(shí),系統(tǒng)會(huì)出錯(cuò)關(guān)閉。經(jīng)檢查,原來是設(shè)計(jì)當(dāng)用戶點(diǎn)擊 DataGridView 某行時(shí),會(huì)將該行的信息顯示到下邊的其他控件中,如 Label、Combox 等。而空行卻帶入了空字段,導(dǎo)致程序錯(cuò)誤。所以,在顯示 DataGridView 信息的代碼中加入了 AllowUserToAddRows = false,就不會(huì)在 DataGridView 加上系統(tǒng)自動(dòng)生成的空行了。其后的日志模塊了節(jié)假日模塊也采用了同樣的方法去掉該空行。圖 5-5 刪除日志錯(cuò)誤信息圖 5-4 節(jié)假日格式不正確在日志記錄系統(tǒng)和節(jié)假日管理

50、系統(tǒng)中,隨機(jī)輸入一些信息來驗(yàn)證該模塊的判斷邏輯是否符合設(shè)計(jì)要求。如:未選擇日志信息就點(diǎn)“刪除”按鈕;輸入不合規(guī)范的節(jié)假日名稱等等。經(jīng)測(cè)試,系統(tǒng)實(shí)際的處理順序完全符合設(shè)計(jì),如圖 5-4 和圖 5-4。圖 5-5 日志提醒界面隨機(jī)在某登錄用戶的日志記錄模塊中輸入一條日志,并設(shè)置提醒時(shí)間。當(dāng)系統(tǒng)時(shí)間到達(dá)該日志的提醒時(shí)間時(shí),系統(tǒng)能正確發(fā)出提示信息,如圖 5-5 所示,時(shí)間也非常準(zhǔn)確。另外還測(cè)試了,當(dāng)某用戶登錄該系統(tǒng)后,是否會(huì)提示其他用戶的登錄信息。測(cè)試結(jié)果為日志提醒模塊只會(huì)提示當(dāng)前登錄用戶的日志信息,而不會(huì)提示其他用戶的。這也完全符合該系統(tǒng)的設(shè)計(jì)要求。最初設(shè)計(jì)時(shí)因?yàn)闆]有考慮到將用戶日志信息進(jìn)行 Uni

51、code 編碼后儲(chǔ)存,所以在日志提醒模塊中采用了根據(jù)日志文本信息作為條件來刪除數(shù)據(jù)庫資料。但后來將日志信息采用 Unicode 編碼儲(chǔ)存后,該提醒模塊在測(cè)試時(shí)就出現(xiàn)了很多問題,如直接顯示數(shù)據(jù)庫內(nèi)未進(jìn)行解碼的日志信息;不能正常刪除日志等。后將該模塊加入 Unicode 解碼代碼,將日志信息進(jìn)行解碼后就能正常輸出了。在刪除日志時(shí),將采用的以日志文本信息作為數(shù)據(jù)庫刪除條件,改為以該日志編號(hào)和登錄用戶名作為條件進(jìn)行數(shù)據(jù)庫操作就能正常刪除用戶日志。5.35.3 系統(tǒng)的安全系統(tǒng)的安全性測(cè)試性測(cè)試.1 密碼的安全性密碼的安全性該系統(tǒng)為多用戶系統(tǒng),所有用戶的登錄密碼都保存在數(shù)據(jù)庫中,以供用戶登

52、錄時(shí)的密碼比較。如果密碼以明文形式在數(shù)據(jù)庫中儲(chǔ)存,必定會(huì)對(duì)用戶的資料安全造成很大的隱患。所以,該系統(tǒng)將用戶的密碼進(jìn)行 MD5 加密后再存入數(shù)據(jù)庫中。當(dāng)用戶登錄時(shí)也采用 MD5 將用戶輸入的密碼加密后與數(shù)據(jù)庫中的密碼信息比較。采用MD5 算法轉(zhuǎn)換后的數(shù)據(jù)是偽隨機(jī)的,而且該算法是一個(gè)不可逆的字符串變換算法,沒有辦法對(duì)已加密的數(shù)據(jù)進(jìn)行解密。MD5 算法在密碼的安全方面提供了非常好的保障。.2 日志信息的安全性日志信息的安全性用戶的日志信息在數(shù)據(jù)庫中采用 Unicode 編碼進(jìn)行儲(chǔ)存。當(dāng)用戶登錄該系統(tǒng)后,日志模塊將數(shù)據(jù)庫內(nèi)該用戶的日志信息經(jīng)過 Unicode 解碼后再輸出。字符必須編碼

53、后才能被計(jì)算機(jī)處理。計(jì)算機(jī)使用的缺省編碼方式就是計(jì)算機(jī)的內(nèi)碼。Unicode 是一種字符編碼方法,由國(guó)際組織設(shè)計(jì),可以容納全世界所有語言文字的編碼方案。雖然 Unicode 編碼不像 MD5 加密那樣安全可靠,但是因?yàn)?Unicode 編碼可逆,而且儲(chǔ)存在數(shù)據(jù)庫中的信息并不是用戶的原始信息,所以在一定程度上也對(duì)用戶行程進(jìn)行了保護(hù)。.3 數(shù)據(jù)庫的安全數(shù)據(jù)庫的安全性性在數(shù)據(jù)庫的安全方面,主要依賴于 SQL Server 2000 自身的安全性。在使用時(shí),定期對(duì)數(shù)據(jù)庫進(jìn)行備份,以便數(shù)據(jù)庫發(fā)生錯(cuò)誤時(shí)將數(shù)據(jù)庫恢復(fù)到之前某一已知的正確狀態(tài),實(shí)現(xiàn)數(shù)據(jù)庫的再次正確使用。結(jié)結(jié) 論論本次畢業(yè)設(shè)計(jì)完

54、成了預(yù)定任務(wù),包括用戶登錄、用戶注冊(cè)、日歷、日志記錄、日志提醒、節(jié)假日設(shè)置等功能。通過此次畢業(yè)設(shè)計(jì),雖說不能完全掌握 C#的編程技巧,但基本的編程思路還是逐漸地鞏固起來。以前在課堂上學(xué)習(xí)的理論知識(shí)派上了用場(chǎng),在程序的實(shí)際設(shè)計(jì)和實(shí)現(xiàn)過程中,逐步地將一些理論知識(shí)應(yīng)用到開發(fā)中來,比如函數(shù)的調(diào)用、類與對(duì)象、方法的重載和引用等,并簡(jiǎn)單接觸到了數(shù)據(jù)庫的設(shè)計(jì)與操作。個(gè)人感覺其中最大的收獲就是學(xué)習(xí)如何在程序開發(fā)過程中發(fā)現(xiàn)問題,查閱資料并解決問題,養(yǎng)成獨(dú)立思考的能力。學(xué)習(xí)如何利用網(wǎng)絡(luò)尋找解決問題的方法,這種方法在今后的工作和學(xué)習(xí)生活中能讓事情變得事半功倍。在整個(gè)程序的設(shè)計(jì)與實(shí)現(xiàn)過程中,也發(fā)現(xiàn)自身存在的不少問題。

55、特別是在實(shí)際動(dòng)手編寫代碼方面很欠缺,一些本來很簡(jiǎn)單的問題卻要去花費(fèi)大量的時(shí)間來解決。理論上明白的方法卻不知道該如何去實(shí)現(xiàn),今后要多加練習(xí)動(dòng)手能力。參考文獻(xiàn)參考文獻(xiàn)1 Karli Watson,Christian Nagel.C#入門經(jīng)典(第 3 版)M.齊立波譯.北京:清華大學(xué)出版社,2006。2 Christian Nagel,Bill Evjen,Jay Glynn.C#高級(jí)編程(第 4 版)M.李敏波譯.北京:清華大學(xué)出版社,2006。3 單銀根,黎連業(yè).C#語言及程序設(shè)計(jì)M.北京:北京希望電子出版社,2001。4 前沿軟件研究室,鄭小平.Visual C#.NET 開發(fā)實(shí)踐M.北京:人

56、民郵電出版社,2001。5 鄭宇軍.C#2.0 程序設(shè)計(jì)教程M.北京:清華大學(xué)出版社,2004。6 李代平.中文 SQL server2000 數(shù)據(jù)庫系統(tǒng)管理M.北京:冶金工業(yè)出版社,2003。7 方睿,刁仁宏,吳四九.網(wǎng)絡(luò)數(shù)據(jù)庫原理及應(yīng)用M.成都:四川大學(xué)出版社,2005。致致 謝謝本文是在張路橋老師的熱情關(guān)心和指導(dǎo)下完成的,他淵博的知識(shí)和嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)使我受益匪淺,對(duì)順利完成本課題起到了極大的作用。在此向他表示我最衷心的感謝!在論文完成過程中,本人還得到了其他老師和一些同學(xué)的熱心幫助,本人向他們表示深深的謝意!最后向在百忙之中評(píng)審本文的各位專家、老師表示衷心的感謝!作者簡(jiǎn)介姓 名:魏鍵 性

57、別: 男出生年月:1984 年 3 月 13 日 民族: 漢E-mail:聲聲 明明本論文的工作是 2007 年 2 月至 2007 年 6 月在成都信息工程學(xué)院網(wǎng)絡(luò)工程系完成的。文中除了特別加以標(biāo)注地方外,不包含他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得成都信息工程學(xué)院或其他教學(xué)機(jī)構(gòu)的學(xué)位或證書而使用過的材料。除非另有說明,本文的工作是原始性工作。關(guān)于學(xué)位論文使用權(quán)和研究成果知識(shí)產(chǎn)權(quán)的說明:本人完全了解成都信息工程學(xué)院有關(guān)保管使用學(xué)位論文的規(guī)定,其中包括:(1)學(xué)校有權(quán)保管并向有關(guān)部門遞交學(xué)位論文的原件與復(fù)印件。(2)學(xué)??梢圆捎糜坝 ⒖s印或其他復(fù)制方式保存學(xué)位論文。(3)學(xué)校可以學(xué)術(shù)交

58、流為目的復(fù)制、贈(zèng)送和交換學(xué)位論文。(4)學(xué)??稍试S學(xué)位論文被查閱或借閱。(5)學(xué)??梢怨紝W(xué)位論文的全部或部分內(nèi)容(保密學(xué)位論文在解密后遵守此規(guī)定) 。除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學(xué)院。特此聲明! 作者簽名: 2007 年 06 月 日 BOOK THIRD.-ACCOMPLISHMENT OF THE PROMISE MADE TO THE DEAD WOMANCHAPTER I THE WATER QUESTION AT MONTFERMEILMontfermeil is situated between Livry and Chelles, on

59、 the southern edge of that lofty table-land which separates the Ourcq from the Marne. At the present day it is a tolerably large town, ornamented all the year through with plaster villas, and on Sundays with beaming bourgeois. In 1823 there were at Montfermeil neither so many white houses nor so man

60、y well-satisfied citizens:it was only a village in the forest. Some pleasure-houses of the last century were to be met with there, to be sure, which were recognizable by their grand air, their balconies in twisted iron, and their long windows, whose tiny panes cast all sorts of varying shades of green on th

溫馨提示

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

評(píng)論

0/150

提交評(píng)論