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

下載本文檔

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

文檔簡介

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

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

3、鍵詞:桌面日歷;日程;多用戶 Design and Development of Desktop Calendar System Abstract As 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 limi

4、tations, such as inconvenience. 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 estim

5、ated among computer workers. 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”

6、, “date inquiry”, “holiday management” 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,

7、“schedule manage” module, “schedule 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 目目 錄

8、錄 論文總頁數(shù):23 頁 1 引言.1 2 相關(guān)理論基礎(chǔ) .1 2.1 C/S 模式.2 2.2 Visual Studio 2005 C#.2 2.2.1 C#的介紹.2 2.2.2 C#的弱點(diǎn).3 2.3 SQL Server 2000.3 2.3.1 SQL 介紹.3 2.3.2 Microsoft SQL Server 2000 簡介.4 3 系統(tǒng)需求分析 .4 3.1 用戶需求.4 3.2 功能需求.4 3.2.1 未登錄用戶.4 3.2.2 普通登錄用戶.5 3.2.3 管理員.5 3.3 性能需求.5 4 詳細(xì)設(shè)計與實現(xiàn).6 4.1 系統(tǒng)功能設(shè)計.6 4.2 數(shù)據(jù)庫設(shè)計.6 4.

9、3 各表之間的關(guān)系圖.7 4.4 系統(tǒng)功能實現(xiàn).8 4.4.1 用戶登錄模塊.8 4.4.2 用戶注冊模塊.9 4.4.3 日歷主模塊.11 4.4.4 日志記錄模塊.12 4.4.5 日志提醒模塊.14 4.4.6 節(jié)假日設(shè)置模塊.14 5 系統(tǒng)測試.15 5.1 測試環(huán)境.15 5.2 測試結(jié)果.16 5.3 系統(tǒng)的安全性測試.19 5.3.1 密碼的安全性.19 5.3.2 日志信息的安全性.19 5.3.3 數(shù)據(jù)庫的安全性.19 結(jié) 論 .20 參考文獻(xiàn) .20 致 謝 .22 聲 明 .23 1 1 引言引言 自上個世紀(jì)以來,隨著電腦的逐漸普及,人們的工作和生活越來越方便和 快捷,也

10、使越來越多的人依賴于電腦辦公。而傳統(tǒng)的日歷和日程記事本逐漸顯 現(xiàn)出在當(dāng)今時代的不足和局限性,比如傳統(tǒng)日歷或記事本一般為紙制品,加大 了對森林資源的需求,與當(dāng)今提倡綠色環(huán)保的思想相背;傳統(tǒng)記事本不方便攜 帶、記錄和修改;一般不帶有日歷,即使有也僅僅局限于某一年的日歷,不方 便使用者查詢?nèi)掌?;使用日歷和記事本當(dāng)查詢某天的日程信息的時候非常煩瑣, 而且對該天前后的日程信息也很不好把握;沒有自動提醒功能,不能對使用者 的行程進(jìn)行很好的規(guī)劃和安排??傊?,傳統(tǒng)的日歷和記事本都不能對使用者的 時間進(jìn)行系統(tǒng)化的規(guī)劃。 針對以上的傳統(tǒng)日歷和記事本的局限性,電腦桌面日歷孕育而生。本文所 介紹的桌面日歷系統(tǒng),就是專

11、門為那些常年習(xí)慣于電腦辦公,喜歡對自己的行 程進(jìn)行系統(tǒng)化管理的人們所開發(fā)的一款桌面軟件。該軟件的優(yōu)點(diǎn)如下:1,將日 歷和記事本集成到一款軟件上,讓用戶在記錄和查詢?nèi)罩镜臅r候也能方便得查 閱日期情況。2,日志行程的自動提醒,該系統(tǒng)能根據(jù)用戶自己設(shè)置的行程提醒 時間來提醒用戶,時差是以毫秒級計算,非常之精確。3,人性化的節(jié)假日設(shè)置, 可以根據(jù)用戶的喜好來記錄節(jié)假日和一些重要的日子,并在日歷主界面上顯示 當(dāng)天的節(jié)假日信息。4,借助數(shù)據(jù)庫可以方便得對用戶資料和信息進(jìn)行存取,也 有效得保護(hù)了各個用戶之間的信息。 本文介紹了 C/S 模式下的桌面日歷系統(tǒng)的設(shè)計以及開發(fā)過程,主要包括了 以下幾個方面的內(nèi)容:

12、1,簡要介紹 C#和 SQL 知識。2,介紹該系統(tǒng)的前期設(shè) 計過程。3,介紹該系統(tǒng)的具體代碼實現(xiàn)過程。4,介紹開發(fā)過程中遇到的各種 技術(shù)問題以及解決方案。 計算機(jī)的發(fā)明應(yīng)用,被視為人類的第三次重大的科學(xué)技術(shù)革命,是一次飛 躍。過去的革命最高成就就是“用機(jī)器制造機(jī)器”,是手的延長,而計算機(jī)的出 現(xiàn)卻能做到“用機(jī)器控制機(jī)器”,是腦的延伸,是提高生產(chǎn)效率的主要工具。通 過以上分析不難得出結(jié)論,在計算機(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 模式,

