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

下載本文檔

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

文檔簡介

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

2、統(tǒng)、美觀的界面設計,受到廣大電腦辦公者的喜愛。本設計就是針對當前網絡上眾多的桌面日歷,綜合其各項基本功能來開發(fā)一套屬于自己的個性化日歷日志系統(tǒng)。本設計主要采用 C#+SQL 的 C/S 設計模式,來實現(xiàn)不同用戶的登錄、日程編輯、日程提醒、日期查詢、節(jié)假日管理等工作。方便了使用者對每日行程的掌握,也保護了各使用者之間的私人信息。本設計按照功能模塊分為用戶登錄模塊、用戶注冊、日歷和時間模塊、節(jié)假日模塊、日程行程模塊、自動提醒模塊、數據庫模塊。本文詳細地介紹了該日歷日程系統(tǒng)的功能需求、系統(tǒng)設計和具體實現(xiàn)。并簡要介紹了系統(tǒng)開發(fā)采用的過程及方法。關鍵詞:關鍵詞:桌面日歷;日程;多用戶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目目 錄錄論文總頁數:23 頁1 引言.12 相關理論基礎 .12.1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

30、teTimeMint否定義節(jié)假日的月份JDateTimeDint否定義節(jié)假日的日期4.34.3 各表之間的關系圖各表之間的關系圖該關系圖是由 SQL 數據庫的“新建關系圖向導”自動生成。UserLogin(用戶登錄表)、UserInfo(用戶基本信息表)和 MsgInfo(日志信息表)通過 UserNumber(用戶編號)相關聯(lián),其中 UserLogin(用戶登錄表)的UserNumber 為 PK(主鍵) ,UserInfo(用戶基本信息表)和 MsgInfo(日志信息表)的UserNumber 為 FK(外鍵)。JInfo(節(jié)假日信息表)相對其他三張表獨立,沒有關聯(lián)關系。圖 4-2 數據庫

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

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

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

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

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

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

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

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

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

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

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

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

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

44、。以下為部分代碼。/ 點擊“添加”按鈕的事件處理private void btnAdd_Click(object sender, EventArgs e)/將 combox 內選擇的日期分別儲存在 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)/設置數據庫添加記錄 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é)假日添加成功!);/重新顯示數據庫內的節(jié)假日信息GetJinfo();elseMessageBox.Show(您的操作有錯誤!);elseMessageBox.Show(節(jié)

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

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

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

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

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

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

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

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

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

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

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

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

58、流為目的復制、贈送和交換學位論文。(4)學??稍试S學位論文被查閱或借閱。(5)學??梢怨紝W位論文的全部或部分內容(保密學位論文在解密后遵守此規(guī)定) 。除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學院。特此聲明! 作者簽名: 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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論