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

下載本文檔

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

文檔簡(jiǎn)介

無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 本文配套程序下載地址 : 無(wú)憂無(wú)慮畢設(shè)網(wǎng) () -大 學(xué)生畢業(yè)設(shè)計(jì)站 ,免費(fèi)畢業(yè)設(shè)計(jì)論文 ,無(wú)憂無(wú)慮畢設(shè)網(wǎng) 大學(xué)生畢業(yè)設(shè)計(jì) ,出售各類畢業(yè)設(shè)計(jì)源碼 ,論文 ,程序源碼 ,網(wǎng)站源碼 ,免費(fèi)視頻教程 ,我們將竭誠(chéng)為您服務(wù)! 目錄 摘要 . III 第一章 緒論 . 1.1 課題研究的目的 . 1.2 本系統(tǒng)預(yù)期的效果與意義 . 第二章 系統(tǒng)綜合分析 . 2.1 問(wèn)題定義 . 2.2 可行性研究 . 2.3 開(kāi)發(fā)環(huán)境的選擇 . 2.4 DELPHI 在 WINDOWS 環(huán)境下開(kāi)發(fā)數(shù)據(jù)庫(kù) 的應(yīng)用 . 2.5DELPHI 數(shù)據(jù)庫(kù)應(yīng)用程序的開(kāi)發(fā)步驟 . 2.6 使用 SQL 編程 . 2.7 關(guān)系型數(shù)據(jù)庫(kù)的實(shí)現(xiàn) . 2.8 兩者的結(jié)合( ODBC) . 第三章 系統(tǒng)的總體規(guī)劃 . 3.1 總體功能的需求 . 3.2 算法設(shè)計(jì) . 3.3 系統(tǒng)數(shù)據(jù)流圖 . 3.4 數(shù)據(jù)字典 . 第四章 系統(tǒng)的具體實(shí)現(xiàn) . 4.1 數(shù)據(jù)庫(kù)的建立 . 4.2 各模塊的功能實(shí)現(xiàn) . 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 4.2.1 主窗體的建立 . 4.2.2 用戶登錄模塊 . 4.2.3 用戶注冊(cè)模塊 . 4.2.4 修改密碼模塊 . 4.2.5 可選課題模塊 . 4.2.6 課題統(tǒng)計(jì)模塊 . 4.2.7 歷年課題模塊 . 4.2.8 院系管理模塊 . 4.2.9 教研室管理 . 第五章 系統(tǒng)完善 . 5.1 數(shù)據(jù)集的打開(kāi)、關(guān)閉 . 5.2 窗體中用戶權(quán)限的實(shí)限 . 5.3 添加幫助模塊 . 結(jié)束語(yǔ) . 主要參考文獻(xiàn) . 外文資料 . 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 摘要 論文管理系統(tǒng)是針對(duì)學(xué)院的大量繁雜的論文和課題而開(kāi)發(fā)的管理軟件。根據(jù)用戶的要求,實(shí)現(xiàn)完成對(duì)學(xué)術(shù)論文及專業(yè)課題的錄入、修改、查詢、瀏覽、統(tǒng)計(jì)、導(dǎo)出數(shù)據(jù)庫(kù)記錄并打印、報(bào)表輸出等幾個(gè)方面的主要功能。另外,還能通過(guò)該系統(tǒng)查閱一些和畢業(yè)設(shè)計(jì)有關(guān)的一些電子資料。該系統(tǒng)用 Access 作為數(shù)據(jù)庫(kù)的開(kāi)發(fā)工具,庫(kù)中包含有十個(gè)數(shù)據(jù)表。該系統(tǒng)具有智能化、自動(dòng)化的特點(diǎn) ,界面友好、功能齊全、實(shí)用性和可操作性極強(qiáng)。使用該系統(tǒng)后,既能夠極大地 提高 論文 管理的效率 ,又能加強(qiáng)學(xué)生與學(xué)生、學(xué)生與教師、學(xué)生與學(xué)校之間的交流,是 科學(xué)化、正規(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 工學(xué)學(xué)士學(xué)位論文 第一章 緒論 計(jì)算機(jī)的價(jià)格已經(jīng)十分低廉,性能卻有了長(zhǎng)足的進(jìn)步。 它已經(jīng)被應(yīng)用 于許多領(lǐng)域, 它的應(yīng)用正風(fēng)行整個(gè)世界。在今天, 計(jì)算機(jī)已經(jīng)成為我們學(xué)習(xí)和工作的得力助手,原因主要有以下幾個(gè)方面:計(jì)算機(jī)可以代替人工進(jìn)行許多繁雜的勞動(dòng);計(jì)算機(jī)可以節(jié)省許多資源;計(jì)算機(jī)可以大大的提高人們的工作效率;計(jì)算機(jī)可以使敏感文檔更加安全,等等。 1.1 課題研究的目的 隨著科學(xué)技術(shù)的不斷提高 ,計(jì)算機(jī)科學(xué)日漸成熟 ,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí) ,它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。一直以來(lái)人們使用傳統(tǒng)人工的方式管理 各種論文 檔案,這種管理方式存在著許多缺點(diǎn) ,如 :效率低、保密性差 ,易于丟 失;隨著時(shí)間的推移 ,將產(chǎn)生大量的文件和數(shù)據(jù) ,這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少的困難。 論文 管理系統(tǒng)是一個(gè)單位 要管理好論文所 不可缺少的部分 ,論文 管理系統(tǒng)能夠?yàn)橛脩籼峁?充 足的信息和快捷的查詢手段。但現(xiàn)在 , 我 院 中 論文課題 的管理還停留在紙介質(zhì)的基礎(chǔ)上,這樣的機(jī)制已經(jīng)不能適應(yīng)時(shí) 代 的發(fā)展,因?yàn)樗速M(fèi)了許多人力和物力,在信息時(shí)代這種傳統(tǒng)的管理方法必然被計(jì)算機(jī)為基礎(chǔ)的信息管理所取代。我作為一個(gè)計(jì)算機(jī)專業(yè) 的本科生,希望可以在這方面有所貢獻(xiàn)。改革的總設(shè)計(jì)師鄧小平同志說(shuō)過(guò) “ 科學(xué)技術(shù)是第一生產(chǎn)力 ” ,我希望能用我四年的所學(xué)編制出一 個(gè)實(shí)用的程序來(lái)幫助 我院 進(jìn)行更有效的 論文課題 管理。 歸納起來(lái),好處大約有以下幾點(diǎn): 1可以存儲(chǔ) 任一 屆 老師 學(xué)生 的課題和畢業(yè)論文 , 并且具有 安全、高效 的特點(diǎn); 2只需 很少量的人員便可以完成對(duì)我院所有論文課題的管理 , 這樣可以 節(jié)省大 量的人力和物力; 3 只需輸入少量簡(jiǎn)單的條件即可 以迅速查到所需 要的 信息。 工學(xué)學(xué)士學(xué)位論文 1.2 本系統(tǒng)預(yù)期的效果與意義 作為計(jì)算機(jī)應(yīng)用的一部分 ,使用計(jì)算機(jī) 論文管理系統(tǒng) 對(duì) 學(xué)校的論文 信息進(jìn)行管理 ,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn) .例如 :檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好 、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高 論文 管理的效率 ,也是 提供需學(xué)生與學(xué)生、學(xué)生與老師、老師與老師、學(xué)校與學(xué)校、學(xué)校與社會(huì)互相交流的一座橋梁,是 科學(xué)化、正規(guī)化管理 ,與世界接軌的重要條件。 工學(xué)學(xué)士學(xué)位論文 第二章 系統(tǒng)綜合分析 考慮到該論文管理系統(tǒng)的實(shí)際規(guī)模與工作量的大小,本人承擔(dān)了該系 統(tǒng)自前至后的整個(gè)系統(tǒng)用戶部分的分析與設(shè)計(jì)工作,我的任務(wù)便是完成整個(gè)數(shù)據(jù)庫(kù)的創(chuàng)建、用戶管理和公共數(shù)據(jù)的管理等幾部分,并在設(shè)計(jì)開(kāi)發(fā)過(guò)程中對(duì)整個(gè)系統(tǒng)的界面統(tǒng)一規(guī)劃,力求使論文管理系統(tǒng)界面美觀,可操作性強(qiáng)。 2.1 問(wèn)題定義 所謂論文管理系統(tǒng)就是利用計(jì)算機(jī)來(lái)管理學(xué)院的大量繁雜的論文和課題而開(kāi)發(fā)的管理軟件。它能實(shí)現(xiàn)完成對(duì)學(xué)術(shù)論文及專業(yè)課題的錄入、修改、查詢、瀏覽、統(tǒng)計(jì)、導(dǎo)出數(shù)據(jù)庫(kù)記錄并打印、報(bào)表輸出。該系統(tǒng)具有智能化、自動(dòng)化的特點(diǎn),界面友好、功能齊全、實(shí)用性和可操作性極強(qiáng)。使用該系統(tǒng)后,能夠極大地 提高 論文 管理的效率。 2.2 可行性研究 論文管理系統(tǒng)的研究開(kāi)發(fā)有著十分重要的實(shí)際意義,主要可從以下幾個(gè)方面加以分析: (1)當(dāng)前,計(jì)算機(jī)網(wǎng)絡(luò)正以飛快的速度向前發(fā)展,尤其是越 來(lái)越多的學(xué)校、機(jī)構(gòu)在自己的組織內(nèi)部建立起了計(jì)算機(jī)局域網(wǎng),同時(shí)也將整個(gè)局域網(wǎng)連到了可以搜尋到任和信息的internet網(wǎng),我?,F(xiàn)在也正在積極的向著計(jì)算機(jī)化管理的方向發(fā)展,這樣就從設(shè)備專業(yè)方面保證了選課系統(tǒng)的可行性。 (2) 由于當(dāng)前的時(shí)代是一給信息的時(shí)代,信息的準(zhǔn)確快速的收集對(duì)于工作效率的提高有著十分重要的作用,隨著專業(yè)論文和課題的快速增加,論文管理系統(tǒng)的研究開(kāi)發(fā)可以說(shuō)是勢(shì)在必行。 (3) 本系統(tǒng)的運(yùn)行環(huán)境要求是: 系統(tǒng)軟件 : 在 Windows95/98/2000、 Windows NT 環(huán)境下 ,或在其兼容下運(yùn)行 。 支持軟件:客戶端數(shù)據(jù)庫(kù)接口 ,它可以理解 SQL(結(jié)構(gòu)化查詢語(yǔ)言)命令或提供創(chuàng)建和使用 數(shù) 據(jù) 庫(kù) 的 子 程 序 ; 此 外 必 須 配 有 數(shù) 據(jù) 庫(kù) 引 擎 管 理 工 具 (BDE Administrator), 它是數(shù)據(jù)庫(kù)應(yīng)用程序的支持環(huán)境,保證數(shù)據(jù)庫(kù)應(yīng)用程序的 工學(xué)學(xué)士學(xué)位論文 運(yùn)行。 硬件方面:奔騰 200以上機(jī)型, 64M以上內(nèi)存, 1G以上硬盤(pán), 8M以上顯卡。 所以,低要求的運(yùn)行環(huán)境從而保證了本系統(tǒng)正常運(yùn)行的可行性。 基于以上幾點(diǎn)可以說(shuō)明該選課系統(tǒng)的開(kāi)發(fā)與研究是完全可行的 2.3 開(kāi)發(fā)環(huán)境的選擇 這是我選擇了 Delphi 語(yǔ)言, DELPHI 是 Borland 公司推出的 快速、可視化程序開(kāi)發(fā)工具。它擁有一個(gè)可視化的集成開(kāi)發(fā)環(huán)境( IDE),采用面向?qū)ο蟮木幊陶Z(yǔ)言 Object Pascal 和基于控件的開(kāi)發(fā)框圖架結(jié)構(gòu)。 DELPHI 提供了多個(gè)可供使用的控件,利用這些控件,開(kāi)發(fā)人員可以快速構(gòu)造出各式各樣的應(yīng)用系統(tǒng)。其功能強(qiáng)大、使用方面、性能超群。 1. 簡(jiǎn)單易用、快速入門(mén): 可視化的面向?qū)ο筇匦允沟脧?fù)雜、枯燥的編程工作變得直觀、有趣、大大縮短了開(kāi)發(fā)周期。提供了許多快速方便的開(kāi)發(fā)方法,使開(kāi)發(fā)人員能用盡可能少的重復(fù)性工作完成各種不同的就用。利用項(xiàng) 目模板和向?qū)善骺梢院芸旖㈨?xiàng)目的框架,然后根據(jù)用戶的實(shí)際需要完善其功能 2.功能全面、強(qiáng)大 : Delphi包羅萬(wàn)象,可以開(kāi)發(fā)任何規(guī)模、任何類型的軟件,包括大、中、小型的系統(tǒng)軟件。它自帶了豐富的控件,無(wú)論是多媒體、數(shù)據(jù)庫(kù)、還是 Internet 編程,從前枯燥、繁雜的編程工作都會(huì)變得輕而易舉。 Delphi 還有很強(qiáng)的控件開(kāi)發(fā)能力,是一個(gè)自我增強(qiáng)型的工具??梢哉f(shuō) Delphi 是具有底層開(kāi)發(fā)能力的快速開(kāi)發(fā)工具,既可以用于開(kāi)系統(tǒng)軟件,也適合于應(yīng)有軟件的開(kāi)發(fā)。 3語(yǔ)法嚴(yán)謹(jǐn),適合復(fù)雜應(yīng)用的需要: Delphi 基于 Object Pascal 語(yǔ)言,只要你會(huì) Pascal,就能在極短的時(shí)間內(nèi)掌握Delphi, 正是因?yàn)榛?Pascal語(yǔ)言,所以 Delphi 解決問(wèn)題的方式比較嚴(yán)謹(jǐn),源程序類似于自然語(yǔ)言,易讀易懂,適合復(fù)雜應(yīng)用的需要。 4代碼簡(jiǎn)潔、高效: 用 Delphi 寫(xiě)一行代碼便可生成或關(guān)閉一個(gè) Windows 窗口,而使用標(biāo)準(zhǔn)的語(yǔ)言編程,則可能需要幾十行代碼。更為重要的是 Delphi 擁有世界上最快的編譯器,編譯后 工學(xué)學(xué)士學(xué)位論文 的可執(zhí)行程序是真正的二進(jìn)制機(jī)器代碼,是完全獨(dú)立的可執(zhí)行文件,其執(zhí)行速度是語(yǔ)言的。可以說(shuō)是以極小的執(zhí)行效率犧 牲為代價(jià),實(shí)現(xiàn)了編程效率的極大提高。 5 卓越超群的數(shù)據(jù)庫(kù)開(kāi)發(fā)能力: Delphi 以傳統(tǒng)的編程語(yǔ)言為 Object Pascal 基礎(chǔ),完美的結(jié)合了數(shù)據(jù)庫(kù)語(yǔ)言,即可以用于傳統(tǒng)的算術(shù)編程又可以用于數(shù)據(jù)庫(kù)編程。它的數(shù)據(jù)處理接口工具是一個(gè)標(biāo)準(zhǔn)的軟件中介層,可以用來(lái)處理當(dāng)前流行的數(shù)據(jù)格式,如 xBase、 Paradox 等,也可以通過(guò)的 SQLLink 直接與 Sybase、 SQL Server、 Informix、 Oracle 等大型數(shù)據(jù)庫(kù)連接??梢哉f(shuō)不論是小型數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),還是關(guān)鍵性、大型數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng), Delphi都能滿足系統(tǒng)開(kāi)發(fā)的需求,具有強(qiáng)大的擴(kuò)展能力和數(shù)據(jù)庫(kù)平臺(tái)升級(jí)遷移的適應(yīng)能力,能適應(yīng)多種數(shù)據(jù)庫(kù)結(jié)構(gòu),從桌面數(shù)據(jù)庫(kù)到客戶機(jī)服務(wù)器模式再到多層數(shù)據(jù)結(jié)構(gòu)模式,Delphi都能勝任。 2.4 Delphi 在 Windows 環(huán)境下開(kāi)發(fā)數(shù)據(jù)庫(kù)的應(yīng)用 數(shù)據(jù)庫(kù)系統(tǒng)主要由三大部分組成:數(shù)據(jù)庫(kù)管理系統(tǒng) (DBMS)、數(shù)據(jù)庫(kù)應(yīng)用程序 (它使能夠獲取和顯示和更新由 DBMS存儲(chǔ)的數(shù)據(jù) )、數(shù)據(jù)庫(kù) (按一定結(jié)構(gòu)組織在一起的相關(guān)的集合 )。 Delphi擁有強(qiáng)大的內(nèi)部數(shù)據(jù)庫(kù)支持,其中所存在的可視組件可以對(duì) 操縱記錄的表和方法進(jìn)行訪問(wèn)。 在 Delphi中,有三個(gè)數(shù)據(jù)集組件: TTable、 Tquery、 TstoredProc。 Delphi可以訪問(wèn)多種數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)庫(kù)。依靠窗體和報(bào)表, BDE 可以訪問(wèn)Paradox、 dBASE、本地 InterBase服務(wù)器的數(shù)據(jù)庫(kù),也可以訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器上的數(shù)據(jù)庫(kù)(如 ORACLE、 Sybase、 Informix等客戶 /服務(wù)器數(shù)據(jù)庫(kù)),或者任何經(jīng) ODBC可訪問(wèn)的數(shù)據(jù)庫(kù)。跟其它的應(yīng)用程序一樣, DELPHI 提供了許多組件以方便創(chuàng)建數(shù)據(jù)庫(kù)應(yīng)用程序。下面列出這些工具和部件以及它們的主要用途: * Data Access Components 用來(lái)訪問(wèn)數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)表、存儲(chǔ)過(guò)程等。 * Data Control Components 用來(lái)與用戶交互、提供顯示、修改數(shù)據(jù)庫(kù)中數(shù)據(jù)的界面。 * Midas 工學(xué)學(xué)士學(xué)位論文 用來(lái)創(chuàng)建多多級(jí)數(shù)據(jù)庫(kù)應(yīng)用程序。 * Database Desktop(OBD) 簡(jiǎn)單實(shí)用的數(shù)據(jù)庫(kù)桌面工具,可以創(chuàng)建、查看、修改和查詢 Paradox、 dBASE和 SQL表。 * Report Smith 建立、瀏覽和打印數(shù)據(jù)庫(kù)表中的數(shù)據(jù)。 * Borland Database Engine(BDE) 意為數(shù)據(jù)庫(kù)引擎。用戶可以借助它 快速簡(jiǎn)便地建立大型的、性能優(yōu)異的數(shù)據(jù)Client/Server應(yīng)用程序。 Form 單層數(shù)據(jù)庫(kù)應(yīng)用程序 單層數(shù)據(jù)庫(kù)應(yīng)用程序 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 工學(xué)學(xué)士學(xué)位論文 兩層數(shù)據(jù)庫(kù)應(yīng)用程序 Client Application Application Server 兩層數(shù)據(jù)庫(kù)應(yīng)用程序 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 工學(xué)學(xué)士學(xué)位論文 Client Application Application Server 多層數(shù)據(jù)庫(kù)應(yīng)用程序 2.5Delphi 數(shù)據(jù)庫(kù)應(yīng)用程序的開(kāi)發(fā)步驟 當(dāng)我們確定了要開(kāi)發(fā)一個(gè)數(shù)據(jù)項(xiàng)目后,我們都要一個(gè)規(guī)劃。一般來(lái)說(shuō), 數(shù)據(jù)庫(kù)應(yīng)用程序的開(kāi)發(fā)有三個(gè)步驟: 1.系統(tǒng)設(shè)計(jì) 在這個(gè)階段,我們要根據(jù)用戶需求確定數(shù)據(jù)庫(kù)模型、系統(tǒng)要實(shí)現(xiàn)的功能,以及決定什么功能由服務(wù)器端實(shí)現(xiàn),什么功能由客戶端實(shí)現(xiàn)。 2.系統(tǒng)實(shí)現(xiàn) 主要任務(wù)是使用 DELPHI提供的工具和部件以及 PASCAL語(yǔ)言實(shí)現(xiàn)系統(tǒng),并進(jìn)行調(diào)試。 3.系統(tǒng)運(yùn)行和維護(hù) 我們不可能一下子就拿出一個(gè)十全十美的系統(tǒng)來(lái),只有在系統(tǒng)交會(huì)運(yùn)行后, 根據(jù)用戶需求,做相應(yīng)的修改,使用權(quán)其進(jìn)一步完善和提高。 我們?cè)谑褂?DELPHI 開(kāi)發(fā)一個(gè)數(shù)據(jù)庫(kù)應(yīng)用程序時(shí)應(yīng)該注意下列四種 情況: * 數(shù)據(jù)庫(kù)不存在或者需要重新定義。使用 DBD為本地?cái)?shù)據(jù)庫(kù)定義; 使用服務(wù)器開(kāi)發(fā)工具如 Windows ISQL 或者 DBD定義本地或者遠(yuǎn)程 SQL服務(wù)器的數(shù)據(jù)庫(kù)。 * 數(shù)據(jù)庫(kù)在桌面數(shù)據(jù)庫(kù)系統(tǒng)中或局域網(wǎng)上,而 BDE、數(shù)據(jù)庫(kù)和應(yīng)用程序在同一臺(tái)機(jī)器上,這是典型的單機(jī)應(yīng)用。 * 數(shù)據(jù)庫(kù)在桌面數(shù)據(jù)系統(tǒng)中,但用戶要把它改變到 SQL數(shù)據(jù)庫(kù)服務(wù)器上,這需要用到 InterBase。 User Interface element Data source Client dataset compoment BDE-enabled dataset component provider 工學(xué)學(xué)士學(xué)位論文 * 數(shù)據(jù)庫(kù)在 SQL服務(wù) 器中,而應(yīng)用程序要支訪問(wèn) SQL服務(wù)器的數(shù)據(jù)庫(kù)。 2.6 使用 SQL 編程 SQL語(yǔ)言是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中的一種通用結(jié)構(gòu)查詢語(yǔ)言, Delphi 與使用 SQL語(yǔ)言的數(shù)據(jù)庫(kù)管理系統(tǒng)兼容,我們可以在我們的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)使用 SQL語(yǔ)句編程。 SQL有許多優(yōu)點(diǎn),它使全部用戶,包括應(yīng)用程序員, DB管理員和終端用戶受益非淺。 1.非過(guò)程化語(yǔ)言 是一個(gè)非過(guò)程化的語(yǔ)言,因?yàn)樗且淮翁幚硪粋€(gè)記錄,對(duì)數(shù)據(jù)提供自動(dòng)導(dǎo)航。 SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,可以操作記錄集。 2.統(tǒng)一的語(yǔ)言 SQL可以用于所有用戶的 DB活動(dòng)模型,包括 系統(tǒng)管理員、數(shù)據(jù)庫(kù)管理員、應(yīng)用程序員、決策支持系統(tǒng)人員以及許多其它類型的終端用戶。 基本的 SQL命令只需很少時(shí)間就能學(xué)會(huì),最高級(jí)的命令在幾天內(nèi)便可以掌握。 SQL提供了許多對(duì)數(shù)據(jù)庫(kù)操縱的命令,包括: * 查詢數(shù)據(jù); * 在表中插入、修改和刪除記錄; * 建立、修改和刪除數(shù)據(jù)對(duì)象; * 控制對(duì)數(shù)據(jù)和數(shù)據(jù)對(duì)象的存??; * 保證數(shù)據(jù)庫(kù)一致性和完整性。 3統(tǒng)一的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言 所有主要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都支持 SQL 語(yǔ)言,用戶可以將使用 SQL 的功能從一個(gè) RDBMS轉(zhuǎn)移到另一個(gè) RDBMS。所有用 SQL編寫(xiě)的程序都是 可 以移植的。 2.7 關(guān)系型數(shù)據(jù)庫(kù)的實(shí)現(xiàn) 在這里,我們選擇了 Access2000 作為數(shù)據(jù)庫(kù)的開(kāi)發(fā)工具,而 Access2000 正 是關(guān)系數(shù)據(jù)庫(kù)開(kāi)發(fā)工具,數(shù)據(jù)庫(kù)能匯集各種信息以供查詢、存儲(chǔ)和檢索。 Access 2000 的優(yōu)點(diǎn)在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息。數(shù)據(jù)表示圖提供了一種類似于 Excel 的電子表格,可以使數(shù)據(jù)庫(kù)一目了然。另外, Access 2000 允許創(chuàng)建自定義報(bào)表 工學(xué)學(xué)士學(xué)位論文 用于打印或輸出數(shù)據(jù)庫(kù)中的信息。 Access也提供了數(shù)據(jù)存儲(chǔ)庫(kù),可以使用桌面數(shù)據(jù)庫(kù)文件把數(shù)據(jù)庫(kù)文件置于網(wǎng)絡(luò)文件服務(wù)器,與其他網(wǎng)絡(luò) 用戶共享數(shù)據(jù)庫(kù)。 Access 2000 是一種關(guān)系數(shù)據(jù)庫(kù)工具,關(guān)系數(shù)據(jù)庫(kù)是已開(kāi)發(fā)的最通用的數(shù)據(jù)庫(kù)之一。如上所述, Access 2000作為關(guān)系數(shù)據(jù)庫(kù)開(kāi)發(fā)具備了許多優(yōu)點(diǎn),可以在一個(gè)數(shù)據(jù)包中同時(shí)擁有桌面數(shù)據(jù)庫(kù)的便利和關(guān)系數(shù)據(jù)庫(kù)的強(qiáng)大功能。 2.8 兩者的結(jié)合( ODBC) ODBC 是一種用于訪問(wèn)數(shù)據(jù)庫(kù)的統(tǒng)一界面標(biāo)準(zhǔn),是基于 SQL 語(yǔ)言的,是一種在 SQL和應(yīng)用界面之間的標(biāo)準(zhǔn)接口,它解決了嵌入式 SQL接口非規(guī)范化的矛盾,提供了 SQLAPI的規(guī)范核心,免除了應(yīng)用軟件隨數(shù)據(jù)庫(kù)的改變而改變的痛苦。 ODBC的 API一致性級(jí)別分 為三級(jí):核心級(jí)、擴(kuò)展一級(jí)和擴(kuò)展二級(jí)。 ODBC結(jié)構(gòu)的示意圖如圖: 應(yīng)用程序 驅(qū)動(dòng)程序管理器 驅(qū)動(dòng)程序 驅(qū)動(dòng)程序 驅(qū)動(dòng)程序 數(shù)據(jù)源 數(shù)據(jù)源 數(shù)據(jù)源 工學(xué)學(xué)士學(xué)位論文 第三章 系統(tǒng)的總體規(guī)劃 3.1 總體功能的需求 論文課題管理系統(tǒng)是針對(duì)學(xué)院的大量繁雜的論文和課題而開(kāi)發(fā)的管理軟件。它包括用戶管理、課題論文管理、課題論文檢索、報(bào)表輸出打印、院系管理、共用數(shù)據(jù)的管理、電子資料等若干個(gè)模塊。根據(jù)用戶的要求,實(shí)現(xiàn)完成對(duì)學(xué)術(shù)論文及專業(yè)課題的查詢、導(dǎo)出數(shù)據(jù)庫(kù)記錄并打印、報(bào)表輸出等主要幾個(gè)方面的功能。 其總體結(jié)構(gòu)如 3-1圖所示: 用戶通過(guò)輸入姓名、學(xué)號(hào)、課題論文類型、課題論文名等基本信息 ,由系統(tǒng)自行生用戶管理模塊 數(shù)據(jù)管理模塊 數(shù)據(jù)查詢模塊 數(shù)據(jù)統(tǒng)計(jì)模塊 數(shù)據(jù)打印模塊 論文課題管理系統(tǒng) 錄入 修改 刪除 錄入 修改 刪 除 其余 模塊 用戶登錄 增加用戶 更改密碼 課題管理 論文管理 查詢條件 查詢結(jié)果 統(tǒng)計(jì)條件 統(tǒng)計(jì)結(jié)果 打印課題 打印論文 工學(xué)學(xué)士學(xué)位論文 成相應(yīng)統(tǒng)計(jì)數(shù)據(jù)及各類統(tǒng)計(jì)報(bào)表以供用戶查詢、打印 ,另外用戶還可以對(duì)這些基本信息進(jìn)行定期的更新和刪除 , 論文課題管理系統(tǒng)力求給用戶方便快捷的途徑去管理這些繁瑣的數(shù)據(jù)。 系統(tǒng)要求能體現(xiàn)自動(dòng)化、智能化的特點(diǎn),界面友好、可操作性強(qiáng);整個(gè)程序功能包括三大部分:數(shù)據(jù)庫(kù)的設(shè)計(jì)與管理、數(shù)據(jù)的錄入修改刪除、用戶管理。該應(yīng)用系統(tǒng) 提供有用戶登錄、身份驗(yàn)證模塊,每類用戶都只能根據(jù)系統(tǒng)分配的權(quán)限進(jìn)行操作。 3.2 算法設(shè)計(jì) 數(shù)據(jù)庫(kù)設(shè)計(jì)是一項(xiàng)涉及多學(xué)科的綜合性技術(shù),是硬件和軟件的結(jié)合,這是數(shù)據(jù)庫(kù)的特點(diǎn)之一,在此本人將著重討論軟件設(shè)計(jì)的技術(shù)。 對(duì)于實(shí)現(xiàn)一個(gè)實(shí)際的數(shù)據(jù)庫(kù)應(yīng)用系統(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)可以和圖相對(duì)。本次設(shè)計(jì)采用面向?qū)ο?的語(yǔ)言 Pascal 開(kāi)發(fā)基于關(guān)系數(shù)據(jù)庫(kù) Microsoft Access的管理信息系統(tǒng),即采用關(guān)系數(shù)據(jù)模型,它是目前三種模型中最重要的模型。自 80 年代以來(lái),計(jì)算機(jī)廠商們推出的數(shù)據(jù)庫(kù)管理系統(tǒng)幾乎都是支持關(guān)系模型的,許多的非關(guān)系系統(tǒng)的產(chǎn)品也都加上了關(guān)系接口。 關(guān)系模型是建立在數(shù)學(xué)概念基礎(chǔ)上的,數(shù)據(jù)在用戶觀點(diǎn)下的邏輯結(jié)果是一張二維表,相對(duì)于層次模型(樹(shù)型結(jié)構(gòu))和網(wǎng)狀模型(除樹(shù)型結(jié)構(gòu)之外的網(wǎng)狀結(jié)構(gòu))采用關(guān)系模型主要有以下優(yōu)點(diǎn):關(guān)系模型的概念簡(jiǎn)單、清晰,用戶易懂易用,有嚴(yán)格的數(shù)學(xué)基礎(chǔ)即在此基礎(chǔ)上發(fā)展起來(lái)的關(guān)系數(shù)據(jù)庫(kù)理論, 簡(jiǎn)化的程序員的工作和數(shù)據(jù)庫(kù)開(kāi)發(fā)建立的工作,因而關(guān)系模型誕生以后發(fā)展迅速,成為深受用戶歡迎的數(shù)據(jù)模型。 3.3 系統(tǒng)數(shù)據(jù)流圖 管理員 論文理 系統(tǒng) 普通用戶 不同操作 發(fā)現(xiàn) 錯(cuò) 誤 不同 操作 返回信息 工學(xué)學(xué)士學(xué)位論文 第一層數(shù)據(jù)流圖 2.1 2 合理要求 2.2 1 管理員查詢要求 以及統(tǒng)計(jì)處理 合法的查詢 3 操作完成信息 統(tǒng)計(jì)信息表 不合法的輸入 結(jié)果 第二層數(shù)據(jù)流圖 3.4 數(shù)據(jù)字典 用戶信息 =用戶名 +個(gè)人密碼 +用戶權(quán)限 課題信息 =課題編號(hào) +課題名稱 +執(zhí)行者 +指導(dǎo)老師 +所屬院系 +教研室 論文信息 =論文編號(hào) +論文名稱 +作者 +所屬院系 +教研室 管理員 普通用戶 普通用戶 管理員 合法性檢 查 要求處理 查詢處理 管理員要 求 普通用戶要求 工學(xué)學(xué)士學(xué)位論文 統(tǒng)計(jì) =統(tǒng)計(jì)條件 +運(yùn)算符 +統(tǒng)計(jì)值 +統(tǒng)計(jì)結(jié)果 用戶權(quán)限 =可讀不可寫(xiě) +可讀可寫(xiě) 工學(xué)學(xué)士學(xué)位論文 第四章 系統(tǒng)的具體實(shí)現(xiàn) 4.1 數(shù)據(jù)庫(kù)的建立 本系統(tǒng)要求用 ACCESS 2000 設(shè)計(jì)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)包含有十個(gè)數(shù)據(jù)表:論文表、畢業(yè)課題表、歷年課題表、院系表、教研室表、所有課題表、課題類別表、用戶表、教師資料表、學(xué)生資料表。具體情況如下: 論文表( lunwen) : 字段名稱 數(shù)據(jù)類型 長(zhǎng)度 說(shuō)明 編 號(hào) 長(zhǎng)整型 5 論文名稱 文本 30 作 者 文本 10 發(fā)表時(shí)間 日期 /時(shí)間 短日期 發(fā)表 地點(diǎn) 文本 10 所在院系 文本 10 教研室 文本 10 備 注 文本 30 課題表( keti) : 字段名稱 數(shù)據(jù)類型 長(zhǎng)度 說(shuō)明 課題編號(hào) 長(zhǎng)整型 5 課題名稱 文本 30 負(fù)責(zé)人 文本 10 組員 文本 30 開(kāi)始時(shí)間 日期 /時(shí)間 短日期 結(jié)束時(shí)間 日期 /時(shí)間 短日期 所屬院系 文本 10 所屬教研室 文本 10 工學(xué)學(xué)士學(xué)位論文 關(guān)鍵字 文本 10 用戶表( user) : 字段名稱 數(shù)據(jù)類型 長(zhǎng)度 說(shuō)明 編號(hào) 長(zhǎng)整型 5 用戶名 文本 10 密 碼 文本 10 權(quán)限 文本 10 備注 文本 30 歷年課題表( past) : 字段名稱 數(shù)據(jù)類型 長(zhǎng)度 說(shuō)明 編號(hào) 長(zhǎng)整型 5 課題名稱 文本 30 課題類別號(hào) 長(zhǎng)整型 5 指導(dǎo)老師 文本 10 所屬院系代碼 長(zhǎng)整型 5 所屬教研室代碼 長(zhǎng)整型 5 關(guān)鍵字 文本 10 備注 文本 40 所有課題表( all_keti) : 字段名稱 數(shù)據(jù)類型 長(zhǎng)度 說(shuō)明 課題編號(hào) 長(zhǎng)整型 5 課題名稱 文本 30 課題類別號(hào) 長(zhǎng)整型 5 指導(dǎo)老師 文本 10 院系代碼 長(zhǎng)整型 5 教研室代碼 長(zhǎng)整型 5 關(guān)鍵字 文本 10 工學(xué)學(xué)士學(xué)位論文 說(shuō)明 文本 30 學(xué)校院系情況表( xueyuan): 字段名稱 數(shù)據(jù)類型 長(zhǎng)度 說(shuō)明 院系代碼 長(zhǎng)整型 5 院系名稱 文本 10 備注 文本 30 教研室( tea_room) : 字段名稱 數(shù)據(jù)類型 長(zhǎng)度 說(shuō)明 教研室代碼 長(zhǎng)整型 5 教研室名稱 文本 10 所屬院系代碼 整型 5 備注 文本 30 課題類別表( ruibie) : 字段名稱 數(shù)據(jù)類型 長(zhǎng)度 說(shuō)明 類別號(hào) 長(zhǎng)整型 5 類別名稱 文本 10 備注 文本 30 教師電子資料表( ziliao1) : 字段名稱 數(shù)據(jù)類型 長(zhǎng)度 說(shuō)明 資料編號(hào) 長(zhǎng)整型 5 資料名稱 文本 30 作者 文本 10 資料路徑 文本 20 工學(xué)學(xué)士學(xué)位論文 學(xué)生電子資料( ziliao2) : 字段名稱 數(shù)據(jù)類型 長(zhǎng)度 說(shuō)明 編號(hào) 長(zhǎng)整型 5 名稱 文本 30 作者 文本 10 保存路徑 文本 20 4.2 各模塊的功能實(shí)現(xiàn) 4.2.1 主窗體的建立 選擇系統(tǒng)菜單“ File”中的“ New” 菜單項(xiàng),打開(kāi)“ New Items” 對(duì)話框,選定“ Projects”頁(yè)面,鼠標(biāo)雙擊“ MDI Application”圖標(biāo)啟動(dòng)應(yīng)用向?qū)А_@樣我們就創(chuàng)建了一個(gè)應(yīng)用程序框架,這個(gè)框架只包含有一個(gè)主窗口和系統(tǒng)菜單、工具欄,并且只是一個(gè)空的框架,不能完成任何功能。接下來(lái)應(yīng)該為這個(gè)框架再添加上我們所需的菜單和子窗體。首先應(yīng)該把向?qū)ё詣?dòng)生成的但不需要的菜單刪除,然后再插入我們所需的菜單。在菜單設(shè)計(jì)中我們最關(guān)心下列幾個(gè)屬性: (1)“ Caption” 屬性:定義菜單項(xiàng)的標(biāo)題。 “ Caption” 屬性設(shè)置中有兩點(diǎn)需要說(shuō)明,一是只要將單項(xiàng)的“ Caption” 屬性設(shè)置為單字節(jié)連字符“ -”,就可以生成一個(gè)菜單項(xiàng)之間的橫隔線;二是在菜單項(xiàng)的“ Caption”屬性中填寫(xiě)的內(nèi)容,如果字符前有“ &”, 那么菜單中該字符下將出現(xiàn)下劃線,如:“ &C”,在程序運(yùn)行時(shí)按下“ Alt” 鍵和“ C”鍵就可以選中該菜單項(xiàng)。 ( 2)“ Name” 屬性:定義菜單項(xiàng)的名稱。 最好指定有具體含義的名稱。 ( 3)“ ShortCut” 屬性:定義菜單項(xiàng)的快捷鍵。 使用菜單設(shè)計(jì)器為菜單項(xiàng)設(shè)計(jì)一個(gè)快捷鍵也很容易,單擊對(duì)象瀏覽器窗口中“ ShortCut” 屬性右半部,從彈出的快捷鍵列表中選擇一個(gè)合適 的快捷鍵即可。 ( 4)“ Enabled” 屬性:定義菜單項(xiàng)是否可用。 True表示可用, False表示不可用;在編程中可利用這一屬性實(shí)現(xiàn)特定情況下不 工學(xué)學(xué)士學(xué)位論文 允許用戶使用某菜單的功能。 ( 5)“ Hint” 屬性:為菜單項(xiàng)添加文字。 在菜單項(xiàng)中加提示是很好的習(xí)慣,它使得用戶在運(yùn)行菜單功能前,可以對(duì)菜單的任務(wù)有一個(gè)簡(jiǎn)略的了解。 ( 6)“ Checked” 屬性:定義菜單項(xiàng)的開(kāi)關(guān)情況。 當(dāng) Checked為 True時(shí),菜單項(xiàng)前面會(huì)出現(xiàn)選中標(biāo)志。 ( 7)“ Visible” 屬性:定義菜單項(xiàng)隱藏與否。 利用這一屬性可 以實(shí)現(xiàn)多版本的菜單,被隱藏的菜單項(xiàng)以及它的子菜單都是不可見(jiàn)的,或是不可訪問(wèn)的。 根據(jù)系統(tǒng)的總體規(guī)劃,修改的主窗體菜單包含“用戶管理”、“數(shù)據(jù)管理”、“信息檢索”、“畢業(yè)設(shè)計(jì)”、“打印庫(kù)文件”、“公用數(shù)據(jù)管理”、“窗口”、“幫助”八個(gè)菜單,其中“用戶管理”中包含“用戶登錄”、“增加用戶”、“修改密碼”、“退出”四個(gè)菜單項(xiàng),“數(shù)據(jù)管理”包含“課題管理”、“論文管理”兩個(gè)菜單項(xiàng),“信息檢索”包含“專業(yè)課題”、“學(xué)術(shù)論文”兩個(gè)菜單項(xiàng),“畢業(yè)設(shè)計(jì)”包含“可選課題”、“課題統(tǒng)計(jì)”、“歷年課題”三個(gè)菜單項(xiàng),“打印庫(kù)文件” 包含“課題打印”、“論文打印”兩個(gè)菜單項(xiàng),“公用數(shù)據(jù)管理”包含“院系管理”、“教研室管理”、“電子資料”三個(gè)菜單項(xiàng),“窗口”包含“層疊”、“垂直排列”、“平行排列”、“所有項(xiàng)最小化”四個(gè)菜單項(xiàng),“幫助”包含“操作指南”、“關(guān)于 ” 兩個(gè)菜單項(xiàng)。具體情況詳見(jiàn)系統(tǒng),菜單的各個(gè)屬性詳見(jiàn)系統(tǒng)的源代碼,界面如 (4.2.1)圖所示。 主窗體界面圖( 4.2.1) 工學(xué)學(xué)士學(xué)位論文 4.2.2 用戶登錄模塊 為了保證系統(tǒng)的安全,在操作者進(jìn)入系統(tǒng)之前都要進(jìn)行用戶登錄,以驗(yàn)證用戶身份。用戶登錄驗(yàn)證模塊的功能是僅允許合法用戶進(jìn)入系統(tǒng),而且讓不同 的用戶擁有不同的操作權(quán)限。只有授權(quán)用戶使用正確的口令時(shí)才能進(jìn)入系統(tǒng),連續(xù)三次輸入均不正確的用戶名和口令時(shí),程序?qū)⒆詣?dòng)退出登錄模塊。其功能代碼如下: 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; 工學(xué)學(xué)士學(xué)位論文 end else begin if TimeID3 then begin Application.Terminate; end else if EditUser.Text TableYongHu.FieldByName(YongHu).AsString then begin Application.MessageBox(非法用戶 ,請(qǐng)輸入正確的用戶名 !,用戶名 , MB_OK+MB_ICONEXCLAMATION); EditUser.SetFocus; end else begin Application.MessageBox(輸入密碼錯(cuò)誤 ,請(qǐng)?jiān)佥斎胍淮?,密碼 , MB_OK+MB_ICONEXCLAMATION); EditPassWord.SetFocus; end; end; end; 界面如圖所示: 工學(xué)學(xué)士學(xué)位論文 4.2.3 用戶注冊(cè)模塊 登錄系統(tǒng)后,用戶可以重新注冊(cè),只需在注冊(cè)窗口中輸入用戶名和密碼即可,在這里,輸入的兩次密碼必須一致,否則會(huì)出現(xiàn)“兩次輸入的密碼不一致的情況”,結(jié)果是注冊(cè)不能成功。 其功能代碼如下: 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 工學(xué)學(xué)士學(xué)位論文 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 修改密碼模塊 用戶登錄后,如果有需要修改密碼,就可 以這個(gè)窗口內(nèi)完成,你只需輸入你的原密碼和新密碼即可,修改成功后,新的密碼會(huì)保存到表中,下次登錄你就必須使用新修改的密碼,否則不能登錄。其功能代碼如下 : 工學(xué)學(xué)士學(xué)位論文 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(請(qǐng)輸入新的密碼 !); end else if Edit3.TextEdit4.Text then begin showmessage(兩次輸入的密碼不一致 ,請(qǐng)重新輸入 !); Edit3.SetFocus; end else begin showmessage(密碼修改成功 !); Table1.Edit; Table1.FieldByName(KouLing).AsString:=Edit3.Text; Table1.Post; Close; end; end; 工學(xué)學(xué)士學(xué)位論文 4.2.5 可選課題模塊 在該模塊加入兩個(gè) Table組件、兩個(gè) DataSource 組件、兩個(gè) DBGrid 組件。 Table1連接的表為 ruibie,Table2連接的表為 all_keti,利用兩 表中相同的字段 ketiruibie_no 把兩個(gè) DBGrid 連系起來(lái),做到當(dāng)選取 DBGrid1中的任一字段時(shí),在 DBGrid2中便能顯示出屬于它的所有課題的 信息。 4.2.6 課題統(tǒng)計(jì)模塊 在這個(gè)窗口中,共分為“統(tǒng)計(jì)條件”、“統(tǒng)計(jì)結(jié)果”兩部分的內(nèi)容,在統(tǒng)計(jì)條件中,你只需選擇和輸入你需要的統(tǒng)計(jì)條件,即可得出統(tǒng)計(jì)結(jié)果,結(jié)果中你可知道符合條件的課題的數(shù)量和總課題的數(shù)量以及符合條件的課題占總課題數(shù)的比例。其功能代碼如 工學(xué)學(xué)士學(xué)位論文 下: 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(請(qǐng)選擇統(tǒng)計(jì)方式 !); end else begin if s2=then begin showmessage(請(qǐng)選擇運(yùn)算符 !); end else begin if s3=then begin showmessage(請(qǐng)輸入統(tǒng)計(jì)值 !); 工學(xué)學(xué)士學(xué)位論文 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; 工學(xué)學(xué)士學(xué)位論文 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; 工學(xué)學(xué)士學(xué)位論文 i1:=query1.RecordCount; r:=100*i1/i; edit2.Text:=inttostr(i1); str(r:8:2,s4); edit3.Text:=s4+%; if i1=0 then showmessage(沒(méi)有符合條件的記錄 !); 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; 工學(xué)學(xué)士學(xué)位論文 4.2.7 歷年課題模塊 在該模塊中加入一個(gè) Query組件、六個(gè) Button 組件、一個(gè) DBGrid組件,另外還有若干的編輯組件。在這里你可看到的是歷年來(lái)所有的課題。六個(gè)按鈕分別為增加、刪除、修改、提交、取消、退出。單擊增加按鈕后,編輯框中變?yōu)榭眨@時(shí)可輸入數(shù)據(jù),單擊提交按鈕,輸入的內(nèi)容便保存到表格中,在表中可以顯示出來(lái)。單擊修改按鈕,可以對(duì)已存在的數(shù)據(jù)進(jìn)行修改,單擊退出按鈕,即可退出該模塊。其功能代碼如下: 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(錯(cuò)誤,必填字段不能為空 !) else begin dbnavigator1.BtnClick(nbpost) ; dbnavigator1.BtnClick(nbrefresh); end; end; 工學(xué)學(xué)士學(xué)位論文 procedure TForm10.Button5Click(Sender: TObject); begin dbnavigator1.BtnClick(nbcancel); dbnavigator1.BtnClick(nbrefresh); end; procedure TForm10.Button6Click(Sender: TObject); begin Close; end; 4.2.8 院系管理模塊 該模塊中包含一個(gè) DBGrid、兩個(gè) DBEdit、一個(gè) DBNavigator、一個(gè) Table、一個(gè)DataSource組件,另外還有六個(gè)按鈕。在該模塊中同樣可以實(shí)現(xiàn)數(shù)據(jù)的錄入、查詢、修改等功能。其代碼如下: procedure TForm8.Button1Click(Sender: TObject); begin DBNavigator1.BtnClick(nbinsert); end; procedure TForm8.Button3Click(Sender: TObject); begin dbnavigator1.BtnClick(nbdelete) ; end; 工學(xué)學(xué)士學(xué)位論文 procedure TForm8.Button2Click(Sender: TObject); begin DBNavigator1.BtnClick(nbedit); end; procedure TForm8.Button4Click(Sender: TObject); begin if (DBEdit2.text=) or (dbedit1.text=) then showmessage(錯(cuò)誤,必填字段不能為空 !) 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; 工學(xué)學(xué)士學(xué)位論文 4.2.9 教研室管理 該模塊中包含一個(gè) DBGrid、兩個(gè) DBEdit、一個(gè) DBNavigator、一個(gè) Table、一個(gè) DataSource組件,另外還有六個(gè)按鈕。在該模塊中同樣可以實(shí)現(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(錯(cuò)誤,必填字段不能為空 !) else begin dbnavigator1.BtnClick(nbpost) ; dbnavigator1.BtnClick(nbrefresh); end; end; 工學(xué)學(xué)士學(xué)位論文 procedure TForm8.Button5Click(Sender: TObject); begin dbnavigator1.BtnClick(nbcancel); dbnavigator1.BtnClick(nbrefresh); end; procedure TForm8.Button6Click(Sender: TObject); begin close; end; 工學(xué)學(xué)士學(xué)位論文 第五章 系統(tǒng)完善 前面我們已生成了數(shù)據(jù)模塊和多個(gè)數(shù)據(jù)窗體,構(gòu)建了論文管理系統(tǒng)的整體框架,接下來(lái)的工作就應(yīng)該是對(duì)各個(gè)窗體的功能進(jìn)行完善。 5.1 數(shù)據(jù)集的打開(kāi)、關(guān)閉 應(yīng)用程序通過(guò)數(shù)據(jù)集控件訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),必須把將要訪問(wèn)的數(shù)據(jù)庫(kù)表調(diào)入內(nèi)存,這一操作對(duì)數(shù)據(jù)集控件而言就是打開(kāi),反之則稱為關(guān)閉。 Delphi 為我們提供了兩種方法打開(kāi)數(shù)據(jù)集控件: 1. 通過(guò)設(shè)置數(shù)據(jù)集控件的 Active屬性為“ true”來(lái)打開(kāi)與數(shù)據(jù)集控件相連的數(shù)據(jù)庫(kù)表。如: TableYongHu.Active:=true; 這 種方法可以在設(shè)計(jì)階段進(jìn)行也可以在應(yīng)用程序運(yùn)行過(guò)程中通過(guò)程序進(jìn)行。 2. 調(diào)用數(shù)據(jù)集控件的 Open方法,打開(kāi)與數(shù)據(jù)集控件相連的數(shù)據(jù)庫(kù)表。如: TableYongHu.Open; 這一種方法只能在程序運(yùn)行過(guò)程中通過(guò)程序進(jìn)行。 同理, Delphi同樣提供了兩種方法關(guān)閉數(shù)據(jù)集控件: 1. 設(shè)置數(shù)據(jù)集控件的 Active屬性為“ FALSE”,以關(guān)閉與數(shù)據(jù)集控件相連的數(shù)據(jù)庫(kù)表。 TableYongHu.Active:=false; 2. 調(diào)用 Close方法以關(guān)閉與數(shù)據(jù)集控件相連的表。 TableYongHu.Close; 5.2 窗體中用戶權(quán)限的實(shí)限 本節(jié)中主要介紹主控窗體和幾個(gè)用戶窗體中用戶權(quán)限的實(shí)現(xiàn),主要講解如加入代碼,使各個(gè)窗體能夠識(shí)別登錄用戶,并分配不同的操作權(quán)限。 1. 主窗體中用戶權(quán)限的實(shí)現(xiàn) 工學(xué)學(xué)士學(xué)位論文 我們?cè)谥骺卮绑w的 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)限的實(shí)現(xiàn) 在該窗體中,有普通用戶和管理員 兩類用戶可以對(duì)數(shù)據(jù)進(jìn)行操作。其中,普通用戶打開(kāi)窗體后,我們需要做的操作主要有兩件事情:一是設(shè)置用戶基本信息數(shù)據(jù)表的 Filter屬性,對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行過(guò)濾,使數(shù)據(jù)控件只顯示登錄用戶的基本信息;二是設(shè)置數(shù)據(jù)表的 ReadOnly 屬性,使數(shù)據(jù)表只讀,防止該類用戶修改數(shù)據(jù)。當(dāng)管理人員打開(kāi)數(shù)據(jù)窗體時(shí),需要做的事情正好和普通用戶相反,需要撤消對(duì)數(shù)據(jù)表的篩選和只讀限制。以上操作都在窗體的 OnActivate 事件中實(shí)現(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; 工學(xué)學(xué)士學(xué)位論文 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)于 兩個(gè)部分。在操作指南部分,其中的主要內(nèi)容是對(duì)用戶的操作提示;在關(guān)于 部分,主要介紹了本系統(tǒng)的制作日期、作者、作者的聯(lián)系方式、系統(tǒng)正常運(yùn)行的環(huán)境要求等等。詳細(xì)內(nèi)容請(qǐng)參考系統(tǒng)。 工學(xué)學(xué)士學(xué)位論文 結(jié)束語(yǔ) 經(jīng)過(guò)三個(gè)多月的設(shè)計(jì)和開(kāi)發(fā), 論文課題 管理系統(tǒng)基本開(kāi)發(fā)完畢。其功能基本符合用戶需求,能夠完成 論文 的存儲(chǔ)和查詢以及各類相關(guān)報(bào)表的打印。并提供部分 系統(tǒng)維護(hù)功能 ,使用戶方便進(jìn)行數(shù) 據(jù) 備份和恢復(fù)、刪除。對(duì)于數(shù)據(jù)的一致性的問(wèn)題也通過(guò)程序進(jìn)行了有效的解決。但是由于畢業(yè)設(shè)計(jì)時(shí)間較短, 加上又是邊學(xué)邊做, 所以該系統(tǒng)還有許多不盡如人意的地方, 比 如聯(lián)機(jī)文檔比較少,用戶界面不夠美觀,出錯(cuò)處理不夠等多方面問(wèn)題,這些都有待進(jìn)一步改善。 在本次畢業(yè)設(shè)計(jì)中,我從指導(dǎo)老師 王素麗 老師身上學(xué)到了很多東西。 王素麗 老師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和深厚的理論水平都使我收益匪淺。 她 無(wú)論在理論上還是在實(shí)踐中,都給與我很大的幫助,使我得到 了很大 的提高 , 這對(duì)于我以后的工作和學(xué)習(xí)都有一種巨大 的幫助,感謝 她 耐心的輔導(dǎo)。 另外,在系統(tǒng)開(kāi)發(fā)過(guò)程中,同組的同學(xué)同樣給與我不少幫助,幫助解決了不少的難點(diǎn),使得系統(tǒng)能及時(shí)開(kāi)發(fā)完成,這里一并表示感謝。 工學(xué)學(xué)士學(xué)位論文 主要參考文獻(xiàn) 1 Delphi 6.0 使用指南 作 者: Bob Reselman , Richard Peasley , Wayne Pruchniak. 出版社:電子工業(yè)出版社 2 中文版 Microsoft Office 2000 自學(xué)通 作 者: Ned Snell 出版社:機(jī)械工業(yè)出版社 3 Delphi 6.0 中文版控件大全 作 者: Microsoft 出版社:電子工業(yè)出版社 4 中文 Access 2000 24 學(xué)時(shí)教程 作 者: Craig Eddy , Timothy Buchanan 出版社:機(jī)械工業(yè)出版社 5 Delphi 6.0實(shí)用編程指南 作 者:李力,李薇,董恒 出版社:四川大學(xué)出版社 6 Delphi 6.0精彩編程百例 作 者:張龍卿,尹健民 出版社:中國(guó)水利水電版社 7 SQL Server實(shí)用簡(jiǎn)明教程 作 者:黃維通,湯荷美 出版社:清華大學(xué)出版社 8 軟件工程 作 者:傅宏主 出版社:吉林大學(xué)出版社出版 1998年 9月第 1 版 9 數(shù)據(jù)庫(kù)系統(tǒng)原理教程 作 者:王珊、陳紅 編著 工學(xué)學(xué)士學(xué)位論文 出版社:清華大學(xué)出版社出版 1998年 7月第 1版 10 編陳語(yǔ)言中的基本設(shè)計(jì)思想 作 者:陳東 主編 出版社:青年出版社 2001年 2月第一版 11 程序設(shè)計(jì)思想 作 者:宋謙 張之嵐 編著 出版社:青年出版社 2000四月第一 版 工學(xué)學(xué)士學(xué)位論文 外文資料 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. 工學(xué)學(xué)士學(xué)位論文 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 工學(xué)學(xué)士學(xué)位論文 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 工學(xué)學(xué)士學(xué)位論文 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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論