13、設(shè)計平臺為 Visual Studio 2005 C#,后臺數(shù)據(jù)庫 系統(tǒng)為 SQL Server 2000。下面簡單介紹下: 2.12.1 C/S 模式模式 C/S 全名為 Client/Server 應(yīng)用體系,又稱客戶端/服務(wù)器模式。Client 使用各 項操作的用戶界面接口來處理分析和數(shù)據(jù)輸入/輸出;Server 通常采用高性能的 PC 機(jī)、工作站或小型機(jī),并采用大型的數(shù)據(jù)庫系統(tǒng),如 Oracle、SQL Server 等, 主要實現(xiàn)數(shù)據(jù)的存儲功能,以及相關(guān)的后臺業(yè)務(wù)邏輯流程處理。 C/S 模式的優(yōu)點(diǎn)在于:能充分發(fā)揮客戶端 PC 機(jī)的處理能力,許多的工作可 以交由客戶端處理后再提交給服務(wù)器

14、,所以客戶端的響應(yīng)速度非??臁?但 C/S 模式也有一些缺點(diǎn),比如:客戶端需要安裝專門的客戶端軟件;維 護(hù)和升級的成本很高;對客戶端的操作系統(tǒng)也有一定的限制。 CLIENT SERVER GUI 界面 數(shù)據(jù)處理 數(shù)據(jù)處理 數(shù)據(jù)存儲 圖 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提供了十分靈活的操作,不過同時也犧牲了一定的效 率。許多程序員都試圖尋找一種新的語言,希望能在功能與效率之間找到一個 更為理想的權(quán)衡點(diǎn)。對于 C/

15、C+用戶來說,最理想的解決方案無疑是在快速開 發(fā)的同時又可以調(diào)用底層平臺的所有功能。 C#是由微軟開發(fā)的一種全新的、面向?qū)ο蟮木幊陶Z言,作為 Visual Studio 中的一部分推出。既保持了 C+中熟悉的語法,并且還包含了大量的高效代碼 和面向?qū)ο筇匦浴#使得 C+程序員可以高效的開發(fā)程序,而絕不損失 C/C+ 原有的強(qiáng)大的功能。因為這種繼承關(guān)系,C#與 C/C+具有極大的相似性,熟悉 類似語言的開發(fā)者可以很快的轉(zhuǎn)向 C#。 C#語言將在保持 C/C+靈活性的基礎(chǔ)上為程序員帶來更高效的 RAD 開發(fā) 方式。它不僅能用于 WEB 服務(wù)程序的開發(fā),并且還能開發(fā)強(qiáng)大的系統(tǒng)級程序。 C#是種非常

16、類似于 JAVA 的語言,適用于各種操作系統(tǒng),并且與 Windows 緊密地結(jié)合在一起。 微軟稱 C#是由 C 和 C+派生而來的一種“簡單、流行、面向?qū)ο?、類型?全”的程序設(shè)計語言,C#意在綜合 Visual Basic 的高效率和 C+的強(qiáng)大功能。 事實上,C#將是完全依靠 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

17、平臺上,C# 的程序還不能運(yùn)行,因為 C# 程序需要 .NET 運(yùn)行庫為基礎(chǔ),而 .NET 運(yùn)行庫將作為新一代的 Windows(Whistler)的一部分發(fā)行, 或以 Service Pack 的形式提交給 Windows Me 和 Windows 2000 用戶。所以在近期,C# 會主要在服務(wù)器上得到應(yīng)用。 其次,C# 能夠使用的組件和庫還只有 .NET 運(yùn)行庫等很少的選擇,沒有 豐富的第三方軟件庫可用,這需要有一個過程,同時各軟件開發(fā)商的支持也很 重要。 第三,JAVA 的成功因素里有一些是反微軟陣營的吹捧,雖然“只寫一次, 到處運(yùn)行”只是一句口號,但畢竟已經(jīng)是一種成熟的技術(shù)。而 C#

18、的鼓吹者目前 只有名聲不佳的微軟,且只能運(yùn)行在 Windows 上。實際上這兩種語言都不是不 可替代的,理智的說,對軟件開發(fā)商而言,什么工具用的最熟,那就是最好的 工具。尤其對 C+的使用者,C# 沒有帶來任何新東西,因為.NET 運(yùn)行庫在 C+中也可以使用,沒有要換的絕對的理由。 2.32.3 SQL Server 2000 .1 SQL 介紹介紹 SQL(Structured Query Language,結(jié)構(gòu)查詢語言)是一個功能強(qiáng)大的數(shù)據(jù)庫 語言。SQL 通常使用于數(shù)據(jù)庫的通訊。最早的是 IBM 的圣約瑟研究實驗室為其 關(guān)系數(shù)據(jù)庫管理系統(tǒng) System R 開發(fā)的一種查詢

