論文管理系統(tǒng)論文-無憂無慮畢設(shè)網(wǎng)_第1頁
論文管理系統(tǒng)論文-無憂無慮畢設(shè)網(wǎng)_第2頁
論文管理系統(tǒng)論文-無憂無慮畢設(shè)網(wǎng)_第3頁
論文管理系統(tǒng)論文-無憂無慮畢設(shè)網(wǎng)_第4頁
論文管理系統(tǒng)論文-無憂無慮畢設(shè)網(wǎng)_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 畢業(yè)設(shè)計源碼下載: 本文配套程序下載地址 : 無憂無慮畢設(shè)網(wǎng) () -大 學生畢業(yè)設(shè)計站 ,免費畢業(yè)設(shè)計論文 ,無憂無慮畢設(shè)網(wǎng) 大學生畢業(yè)設(shè)計 ,出售各類畢業(yè)設(shè)計源碼 ,論文 ,程序源碼 ,網(wǎng)站源碼 ,免費視頻教程 ,我們將竭誠為您服務(wù)! 目錄 摘要 . III 第一章 緒論 . 1.1 課題研究的目的 . 1.2 本系統(tǒng)預期的效果與意義 . 第二章 系統(tǒng)綜合分析 . 2.1 問題定義 . 2.2 可行性研究 . 2.3 開發(fā)環(huán)境的選擇 . 2.4 DELPHI 在 WINDOWS 環(huán)境下開發(fā)數(shù)據(jù)庫 的應用 . 2.5DELPHI 數(shù)據(jù)庫應用程序的開發(fā)步驟 . 2.6 使用 SQL 編程 . 2.7 關(guān)系型數(shù)據(jù)庫的實現(xiàn) . 2.8 兩者的結(jié)合( ODBC) . 第三章 系統(tǒng)的總體規(guī)劃 . 3.1 總體功能的需求 . 3.2 算法設(shè)計 . 3.3 系統(tǒng)數(shù)據(jù)流圖 . 3.4 數(shù)據(jù)字典 . 第四章 系統(tǒng)的具體實現(xiàn) . 4.1 數(shù)據(jù)庫的建立 . 4.2 各模塊的功能實現(xiàn) . 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 畢業(yè)設(shè)計源碼下載: 4.2.1 主窗體的建立 . 4.2.2 用戶登錄模塊 . 4.2.3 用戶注冊模塊 . 4.2.4 修改密碼模塊 . 4.2.5 可選課題模塊 . 4.2.6 課題統(tǒng)計模塊 . 4.2.7 歷年課題模塊 . 4.2.8 院系管理模塊 . 4.2.9 教研室管理 . 第五章 系統(tǒng)完善 . 5.1 數(shù)據(jù)集的打開、關(guān)閉 . 5.2 窗體中用戶權(quán)限的實限 . 5.3 添加幫助模塊 . 結(jié)束語 . 主要參考文獻 . 外文資料 . 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 畢業(yè)設(shè)計源碼下載: 摘要 論文管理系統(tǒng)是針對學院的大量繁雜的論文和課題而開發(fā)的管理軟件。根據(jù)用戶的要求,實現(xiàn)完成對學術(shù)論文及專業(yè)課題的錄入、修改、查詢、瀏覽、統(tǒng)計、導出數(shù)據(jù)庫記錄并打印、報表輸出等幾個方面的主要功能。另外,還能通過該系統(tǒng)查閱一些和畢業(yè)設(shè)計有關(guān)的一些電子資料。該系統(tǒng)用 Access 作為數(shù)據(jù)庫的開發(fā)工具,庫中包含有十個數(shù)據(jù)表。該系統(tǒng)具有智能化、自動化的特點 ,界面友好、功能齊全、實用性和可操作性極強。使用該系統(tǒng)后,既能夠極大地 提高 論文 管理的效率 ,又能加強學生與學生、學生與教師、學生與學校之間的交流,是 科學化、正規(guī)化管理的重要條件。 關(guān)鍵字 : 論文 課題 ODBC 權(quán)限 II ABSTRACT The thesis management system is a management to aim at the complicated thesis and task in academic.According to the request of the custmer,it can record into to thesis and task, modification, search, view, covariance, lead a database record and print. Moreover, we can pass the system to check some electronics data of graduatal design.The system uses the Access to conduct the database , In the database there are eight table.The system is automation, the interface is amity, function is well-found, the function is very strong with the maneuverability. If use this system, since can increases the biggest efficiency of the thesis management, enhance the student again and student, student and teacher, student and school an important term for of exchanges, is scientific and regularly turning management. Key word: thesis task ODBC purview 工學學士學位論文 第一章 緒論 計算機的價格已經(jīng)十分低廉,性能卻有了長足的進步。 它已經(jīng)被應用 于許多領(lǐng)域, 它的應用正風行整個世界。在今天, 計算機已經(jīng)成為我們學習和工作的得力助手,原因主要有以下幾個方面:計算機可以代替人工進行許多繁雜的勞動;計算機可以節(jié)省許多資源;計算機可以大大的提高人們的工作效率;計算機可以使敏感文檔更加安全,等等。 1.1 課題研究的目的 隨著科學技術(shù)的不斷提高 ,計算機科學日漸成熟 ,其強大的功能已為人們深刻認識 ,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。一直以來人們使用傳統(tǒng)人工的方式管理 各種論文 檔案,這種管理方式存在著許多缺點 ,如 :效率低、保密性差 ,易于丟 失;隨著時間的推移 ,將產(chǎn)生大量的文件和數(shù)據(jù) ,這對于查找、更新和維護都帶來了不少的困難。 論文 管理系統(tǒng)是一個單位 要管理好論文所 不可缺少的部分 ,論文 管理系統(tǒng)能夠為用戶提供 充 足的信息和快捷的查詢手段。但現(xiàn)在 , 我 院 中 論文課題 的管理還停留在紙介質(zhì)的基礎(chǔ)上,這樣的機制已經(jīng)不能適應時 代 的發(fā)展,因為它浪費了許多人力和物力,在信息時代這種傳統(tǒng)的管理方法必然被計算機為基礎(chǔ)的信息管理所取代。我作為一個計算機專業(yè) 的本科生,希望可以在這方面有所貢獻。改革的總設(shè)計師鄧小平同志說過 “ 科學技術(shù)是第一生產(chǎn)力 ” ,我希望能用我四年的所學編制出一 個實用的程序來幫助 我院 進行更有效的 論文課題 管理。 歸納起來,好處大約有以下幾點: 1可以存儲 任一 屆 老師 學生 的課題和畢業(yè)論文 , 并且具有 安全、高效 的特點; 2只需 很少量的人員便可以完成對我院所有論文課題的管理 , 這樣可以 節(jié)省大 量的人力和物力; 3 只需輸入少量簡單的條件即可 以迅速查到所需 要的 信息。 工學學士學位論文 1.2 本系統(tǒng)預期的效果與意義 作為計算機應用的一部分 ,使用計算機 論文管理系統(tǒng) 對 學校的論文 信息進行管理 ,具有手工管理所無法比擬的優(yōu)點 .例如 :檢索迅速、查找方便、可靠性高、存儲量大、保密性好 、壽命長、成本低等。這些優(yōu)點能夠極大地提高 論文 管理的效率 ,也是 提供需學生與學生、學生與老師、老師與老師、學校與學校、學校與社會互相交流的一座橋梁,是 科學化、正規(guī)化管理 ,與世界接軌的重要條件。 工學學士學位論文 第二章 系統(tǒng)綜合分析 考慮到該論文管理系統(tǒng)的實際規(guī)模與工作量的大小,本人承擔了該系 統(tǒng)自前至后的整個系統(tǒng)用戶部分的分析與設(shè)計工作,我的任務(wù)便是完成整個數(shù)據(jù)庫的創(chuàng)建、用戶管理和公共數(shù)據(jù)的管理等幾部分,并在設(shè)計開發(fā)過程中對整個系統(tǒng)的界面統(tǒng)一規(guī)劃,力求使論文管理系統(tǒng)界面美觀,可操作性強。 2.1 問題定義 所謂論文管理系統(tǒng)就是利用計算機來管理學院的大量繁雜的論文和課題而開發(fā)的管理軟件。它能實現(xiàn)完成對學術(shù)論文及專業(yè)課題的錄入、修改、查詢、瀏覽、統(tǒng)計、導出數(shù)據(jù)庫記錄并打印、報表輸出。該系統(tǒng)具有智能化、自動化的特點,界面友好、功能齊全、實用性和可操作性極強。使用該系統(tǒng)后,能夠極大地 提高 論文 管理的效率。 2.2 可行性研究 論文管理系統(tǒng)的研究開發(fā)有著十分重要的實際意義,主要可從以下幾個方面加以分析: (1)當前,計算機網(wǎng)絡(luò)正以飛快的速度向前發(fā)展,尤其是越 來越多的學校、機構(gòu)在自己的組織內(nèi)部建立起了計算機局域網(wǎng),同時也將整個局域網(wǎng)連到了可以搜尋到任和信息的internet網(wǎng),我?,F(xiàn)在也正在積極的向著計算機化管理的方向發(fā)展,這樣就從設(shè)備專業(yè)方面保證了選課系統(tǒng)的可行性。 (2) 由于當前的時代是一給信息的時代,信息的準確快速的收集對于工作效率的提高有著十分重要的作用,隨著專業(yè)論文和課題的快速增加,論文管理系統(tǒng)的研究開發(fā)可以說是勢在必行。 (3) 本系統(tǒng)的運行環(huán)境要求是: 系統(tǒng)軟件 : 在 Windows95/98/2000、 Windows NT 環(huán)境下 ,或在其兼容下運行 。 支持軟件:客戶端數(shù)據(jù)庫接口 ,它可以理解 SQL(結(jié)構(gòu)化查詢語言)命令或提供創(chuàng)建和使用 數(shù) 據(jù) 庫 的 子 程 序 ; 此 外 必 須 配 有 數(shù) 據(jù) 庫 引 擎 管 理 工 具 (BDE Administrator), 它是數(shù)據(jù)庫應用程序的支持環(huán)境,保證數(shù)據(jù)庫應用程序的 工學學士學位論文 運行。 硬件方面:奔騰 200以上機型, 64M以上內(nèi)存, 1G以上硬盤, 8M以上顯卡。 所以,低要求的運行環(huán)境從而保證了本系統(tǒng)正常運行的可行性。 基于以上幾點可以說明該選課系統(tǒng)的開發(fā)與研究是完全可行的 2.3 開發(fā)環(huán)境的選擇 這是我選擇了 Delphi 語言, DELPHI 是 Borland 公司推出的 快速、可視化程序開發(fā)工具。它擁有一個可視化的集成開發(fā)環(huán)境( IDE),采用面向?qū)ο蟮木幊陶Z言 Object Pascal 和基于控件的開發(fā)框圖架結(jié)構(gòu)。 DELPHI 提供了多個可供使用的控件,利用這些控件,開發(fā)人員可以快速構(gòu)造出各式各樣的應用系統(tǒng)。其功能強大、使用方面、性能超群。 1. 簡單易用、快速入門: 可視化的面向?qū)ο筇匦允沟脧碗s、枯燥的編程工作變得直觀、有趣、大大縮短了開發(fā)周期。提供了許多快速方便的開發(fā)方法,使開發(fā)人員能用盡可能少的重復性工作完成各種不同的就用。利用項 目模板和向?qū)善骺梢院芸旖㈨椖康目蚣?,然后根?jù)用戶的實際需要完善其功能 2.功能全面、強大 : Delphi包羅萬象,可以開發(fā)任何規(guī)模、任何類型的軟件,包括大、中、小型的系統(tǒng)軟件。它自帶了豐富的控件,無論是多媒體、數(shù)據(jù)庫、還是 Internet 編程,從前枯燥、繁雜的編程工作都會變得輕而易舉。 Delphi 還有很強的控件開發(fā)能力,是一個自我增強型的工具??梢哉f Delphi 是具有底層開發(fā)能力的快速開發(fā)工具,既可以用于開系統(tǒng)軟件,也適合于應有軟件的開發(fā)。 3語法嚴謹,適合復雜應用的需要: Delphi 基于 Object Pascal 語言,只要你會 Pascal,就能在極短的時間內(nèi)掌握Delphi, 正是因為基于 Pascal語言,所以 Delphi 解決問題的方式比較嚴謹,源程序類似于自然語言,易讀易懂,適合復雜應用的需要。 4代碼簡潔、高效: 用 Delphi 寫一行代碼便可生成或關(guān)閉一個 Windows 窗口,而使用標準的語言編程,則可能需要幾十行代碼。更為重要的是 Delphi 擁有世界上最快的編譯器,編譯后 工學學士學位論文 的可執(zhí)行程序是真正的二進制機器代碼,是完全獨立的可執(zhí)行文件,其執(zhí)行速度是語言的??梢哉f是以極小的執(zhí)行效率犧 牲為代價,實現(xiàn)了編程效率的極大提高。 5 卓越超群的數(shù)據(jù)庫開發(fā)能力: Delphi 以傳統(tǒng)的編程語言為 Object Pascal 基礎(chǔ),完美的結(jié)合了數(shù)據(jù)庫語言,即可以用于傳統(tǒng)的算術(shù)編程又可以用于數(shù)據(jù)庫編程。它的數(shù)據(jù)處理接口工具是一個標準的軟件中介層,可以用來處理當前流行的數(shù)據(jù)格式,如 xBase、 Paradox 等,也可以通過的 SQLLink 直接與 Sybase、 SQL Server、 Informix、 Oracle 等大型數(shù)據(jù)庫連接??梢哉f不論是小型數(shù)據(jù)庫應用系統(tǒng),還是關(guān)鍵性、大型數(shù)據(jù)庫應用系統(tǒng), Delphi都能滿足系統(tǒng)開發(fā)的需求,具有強大的擴展能力和數(shù)據(jù)庫平臺升級遷移的適應能力,能適應多種數(shù)據(jù)庫結(jié)構(gòu),從桌面數(shù)據(jù)庫到客戶機服務(wù)器模式再到多層數(shù)據(jù)結(jié)構(gòu)模式,Delphi都能勝任。 2.4 Delphi 在 Windows 環(huán)境下開發(fā)數(shù)據(jù)庫的應用 數(shù)據(jù)庫系統(tǒng)主要由三大部分組成:數(shù)據(jù)庫管理系統(tǒng) (DBMS)、數(shù)據(jù)庫應用程序 (它使能夠獲取和顯示和更新由 DBMS存儲的數(shù)據(jù) )、數(shù)據(jù)庫 (按一定結(jié)構(gòu)組織在一起的相關(guān)的集合 )。 Delphi擁有強大的內(nèi)部數(shù)據(jù)庫支持,其中所存在的可視組件可以對 操縱記錄的表和方法進行訪問。 在 Delphi中,有三個數(shù)據(jù)集組件: TTable、 Tquery、 TstoredProc。 Delphi可以訪問多種數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)庫。依靠窗體和報表, BDE 可以訪問Paradox、 dBASE、本地 InterBase服務(wù)器的數(shù)據(jù)庫,也可以訪問遠程數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)庫(如 ORACLE、 Sybase、 Informix等客戶 /服務(wù)器數(shù)據(jù)庫),或者任何經(jīng) ODBC可訪問的數(shù)據(jù)庫。跟其它的應用程序一樣, DELPHI 提供了許多組件以方便創(chuàng)建數(shù)據(jù)庫應用程序。下面列出這些工具和部件以及它們的主要用途: * Data Access Components 用來訪問數(shù)據(jù)庫、數(shù)據(jù)庫表、存儲過程等。 * Data Control Components 用來與用戶交互、提供顯示、修改數(shù)據(jù)庫中數(shù)據(jù)的界面。 * Midas 工學學士學位論文 用來創(chuàng)建多多級數(shù)據(jù)庫應用程序。 * Database Desktop(OBD) 簡單實用的數(shù)據(jù)庫桌面工具,可以創(chuàng)建、查看、修改和查詢 Paradox、 dBASE和 SQL表。 * Report Smith 建立、瀏覽和打印數(shù)據(jù)庫表中的數(shù)據(jù)。 * Borland Database Engine(BDE) 意為數(shù)據(jù)庫引擎。用戶可以借助它 快速簡便地建立大型的、性能優(yōu)異的數(shù)據(jù)Client/Server應用程序。 Form 單層數(shù)據(jù)庫應用程序 單層數(shù)據(jù)庫應用程序 BorlandDatabase Engine User Interface elements Data source BDE-enabled dataset component Local Data base User Interface elements Data source Data source BDE-enabled dataset component Flat-filedata OLEDB Data source BDE-enabled dataset component User Interface elements Remote database 工學學士學位論文 兩層數(shù)據(jù)庫應用程序 Client Application Application Server 兩層數(shù)據(jù)庫應用程序 Client Application Application Server Client Application Application Server Remote database User Interface elements Bland databasecomponent Data source BDE-enabled dataset component Borland database engine User Interface element Data source compoment Client dataset provider BDE-enabled dataset component Remote database OLEDB User Interface element Data source compoment Client dataset provider BDE-enabled dataset component Remote database 工學學士學位論文 Client Application Application Server 多層數(shù)據(jù)庫應用程序 2.5Delphi 數(shù)據(jù)庫應用程序的開發(fā)步驟 當我們確定了要開發(fā)一個數(shù)據(jù)項目后,我們都要一個規(guī)劃。一般來說, 數(shù)據(jù)庫應用程序的開發(fā)有三個步驟: 1.系統(tǒng)設(shè)計 在這個階段,我們要根據(jù)用戶需求確定數(shù)據(jù)庫模型、系統(tǒng)要實現(xiàn)的功能,以及決定什么功能由服務(wù)器端實現(xiàn),什么功能由客戶端實現(xiàn)。 2.系統(tǒng)實現(xiàn) 主要任務(wù)是使用 DELPHI提供的工具和部件以及 PASCAL語言實現(xiàn)系統(tǒng),并進行調(diào)試。 3.系統(tǒng)運行和維護 我們不可能一下子就拿出一個十全十美的系統(tǒng)來,只有在系統(tǒng)交會運行后, 根據(jù)用戶需求,做相應的修改,使用權(quán)其進一步完善和提高。 我們在使用 DELPHI 開發(fā)一個數(shù)據(jù)庫應用程序時應該注意下列四種 情況: * 數(shù)據(jù)庫不存在或者需要重新定義。使用 DBD為本地數(shù)據(jù)庫定義; 使用服務(wù)器開發(fā)工具如 Windows ISQL 或者 DBD定義本地或者遠程 SQL服務(wù)器的數(shù)據(jù)庫。 * 數(shù)據(jù)庫在桌面數(shù)據(jù)庫系統(tǒng)中或局域網(wǎng)上,而 BDE、數(shù)據(jù)庫和應用程序在同一臺機器上,這是典型的單機應用。 * 數(shù)據(jù)庫在桌面數(shù)據(jù)系統(tǒng)中,但用戶要把它改變到 SQL數(shù)據(jù)庫服務(wù)器上,這需要用到 InterBase。 User Interface element Data source Client dataset compoment BDE-enabled dataset component provider 工學學士學位論文 * 數(shù)據(jù)庫在 SQL服務(wù) 器中,而應用程序要支訪問 SQL服務(wù)器的數(shù)據(jù)庫。 2.6 使用 SQL 編程 SQL語言是關(guān)系數(shù)據(jù)庫管理系統(tǒng)中的一種通用結(jié)構(gòu)查詢語言, Delphi 與使用 SQL語言的數(shù)據(jù)庫管理系統(tǒng)兼容,我們可以在我們的數(shù)據(jù)庫應用系統(tǒng)使用 SQL語句編程。 SQL有許多優(yōu)點,它使全部用戶,包括應用程序員, DB管理員和終端用戶受益非淺。 1.非過程化語言 是一個非過程化的語言,因為它是一次處理一個記錄,對數(shù)據(jù)提供自動導航。 SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,可以操作記錄集。 2.統(tǒng)一的語言 SQL可以用于所有用戶的 DB活動模型,包括 系統(tǒng)管理員、數(shù)據(jù)庫管理員、應用程序員、決策支持系統(tǒng)人員以及許多其它類型的終端用戶。 基本的 SQL命令只需很少時間就能學會,最高級的命令在幾天內(nèi)便可以掌握。 SQL提供了許多對數(shù)據(jù)庫操縱的命令,包括: * 查詢數(shù)據(jù); * 在表中插入、修改和刪除記錄; * 建立、修改和刪除數(shù)據(jù)對象; * 控制對數(shù)據(jù)和數(shù)據(jù)對象的存?。?* 保證數(shù)據(jù)庫一致性和完整性。 3統(tǒng)一的關(guān)系數(shù)據(jù)庫語言 所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持 SQL 語言,用戶可以將使用 SQL 的功能從一個 RDBMS轉(zhuǎn)移到另一個 RDBMS。所有用 SQL編寫的程序都是 可 以移植的。 2.7 關(guān)系型數(shù)據(jù)庫的實現(xiàn) 在這里,我們選擇了 Access2000 作為數(shù)據(jù)庫的開發(fā)工具,而 Access2000 正 是關(guān)系數(shù)據(jù)庫開發(fā)工具,數(shù)據(jù)庫能匯集各種信息以供查詢、存儲和檢索。 Access 2000 的優(yōu)點在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息。數(shù)據(jù)表示圖提供了一種類似于 Excel 的電子表格,可以使數(shù)據(jù)庫一目了然。另外, Access 2000 允許創(chuàng)建自定義報表 工學學士學位論文 用于打印或輸出數(shù)據(jù)庫中的信息。 Access也提供了數(shù)據(jù)存儲庫,可以使用桌面數(shù)據(jù)庫文件把數(shù)據(jù)庫文件置于網(wǎng)絡(luò)文件服務(wù)器,與其他網(wǎng)絡(luò) 用戶共享數(shù)據(jù)庫。 Access 2000 是一種關(guān)系數(shù)據(jù)庫工具,關(guān)系數(shù)據(jù)庫是已開發(fā)的最通用的數(shù)據(jù)庫之一。如上所述, Access 2000作為關(guān)系數(shù)據(jù)庫開發(fā)具備了許多優(yōu)點,可以在一個數(shù)據(jù)包中同時擁有桌面數(shù)據(jù)庫的便利和關(guān)系數(shù)據(jù)庫的強大功能。 2.8 兩者的結(jié)合( ODBC) ODBC 是一種用于訪問數(shù)據(jù)庫的統(tǒng)一界面標準,是基于 SQL 語言的,是一種在 SQL和應用界面之間的標準接口,它解決了嵌入式 SQL接口非規(guī)范化的矛盾,提供了 SQLAPI的規(guī)范核心,免除了應用軟件隨數(shù)據(jù)庫的改變而改變的痛苦。 ODBC的 API一致性級別分 為三級:核心級、擴展一級和擴展二級。 ODBC結(jié)構(gòu)的示意圖如圖: 應用程序 驅(qū)動程序管理器 驅(qū)動程序 驅(qū)動程序 驅(qū)動程序 數(shù)據(jù)源 數(shù)據(jù)源 數(shù)據(jù)源 工學學士學位論文 第三章 系統(tǒng)的總體規(guī)劃 3.1 總體功能的需求 論文課題管理系統(tǒng)是針對學院的大量繁雜的論文和課題而開發(fā)的管理軟件。它包括用戶管理、課題論文管理、課題論文檢索、報表輸出打印、院系管理、共用數(shù)據(jù)的管理、電子資料等若干個模塊。根據(jù)用戶的要求,實現(xiàn)完成對學術(shù)論文及專業(yè)課題的查詢、導出數(shù)據(jù)庫記錄并打印、報表輸出等主要幾個方面的功能。 其總體結(jié)構(gòu)如 3-1圖所示: 用戶通過輸入姓名、學號、課題論文類型、課題論文名等基本信息 ,由系統(tǒng)自行生用戶管理模塊 數(shù)據(jù)管理模塊 數(shù)據(jù)查詢模塊 數(shù)據(jù)統(tǒng)計模塊 數(shù)據(jù)打印模塊 論文課題管理系統(tǒng) 錄入 修改 刪除 錄入 修改 刪 除 其余 模塊 用戶登錄 增加用戶 更改密碼 課題管理 論文管理 查詢條件 查詢結(jié)果 統(tǒng)計條件 統(tǒng)計結(jié)果 打印課題 打印論文 工學學士學位論文 成相應統(tǒng)計數(shù)據(jù)及各類統(tǒng)計報表以供用戶查詢、打印 ,另外用戶還可以對這些基本信息進行定期的更新和刪除 , 論文課題管理系統(tǒng)力求給用戶方便快捷的途徑去管理這些繁瑣的數(shù)據(jù)。 系統(tǒng)要求能體現(xiàn)自動化、智能化的特點,界面友好、可操作性強;整個程序功能包括三大部分:數(shù)據(jù)庫的設(shè)計與管理、數(shù)據(jù)的錄入修改刪除、用戶管理。該應用系統(tǒng) 提供有用戶登錄、身份驗證模塊,每類用戶都只能根據(jù)系統(tǒng)分配的權(quán)限進行操作。 3.2 算法設(shè)計 數(shù)據(jù)庫設(shè)計是一項涉及多學科的綜合性技術(shù),是硬件和軟件的結(jié)合,這是數(shù)據(jù)庫的特點之一,在此本人將著重討論軟件設(shè)計的技術(shù)。 對于實現(xiàn)一個實際的數(shù)據(jù)庫應用系統(tǒng),一般可以支持三種數(shù)據(jù)模型,即層次模型( Hierarchical Model)、網(wǎng)狀模型( Network Model)和關(guān)系模型( Relational Model),其中層次模型與網(wǎng)狀模型統(tǒng)稱為非關(guān)系模型,它們的數(shù)據(jù)結(jié)構(gòu)可以和圖相對。本次設(shè)計采用面向?qū)ο?的語言 Pascal 開發(fā)基于關(guān)系數(shù)據(jù)庫 Microsoft Access的管理信息系統(tǒng),即采用關(guān)系數(shù)據(jù)模型,它是目前三種模型中最重要的模型。自 80 年代以來,計算機廠商們推出的數(shù)據(jù)庫管理系統(tǒng)幾乎都是支持關(guān)系模型的,許多的非關(guān)系系統(tǒng)的產(chǎn)品也都加上了關(guān)系接口。 關(guān)系模型是建立在數(shù)學概念基礎(chǔ)上的,數(shù)據(jù)在用戶觀點下的邏輯結(jié)果是一張二維表,相對于層次模型(樹型結(jié)構(gòu))和網(wǎng)狀模型(除樹型結(jié)構(gòu)之外的網(wǎng)狀結(jié)構(gòu))采用關(guān)系模型主要有以下優(yōu)點:關(guān)系模型的概念簡單、清晰,用戶易懂易用,有嚴格的數(shù)學基礎(chǔ)即在此基礎(chǔ)上發(fā)展起來的關(guān)系數(shù)據(jù)庫理論, 簡化的程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作,因而關(guān)系模型誕生以后發(fā)展迅速,成為深受用戶歡迎的數(shù)據(jù)模型。 3.3 系統(tǒng)數(shù)據(jù)流圖 管理員 論文理 系統(tǒng) 普通用戶 不同操作 發(fā)現(xiàn) 錯 誤 不同 操作 返回信息 工學學士學位論文 第一層數(shù)據(jù)流圖 2.1 2 合理要求 2.2 1 管理員查詢要求 以及統(tǒng)計處理 合法的查詢 3 操作完成信息 統(tǒng)計信息表 不合法的輸入 結(jié)果 第二層數(shù)據(jù)流圖 3.4 數(shù)據(jù)字典 用戶信息 =用戶名 +個人密碼 +用戶權(quán)限 課題信息 =課題編號 +課題名稱 +執(zhí)行者 +指導老師 +所屬院系 +教研室 論文信息 =論文編號 +論文名稱 +作者 +所屬院系 +教研室 管理員 普通用戶 普通用戶 管理員 合法性檢 查 要求處理 查詢處理 管理員要 求 普通用戶要求 工學學士學位論文 統(tǒng)計 =統(tǒng)計條件 +運算符 +統(tǒng)計值 +統(tǒng)計結(jié)果 用戶權(quán)限 =可讀不可寫 +可讀可寫 工學學士學位論文 第四章 系統(tǒng)的具體實現(xiàn) 4.1 數(shù)據(jù)庫的建立 本系統(tǒng)要求用 ACCESS 2000 設(shè)計數(shù)據(jù)庫,數(shù)據(jù)庫包含有十個數(shù)據(jù)表:論文表、畢業(yè)課題表、歷年課題表、院系表、教研室表、所有課題表、課題類別表、用戶表、教師資料表、學生資料表。具體情況如下: 論文表( lunwen) : 字段名稱 數(shù)據(jù)類型 長度 說明 編 號 長整型 5 論文名稱 文本 30 作 者 文本 10 發(fā)表時間 日期 /時間 短日期 發(fā)表 地點 文本 10 所在院系 文本 10 教研室 文本 10 備 注 文本 30 課題表( keti) : 字段名稱 數(shù)據(jù)類型 長度 說明 課題編號 長整型 5 課題名稱 文本 30 負責人 文本 10 組員 文本 30 開始時間 日期 /時間 短日期 結(jié)束時間 日期 /時間 短日期 所屬院系 文本 10 所屬教研室 文本 10 工學學士學位論文 關(guān)鍵字 文本 10 用戶表( user) : 字段名稱 數(shù)據(jù)類型 長度 說明 編號 長整型 5 用戶名 文本 10 密 碼 文本 10 權(quán)限 文本 10 備注 文本 30 歷年課題表( past) : 字段名稱 數(shù)據(jù)類型 長度 說明 編號 長整型 5 課題名稱 文本 30 課題類別號 長整型 5 指導老師 文本 10 所屬院系代碼 長整型 5 所屬教研室代碼 長整型 5 關(guān)鍵字 文本 10 備注 文本 40 所有課題表( all_keti) : 字段名稱 數(shù)據(jù)類型 長度 說明 課題編號 長整型 5 課題名稱 文本 30 課題類別號 長整型 5 指導老師 文本 10 院系代碼 長整型 5 教研室代碼 長整型 5 關(guān)鍵字 文本 10 工學學士學位論文 說明 文本 30 學校院系情況表( xueyuan): 字段名稱 數(shù)據(jù)類型 長度 說明 院系代碼 長整型 5 院系名稱 文本 10 備注 文本 30 教研室( tea_room) : 字段名稱 數(shù)據(jù)類型 長度 說明 教研室代碼 長整型 5 教研室名稱 文本 10 所屬院系代碼 整型 5 備注 文本 30 課題類別表( ruibie) : 字段名稱 數(shù)據(jù)類型 長度 說明 類別號 長整型 5 類別名稱 文本 10 備注 文本 30 教師電子資料表( ziliao1) : 字段名稱 數(shù)據(jù)類型 長度 說明 資料編號 長整型 5 資料名稱 文本 30 作者 文本 10 資料路徑 文本 20 工學學士學位論文 學生電子資料( ziliao2) : 字段名稱 數(shù)據(jù)類型 長度 說明 編號 長整型 5 名稱 文本 30 作者 文本 10 保存路徑 文本 20 4.2 各模塊的功能實現(xiàn) 4.2.1 主窗體的建立 選擇系統(tǒng)菜單“ File”中的“ New” 菜單項,打開“ New Items” 對話框,選定“ Projects”頁面,鼠標雙擊“ MDI Application”圖標啟動應用向?qū)?。這樣我們就創(chuàng)建了一個應用程序框架,這個框架只包含有一個主窗口和系統(tǒng)菜單、工具欄,并且只是一個空的框架,不能完成任何功能。接下來應該為這個框架再添加上我們所需的菜單和子窗體。首先應該把向?qū)ё詣由傻牡恍枰牟藛蝿h除,然后再插入我們所需的菜單。在菜單設(shè)計中我們最關(guān)心下列幾個屬性: (1)“ Caption” 屬性:定義菜單項的標題。 “ Caption” 屬性設(shè)置中有兩點需要說明,一是只要將單項的“ Caption” 屬性設(shè)置為單字節(jié)連字符“ -”,就可以生成一個菜單項之間的橫隔線;二是在菜單項的“ Caption”屬性中填寫的內(nèi)容,如果字符前有“ &”, 那么菜單中該字符下將出現(xiàn)下劃線,如:“ &C”,在程序運行時按下“ Alt” 鍵和“ C”鍵就可以選中該菜單項。 ( 2)“ Name” 屬性:定義菜單項的名稱。 最好指定有具體含義的名稱。 ( 3)“ ShortCut” 屬性:定義菜單項的快捷鍵。 使用菜單設(shè)計器為菜單項設(shè)計一個快捷鍵也很容易,單擊對象瀏覽器窗口中“ ShortCut” 屬性右半部,從彈出的快捷鍵列表中選擇一個合適 的快捷鍵即可。 ( 4)“ Enabled” 屬性:定義菜單項是否可用。 True表示可用, False表示不可用;在編程中可利用這一屬性實現(xiàn)特定情況下不 工學學士學位論文 允許用戶使用某菜單的功能。 ( 5)“ Hint” 屬性:為菜單項添加文字。 在菜單項中加提示是很好的習慣,它使得用戶在運行菜單功能前,可以對菜單的任務(wù)有一個簡略的了解。 ( 6)“ Checked” 屬性:定義菜單項的開關(guān)情況。 當 Checked為 True時,菜單項前面會出現(xiàn)選中標志。 ( 7)“ Visible” 屬性:定義菜單項隱藏與否。 利用這一屬性可 以實現(xiàn)多版本的菜單,被隱藏的菜單項以及它的子菜單都是不可見的,或是不可訪問的。 根據(jù)系統(tǒng)的總體規(guī)劃,修改的主窗體菜單包含“用戶管理”、“數(shù)據(jù)管理”、“信息檢索”、“畢業(yè)設(shè)計”、“打印庫文件”、“公用數(shù)據(jù)管理”、“窗口”、“幫助”八個菜單,其中“用戶管理”中包含“用戶登錄”、“增加用戶”、“修改密碼”、“退出”四個菜單項,“數(shù)據(jù)管理”包含“課題管理”、“論文管理”兩個菜單項,“信息檢索”包含“專業(yè)課題”、“學術(shù)論文”兩個菜單項,“畢業(yè)設(shè)計”包含“可選課題”、“課題統(tǒng)計”、“歷年課題”三個菜單項,“打印庫文件” 包含“課題打印”、“論文打印”兩個菜單項,“公用數(shù)據(jù)管理”包含“院系管理”、“教研室管理”、“電子資料”三個菜單項,“窗口”包含“層疊”、“垂直排列”、“平行排列”、“所有項最小化”四個菜單項,“幫助”包含“操作指南”、“關(guān)于 ” 兩個菜單項。具體情況詳見系統(tǒng),菜單的各個屬性詳見系統(tǒng)的源代碼,界面如 (4.2.1)圖所示。 主窗體界面圖( 4.2.1) 工學學士學位論文 4.2.2 用戶登錄模塊 為了保證系統(tǒng)的安全,在操作者進入系統(tǒng)之前都要進行用戶登錄,以驗證用戶身份。用戶登錄驗證模塊的功能是僅允許合法用戶進入系統(tǒng),而且讓不同 的用戶擁有不同的操作權(quán)限。只有授權(quán)用戶使用正確的口令時才能進入系統(tǒng),連續(xù)三次輸入均不正確的用戶名和口令時,程序?qū)⒆詣油顺龅卿浤K。其功能代碼如下: procedure TForm1.Button1Click(Sender: TObject); begin TimeID:=TimeID+1; TableYongHu.SetKey; TableYongHu.FieldByName(YongHu).AsString:=EditUser.Text; TableYongHu.GotoKey; if (EditUser.Text=TableYongHu.FieldByName(YongHu).AsString) and (EditPassWord.Text=TableYongHu.FieldByName(KouLing).AsString) then begin MainForm.N4.Enabled:=true; MainForm.N5.Enabled:=true; MainForm.N8.Enabled:=true; MainForm.N17.Enabled:=true; MainForm.N11.Enabled:=true; MainForm.N20.Enabled:=true; MainForm.N21.Enabled:=true; mainform.Window1.Enabled:=true; mainform.Help1.Enabled:=true; MainForm.N23.Enabled:=true; ModalResult:=mrOK; QuanXian:=TableYongHu.FieldByName(QuanXian).AsString; 工學學士學位論文 end else begin if TimeID3 then begin Application.Terminate; end else if EditUser.Text TableYongHu.FieldByName(YongHu).AsString then begin Application.MessageBox(非法用戶 ,請輸入正確的用戶名 !,用戶名 , MB_OK+MB_ICONEXCLAMATION); EditUser.SetFocus; end else begin Application.MessageBox(輸入密碼錯誤 ,請再輸入一次 ,密碼 , MB_OK+MB_ICONEXCLAMATION); EditPassWord.SetFocus; end; end; end; 界面如圖所示: 工學學士學位論文 4.2.3 用戶注冊模塊 登錄系統(tǒng)后,用戶可以重新注冊,只需在注冊窗口中輸入用戶名和密碼即可,在這里,輸入的兩次密碼必須一致,否則會出現(xiàn)“兩次輸入的密碼不一致的情況”,結(jié)果是注冊不能成功。 其功能代碼如下: procedure Tuseradd.BitBtn1Click(Sender: TObject); begin DBNavigator1.BtnClick(nbinsert); submit.Enabled:=true; bcancel.Enabled:=true; end; procedure Tuseradd.BitBtn2Click(Sender: TObject); begin DBNavigator1.BtnClick(nbedit); submit.Enabled:=true; bcancel.Enabled:=true; end; procedure Tuseradd.BitBtn3Click(Sender: TObject); begin 工學學士學位論文 dbnavigator1.BtnClick(nbdelete) ; end; procedure Tuseradd.submitClick(Sender: TObject); begin submit.Enabled:=false; bcancel.Enabled:=false; dbnavigator1.BtnClick(nbpost) ; dbnavigator1.BtnClick(nbrefresh); query1.Close; query1.Open; showmessage(您已經(jīng)提交成功 ); submit.Enabled:=false; end; procedure Tuseradd.bcancelClick(Sender: TObject); begin dbnavigator1.BtnClick(nbcancel) ; dbnavigator1.BtnClick(nbrefresh); bcancel.Enabled:=false; submit.Enabled:=false; end; 4.2.4 修改密碼模塊 用戶登錄后,如果有需要修改密碼,就可 以這個窗口內(nèi)完成,你只需輸入你的原密碼和新密碼即可,修改成功后,新的密碼會保存到表中,下次登錄你就必須使用新修改的密碼,否則不能登錄。其功能代碼如下 : 工學學士學位論文 procedure TForm2.Button1Click(Sender: TObject); begin if (Edit1.Text=) or (Edit2.Text=) then begin showmessage(用戶名和原密碼不能為空! ); Edit1.SetFocus; end else if Edit3.text= then begin showmessage(請輸入新的密碼 !); end else if Edit3.TextEdit4.Text then begin showmessage(兩次輸入的密碼不一致 ,請重新輸入 !); Edit3.SetFocus; end else begin showmessage(密碼修改成功 !); Table1.Edit; Table1.FieldByName(KouLing).AsString:=Edit3.Text; Table1.Post; Close; end; end; 工學學士學位論文 4.2.5 可選課題模塊 在該模塊加入兩個 Table組件、兩個 DataSource 組件、兩個 DBGrid 組件。 Table1連接的表為 ruibie,Table2連接的表為 all_keti,利用兩 表中相同的字段 ketiruibie_no 把兩個 DBGrid 連系起來,做到當選取 DBGrid1中的任一字段時,在 DBGrid2中便能顯示出屬于它的所有課題的 信息。 4.2.6 課題統(tǒng)計模塊 在這個窗口中,共分為“統(tǒng)計條件”、“統(tǒng)計結(jié)果”兩部分的內(nèi)容,在統(tǒng)計條件中,你只需選擇和輸入你需要的統(tǒng)計條件,即可得出統(tǒng)計結(jié)果,結(jié)果中你可知道符合條件的課題的數(shù)量和總課題的數(shù)量以及符合條件的課題占總課題數(shù)的比例。其功能代碼如 工學學士學位論文 下: procedure Ttasksel.Button1Click(Sender: TObject); var s,s1,s2,s3,s4:string; i,i1:integer; r:real; begin query1.Close; query1.SQL.Clear; query1.SQL.Add(select * from all_keti); query1.Open; i:=query1.RecordCount; edit1.Text:=inttostr(query1.RecordCount); s1:=combobox1.Text; s2:=combobox2.Text; s3:=edit4.Text; if s1=then begin showmessage(請選擇統(tǒng)計方式 !); end else begin if s2=then begin showmessage(請選擇運算符 !); end else begin if s3=then begin showmessage(請輸入統(tǒng)計值 !); 工學學士學位論文 end else begin case combobox1.ItemIndex of begin s1:=tearoom_no; if s2=like then begin s:=select * from all_keti where +s1+ in (select staffroom_no from staffroom where staffroom_name like % +s3+%); end else begin s:=select * from all_keti where +s1+ in (select staffroom_no from staffroom where staffroom_name= +s3+); end; end; begin s1:=department_no ; if s2=like then begin s:=select * from all_keti where +s1+ in (select department_no from department where department_name like % +s3+%); end else begin s:=select * from all_keti where +s1+ in (select department_no from department where department_name= +s3+); end; end; 工學學士學位論文 begin s1:=teacher; if s2=like then begin s:=select* from all_keti where +s1+ +s2+%+s3+%; end else begin s:=select * from all_keti where +s1+ +s2+s3+; end; end; begin s1:=ketiluibie_no; if s2=like then begin s:=select * from all_keti where +s1+ in (select ketiluibie_no from leibie where ketiluibie like % +s3+%); end else begin s:=select * from all_keti where +s1+ in (select ketiluibie_no from leibie where ketiluibie = +s3+); end; end; end; query1.Close; query1.SQL.Clear; query1.SQL.Add(s); /showmessage(query1.sql.Text); query1.Open; 工學學士學位論文 i1:=query1.RecordCount; r:=100*i1/i; edit2.Text:=inttostr(i1); str(r:8:2,s4); edit3.Text:=s4+%; if i1=0 then showmessage(沒有符合條件的記錄 !); end; end; end; end; procedure Ttasksel.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure Ttasksel.FormCreate(Sender: TObject); begin ComboBox1.ItemIndex:=0; ComboBox2.ItemIndex:=0; end; 工學學士學位論文 4.2.7 歷年課題模塊 在該模塊中加入一個 Query組件、六個 Button 組件、一個 DBGrid組件,另外還有若干的編輯組件。在這里你可看到的是歷年來所有的課題。六個按鈕分別為增加、刪除、修改、提交、取消、退出。單擊增加按鈕后,編輯框中變?yōu)榭眨@時可輸入數(shù)據(jù),單擊提交按鈕,輸入的內(nèi)容便保存到表格中,在表中可以顯示出來。單擊修改按鈕,可以對已存在的數(shù)據(jù)進行修改,單擊退出按鈕,即可退出該模塊。其功能代碼如下: procedure TForm10.Button1Click(Sender: TObject); begin DBNavigator1.BtnClick(nbinsert); end; procedure TForm10.Button2Click(Sender: TObject); begin DBNavigator1.BtnClick(nbedit); end; procedure TForm10.Button3Click(Sender: TObject); begin dbnavigator1.BtnClick(nbdelete) ; end; procedure TForm10.Button4Click(Sender: TObject); begin if (DBEdit4.text=) or (DBEdit2.text=) or (dbedit1.text=) or (DBEdit3.text=)or (DBEdit5.text=) or (DBEdit6.text=) then showmessage(錯誤,必填字段不能為空 !) else begin dbnavigator1.BtnClick(nbpost) ; dbnavigator1.BtnClick(nbrefresh); end; end; 工學學士學位論文 procedure TForm10.Button5Click(Sender: TObject); begin dbnavigator1.BtnClick(nbcancel); dbnavigator1.BtnClick(nbrefresh); end; procedure TForm10.Button6Click(Sender: TObject); begin Close; end; 4.2.8 院系管理模塊 該模塊中包含一個 DBGrid、兩個 DBEdit、一個 DBNavigator、一個 Table、一個DataSource組件,另外還有六個按鈕。在該模塊中同樣可以實現(xiàn)數(shù)據(jù)的錄入、查詢、修改等功能。其代碼如下: procedure TForm8.Button1Click(Sender: TObject); begin DBNavigator1.BtnClick(nbinsert); end; procedure TForm8.Button3Click(Sender: TObject); begin dbnavigator1.BtnClick(nbdelete) ; end; 工學學士學位論文 procedure TForm8.Button2Click(Sender: TObject); begin DBNavigator1.BtnClick(nbedit); end; procedure TForm8.Button4Click(Sender: TObject); begin if (DBEdit2.text=) or (dbedit1.text=) then showmessage(錯誤,必填字段不能為空 !) else begin dbnavigator1.BtnClick(nbpost) ; dbnavigator1.BtnClick(nbrefresh); end; end; procedure TForm8.Button5Click(Sender: TObject); begin dbnavigator1.BtnClick(nbcancel); dbnavigator1.BtnClick(nbrefresh); end; procedure TForm8.Button6Click(Sender: TObject); begin Close; end; 工學學士學位論文 4.2.9 教研室管理 該模塊中包含一個 DBGrid、兩個 DBEdit、一個 DBNavigator、一個 Table、一個 DataSource組件,另外還有六個按鈕。在該模塊中同樣可以實現(xiàn)數(shù)據(jù)的錄入、查詢、修改等功能。其代碼如下: procedure TForm8.Button1Click(Sender: TObject); begin DBNavigator1.BtnClick(nbinsert); end; procedure TForm8.Button3Click(Sender: TObject); begin dbnavigator1.BtnClick(nbdelete) ; end; procedure TForm8.Button2Click(Sender: TObject); begin DBNavigator1.BtnClick(nbedit); end; procedure TForm8.Button4Click(Sender: TObject); begin if (DBEdit2.text=) or (dbedit1.text=) then showmessage(錯誤,必填字段不能為空 !) else begin dbnavigator1.BtnClick(nbpost) ; dbnavigator1.BtnClick(nbrefresh); end; end; 工學學士學位論文 procedure TForm8.Button5Click(Sender: TObject); begin dbnavigator1.BtnClick(nbcancel); dbnavigator1.BtnClick(nbrefresh); end; procedure TForm8.Button6Click(Sender: TObject); begin close; end; 工學學士學位論文 第五章 系統(tǒng)完善 前面我們已生成了數(shù)據(jù)模塊和多個數(shù)據(jù)窗體,構(gòu)建了論文管理系統(tǒng)的整體框架,接下來的工作就應該是對各個窗體的功能進行完善。 5.1 數(shù)據(jù)集的打開、關(guān)閉 應用程序通過數(shù)據(jù)集控件訪問數(shù)據(jù)庫中的數(shù)據(jù)時,必須把將要訪問的數(shù)據(jù)庫表調(diào)入內(nèi)存,這一操作對數(shù)據(jù)集控件而言就是打開,反之則稱為關(guān)閉。 Delphi 為我們提供了兩種方法打開數(shù)據(jù)集控件: 1. 通過設(shè)置數(shù)據(jù)集控件的 Active屬性為“ true”來打開與數(shù)據(jù)集控件相連的數(shù)據(jù)庫表。如: TableYongHu.Active:=true; 這 種方法可以在設(shè)計階段進行也可以在應用程序運行過程中通過程序進行。 2. 調(diào)用數(shù)據(jù)集控件的 Open方法,打開與數(shù)據(jù)集控件相連的數(shù)據(jù)庫表。如: TableYongHu.Open; 這一種方法只能在程序運行過程中通過程序進行。 同理, Delphi同樣提供了兩種方法關(guān)閉數(shù)據(jù)集控件: 1. 設(shè)置數(shù)據(jù)集控件的 Active屬性為“ FALSE”,以關(guān)閉與數(shù)據(jù)集控件相連的數(shù)據(jù)庫表。 TableYongHu.Active:=false; 2. 調(diào)用 Close方法以關(guān)閉與數(shù)據(jù)集控件相連的表。 TableYongHu.Close; 5.2 窗體中用戶權(quán)限的實限 本節(jié)中主要介紹主控窗體和幾個用戶窗體中用戶權(quán)限的實現(xiàn),主要講解如加入代碼,使各個窗體能夠識別登錄用戶,并分配不同的操作權(quán)限。 1. 主窗體中用戶權(quán)限的實現(xiàn) 工學學士學位論文 我們在主控窗體的 OnActive事件中加入下列代碼,使主控窗體在顯示之后,激活之前,根據(jù)登錄用戶的權(quán)限,先行判斷用戶可使用那些按鈕: procedure TMainForm.FormOnCreate(Sender: TObject); begin N4.Enabled:=False; N5.Enabled:=False; N8.Enabled:=False; N17.Enabled:=False; N11.Enabled:=false; N20.Enabled:=false; N21.Enabled:=false; window1.Enabled:=false; help1.Enabled:=false; N23.Enabled:=false; end; 2. 論文課題管理窗體中用戶權(quán)限的實現(xiàn) 在該窗體中,有普通用戶和管理員 兩類用戶可以對數(shù)據(jù)進行操作。其中,普通用戶打開窗體后,我們需要做的操作主要有兩件事情:一是設(shè)置用戶基本信息數(shù)據(jù)表的 Filter屬性,對數(shù)據(jù)表中的數(shù)據(jù)進行過濾,使數(shù)據(jù)控件只顯示登錄用戶的基本信息;二是設(shè)置數(shù)據(jù)表的 ReadOnly 屬性,使數(shù)據(jù)表只讀,防止該類用戶修改數(shù)據(jù)。當管理人員打開數(shù)據(jù)窗體時,需要做的事情正好和普通用戶相反,需要撤消對數(shù)據(jù)表的篩選和只讀限制。以上操作都在窗體的 OnActivate 事件中實現(xiàn),具體代碼如下: procedure Tform4.FormActivvate(Sender:Tobject); begin if Login.QuanXian=false then begin Table1.Close; Table1.Filtered:=True; Table1.Filter:=Gongxuhao=+Form4.EditUser.Text; Table1.ReadOnly:=true; 工學學士學位論文 Table1.Open; End Else if QuanXian=true then Begin Table1.Close; Table1.Filtered:=false; Table1.ReadOnly:=False; Table1.Open; End; end; 5.3 添加幫助模塊 該模塊包括操作指南和關(guān)于 兩個部分。在操作指南部分,其中的主要內(nèi)容是對用戶的操作提示;在關(guān)于 部分,主要介紹了本系統(tǒng)的制作日期、作者、作者的聯(lián)系方式、系統(tǒng)正常運行的環(huán)境要求等等。詳細內(nèi)容請參考系統(tǒng)。 工學學士學位論文 結(jié)束語 經(jīng)過三個多月的設(shè)計和開發(fā), 論文課題 管理系統(tǒng)基本開發(fā)完畢。其功能基本符合用戶需求,能夠完成 論文 的存儲和查詢以及各類相關(guān)報表的打印。并提供部分 系統(tǒng)維護功能 ,使用戶方便進行數(shù) 據(jù) 備份和恢復、刪除。對于數(shù)據(jù)的一致性的問題也通過程序進行了有效的解決。但是由于畢業(yè)設(shè)計時間較短, 加上又是邊學邊做, 所以該系統(tǒng)還有許多不盡如人意的地方, 比 如聯(lián)機文檔比較少,用戶界面不夠美觀,出錯處理不夠等多方面問題,這些都有待進一步改善。 在本次畢業(yè)設(shè)計中,我從指導老師 王素麗 老師身上學到了很多東西。 王素麗 老師認真負責的工作態(tài)度,嚴謹?shù)闹螌W精神和深厚的理論水平都使我收益匪淺。 她 無論在理論上還是在實踐中,都給與我很大的幫助,使我得到 了很大 的提高 , 這對于我以后的工作和學習都有一種巨大 的幫助,感謝 她 耐心的輔導。 另外,在系統(tǒng)開發(fā)過程中,同組的同學同樣給與我不少幫助,幫助解決了不少的難點,使得系統(tǒng)能及時開發(fā)完成,這里一并表示感謝。 工學學士學位論文 主要參考文獻 1 Delphi 6.0 使用指南 作 者: Bob Reselman , Richard Peasley , Wayne Pruchniak. 出版社:電子工業(yè)出版社 2 中文版 Microsoft Office 2000 自學通 作 者: Ned Snell 出版社:機械工業(yè)出版社 3 Delphi 6.0 中文版控件大全 作 者: Microsoft 出版社:電子工業(yè)出版社 4 中文 Access 2000 24 學時教程 作 者: Craig Eddy , Timothy Buchanan 出版社:機械工業(yè)出版社 5 Delphi 6.0實用編程指南 作 者:李力,李薇,董恒 出版社:四川大學出版社 6 Delphi 6.0精彩編程百例 作 者:張龍卿,尹健民 出版社:中國水利水電版社 7 SQL Server實用簡明教程 作 者:黃維通,湯荷美 出版社:清華大學出版社 8 軟件工程 作 者:傅宏主 出版社:吉林大學出版社出版 1998年 9月第 1 版 9 數(shù)據(jù)庫系統(tǒng)原理教程 作 者:王珊、陳紅 編著 工學學士學位論文 出版社:清華大學出版社出版 1998年 7月第 1版 10 編陳語言中的基本設(shè)計思想 作 者:陳東 主編 出版社:青年出版社 2001年 2月第一版 11 程序設(shè)計思想 作 者:宋謙 張之嵐 編著 出版社:青年出版社 2000四月第一 版 工學學士學位論文 外文資料 The technology of refashionment Automate the refactorings In the world of code we are seeing tools for some languages to automate many of the identified refactorings. Such automation is essential for databases; at least in the areas of schema changes and data migration. As a result every database refashion is automated by writing it in the form of SQL DDL (for the schema change) and DML (for the data migration). These changes are never applied manually, instead they are applied to the master by running a small SQL script to perform the changes. Once done, we keep hold of these script files to produce a complete change log of all the alterations done to the database as a result of database refashionment. We can then update any database instance to the latest master by running the change log of all the changes since we copied the master to produce the older database instance. This ability to sequence automated changes is an essential tool both for the continuous integration process in development, and for migrating production databases to a new release. For production databases we dont make changes during the usual iteration cycles. Once we do a release, which may occur at the end of any iteration, we apply the full change log of database refactorings since the previous release. This is a big change, and one that so far weve only done by taking the application offline. (We have some ideas for doing this in a 24/7 environment, but we havent actually had to do it yet.) Its also wise to test this migration schema before applying it to the live database. So far, weve found that this technique has worked remarkably well. By breaking down all the database changes into a sequence of small, simple changes; weve been able to make quite large changes to production data without getting ourselves in trouble. 工學學士學位論文 As well as automating the forward changes, you can consider automating reverse changes for each refactoring. If you do this youll be able to back out changes to a database in the same automated way. We havent done this yet, as weve not had a much demand for it, but its the same basic principle.(A similar thing that we have done is to support an old version of an application with an updated version of the database. This involved writing a compatibility layer that allowed the application to think it was talking to the older version of the database even though it was actually talking to the newer one.) Automatically Update all Database Developers Its all very well for people to make changes and update the master, but how do they find out the master has changed? In a traditional continuous integration environment with source code, developers update to the master before doing a commit. That way they can resolve any build issues on their own machine before committing their changes to the shared master. Theres no reason you cant do that with the database, but we found a better way. We automatically update everyone on the project whenever a change is made to the database master. The same refactoring script that updates the master automatically updates everyones databases. When weve described this, people are usually concerned that automatically updating developers databases underneath them will cause a problem, but we found it worked just fine. This only worked when people were connected to the network. If they worked offline, such as on an airplane, then they had to resync with the master manually once they got back to the office. Clearly separate all database access code To understand the consequences of database refactorings, its important to be able to see how the database is used by the application. If SQL is scattered willy-nilly around the code base, this is very hard to do. As a result its important to have a clear database access layer to 工學學士學位論文 show where the database is being used and how. To do this we suggest following one of the data source architectural patterns from P of EAA. Having a clear database layer has a number of valuable side benefits. It minimizes the areas of the system where developers need SQL knowledge to manipulate the database, which makes life easier to developers who often are not particularly skilled with SQL. For the DBA it provides a clear section of the code that he can look at to see how the database is being used. This helps in preparing indexes, database optimization, and also looking at the SQL to see how it could be reformulated to perform better. This allows the DBA to get a better understanding of how the database is used. Variations Like any set of practices, these should be varied depending on your specific circumstances. These practices are still pretty new, so we havent come across that many variations, but here are some we have. Keeping multiple database lineages A simple project can survive with just a single database master in the repository. With more complex projects theres a need to support multiple varieties of the project database, which we refer to as database linages. We may create a new lineage if we have to branch an application thats put into production. In essence creating a new database lineage is much the same as branching the source code on the application, with the added twist that you also make a lineage when you need a different set of sample data, such as if you need a lot of data for performance testing. When a developer takes a copy of a master they need to register which lineage they are modifying. As the DBA applies updates to a master for a particular lineage the updates propagate to all the developers who are registered for that lineage. You dont need a DBA 工學學士學位論文 All of this sounds like it would be a lot of work, but in fact it doesnt require a huge amount of manpower. On the Atlas project we had thirty-odd developers and a team size (including, QA, analysts and management) of close to a hundred. On any given day we would have a hundred or so copies of various lineages out on peoples workstations. Yet all this activity needed only one full time DBA (Pramod) with a couple of developers doing some part-time assistance and cover. On smaller projects even that isnt needed. Weve been using these techniques on a number of smaller projects (about a dozen people) and we find these projects dont need a full time DBA. Instead we rely on a couple of developers with an interest in DB issues who handle the DBA tasks part-time. The reason for this is automation. If you are determined to automate every task, you can handle a lot work with much less people. Tools to Help Doing this kind of thing requires a lot of repetitive tasks. The good news is that whenever you run into run into repetitive tasks in soft

溫馨提示

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

評論

0/150

提交評論