

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘要</b></p><p> 隨著各高校學(xué)生的增多, 實(shí)驗(yàn)室管理的工作變得越來越繁重。采用傳統(tǒng)的人工管理模式,效率低下,不能滿足實(shí)際的需求。本文描述的是基于Windows環(huán)境的一個實(shí)驗(yàn)室進(jìn)程管理系統(tǒng),對一個實(shí)驗(yàn)室進(jìn)程管理系統(tǒng)的需求進(jìn)行了分析。本系統(tǒng)的主要功能包括:老師可以實(shí)時監(jiān)控學(xué)生機(jī)系統(tǒng)運(yùn)行的程序,發(fā)現(xiàn)未被允許的進(jìn)程進(jìn)行警告;超過一定的時間則關(guān)閉未被允許的
2、進(jìn)程。可以增加和刪除允許運(yùn)行的程序至許可程序集;從許可程序集中,指定本節(jié)課允許運(yùn)行的程序;可臨時添加本節(jié)可允許運(yùn)行的程序(不將其加入許可程序集);增加或修改本節(jié)課允許運(yùn)行的程序;許可程序集可以保存。系統(tǒng)的設(shè)計與開發(fā)采用服務(wù)器/客戶機(jī)的系統(tǒng)結(jié)構(gòu)模式,使用Delphi開發(fā)工具開發(fā),應(yīng)用SQL Server2000數(shù)據(jù)庫管理系統(tǒng),通過ADO連接數(shù)據(jù)庫。</p><p><b> 第一章 引言3</
3、b></p><p><b> 1.1課題背景4</b></p><p> 1.2 語言工具4</p><p><b> 1.3主要內(nèi)容4</b></p><p> 第二章 相關(guān)技術(shù)介紹5</p><p> 2.1 delphi5</p>
4、<p> 2.1.1 Delphi特點(diǎn)5</p><p> 2.1.2 Delphi76</p><p> 2.2 SQL Server6</p><p> 2.2.1 SQL Server 20007</p><p> 2.2.2 SQL Server 2000的特點(diǎn)7</p><
5、;p> 2.3 ADO技術(shù)7</p><p> 第三章 需求分析與可行性分析7</p><p> 3.1 需求分析7</p><p> 3.1.1 實(shí)驗(yàn)室需求簡介7</p><p> 3.1.2 功能性需求8</p><p> 3.1.3 非功能性需求8</p><p&
6、gt; 安全保密性需求:用戶登錄需要密碼驗(yàn)證8</p><p> 3.2 可行性分析9</p><p> 3.2.1 經(jīng)濟(jì)可行性9</p><p> 3.2.2 技術(shù)可行性9</p><p> 第四章 總體設(shè)計9</p><p> 4.1 總體設(shè)計目標(biāo)9</p><p>
7、 4.2 功能模塊設(shè)計9</p><p> 4.3 數(shù)據(jù)庫設(shè)計11</p><p> 4.3.2數(shù)據(jù)建模11</p><p> 4.3.3各實(shí)體關(guān)系模型11</p><p> 4.3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計12</p><p> 第五章 系統(tǒng)詳細(xì)設(shè)計15</p><p>
8、 5.1 重要代碼16</p><p> 第六章 實(shí)驗(yàn)室進(jìn)程管理系統(tǒng)設(shè)計總結(jié)24</p><p> 6.1系統(tǒng)的優(yōu)點(diǎn)24</p><p><b> 參考文獻(xiàn)25</b></p><p><b> 第一章 引言</b></p><p> 21世紀(jì),人類已全面
9、進(jìn)入數(shù)字信息化社會,現(xiàn)在信息技術(shù)的應(yīng)用越來越普及,不但促進(jìn)了社會的高速發(fā)展,也影響著人們的工作、學(xué)習(xí)、生活和娛樂的方式以及思想觀念。隨著科學(xué)技術(shù)的不斷提高,計算機(jī)科學(xué)與技術(shù)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會的各個領(lǐng)域,迅速地改變著人類社會的生產(chǎn)方式和生活方式,成為減輕人們體力與腦力勞動,幫助人們完成一些人們難以完成任務(wù)的有效工具。</p><p> 隨著電腦的普及與使用,現(xiàn)在的管理也提升了
10、一個檔次,漸漸實(shí)現(xiàn)了無紙化辦公。高校是科研的陣地,教學(xué)的實(shí)驗(yàn)室管理也應(yīng)該一改傳統(tǒng)的人工管理,更加信息化,時代化,節(jié)省人力物力,提高效率?;谶@一點(diǎn),開發(fā)了此實(shí)驗(yàn)室管理系統(tǒng)。</p><p><b> 1.1課題背景</b></p><p> 高校實(shí)驗(yàn)室存在一些不良現(xiàn)象,有些學(xué)生在實(shí)驗(yàn)課上做其他的事。如玩游戲?yàn)榱颂岣吒咝?shí)驗(yàn)室管理效率,試實(shí)驗(yàn)室的管理更加的規(guī)范。&l
11、t;/p><p> 實(shí)驗(yàn)室進(jìn)程管理系統(tǒng)從限制學(xué)生電腦的進(jìn)程來管理。使用實(shí)驗(yàn)室進(jìn)程管理系統(tǒng),只需一到兩名數(shù)據(jù)操作員即可操作管理系統(tǒng),節(jié)省大量人力和財力;可以存儲大量學(xué)生上課的基本信息,安全、高效、快捷;可以實(shí)時監(jiān)控學(xué)生機(jī)系統(tǒng)運(yùn)行的程序,發(fā)現(xiàn)未被允許的進(jìn)程進(jìn)行警告;超過一定的時間則關(guān)閉未被允許的進(jìn)程。這些特點(diǎn)可以極大地提高實(shí)驗(yàn)室管理的效率。</p><p><b> 1.2 語言工具
12、</b></p><p> 該實(shí)驗(yàn)室進(jìn)程管理系統(tǒng)是我所在團(tuán)隊的第一個任務(wù),在語言工具的選擇上,我們通過導(dǎo)師的提議以及所有成員集體討論后,前臺工具使用了delphi語言,在后臺數(shù)據(jù)庫的選擇上,我們使用SQL server 2000作為我們的后臺。 delphi靈活方便,與后臺的SQL Server2000數(shù)據(jù)庫相結(jié)合,可以提供一個高性能的實(shí)驗(yàn)室進(jìn)程管理系統(tǒng)。</p><p>&
13、lt;b> 1.3主要內(nèi)容</b></p><p> 本文研究的主要內(nèi)容有:</p><p> 實(shí)驗(yàn)室進(jìn)程管理系統(tǒng)的需求分析</p><p> 實(shí)驗(yàn)室進(jìn)程管理系統(tǒng)的可行性分析</p><p> 實(shí)驗(yàn)室進(jìn)程管理系統(tǒng)開發(fā)的相關(guān)技術(shù)介紹</p><p> 實(shí)驗(yàn)室進(jìn)程管理系統(tǒng)的總體設(shè)計</
14、p><p> 系統(tǒng)數(shù)據(jù)庫的概念設(shè)計</p><p> 系統(tǒng)各模塊的詳細(xì)設(shè)計</p><p> 系統(tǒng)評價以及設(shè)計中碰到的難點(diǎn)</p><p> 第二章 相關(guān)技術(shù)介紹</p><p> 開發(fā)數(shù)據(jù)庫管理信息系統(tǒng)需要兩種工具,即前臺開發(fā)語言和后臺數(shù)據(jù)庫。本系統(tǒng)前臺開發(fā)技術(shù)使用Delphi,后臺數(shù)據(jù)庫使用SQL Serve
15、r2000。Delphi靈活方便,與后臺的SQL Server2000數(shù)據(jù)庫相結(jié)合,可以提供一個高性能的實(shí)驗(yàn)室進(jìn)程管理系統(tǒng)。</p><p> 2.1 delphi</p><p> Delphi是Pascal語言的一種版本,但它與傳統(tǒng)的Pascal語言有很大差別。一個Delphi程序首先應(yīng)是程序框架(Frame),而這一框架正式應(yīng)用程序的“骨架”。在骨架上即使沒有附著任何東西,仍然可
16、以運(yùn)行。所要做的工作只是在“骨架”中加入程序。缺省的應(yīng)用程序是一個空白的窗體(Form),運(yùn)行可以得到一個空白的窗口。這個窗口具有Windows窗口的全部性質(zhì),可以被放大縮小、移動、最大最小化等。程序框架及一個空白的窗體已經(jīng)是一個可運(yùn)行應(yīng)用程序,只是不處理任何事情。</p><p> 2.1.1 Delphi特點(diǎn)</p><p> Delphi自從1995年2月誕生以來,獲得了巨大的
17、榮譽(yù)和廣泛的影響力,以可視化編程、強(qiáng)大的編譯功能、友好的用戶界面聞名于世。</p><p><b> 主要特點(diǎn)是:</b></p><p> 高效的可視化組件庫和面向?qū)ο蟮募軜?gòu)。</p><p> 具有多種操作向?qū)Ш驮诰€幫助,大大方便程序編寫。</p><p> 界面設(shè)計所見即所得和鼠標(biāo)拖曳方式,可以輕松設(shè)計出華
18、麗的界面。</p><p> 支持各種最新及最常用的技術(shù)如 Win32 API、OLE、COM、DCOM、ActiveX、ISAPI、NSAPI、DirectX等。</p><p> 全面支持Windows 應(yīng)用程序。</p><p> 具有開放式數(shù)據(jù)庫結(jié)構(gòu),集成了豐富的數(shù)據(jù)庫開發(fā)工具。</p><p> 具有強(qiáng)大的面向網(wǎng)絡(luò)編程功能,
19、其C/S開發(fā)工具在高性能的快速應(yīng)用程序開發(fā)領(lǐng)域成為行業(yè)標(biāo)準(zhǔn)。</p><p> Delphi產(chǎn)品按照功能可以分為4個類型:</p><p> Delphi集成開發(fā)環(huán)境(Integrate Develop Environment):提供友好的用戶編程開發(fā)界面,集成了高效的編譯器、項目管理器、團(tuán)隊開發(fā)支持、高級調(diào)試等功能。</p><p> Delphi可視化組件
20、庫(Visual Component Library):提供幾百個常用組件,用于數(shù)據(jù)庫訪問、用戶接口、數(shù)據(jù)處理、報表和Internet開發(fā)。</p><p> Borland數(shù)據(jù)引擎(Borland Data Engineer):能夠進(jìn)行數(shù)據(jù)庫管理,并與數(shù)據(jù)庫服務(wù)器高速連接。</p><p> MIDAS:是一個集成與Delphi的分布式應(yīng)用稽核,功能強(qiáng)大,主要用于商業(yè)邏輯的智能集中管
21、理和企業(yè)交易的快速處理。</p><p> 2.1.2 Delphi7</p><p> 2002年8月6日,Borland公司正式宣布推出Delphi 7 Studio,全面支持Microsoft公司.NET平臺應(yīng)用的開發(fā)。Delphi7是一個針對Windows平臺上的跨平臺快速開發(fā)(RAD)環(huán)境。Delphi7的一個顯著特性是企業(yè)開發(fā)和部署。</p><p&g
22、t; Delphi7的新特點(diǎn):</p><p> 企業(yè)應(yīng)用的MDA開發(fā):通過讓開發(fā)者從設(shè)計到發(fā)布都重復(fù)使用一個應(yīng)用程序,加速開發(fā)進(jìn)程,同時顯著減少代碼量和需要的開發(fā)時間。</p><p> 可視化的快速Web開發(fā):讓開發(fā)者能夠在Delphi7環(huán)境中可視化地創(chuàng)建Web應(yīng)用,并且利用它的應(yīng)用模型框架,不必再考慮通用的服務(wù)器端的開發(fā)任務(wù),還能透明地處理會話管理。</p>&l
23、t;p> 內(nèi)建的Linux的跨平臺支持:Delphi7在出售時將附帶Delphi語言版本的Dylix3。Kylix3是第一個Linux操作系統(tǒng)上的高性能的可視化集成開發(fā)環(huán)境(IDE),它適用來快速創(chuàng)建數(shù)據(jù)庫應(yīng)用、GUI應(yīng)用、Web應(yīng)用和Web服務(wù)應(yīng)用。</p><p> 企業(yè)級的報表能力:讓開發(fā)者能創(chuàng)建跨平臺的報表,這些報表能幫助查看應(yīng)用程序運(yùn)行的效率。</p><p> Wi
24、ndows XP應(yīng)用:Delphi7包含了對Windows XP風(fēng)格支持,讓開發(fā)者能夠創(chuàng)建可以利用Windows XP 使用者界面風(fēng)格的應(yīng)用。</p><p> 2.2 SQL Server </p><p> 數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術(shù),是計算機(jī)科學(xué)的重要分支。今天,信息資源已成為各個部門的重要財富和資源。建立一個滿足各級部門信息處理要求的行之有效的信息系統(tǒng)也成為企業(yè)或組織生存和發(fā)展
25、的重要條件。因此,作為信息系統(tǒng)核心和基礎(chǔ)的數(shù)據(jù)庫技術(shù)得到越來越廣泛的應(yīng)用。對于一個國家來說,數(shù)據(jù)庫的建設(shè)規(guī)模、數(shù)據(jù)庫信息量的大小和使用頻度已成為衡量一個國家信息化程度的重要標(biāo)志。</p><p> 2.2.1 SQL Server 2000</p><p> SQL Server 2000 是一個高性能的客戶端/服務(wù)器結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。SQL SERVER 2000是為支持高
26、容量的事務(wù)處理以及數(shù)據(jù)倉庫和決策支持系統(tǒng)而設(shè)計的。它是Microsoft 公司推出的,該版本繼承了SQL Serve 7.0 版本的優(yōu)點(diǎn),同時又比它增加了許多更先進(jìn)的功能,可跨越從運(yùn)行Microsoft Windows 98 的電腦到運(yùn)行Microsoft Windows 2000 的大型多處理器的服務(wù)器等多種平臺使用。</p><p> 2.2.2 SQL Server 2000的特點(diǎn)</p>
27、<p> 簡單易操作:SQL Server 2000 界面風(fēng)格和Windows界面風(fēng)格完全一致。</p><p> 兼容性良好,具有擴(kuò)展性,可靠性。</p><p> 數(shù)據(jù)倉庫: SQL Server 2000增加了OLAP功能。OLAP可以通過多維存儲技術(shù)對大型、復(fù)雜數(shù)據(jù)集執(zhí)行快速、高級的分析工作。數(shù)據(jù)挖掘功能能夠揭示隱藏在大量數(shù)據(jù)中的傾向及趨勢,它允許組織或機(jī)構(gòu)最大限
28、度地從數(shù)據(jù)中獲取價值。通過對現(xiàn)有數(shù)據(jù)進(jìn)行有效分析,這一功能可以對未來的趨勢進(jìn)行預(yù)測。</p><p><b> 2.3 ADO技術(shù)</b></p><p> ADO( Active Data Objects )是一種提供訪問各種數(shù)據(jù)類型的鏈接機(jī)制,是通過ODBC的方法訪問數(shù)據(jù)庫的接口。ADO主要優(yōu)點(diǎn)是易于使用、高速度、低內(nèi)存支出和占用磁盤空間較少,同時具有遠(yuǎn)程數(shù)據(jù)
29、服務(wù)(RDS)功能。在Delphi中,提供了一組ADO組件,用于對ADO訪問能力的支持。</p><p> 第三章 需求分析與可行性分析</p><p><b> 3.1 需求分析</b></p><p> 3.1.1 實(shí)驗(yàn)室需求簡介</p><p> 客戶端方面:實(shí)時監(jiān)控學(xué)生機(jī)系統(tǒng)運(yùn)行的程序,發(fā)現(xiàn)未被允許的進(jìn)程
30、進(jìn)行警告;超過一定的時間則關(guān)閉未被允許的進(jìn)程。</p><p> 服務(wù)器方面:可以增加和刪除允許運(yùn)行的程序至許可程序集;從許可程序集中,指定本節(jié)課允許運(yùn)行的程序;可臨時添加本節(jié)可允許運(yùn)行的程序(不將其加入許可程序集);增加或修改本節(jié)課允許運(yùn)行的程序;許可程序集可以保存。</p><p> 3.1.2 功能性需求</p><p> 軟件需求分析是指對目標(biāo)軟件系統(tǒng)
31、在功能、行為、性能、設(shè)計約束等方面的期望。需求分析是軟件設(shè)計、實(shí)現(xiàn)測試直至維護(hù)的主要基礎(chǔ),良好的需求分析可以避免或盡早提出早期的錯誤,從而降低軟件的開發(fā)成本,改進(jìn)軟件的質(zhì)量。</p><p> 我們所設(shè)計完成的實(shí)驗(yàn)室進(jìn)程管理系統(tǒng)應(yīng)該要完成以下的任務(wù):</p><p><b> ?</b></p><p><b> 客戶端 &l
32、t;/b></p><p> 從教師機(jī)獲取本節(jié)課允許運(yùn)行程序集;</p><p> 實(shí)時監(jiān)控學(xué)生機(jī)系統(tǒng)運(yùn)行的程序,發(fā)現(xiàn)未被允許的進(jìn)程進(jìn)行警告;</p><p> 超過一定的時間則關(guān)閉未被允許的進(jìn)程</p><p> 系統(tǒng)以托盤程序或系統(tǒng)服務(wù)形式運(yùn)行;</p><p><b> ● 服務(wù)器端&l
33、t;/b></p><p> 可以增加和刪除允許運(yùn)行的程序至許可程序集;</p><p> 從許可程序集中,指定本節(jié)課允許運(yùn)行的程序;</p><p> 可臨時添加本節(jié)可允許運(yùn)行的程序(不將其加入許可程序集);</p><p> 增加或修改本節(jié)課允許運(yùn)行的程序;</p><p><b> 許可
34、程序集可以保存</b></p><p> 3.1.3 非功能性需求</p><p> 用戶界面需求:簡潔、易用、易懂,友好的用戶界面。</p><p> 運(yùn)行環(huán)境需求:windows 98及以上操作系統(tǒng)</p><p> 可靠性需求:保證用戶在正常使用本系統(tǒng)時,用戶的操作或誤操作不會產(chǎn)生數(shù)據(jù)丟失。</p>&
35、lt;p> 安全保密性需求:用戶登錄需要密碼驗(yàn)證</p><p><b> 3.2 可行性分析</b></p><p> 開發(fā)任何一個系統(tǒng),都會受到時間和資源上的限制。因此,在每一個項目開發(fā)之前,都要進(jìn)行可行性分析,以減少項目的開發(fā)風(fēng)險,避免人力,物力和財力的浪費(fèi)??尚行苑治鲋饕ń?jīng)濟(jì)可行性和技術(shù)可行性等。</p><p> 3
36、.2.1 經(jīng)濟(jì)可行性</p><p> 經(jīng)濟(jì)可行性,主要是針對一個學(xué)校的開發(fā)系統(tǒng)的成本與收益相比較。如今是信息化時代,信息化管理可以使實(shí)驗(yàn)室管理更加系統(tǒng)化,全面化、快速化,這樣可以為學(xué)校帶來高校的工作效益和經(jīng)濟(jì)效益,開發(fā)出本系統(tǒng)可以減少實(shí)驗(yàn)室管理人員人數(shù),而且管理方便,各功能實(shí)現(xiàn)快速,數(shù)據(jù)有效的管理。這些效益和管理上的便捷遠(yuǎn)遠(yuǎn)超過了開發(fā)本系統(tǒng)的成本,所以在經(jīng)濟(jì)上具有完全的可行性。</p><
37、p> 3.2.2 技術(shù)可行性</p><p> 本系統(tǒng)開發(fā)工具是Delphi和SQL Server2000。Delphi具有可視化界面,是一種面向?qū)ο蟮恼Z言,簡單易學(xué)而且靈活方便,SQL Server 2000是一個安全、可靠的并且支持面向?qū)ο笤O(shè)計的數(shù)據(jù)庫系統(tǒng)。易用性和可維護(hù)性也很好。在大二期間,就已學(xué)過SQL Server2000。所以,技術(shù)上具有完全的可行性。</p><p>
38、; 數(shù)據(jù)庫的設(shè)計和操作是本系統(tǒng)設(shè)計的核心。在大學(xué)期間曾經(jīng)學(xué)習(xí)過軟件工程,也以四人一組完成過有關(guān)的大作業(yè),具備一定的系統(tǒng)分析與設(shè)計能力,熟悉數(shù)據(jù)的設(shè)計與操縱。因此,本系統(tǒng)的實(shí)現(xiàn)在技術(shù)上是可行的。</p><p><b> 第四章 總體設(shè)計</b></p><p> 4.1 總體設(shè)計目標(biāo)</p><p> 減少老師、管理人員大量繁瑣的工作。
39、</p><p> 減少學(xué)校在實(shí)驗(yàn)室管理方面的人力和物力的投資。</p><p> 實(shí)驗(yàn)室進(jìn)程管理系統(tǒng)功能實(shí)用。操作簡單,擁有友好的易額面,適用于各類學(xué)校的機(jī)房進(jìn)程管理。</p><p> 4.2 功能模塊設(shè)計</p><p> 系統(tǒng)功能模塊包括: </p><p><b> 教師機(jī)功能:</
40、b></p><p> 可以增加和刪除允許運(yùn)行的程序至許可程序集;</p><p> 從許可程序集中,指定本節(jié)課允許運(yùn)行的程序;</p><p> 可臨時添加本節(jié)可允許運(yùn)行的程序(不將其加入許可程序集);</p><p> 增加或修改本節(jié)課允許運(yùn)行的程序;</p><p><b> 許可程序集
41、可以保存</b></p><p><b> 學(xué)生機(jī)功能</b></p><p> 從教師機(jī)獲取本節(jié)課允許運(yùn)行程序集;</p><p> 實(shí)時監(jiān)控學(xué)生機(jī)系統(tǒng)運(yùn)行的程序,發(fā)現(xiàn)未被允許的進(jìn)程進(jìn)行警告;</p><p> 超過一定的時間則關(guān)閉未被允許的進(jìn)程</p><p> 系統(tǒng)以托
42、盤程序或系統(tǒng)服務(wù)形式運(yùn)行;</p><p><b> 4.3 數(shù)據(jù)庫設(shè)計</b></p><p><b> 4.3.2數(shù)據(jù)建模</b></p><p> 模型是軟件的第一個技術(shù)表示。信息系統(tǒng)的建模是用模型來描述復(fù)雜的信息系統(tǒng),使得系統(tǒng)的要求、結(jié)構(gòu)和數(shù)據(jù)變得簡單。設(shè)計者通過描述用戶的需求獲得與用戶的不斷交互,最終對整個
43、系統(tǒng)能全面地把握。建立完整的數(shù)據(jù)模型,完成對信息系統(tǒng)中數(shù)據(jù)的存儲和處理。</p><p> 實(shí)驗(yàn)室進(jìn)程管理系統(tǒng)比較復(fù)雜,為了建立這樣一個復(fù)雜系統(tǒng)的模型,并滿足實(shí)際對象不斷發(fā)展的需求,在實(shí)際設(shè)計中應(yīng)遵循下列原則:</p><p> 準(zhǔn)確性:所建立的模型要求能夠正確反映實(shí)際的對象,能夠滿足實(shí)驗(yàn)室進(jìn)程管理工作的實(shí)際需求。·</p><p> 完整性:指要求
44、模型既能反映對象系統(tǒng)的靜態(tài)特性,同時能夠反映其豐富的動態(tài)特性。</p><p> 一致性:要求建立的模型能保證從分析階段到設(shè)計階段的平穩(wěn)過渡。</p><p> 4.3.3各實(shí)體關(guān)系模型</p><p> 經(jīng)過分析,可以得出以下各實(shí)體之間的E-R圖,(如圖4-6到4-8)</p><p> 4.3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計</p&g
45、t;<p><b> 基本定義:</b></p><p> 教師與管理員有自己的編號、密碼。在要進(jìn)入該進(jìn)程管理系統(tǒng)時,需進(jìn)行身份認(rèn)證。不用類型的用戶有不同的權(quán)限。管理員的權(quán)限最大,包括進(jìn)程的增刪查、教師的增刪改查等。教師有自己的身份認(rèn)證,可以發(fā)布課程信息,每次課可以添加、刪除臨時進(jìn)程,同時可以改變自己的登錄密碼。</p><p> 學(xué)生在上課時,只
46、能運(yùn)行管理員發(fā)布的進(jìn)程以及教師本節(jié)課添加的臨時進(jìn)程,其余進(jìn)程不予運(yùn)行。</p><p> 進(jìn)程與課程的刪除,若某進(jìn)程還有課程使用,則不能從進(jìn)程表中刪除</p><p> 教師表teacher:</p><p> 課程表:course</p><p> 上課登記表link:</p><p> 進(jìn)程表:proce
47、ss</p><p> 臨時表:tempprocess</p><p> 3.3 物理結(jié)構(gòu)設(shè)計</p><p> a.建立一個數(shù)據(jù)庫,數(shù)據(jù)庫名稱process</p><p> create database process</p><p><b> on</b></p>
48、<p><b> (</b></p><p> name=library</p><p> filename="d:\SQL\process.mdf",</p><p> size=20MB,</p><p> filegrowth=5MB</p><p>
49、;<b> )</b></p><p><b> log on</b></p><p><b> (</b></p><p> name=ManaLibLog,</p><p> filename="d:\SQL\ManaLibLog.ldf",&
50、lt;/p><p><b> size=5MB,</b></p><p> maxsize=20MB,</p><p> filegrowth=10%</p><p><b> )</b></p><p> use process</p><p>
51、; 在該數(shù)據(jù)庫中建立教師表teacher、課程表course、上課登記表link、進(jìn)程表process及臨時表tempprocess。一切活動都在該數(shù)據(jù)庫進(jìn)行了。</p><p> b.對于primary key數(shù)據(jù)庫會自動建立索引。</p><p> C.對于有建立聚簇索引表的數(shù)據(jù),可以通過聚簇索引存取方法;對于有建立索引表的數(shù)據(jù),可以通過索引存取方法;沒有索引表的數(shù)據(jù),有HASH
52、存取方法可以選擇;最后選擇進(jìn)行全表掃描得到。</p><p><b> 4 運(yùn)行設(shè)計</b></p><p> 4.1 數(shù)據(jù)字典設(shè)計</p><p><b> a.數(shù)據(jù)項</b></p><p><b> b.數(shù)據(jù)結(jié)構(gòu)</b></p><p>
53、; 教師=教師編號+教師姓名+密碼+權(quán)限</p><p> 課程=課程編號+課程名稱+上課時間及介紹+課程登記時間;</p><p> 上課情況=教師證號+課程編號+進(jìn)程名;</p><p> 進(jìn)程=進(jìn)程證號+進(jìn)程介紹+進(jìn)程類型</p><p><b> C.?dāng)?shù)據(jù)存儲</b></p><p&
54、gt; 數(shù)據(jù)存儲描述=名稱:ManalibData;存儲在相應(yīng)的磁盤中,形成計算機(jī)文檔,通過鍵盤輸入數(shù)據(jù),存儲在表中。剛建立該管理系統(tǒng)時,進(jìn)程的創(chuàng)建較頻繁,接下去比較穩(wěn)定,不同教師的不同課程,可能會臨時增加一些進(jìn)程,一般情況下為進(jìn)程的查詢。 </p><p> 4.2 安全保密設(shè)計</p><p> 初定為用戶分為兩大類:教師和學(xué)生,教師在教師機(jī)上進(jìn)行進(jìn)程的管理,學(xué)生機(jī)上只能運(yùn)行
55、教師允許的進(jìn)程,其余的不予運(yùn)行。</p><p> 教師分為兩種:管理員和普通教師。管理員擁有所有的權(quán)限,包括教師的權(quán)限管理,基本信息的增刪改查;普通教師由管理員授予不用的權(quán)限。只能在上課時修改該節(jié)課所要用到的進(jìn)程,不能對其他課程的進(jìn)程進(jìn)行修改。</p><p> 學(xué)生可以對所上課程允許的進(jìn)程進(jìn)行查詢,也只能運(yùn)行老師所允許的進(jìn)程。</p><p> 第五章 系
56、統(tǒng)詳細(xì)設(shè)計</p><p> 該實(shí)驗(yàn)室進(jìn)程管理系統(tǒng)是由緯度工作室的所有成員共同完成的,對于個人而言,所完成的任務(wù)就是其中的若干個模塊。在本系統(tǒng)的設(shè)計中,我所完成的任務(wù)主要有員工信息錄入模塊、員工信息統(tǒng)計模塊、宿舍信息錄入模塊、學(xué)生休學(xué)及學(xué)生復(fù)學(xué)模塊。詳細(xì)設(shè)計如下。</p><p> 5.1 系統(tǒng)運(yùn)行平臺設(shè)置</p><p> 5.1.1、硬件環(huán)境:</p
57、><p> 處理器:Pentium Ⅳ800以上;</p><p> 內(nèi)存:256M及以上;</p><p> 硬盤空間:1GB及以上;</p><p> 屏幕分辨率:1024*800</p><p> 5.1.2、軟件環(huán)境:Windows 2000 Professional 或 Windows 2000 Ser
58、ver操作系統(tǒng)。</p><p><b> 5.2 重要代碼</b></p><p><b> 學(xué)生機(jī): </b></p><p> function GetPathFileofModule(ModuleName:String):String; //枚舉進(jìn)程所調(diào)用的模塊及進(jìn)程文件所在路徑</p>
59、<p><b> var </b></p><p> hProcSnap:THandle; //窗體句柄</p><p> pProcess:THandle;</p><p> pe32:TProcessEntry32; //Process32First 得到一個系統(tǒng)快照里第一個進(jìn)程的信息</p>
60、;<p> buf:array[0..MAX_PATH] of char; //顯示模塊對應(yīng)的文件名和路徑</p><p> hMod:HMODULE;</p><p> cbNeeded:DWORD; </p><p><b> begin</b></p><p> hProcSna
61、p:=CreateToolHelp32SnapShot(TH32CS_SNAPALL,0); //創(chuàng)建快照函數(shù)CreateToolhelp32Snapshot</p><p> if hProcSnap=INVALID_HANDLE_VALUE then Exit;</p><p> pe32.dwSize:=SizeOf(ProcessEntry32);
62、 //在調(diào)用Process32First前需要設(shè)置,否則將會失敗</p><p> if Process32First(hProcSnap,pe32)=True then //返回第一個進(jìn)程是否調(diào)用成功</p><p> while Process32Next(hProcSnap,pe32)=True do //順序調(diào)用進(jìn)程</p><p>&l
63、t;b> begin </b></p><p> if uppercase(pe32.szExeFile)=uppercase(ModuleName) then</p><p><b> begin</b></p><p> pProcess:=OpenProcess(PROCESS_QUERY_INFORMA
64、TION or</p><p> PROCESS_VM_READ,</p><p><b> FALSE,</b></p><p> pe32.th32ProcessID);</p><p> if pProcess<>0 then</p><p><b>
65、begin </b></p><p> if EnumProcessModules(pProcess,@hMod,sizeof(hMod),cbNeeded) then</p><p><b> begin</b></p><p> ZeroMemory(@buf,MAX_PATH+1);</p><
66、;p> GetModuleFileNameEx(pProcess,hMod,buf,MAX_PATH+1); </p><p> Result:=strpas(buf); </p><p><b> end; </b></p><p><b> end; </b></p><
67、;p><b> end; </b></p><p><b> end; </b></p><p> CloseHandle(hProcSnap);</p><p><b> end;</b></p><p> {$R *.dfm}</p>
68、<p> procedure TForm1.get();</p><p><b> var</b></p><p> ProcessList :Thandle;</p><p> pe :TPROCESSENTRY32;</p><p> found:boolean;</p><p
69、> Summ: Word;</p><p> NewItem: TListItem;</p><p> begin // ProcessEnum</p><p> ListView1.Items.Clear;</p><p> ProcessList:=CreateToolhelp32Snapshot(TH32CS_SNAPP
70、ROCESS,0); //創(chuàng)建快照函數(shù)CreateToolhelp32Snapshot</p><p> pe.dwSize:=sizeof(TPROCESSENTRY32); //在調(diào)用Process32First前需要設(shè)置,否則將會失敗</p><p> found := Process32First(ProcessList, pe); //Process32First 得到
71、一個系統(tǒng)快照里第一個進(jìn)程的信息</p><p> Summ := 0;</p><p> while found do</p><p><b> begin</b></p><p> Summ := Summ + 1;</p><p> NewItem := ListView1.Item
72、s.Add; //在ListView1顯示</p><p> //NewItem.ImageIndex := -1;</p><p> temp1:=ExtractFileName(pe.szExeFile); //獲取進(jìn)程名賦給一個變量</p><p> // temp1:='WINWORD.EXE';</p><p&
73、gt; Result1:=1;</p><p> Result1:=Search(temp1);</p><p> if(Result1=0) then</p><p><b> begin</b></p><p> temp2:=temp1;</p><p> MessageDlg(
74、'警告!您開啟了在這節(jié)課不被允許的程序,我們將在10秒后自動關(guān)閉該程序!',mtWarning,[mbOk],0);</p><p> //showMessage('警告!您開啟了在這節(jié)課不被允許的程序,我們將在10秒后自動關(guān)閉該程序!');</p><p> edit1.Text:='warning!'+temp1;</p>
75、<p><b> break;</b></p><p><b> end;</b></p><p> NewItem.Caption :=ExtractFileName(temp1);//返回進(jìn)程名稱</p><p> NewItem.subItems.Add(FormatFloat('00&
76、#39;, Summ));//返回序號</p><p> NewItem.subItems.Add(IntToStr(pe.th32ProcessID));//返回進(jìn)程ID</p><p> // NewItem.SubItems.Add((IntToStr(lppe.cntThreads))); //返回進(jìn)程線程數(shù)</p><p> NewItem.SubI
77、tems.Add(GetPathFileofModule(ExtractFileName(pe.szExeFile))); //返回每個進(jìn)程文件所在路徑</p><p> found := Process32Next(ProcessList, pe);</p><p> edit1.Text:='當(dāng)前系統(tǒng)共有'+''+IntToStr(Summ)+
78、9;'+'個進(jìn)程' ;</p><p><b> end;</b></p><p> CloseHandle(ProcessList);</p><p><b> end;</b></p><p> function TForm1.KillTask(ExeFileNa
79、me: string): Integer;</p><p><b> const </b></p><p> PROCESS_TERMINATE = $0001; </p><p><b> var </b></p><p> ContinueLoop: boolean; <
80、;/p><p> FSnapshotHandle: THandle; </p><p> FProcessEntry32: TProcessEntry32; </p><p><b> begin </b></p><p> Result := 0;</p><p> FSnaps
81、hotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); </p><p> FProcessEntry32.dwSize := SizeOf(FProcessEntry32); </p><p> ContinueLoop := Process32First(FSnapshotHandle, FProcessE
82、ntry32); </p><p> while Integer(ContinueLoop) <> 0 do</p><p><b> begin</b></p><p> if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = </p>
83、<p> UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = </p><p> UpperCase(ExeFileName))) then </p><p> Result := Integer(TerminateProcess( </p><p> Op
84、enProcess(PROCESS_TERMINATE,BOOL(0),FProcessEntry32.th32ProcessID),0));</p><p> ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); </p><p><b> end;</b></p>&
85、lt;p> CloseHandle(FSnapshotHandle);</p><p><b> end; </b></p><p> procedure TForm1.Timer3Timer(Sender: TObject);</p><p><b> begin</b></p><
86、p> Result:=KillTask(temp2);</p><p> if(Result<>0)then</p><p><b> begin</b></p><p> showMessage('自動shanchu成功');</p><p><b> end;&l
87、t;/b></p><p><b> end;</b></p><p> procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);</p><p><b> begin</b></p><p> M
88、essageDlg('上課期間該軟件不允許被關(guān)閉!',mtWarning,[mbOK],1);</p><p> //canClose:=false;</p><p><b> end;</b></p><p> function TForm1.Search(ExeFileName: string):Integer;<
89、;/p><p><b> var</b></p><p> rs:Integer;</p><p><b> begin</b></p><p> with adostoredproc1 do</p><p><b> begin</b></
90、p><p><b> close;</b></p><p> procedurename:='proc_tempprocess;1';</p><p> parameters.Refresh;</p><p> parameters.ParamByName('@proname').Va
91、lue:=ExeFileName;</p><p> parameters.ParamByName('@rs').Value:=rs;</p><p><b> ExecProc;</b></p><p><b> // open;</b></p><p><b>
92、 end;</b></p><p> Search:=adostoredproc1.Parameters.ParamValues['@rs'];</p><p><b> end;</b></p><p><b> end.</b></p><p><b&g
93、t; 教師機(jī):</b></p><p><b> 教師添加:</b></p><p><b> begin</b></p><p> IF edit2.Text ='' then showmessage('教師姓名不能為空')</p><p>&l
94、t;b> else</b></p><p><b> begin</b></p><p> with AdoQuery1 do</p><p><b> BEGIN</b></p><p><b> close;</b></p>&
95、lt;p> SQL.clear;</p><p> SQL.Add('insert into teacher(usename,password,powers)');</p><p> SQL.Add('values(:name,:pass,:powers)');</p><p> Parameters.parambyna
96、me('name').value:=edit2.text;</p><p> if(edit3.text='') then</p><p> Parameters.Parambyname('pass').value:='001'</p><p><b> else</b>&l
97、t;/p><p> Parameters.Parambyname('pass').value:=edit3.text;</p><p> if(radiogroup1.ItemIndex=0) then</p><p> Parameters.parambyname('powers').value:='0'</
98、p><p> else Parameters.parambyname('powers').value:='1';</p><p><b> ExecSQL;</b></p><p><b> close;</b></p><p> SQL.Clear;&
99、lt;/p><p> SQL.Add('select * from teacher');</p><p><b> open;</b></p><p> label9.Caption :='記錄總數(shù):'+inttostr(recordcount);</p><p><b>
100、 end ;</b></p><p> Edit2.Text:='';</p><p> Edit3.Text:='';</p><p> showmessage('教師添加成功!');</p><p><b> end; </b></p>
101、<p><b> end;</b></p><p><b> 教師刪除:</b></p><p><b> begin</b></p><p> if edit4.Text='' then showmessage('先進(jìn)行查找,再刪除')</
102、p><p><b> else</b></p><p> begin if adoquery1.recordcount<>0 then begin</p><p> if messagedlg('確定要刪除所有符合條件的記錄嗎?',mtconfirmation,mbokcancel,0)=mrok then<
103、;/p><p><b> begin</b></p><p> adoquery1.First ;</p><p> while not adoquery1.eof do begin</p><p> id:=adoquery1.FieldByName('useno').Asstring ;<
104、/p><p> with adoquery2 do begin</p><p><b> close;</b></p><p> sql.Clear ;</p><p> sql.Add('select * from link');</p><p> sql.add('
105、;where useno=:id') ;</p><p> parameters.ParamByName('id').Value:=id;</p><p><b> open ;</b></p><p><b> end;</b></p><p> if adoqu
106、ery2.recordcount>0 then begin</p><p> if messagedlg(id+'有課程安排,是否跳過該記錄繼續(xù)刪除?',mtconfirmation,mbokcancel,0)=mrok then</p><p> adoquery1.Next</p><p> else exit;end</
107、p><p> else begin adoquery1.delete;adoquery1.Next;end; end;</p><p> if messagedlg('已經(jīng)刪除記錄',mtinformation,[mbok],0)=mrok</p><p><b> then</b></p><p>
108、;<b> begin</b></p><p> adoquery1.close;</p><p> adoquery1.sql.Clear ;</p><p> adoquery1.sql.Add('select * from teacher');</p><p> adoquery1.ope
109、n ;</p><p> label10.Caption :='記錄總數(shù):'+inttostr(adoquery1.recordcount);</p><p> edit4.Text:='';</p><p><b> end;</b></p><p><b> end;
110、</b></p><p><b> end;</b></p><p><b> end;</b></p><p><b> end;</b></p><p> 教師查詢://模糊查詢</p><p><b> var<
111、;/b></p><p> tt:string;</p><p> i:shortint;</p><p><b> begin</b></p><p> if edit9.text='' then showmessage('請輸入搜索詞')</p><
112、p> else begin</p><p> tt:=edit9.Text;</p><p> for i:=0 to length(tt) do</p><p> if(tt[i]=chr(39)) then begin delete(tt,i,1);end;</p><p> edit9.Text:=tt;</
113、p><p> with adoquery1 do begin</p><p><b> close;</b></p><p> sql.Clear ;</p><p> sql.Add('select * from teacher');</p><p> sql.Add(
114、39;where usename+powers like ''%'+edit9.Text +'%''');</p><p><b> open ;</b></p><p> label9.Caption :='記錄總數(shù):'+inttostr(recordcount);</p>&
115、lt;p><b> end;</b></p><p><b> end;</b></p><p><b> end;</b></p><p><b> 進(jìn)程搜索:</b></p><p><b> var</b><
116、;/p><p> tt:string;</p><p> i:shortint;</p><p><b> begin</b></p><p> if edit9.text='' then showmessage('請輸入搜索詞')</p><p> els
117、e begin</p><p> tt:=edit9.Text;</p><p> for i:=0 to length(tt) do</p><p> if(tt[i]=chr(39)) then begin delete(tt,i,1);end;</p><p> edit9.Text:=tt;</p><
118、;p> with adoquery1 do begin</p><p><b> close;</b></p><p> sql.Clear ;</p><p> sql.Add('select distinct proname,proztai,proshow from process');</p>
119、<p> sql.Add('where proname+proshow+proztai like ''%'+edit9.Text +'%''');</p><p><b> open ;</b></p><p> label10.Caption :='總數(shù):'+inttos
120、tr(recordcount);</p><p><b> end;</b></p><p><b> end;</b></p><p><b> end;</b></p><p><b> 進(jìn)程刪除:</b></p><p&g
121、t; var id:string;</p><p><b> begin</b></p><p> if edit9.Text='' then showmessage('先進(jìn)行查找,再刪除')</p><p><b> else</b></p><p>
122、begin if adoquery1.recordcount<>0 then begin</p><p> if messagedlg('確定要刪除所有符合條件的記錄嗎?',mtconfirmation,mbokcancel,0)=mrok then</p><p><b> begin</b></p><p>
123、; adoquery1.First ;</p><p> while not adoquery1.eof do begin</p><p> if adoquery1.FieldByName('proztai').AsString<>'AP' then begin</p><p> showmessage(
124、9;刪除停止,不能刪除系統(tǒng)進(jìn)程!!!'); exit;end;</p><p> id:=adoquery1.FieldByName('proname').AsString ;</p><p> with adoquery2 do begin</p><p><b> close;</b></p>&
125、lt;p> sql.Clear ;</p><p> sql.Add('select * from link');</p><p> sql.add('where proname=:name') ;</p><p> parameters.ParamByName('name').Value:=id;<
126、;/p><p><b> open ;</b></p><p><b> end;</b></p><p> if adoquery2.RecordCount>0 then begin</p><p> if messagedlg(id+'該進(jìn)程有課程安排,是否刪除該進(jìn)程及相
127、關(guān)記錄?',mtconfirmation,mbokcancel,0)=mrcancel then</p><p> adoquery1.Next</p><p> else begin adoquery2.First;</p><p> while not adoquery2.Eof do begin</p><p> ad
128、oquery2.Delete;adoquery2.Next;end;</p><p> adoquery1.delete;adoquery1.Next;</p><p><b> end ;</b></p><p><b> end</b></p><p> else adoquery1.
129、delete;adoquery1.Next;</p><p><b> end;</b></p><p> if messagedlg('已經(jīng)刪除記錄',mtinformation,[mbok],0)=mrok</p><p><b> then</b></p><p><
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文--研究生實(shí)驗(yàn)室管理系統(tǒng)
- 畢業(yè)論文——基于web的實(shí)驗(yàn)室管理系統(tǒng)
- 實(shí)驗(yàn)室管理系統(tǒng)的研究與設(shè)計-畢業(yè)論文
- 畢業(yè)論文——實(shí)驗(yàn)室預(yù)約系統(tǒng)的設(shè)計
- 畢業(yè)論文——實(shí)驗(yàn)室預(yù)約系統(tǒng)的設(shè)計
- 實(shí)驗(yàn)室排課系統(tǒng)畢業(yè)論文(含外文翻譯)
- 基于bs的實(shí)驗(yàn)室預(yù)約系統(tǒng)畢業(yè)論文
- 畢業(yè)論文---中型實(shí)驗(yàn)室的控制系統(tǒng)設(shè)計
- 計算機(jī)專業(yè)畢業(yè)論文---實(shí)驗(yàn)室管理系統(tǒng)(含外文翻譯)
- 基于java的實(shí)驗(yàn)室管理系統(tǒng)【開題報告+文獻(xiàn)綜述+畢業(yè)論文】
- 畢業(yè)論文實(shí)驗(yàn)室使用登記表
- 計算機(jī)畢業(yè)論文--實(shí)驗(yàn)室學(xué)生簽到考勤系統(tǒng)
- 畢業(yè)論文——基于bs結(jié)構(gòu)的實(shí)驗(yàn)室預(yù)約模型系統(tǒng)
- 實(shí)驗(yàn)室管理系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)論文——基于web的實(shí)驗(yàn)室管理系統(tǒng)-自動排課功能的實(shí)現(xiàn)
- 軟件工程畢業(yè)論文-實(shí)驗(yàn)室預(yù)約管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)
- 基于matlab webserver的數(shù)值計算遠(yuǎn)程實(shí)驗(yàn)室系統(tǒng)【畢業(yè)論文】
- 畢業(yè)論文——計算機(jī)實(shí)驗(yàn)室教學(xué)管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)
- 畢業(yè)論文——計算機(jī)實(shí)驗(yàn)室教學(xué)管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)
評論
0/150
提交評論