19、語言,它的前身是 Square 語言, 其后由 IBM 公司 1981 年推出。 ANSI(美國國家標(biāo)準(zhǔn)學(xué)會)聲稱,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、 Sybase、 Microsoft SQL Server、 Access、 Ingress 等等。 雖然絕大多數(shù)的數(shù)據(jù)庫系統(tǒng)使用 SQL,但是它們同樣有它們自立另外的專 有擴(kuò)展功能用于它們的系統(tǒng)。但是,標(biāo)準(zhǔn)的 SQL 命令,比如Select、 Insert、 Update、 Delete

20、、 Create和 Drop常常被用于完成絕大多數(shù)數(shù) 據(jù)庫的操作。 .2 Microsoft SQL Server 2000 簡介簡介 Microsoft SQL Server 2000 是目前使用最廣泛的數(shù)據(jù)庫,它與 Windows 網(wǎng) 絡(luò)操作系統(tǒng)的無縫集成,智能化的內(nèi)容管理,強(qiáng)大的功能,使它得到廣大用戶 的喜愛。SQL Server 能與 Microsoft 其他組件有機(jī)地結(jié)合,并充分利用它們提 供的服務(wù)或功能(如安全管理、事件日志、性能監(jiān)視器、內(nèi)存管理和異步處理等), 從而增強(qiáng)了 SQL Server 數(shù)據(jù)庫系統(tǒng)的功能,同時占用較少的系統(tǒng)資源。另外, 用戶可以使用 Web

21、 瀏覽器查詢存儲在 SQL Server 2000 數(shù)據(jù)庫中的數(shù)據(jù),且分 布式查詢使得我們可以引用來自不同數(shù)據(jù)源的數(shù)據(jù)。SQL Server 2000 數(shù)據(jù)庫 容量龐大,每個數(shù)據(jù)庫中可創(chuàng)建多達(dá) 20 萬個數(shù)據(jù)表,數(shù)據(jù)表中的記錄的行數(shù)只 受服務(wù)器硬盤空間的限制。 此外,SQL Server 2000 數(shù)據(jù)庫與普通的本地類型數(shù)據(jù)庫系統(tǒng)(例如 VFP,DBASE,PARADOX,ACCESS)等不同,本地類型的數(shù)據(jù)庫系統(tǒng)只是 簡單的文件存取,缺乏 SQL Server2000 等系統(tǒng)所擁有的諸如:數(shù)據(jù)完整性、安 全性、事務(wù)處理、網(wǎng)絡(luò)多用戶處理等必備的功能。 3 3 系統(tǒng)需求分析系統(tǒng)需求分析 3.13

22、.1 用戶需求用戶需求 該系統(tǒng)的用戶主要分為三種:未登錄用戶、登錄用戶、管理員。 未登錄用戶只能查看日歷主界面和注冊模塊,登錄用戶可以使用除刪除用 戶和修改其他用戶以外功能,管理員可以使用該桌面日歷所有功能。 登錄用戶和系統(tǒng)管理員都是通過密碼驗證登錄,當(dāng)角色操作完成后點(diǎn)擊 “注銷”或“退出”按鈕退出登錄狀態(tài)。 3.23.2 功能需求功能需求 系統(tǒng)功能模塊主要包括以下幾個方面:1,用戶注冊模塊;2,登錄模塊; 3,日志提醒模塊;4,節(jié)假日模塊;5,日歷主模塊;6,用戶信息、節(jié)假日信 息和日志信息都保存在數(shù)據(jù)庫模塊中.以下按照不同的用戶對具體功能進(jìn)行描述: .1 未登錄用戶未登錄用

23、戶 未登錄用戶運(yùn)行該系統(tǒng)后進(jìn)入日歷主界面,可以查看日歷信息,可以查看 當(dāng)前的系統(tǒng)時間,當(dāng)點(diǎn)擊日歷上某一天時可以查看該天是否是已設(shè)置的節(jié)假日。 用戶當(dāng)點(diǎn)擊“日志記錄”或“節(jié)日設(shè)置”的時候,系統(tǒng)提示對話框顯示“該用 戶為未登錄用戶” ,點(diǎn)擊確定按鈕后進(jìn)入登錄界面,輸入賬號和密碼后實現(xiàn)用戶 登錄。 未登錄用戶在日歷主界面或登錄界面上點(diǎn)擊“用戶信息”可以進(jìn)入用戶注 冊界面,在用戶注冊界面可以實現(xiàn)用戶的注冊,可以查看其他已注冊用戶的基 本信息,可以對某用戶名進(jìn)行查找,但是不能刪除其他用戶或修改其他用戶的 個人信息,當(dāng)點(diǎn)擊“刪除”或“修改”按鈕后有錯誤信息提示。 .2 普通登錄用戶普通登錄

24、用戶 用戶通過登錄模塊登錄系統(tǒng)后進(jìn)入日歷主界面,可以查看日歷信息,可以 查看當(dāng)前的系統(tǒng)時間,當(dāng)點(diǎn)擊日歷上某一天時可以查看該天是否是已設(shè)置的節(jié) 假日,可以訪問節(jié)日設(shè)置模塊并對節(jié)日進(jìn)行添加和刪除。 登錄用戶可以訪問用戶日志模塊并對日志信息進(jìn)行添加和刪除,當(dāng)系統(tǒng)時 間到達(dá)當(dāng)前登錄用戶設(shè)置的日志提醒時間時,系統(tǒng)自動加載日志提示模塊提醒 用戶,用戶可以點(diǎn)擊日志提示界面上的“刪除日志”按鈕從數(shù)據(jù)庫中刪除該日 志信息。 登錄用戶可以在日歷主界面上點(diǎn)擊“用戶信息”進(jìn)入用戶注冊和信息界面, 在用戶注冊界面可以實現(xiàn)注冊其他用戶,可以查看其他已注冊用戶的基本信息, 可以修改當(dāng)前登錄用戶的基本信息和密碼,可以對某用戶

25、名進(jìn)行查找,但是不 能刪除其他用戶或修改其他用戶的個人信息。當(dāng)點(diǎn)擊“刪除”或選擇其他用戶 后點(diǎn)擊“修改”按鈕,有錯誤信息提示。 登錄用戶在日歷主界面上點(diǎn)擊“用戶注銷”可以退出當(dāng)前登錄,并連接到 用戶登錄模塊。 .3 管理員管理員 管理員除了可以實現(xiàn)登錄用戶的所有功能外,還有更高的權(quán)限,可以對其 他用戶信息進(jìn)行修改和刪除。 可以對數(shù)據(jù)庫進(jìn)行直接操作,可以查看其他用戶的資料等等。 但是管理員不能查看其他注冊用戶的登錄密碼和日志信息,因為密碼在數(shù) 據(jù)庫里是采用的 MD5 加密,而日志信息也采用了 Unicode 編碼技術(shù),在一定程 度上保護(hù)了其他注冊用戶的權(quán)益。 3.33.3 性能需

26、求性能需求 該系統(tǒng)主要是為了方便用戶進(jìn)行日程管理,所以要求界面要簡潔,操作要 方便。功能要完善,并且不能出現(xiàn)導(dǎo)致該系統(tǒng)崩潰的重大 BUG。 因為該系統(tǒng)為多用戶系統(tǒng),所有用戶資料均保存在數(shù)據(jù)庫內(nèi),所以要求數(shù) 據(jù)庫安全性要高,運(yùn)行要穩(wěn)定,執(zhí)行速度快。為保護(hù)用戶信息,各用戶密碼和 每日行程不能在數(shù)據(jù)庫中以明文顯示。 該系統(tǒng)基于 Windows 操作平臺,符合當(dāng)前大多數(shù)人的操作系統(tǒng),更加大眾 化。 4 4 詳細(xì)設(shè)計與實現(xiàn)詳細(xì)設(shè)計與實現(xiàn) 4.14.1 系統(tǒng)功能系統(tǒng)功能設(shè)計設(shè)計 該桌面日歷系統(tǒng)是基于 C/S 結(jié)構(gòu)的應(yīng)用程序系統(tǒng),由 C#+SQL 實現(xiàn)??蛻?端程序由 Visual Studio 2005

27、C#制作,用于與用戶交互;后臺數(shù)據(jù)庫使用 SQL 2000,由帶有邏輯結(jié)構(gòu)關(guān)聯(lián)的表組構(gòu)成。下圖為系統(tǒng)功能結(jié)構(gòu)示意圖: 登錄用戶 普通用戶管理員 刪除用戶資料 修改用戶信息 注冊新用戶 使用日志記錄 使用節(jié)假日模塊 使用日志提醒 使用日歷主模塊 未登錄用戶 圖 4-1 用戶功能示意圖 如圖 4-1 所示,按登錄與否可分為登錄用戶和未登錄用戶,其中登錄用戶 又可分為管理員和普通用戶,各類別的用戶擁有對該系統(tǒng)中各功能的訪問使用 權(quán)限。 4.24.2 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計 根據(jù)需求分析,該系統(tǒng)后臺數(shù)據(jù)庫共分為 4 個表,以下分別給出各個數(shù)據(jù) 庫表的簡單描述。 UserLogin用戶登錄表用于存儲用戶登

28、錄信息,以供登錄密碼驗證,并 分配用戶編號。該表分為 3 個字段,以 UserNumber 字段為主鍵分別與 UserInfo 和 MsgInfo 表相關(guān)聯(lián),各字段的屬性和作用如表 4-1 表 4-1:用戶登錄表 UserInfo用戶基本信息表用于存儲用戶的基本信息,如年齡、性別等。 該表分為 6 個字段,其中 UserNumber 作為外鍵與 UserLogin 表相關(guān)聯(lián),各字段 的屬性和作用如表 4-2 表 4-2:用戶基本信息表 MsgInfo用戶日志信息表用于儲存各用戶設(shè)置的日志信息,以及系統(tǒng)自 動提醒用戶的時間。該表分為 4 個字段,其中 UserNumber 作為外鍵與 UserL

29、ogin 表相關(guān)聯(lián),各字段的屬性和作用如表 4-3 表 4-3:用戶日志信息表 JInfo節(jié)假日信息表用于儲存節(jié)假日信息,沒有與其他表相關(guān)聯(lián)。該表 分為 4 個字段,其中 JID 作為該表的主鍵,各字段的屬性和作用如表 4-4 表 4-4:節(jié)假日信息表 字段名字段類型是否主鍵說明 UserNamevarchar否定義用戶登錄名 UserPwdvarchar否定義用戶登錄密碼 UserNumberint是定義唯一標(biāo)識的用戶編號 字段名字段類型是否主鍵說明 UserNumberint是唯一標(biāo)識的用戶編號 UserAgeint否定義用戶的年齡 UserSexint否定義用戶性別,1 為男,2 為女

30、UserAddressvarchar否定義用戶的地址,允許為空 UserTelvarchar否定義用戶的電話號碼,允許為空 UserEmailvarchar否定義用戶的 E-Mail 地址,允許為空 字段名字段類型是否主鍵說明 MsgIDint是唯一標(biāo)識的用戶日志信息編號 MsgInfoTextvarchar否定義用戶的日志信息內(nèi)容 MsgDateTimedatatime否定義用戶的日志提醒時間 UserNumberint是唯一標(biāo)識的用戶編號 字段名字段類型是否主鍵說明 JIDint是唯一標(biāo)識的節(jié)假日編號 JNamevarchar否定義的節(jié)假日名稱 JDateTimeMint否定義節(jié)假日的月份

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

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

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

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

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

36、tring UserMd5(string str) string cl = str; string pwd = ; MD5 md5 = MD5.Create();/實例化一個md5對像 / 加密后是一個字節(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 將新用戶信息插入到 UserLogin 表中,并為該用戶分配一個編號; else 輸出提示錯誤信息; 4

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

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

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

40、記錄 = true) 日歷主窗體的文本框文本 = 今天是:+當(dāng)天節(jié)假日名稱; .4 日志記錄模塊日志記錄模塊 功能說明:用于根據(jù)當(dāng)前登錄的用戶名,從數(shù)據(jù)庫的 MsgInfo 表中讀出當(dāng) 前登錄用戶的所有日志信息并顯示在 Datagridview 中。并根據(jù)用戶需要進(jìn)行添 加和刪除日志信息。 圖 4-5 日志記錄模塊界面 當(dāng)點(diǎn)擊“添加”按鈕時,系統(tǒng)將用戶輸入的日志信息和選擇的提醒日期時 間儲存到數(shù)據(jù)庫的 MsgInfo 表中。為保護(hù)用戶的日志信息,MsgInfo 表 MsgInfoText 字段的內(nèi)容采用 Unicode 編碼后儲存,從數(shù)據(jù)庫中讀出時采用 Unicode 解碼后顯

41、示。 當(dāng)點(diǎn)擊“刪除”按鈕時,系統(tǒng)按照用戶選擇的日志信息的編號 MsgID 來從 數(shù)據(jù)庫中刪除該條日志信息。 以下為部分偽代碼。 / Unicode 編碼,用于將用戶輸入的日志信息采用編碼形式儲存在數(shù)據(jù)庫中 設(shè)置字符串型 encode 存放編碼后的字符串; 將字符串 code 按字節(jié)進(jìn)行編碼,并存放在數(shù)組中; try 將數(shù)組中每一個字節(jié)型元素轉(zhuǎn)換為字符串型; catch 處理異常; 返回 encode; / Unicode 解碼,用于將數(shù)據(jù)庫內(nèi)的日志信息正常顯示在 Datagridview 中,與編碼過程 相反 設(shè)置字符串型 decode 存放解碼后的字符串; 將要解碼的字符串型 code 轉(zhuǎn)換

42、為字節(jié)型; try 將 code 信息解碼并轉(zhuǎn)換為字符串型并存放在 decode 中; catch 處理異常; 返回 decode; / 刪除日志按鈕事件的偽代碼,其他按鈕事件與此類似。 if (當(dāng)前日志 ID 為空) MessageBox.Show(請先選擇您要刪除的日志!); else 連接數(shù)據(jù)庫,根據(jù) MsgID 刪除日志信息; if (刪除成功) MessageBox.Show(日志刪除成功!); 重新顯示 MsgInfo 表內(nèi)容; else MessageBox.Show(您的操作有錯誤!); .5 日志提醒模塊日志提醒模塊 功能說明:當(dāng)系統(tǒng)時間到達(dá)當(dāng)前登錄用戶設(shè)置的

43、日志提醒時間時,從數(shù)據(jù) 庫的 MsgInfo 表中讀取出當(dāng)前登錄用戶的當(dāng)前系統(tǒng)時間的日志信息,并顯示在 彈出的窗體中。當(dāng)用戶點(diǎn)擊“刪除”按鈕時,系統(tǒng)從 MsgInfo 表中刪除該條日 志信息。 以下為部分代碼。 /當(dāng)點(diǎn)擊“刪除日志”按鈕后的事件處理代碼 private void btnDeleteMsg_Click(object sender, EventArgs e) /設(shè)置數(shù)據(jù)庫操作語句sql string sql = delete from MsgInfo Where MsgID= + msgid + and UserNumber=(select UserNumber from User

44、Login where UserName= + userName + ); /連接數(shù)據(jù)庫并執(zhí)行sql語句 SqlConDao.SqlHelper.ExecuteNonQuery(SqlConDao.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)用戶通過下拉列表框選擇好日期

45、,并輸入節(jié)假日名稱后點(diǎn)擊“添加”按 鈕時,系統(tǒng)將日期和節(jié)假日名稱儲存到數(shù)據(jù)庫的 JInfo 表中。當(dāng)點(diǎn)擊“刪除”按 鈕時,系統(tǒng)按照用戶選擇的節(jié)假日信息的編號 JID 來從數(shù)據(jù)庫中刪除該條節(jié)假 日信息。 以下為部分代碼。 / 點(diǎn)擊“添加”按鈕的事件處理 private void btnAdd_Click(object sender, EventArgs e) /將 combox 內(nèi)選擇的日期分別儲存在 month 和 day 整型變量中 int month = int.Parse(this.cmbMonth.SelectedItem.ToString(); int day = int.Parse

46、(this.cmbDay.SelectedItem.ToString(); if (this.txtJName.Text.Trim().Length = 2) /設(shè)置數(shù)據(jù)庫添加記錄 sql 語句 string sql = insert into JInfo values( + this.txtJName.Text.Trim() + ,+month+,+day+); /如果 sql 語句執(zhí)行成功 if (SqlConDao.SqlHelper.ExecuteNonQuery(SqlConDao.SqlHelper.ConnectionStringLocal, CommandType.Text,

47、sql) 0) MessageBox.Show(節(jié)假日添加成功!); /重新顯示數(shù)據(jù)庫內(nèi)的節(jié)假日信息 GetJinfo(); else MessageBox.Show(您的操作有錯誤!); else MessageBox.Show(節(jié)假日的輸入格式不正確!請重新輸入!); 5 5 系統(tǒng)測試系統(tǒng)測試 5.15.1 測試環(huán)境測試環(huán)境 本系統(tǒng)測試環(huán)境;CPU:AMD 2500+ ,內(nèi)存:DDR2 512M, SQL SERVER 2000,WIN2000/XP,2003 下均測試通過.建議用戶 CPU PIII,內(nèi)存 256M 及以上, 數(shù)據(jù)庫版本 SQL SERVER 2000,WIN2000PR

48、O/XP,2003,WIN2000 SERVER 及以上軟硬件平臺使用。該測試以程序的功能實現(xiàn)是否符合設(shè)計標(biāo)準(zhǔn) 和程序是否存在重大 BUG 為標(biāo)準(zhǔn)。 5.25.2 測試結(jié)果測試結(jié)果 由于條件所限,本測試僅對該系統(tǒng)進(jìn)行功能測試。 經(jīng)測試,系統(tǒng)在上述軟硬件環(huán)境下,對各模塊的功能均能測試通過,各邏 輯流程均符合設(shè)計需要。 以下為部分測試截圖以及簡要說明: 圖 5-1 密碼錯誤提示信息 在登錄模塊中,隨機(jī)輸入幾組用戶名和密碼進(jìn)行測試。經(jīng)測試,其處理流 程與代碼設(shè)計里的處理流程一致。當(dāng)輸入的用戶密碼與數(shù)據(jù)庫內(nèi)該用戶的密碼 不一致時,提示用戶的錯誤信息,如圖 5-1。當(dāng)輸入信息與數(shù)據(jù)庫信息一致時才 登錄成

49、功。 一開始設(shè)計時忘記了密碼在數(shù)據(jù)庫中是采用 MD5 加密后儲存的,當(dāng)測試 驗證登錄密碼時沒有采用 MD5 加密就直接進(jìn)行比較,導(dǎo)致一直登錄不上去。 后將密碼加密后再比較就正確登錄了。 圖 5-2 未登錄用戶不能訪問日志模塊 該系統(tǒng)采用多用戶模式,并對各用戶的訪問權(quán)限進(jìn)行了設(shè)置,未登錄用戶 只能訪問登錄模塊、注冊模塊以及日歷主模塊。因此,當(dāng)未登錄用戶點(diǎn)擊日歷 主模塊上的“日志記錄”按鈕時,系統(tǒng)提示用戶先登錄該系統(tǒng)才能訪問日志模 塊,如圖 5-2 所示。 圖 5-3 用戶名不得重復(fù)注冊 圖 5-4 非管理員不得刪除用戶資料 在用戶注冊模塊中,對注冊時的資料輸入進(jìn)行條件判斷,并提示出錯誤信 息,圖

50、 5-3 所示。如用戶名是否重復(fù);密碼是否為空等等,避免了數(shù)據(jù)庫中的 信息混亂。 對于此模塊中的“修改”和“刪除”按鈕也進(jìn)行了一定的權(quán)限設(shè)置。如只 有管理員才能刪除用戶資料,如圖 5-4 所示;未登錄用戶不能修改和刪除資料; 登錄用戶只能修改自己的資料而不能修改他人的等等。 在對此模塊進(jìn)行設(shè)計時,一開始在顯示用戶信息的 DataGridView 中,系統(tǒng) 會自動添加一行空行。當(dāng)用戶點(diǎn)擊該空行時,系統(tǒng)會出錯關(guān)閉。經(jīng)檢查,原來 是設(shè)計當(dāng)用戶點(diǎn)擊 DataGridView 某行時,會將該行的信息顯示到下邊的其他控 件中,如 Label、Combox 等。而空行卻帶入了空字段,導(dǎo)致程序錯誤。所以, 在

51、顯示 DataGridView 信息的代碼中加入了 AllowUserToAddRows = false,就不 會在 DataGridView 加上系統(tǒng)自動生成的空行了。其后的日志模塊了節(jié)假日模塊 也采用了同樣的方法去掉該空行。 圖 5-5 刪除日志錯誤信息 圖 5-4 節(jié)假日格式不正確 在日志記錄系統(tǒng)和節(jié)假日管理系統(tǒng)中,隨機(jī)輸入一些信息來驗證該模塊的 判斷邏輯是否符合設(shè)計要求。 如:未選擇日志信息就點(diǎn)“刪除”按鈕;輸入不合規(guī)范的節(jié)假日名稱等等。 經(jīng)測試,系統(tǒng)實際的處理順序完全符合設(shè)計,如圖 5-4 和圖 5-4。 圖 5-5 日志提醒界面 隨機(jī)在某登錄用戶的日志記錄模塊中輸入一條日志,并設(shè)置

52、提醒時間。當(dāng) 系統(tǒng)時間到達(dá)該日志的提醒時間時,系統(tǒng)能正確發(fā)出提示信息,如圖 5-5 所示, 時間也非常準(zhǔn)確。 另外還測試了,當(dāng)某用戶登錄該系統(tǒng)后,是否會提示其他用戶的登錄信息。 測試結(jié)果為日志提醒模塊只會提示當(dāng)前登錄用戶的日志信息,而不會提示其他 用戶的。這也完全符合該系統(tǒng)的設(shè)計要求。 最初設(shè)計時因為沒有考慮到將用戶日志信息進(jìn)行 Unicode 編碼后儲存,所 以在日志提醒模塊中采用了根據(jù)日志文本信息作為條件來刪除數(shù)據(jù)庫資料。但 后來將日志信息采用 Unicode 編碼儲存后,該提醒模塊在測試時就出現(xiàn)了很多 問題,如直接顯示數(shù)據(jù)庫內(nèi)未進(jìn)行解碼的日志信息;不能正常刪除日志等。后 將該模塊加入 U

53、nicode 解碼代碼,將日志信息進(jìn)行解碼后就能正常輸出了。在 刪除日志時,將采用的以日志文本信息作為數(shù)據(jù)庫刪除條件,改為以該日志編 號和登錄用戶名作為條件進(jìn)行數(shù)據(jù)庫操作就能正常刪除用戶日志。 5.35.3 系統(tǒng)的安全系統(tǒng)的安全性測試性測試 .1 密碼的安全性密碼的安全性 該系統(tǒng)為多用戶系統(tǒng),所有用戶的登錄密碼都保存在數(shù)據(jù)庫中,以供用戶 登錄時的密碼比較。如果密碼以明文形式在數(shù)據(jù)庫中儲存,必定會對用戶的資 料安全造成很大的隱患。 所以,該系統(tǒng)將用戶的密碼進(jìn)行 MD5 加密后再存入數(shù)據(jù)庫中。當(dāng)用戶登 錄時也采用 MD5 將用戶輸入的密碼加密后與數(shù)據(jù)庫中的密碼信息比較。采用 MD5

54、 算法轉(zhuǎn)換后的數(shù)據(jù)是偽隨機(jī)的,而且該算法是一個不可逆的字符串變換算 法,沒有辦法對已加密的數(shù)據(jù)進(jìn)行解密。 MD5 算法在密碼的安全方面提供了非常好的保障。 .2 日志信息的安全性日志信息的安全性 用戶的日志信息在數(shù)據(jù)庫中采用 Unicode 編碼進(jìn)行儲存。當(dāng)用戶登錄該系 統(tǒng)后,日志模塊將數(shù)據(jù)庫內(nèi)該用戶的日志信息經(jīng)過 Unicode 解碼后再輸出。 字符必須編碼后才能被計算機(jī)處理。計算機(jī)使用的缺省編碼方式就是計算 機(jī)的內(nèi)碼。Unicode 是一種字符編碼方法,由國際組織設(shè)計,可以容納全世界 所有語言文字的編碼方案。 雖然 Unicode 編碼不像 MD5 加密那樣安全可靠,但是因

55、為 Unicode 編碼可 逆,而且儲存在數(shù)據(jù)庫中的信息并不是用戶的原始信息,所以在一定程度上也 對用戶行程進(jìn)行了保護(hù)。 .3 數(shù)據(jù)庫的安全數(shù)據(jù)庫的安全性性 在數(shù)據(jù)庫的安全方面,主要依賴于 SQL Server 2000 自身的安全性。在使用 時,定期對數(shù)據(jù)庫進(jìn)行備份,以便數(shù)據(jù)庫發(fā)生錯誤時將數(shù)據(jù)庫恢復(fù)到之前某一 已知的正確狀態(tài),實現(xiàn)數(shù)據(jù)庫的再次正確使用。 結(jié)結(jié) 論論 本次畢業(yè)設(shè)計完成了預(yù)定任務(wù),包括用戶登錄、用戶注冊、日歷、日志記 錄、日志提醒、節(jié)假日設(shè)置等功能。 通過此次畢業(yè)設(shè)計,雖說不能完全掌握 C#的編程技巧,但基本的編程思路 還是逐漸地鞏固起來。以前在課堂上學(xué)習(xí)的理論知

56、識派上了用場,在程序的實 際設(shè)計和實現(xiàn)過程中,逐步地將一些理論知識應(yīng)用到開發(fā)中來,比如函數(shù)的調(diào) 用、類與對象、方法的重載和引用等,并簡單接觸到了數(shù)據(jù)庫的設(shè)計與操作。 個人感覺其中最大的收獲就是學(xué)習(xí)如何在程序開發(fā)過程中發(fā)現(xiàn)問題,查閱 資料并解決問題,養(yǎng)成獨(dú)立思考的能力。學(xué)習(xí)如何利用網(wǎng)絡(luò)尋找解決問題的方 法,這種方法在今后的工作和學(xué)習(xí)生活中能讓事情變得事半功倍。 在整個程序的設(shè)計與實現(xiàn)過程中,也發(fā)現(xiàn)自身存在的不少問題。特別是在 實際動手編寫代碼方面很欠缺,一些本來很簡單的問題卻要去花費(fèi)大量的時間 來解決。理論上明白的方法卻不知道該如何去實現(xiàn),今后要多加練習(xí)動手能力。 參考文獻(xiàn)參考文獻(xiàn) 1 Karl

57、i Watson,Christian Nagel.C#入門經(jīng)典(第 3 版)M.齊立波譯.北京:清華大學(xué) 出版社,2006。 2 Christian Nagel,Bill Evjen,Jay Glynn.C#高級編程(第 4 版)M.李敏波譯.北京: 清華大學(xué)出版社,2006。 3 單銀根,黎連業(yè).C#語言及程序設(shè)計M.北京:北京希望電子出版社,2001。 4 前沿軟件研究室,鄭小平.Visual C#.NET 開發(fā)實踐M.北京:人民郵電出版社, 2001。 5 鄭宇軍.C#2.0 程序設(shè)計教程M.北京:清華大學(xué)出版社,2004。 6 李代平.中文 SQL server2000 數(shù)據(jù)庫系統(tǒng)管理

58、M.北京:冶金工業(yè)出版社, 2003。 7 方睿,刁仁宏,吳四九.網(wǎng)絡(luò)數(shù)據(jù)庫原理及應(yīng)用M.成都:四川大學(xué)出版社, 2005。 致致 謝謝 本文是在張路橋老師的熱情關(guān)心和指導(dǎo)下完成的,他淵博的知識和嚴(yán)謹(jǐn)?shù)?治學(xué)作風(fēng)使我受益匪淺,對順利完成本課題起到了極大的作用。在此向他表示 我最衷心的感謝! 在論文完成過程中,本人還得到了其他老師和一些同學(xué)的熱心幫助,本人 向他們表示深深的謝意! 最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝! 作者簡介 姓 名:魏鍵 性別: 男 出生年月:1984 年 3 月 13 日 民族: 漢 E-mail: 聲聲 明明 本論文的工作是 2007 年 2 月至 2

59、007 年 6 月在成都信息工程學(xué)院網(wǎng)絡(luò)工程 系完成的。文中除了特別加以標(biāo)注地方外,不包含他人已經(jīng)發(fā)表或撰寫過的研 究成果,也不包含為獲得成都信息工程學(xué)院或其他教學(xué)機(jī)構(gòu)的學(xué)位或證書而使 用過的材料。除非另有說明,本文的工作是原始性工作。 關(guān)于學(xué)位論文使用權(quán)和研究成果知識產(chǎn)權(quán)的說明: 本人完全了解成都信息工程學(xué)院有關(guān)保管使用學(xué)位論文的規(guī)定,其中包括: (1)學(xué)校有權(quán)保管并向有關(guān)部門遞交學(xué)位論文的原件與復(fù)印件。 (2)學(xué)校可以采用影印、縮印或其他復(fù)制方式保存學(xué)位論文。 (3)學(xué)校可以學(xué)術(shù)交流為目的復(fù)制、贈送和交換學(xué)位論文。 (4)學(xué)校可允許學(xué)位論文被查閱或借閱。 (5)學(xué)??梢怨紝W(xué)位論文的全部或

60、部分內(nèi)容(保密學(xué)位論文在解密后 遵守此規(guī)定) 。 除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息 工程學(xué)院。 特此聲明! 作者簽名: 2007 年 06 月 日 Are you hungry now? No, I am tired and lazy now; if I pursue you I will not catch you, and if I catch you-through your own slowness and clumsiness-I will not kill you, and if I kill you I will not eat you. Nic

溫馨提示

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

評論

0/150

提交評論