版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
..專業(yè)資料專業(yè)資料.專業(yè)資料《基于B/S模式管理系統(tǒng)》課程設(shè)計(jì)報(bào)告題目:科研成果申報(bào)系統(tǒng)院(系):計(jì)算機(jī)與電子系專業(yè)班級:學(xué)生姓名:學(xué)號:指導(dǎo)教師:2012年6月18日至2012年6月29日華中科技大學(xué)武昌分校制
基于B/S模式管理系統(tǒng)課程設(shè)計(jì)任務(wù)書一、設(shè)計(jì)(調(diào)查報(bào)告一、設(shè)計(jì)(調(diào)查報(bào)告/論文)題目科研成果申報(bào)系統(tǒng)二、設(shè)計(jì)(調(diào)查報(bào)告/論文)主要容容:系統(tǒng)將科研活動中各個(gè)部分有機(jī)的結(jié)合在一起,利用計(jì)算機(jī)與互聯(lián)網(wǎng)的優(yōu)勢,實(shí)現(xiàn)對科研活動的網(wǎng)絡(luò)式管理基本功能與要求:(1)系統(tǒng)允用戶以申報(bào)員和審核員兩種身份登陸;(2)申報(bào)員登陸后,可以選擇成果申報(bào)、查詢成果申報(bào)、修改個(gè)人信息、課題申報(bào)、查詢課題申報(bào)等功能;(3)審核員登陸后,可以對未入庫課題及成果進(jìn)行審核、可以查詢已入庫的課題、成果以及添加、刪除、用戶信息;(4)通過網(wǎng)絡(luò)來實(shí)現(xiàn)對科研信息的遠(yuǎn)程訪問和與遠(yuǎn)程管理,從而實(shí)現(xiàn)對信息的共享和交流。三、原始資料三、原始資料1.《基于B/S模式管理系統(tǒng)課程設(shè)計(jì)》指導(dǎo)書2.耿祥義.JAVA大學(xué)實(shí)用教程.北京:清華大學(xué)出版社,2009.四、要求的設(shè)計(jì)(調(diào)查/論文)成果1.課程設(shè)計(jì)報(bào)告2.課程設(shè)計(jì)軟件六、主要參考資料六、主要參考資料[1]廣彬等.Java課程設(shè)計(jì)案例精編.第2版.北京:清華大學(xué)出版社,2011.[2]耿祥義.JAVA大學(xué)實(shí)用教程.北京:清華大學(xué)出版社,2009.[3]阿奇主編.《JSP實(shí)用教程》.北京:電子工業(yè)出版社,2008.[4]衛(wèi)琴編著.《Tomcat與JavaWeb開發(fā)技術(shù)詳解》(第2版).北京:電子工業(yè)出版社,2009.指導(dǎo)教師(簽名):20年月日目錄緒論………………………11需求與總體設(shè)計(jì)………………21.1需求分析……………………21.2系統(tǒng)設(shè)計(jì)目標(biāo)………………21.3系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)…………31.4系統(tǒng)采用的開發(fā)技術(shù)簡介…………………31.5可行性分析…………………51.6功能分析……………………62詳細(xì)設(shè)計(jì)…………………82.1數(shù)據(jù)庫設(shè)計(jì)分析……………82.2數(shù)據(jù)流圖……………………82.3數(shù)據(jù)庫設(shè)計(jì)…………………92.4數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)……………………11編碼實(shí)現(xiàn)…………………14申報(bào)員登錄實(shí)現(xiàn)……………14科研課題申報(bào)實(shí)現(xiàn)………………………15個(gè)人信息修改實(shí)現(xiàn)………………………17查詢成果或課題申報(bào)………………………183.5科研審批登錄功能…………193.6JavaBean的設(shè)計(jì)…………21系統(tǒng)測試…………………23系統(tǒng)測試的目的及要求……………………23功能測試……………23測試截圖………………25總結(jié)…………………34..專業(yè)資料專業(yè)資料專業(yè)資料.緒論隨著高校和一些大企業(yè)對科研的重視和廣大教師及科研工作者對科研工作的極大熱情,高校和大企業(yè)的科研有了長足發(fā)展??蒲泄ぷ髡弑救藢蒲行畔⒌墓芾砗透咝<捌髽I(yè)對科研信息的統(tǒng)計(jì)及管理己經(jīng)成為一個(gè)突出的問題??蒲薪y(tǒng)計(jì)管理,一是為了高校和企業(yè)統(tǒng)計(jì)、管理本單位的科研信息情況,二是為科研人員本人管理科研信息。但是,傳統(tǒng)的科研統(tǒng)計(jì),常常是科研管理部門下發(fā)通知各單位用excel或其他表格文本上報(bào)科研信息。從下發(fā)通知到各部門,各部門下發(fā)通知到具體人員,具體人員把本人的科研成果上報(bào)到本部門,各部門統(tǒng)計(jì)科研成果后上報(bào)科研管理部門,往往持續(xù)很長時(shí)間,花費(fèi)大量的人力、物力是一項(xiàng)龐大的工作。每到科研成果統(tǒng)計(jì)的時(shí)間,從科研管理部門到各部門再到具體人員,都感到是一件棘手的事情。而且,由于手工操作,極易出現(xiàn)錯誤影響最后的統(tǒng)計(jì)結(jié)果。具體的科研人員,對自己的科研成果的管理,往往是保存科研成果的相關(guān)書面材料,到統(tǒng)計(jì)時(shí),可能對自己的科研成果情況不能上報(bào)完整,也會影響統(tǒng)計(jì)的準(zhǔn)確性。所以,開發(fā)具有結(jié)構(gòu)設(shè)計(jì)合理科學(xué),有利于科研人員在日常工作中錄入、管理個(gè)人的科研成果信息,有利于學(xué)校和相關(guān)部門或個(gè)人管理、統(tǒng)計(jì)科研成果信息,有利于提高日常管理效率、降低管理成本等優(yōu)點(diǎn)的科研項(xiàng)目成果綜合管理信息系統(tǒng)具有很大的迫切性。在網(wǎng)絡(luò)技術(shù)逐漸滲入社會生活各個(gè)層面的今天,網(wǎng)上統(tǒng)計(jì)、管理科研成果是一個(gè)重要的向。網(wǎng)上統(tǒng)計(jì)、管理科研成果系統(tǒng)是一個(gè)網(wǎng)絡(luò)數(shù)據(jù)庫和Internet處理的實(shí)時(shí)處理系統(tǒng)可以隨時(shí)錄入科研成果,幫助教師管理個(gè)人的科研信息,便科研管理部門管理并準(zhǔn)確統(tǒng)計(jì)結(jié)果??傊W(wǎng)上科研統(tǒng)計(jì)管理系統(tǒng)具有降低統(tǒng)計(jì)成本,解決繁重的統(tǒng)計(jì)工作的優(yōu)點(diǎn)。免去了廣大科研人員的大量上報(bào)的繁瑣工作和相關(guān)人員的統(tǒng)計(jì)工作,統(tǒng)計(jì)等工作由系統(tǒng)自動完成,大大提高了工作效率。1需求與總體設(shè)計(jì)1.1需求分析科研院所的科研開發(fā)、試驗(yàn)分析、生產(chǎn)經(jīng)營等各項(xiàng)活動,每時(shí)每刻都會產(chǎn)生大量信息。這些信息需要在企業(yè)部上下之間、部門之間、總部與分部、外部供應(yīng)商與企業(yè)以及企業(yè)與客戶之間,進(jìn)行輸人、處理、輸出、反饋。但目前,這些重要的信息大部分或被分散保存在各個(gè)互不兼容、自成一體的計(jì)算機(jī)系統(tǒng)中,或被鎖文件柜和抽屜中,甚至沒有形成文字,或者文字資料不完整,從而形成了一個(gè)個(gè)“信息孤島”。本次設(shè)計(jì)想通過建立一套適用于我校科研管理工作的科研項(xiàng)目管理信息平臺,從而實(shí)現(xiàn)對科研項(xiàng)目管理和規(guī)劃。圖1-1總體設(shè)計(jì)圖1.2系統(tǒng)的設(shè)計(jì)目標(biāo)將人員、項(xiàng)目、成果、權(quán)限等管理有機(jī)結(jié)合,形成高效率的科研管理平臺。改善傳統(tǒng)科研成果申報(bào)管理業(yè)務(wù)中存在的諸多弊端,充分發(fā)揮計(jì)算機(jī)軟件的管理優(yōu)勢,有效地提高了科研管理水平和效率。操作簡單便,無論是專業(yè)人員還是非技術(shù)人員,都可以輕松上手。系統(tǒng)始終以為專業(yè)人員開發(fā)便、實(shí)用的管理平臺和為專家教授開發(fā)易用的評審平臺為目標(biāo),注重通過高技術(shù)解決實(shí)際問題。采用先進(jìn)的、開放的客戶機(jī)/服務(wù)器模式(B/S)體系結(jié)構(gòu)。應(yīng)用系統(tǒng)基于Web技術(shù)開發(fā),確保系統(tǒng)具有高超的性能,并使系統(tǒng)具有較高的管理水平。基于SQLserver數(shù)據(jù)庫系統(tǒng),可以對大量科研課題進(jìn)行有效管理,保證數(shù)據(jù)的安全性。1.3系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)在開發(fā)科研成果申報(bào)管理系統(tǒng)之前,需要對其網(wǎng)絡(luò)結(jié)構(gòu)有一個(gè)總體的了解。科研成果申報(bào)管理系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)可以分為三部分:第一部分是面向用戶的客戶端計(jì)算機(jī)。第二部分是存放信息的服務(wù)器,包括數(shù)據(jù)庫服務(wù)器和Web服務(wù)器。第三部分是連接這兩者的Internet。圖1-2網(wǎng)絡(luò)結(jié)構(gòu)1.4系統(tǒng)采用的開發(fā)技術(shù)簡介1.4.1JSP技術(shù)JSP是JavaServerPage的縮寫,是由SUN公司倡導(dǎo),多公司參與,于1999年推出的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP是基于JavaServlet以及整個(gè)Java體系的Web開發(fā)技術(shù),利用這一技術(shù)可以建立安全的、跨平臺的先進(jìn)動態(tài)。同其他開發(fā)技術(shù)相比,JSP具有以下的特點(diǎn):將容的生成和顯示進(jìn)行分離用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識來設(shè)計(jì)和格式化最終頁面,并使用JSP標(biāo)識或者小腳本來生成頁面上的動態(tài)容。生成容的邏輯被封裝在標(biāo)識和JavaBeans組件中,并且捆綁在腳本中,所有的腳本在服務(wù)器端運(yùn)行。由于核心邏輯被封裝在標(biāo)識和JavaBeans中,所以Web管理人員和頁面設(shè)計(jì)者,能夠編輯和使用JSP頁面,而不影響容的生成。在服務(wù)器端,JSP引擎解釋JSP..專業(yè)資料專業(yè)資料.專業(yè)資料標(biāo)識和腳本,生成所請求的容,并且將結(jié)果以HTML(或者XML)頁面的形式發(fā)送回瀏覽器。這既有助于作者保護(hù)自己的代碼,又能保證任基于HTML的Web瀏覽器的完全可用性??芍赜媒M件絕大多數(shù)JSP頁面依賴于可重用的、跨平臺的組件來執(zhí)行應(yīng)用程序所要求的復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者和客戶團(tuán)體所使用?;诮M件的法加速了總體開發(fā)過程,并且使得各種組織在現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。采用標(biāo)識JSP技術(shù)封裝了多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識中進(jìn)行動態(tài)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識能夠訪問和實(shí)例化JavaBeans組件、設(shè)置或者檢索組件屬性、下載Applet以及執(zhí)行用其他法難于編碼和耗時(shí)的功能。適應(yīng)平臺幾乎所有平臺都支持Java,JSP+JavaBeans幾乎可以在所有平臺下通行無阻。從一個(gè)平臺移植到另外一個(gè)平臺,JSP和JavaBeans甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的、與平臺無關(guān)的。數(shù)據(jù)庫連接Java中連接數(shù)據(jù)庫的技術(shù)是JDBC,Java程序通過JDBC驅(qū)動程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取數(shù)據(jù)等操作。Sun公司還開發(fā)了JDBC-ODBCbridge,利用此技術(shù)Java程序可以訪問所有帶有ODBC驅(qū)動程序的數(shù)據(jù)庫。由于JSP頁面的置腳本語言是基于Java的,而且所有的JSP頁面都被編譯成為JavaServlet,所以JSP頁面具有Java技術(shù)的所有好處,包括健壯的存儲管理和安全性。作為Java平臺的一部分,JSP擁有Java編程語言“一次編寫,各處運(yùn)行”的特點(diǎn)。1.4.2javaBeanr技術(shù)JavaBean是一種JAVA語言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無參數(shù)的構(gòu)造器。JavaBean通過提供符合一致性設(shè)計(jì)模式的公共法將部域暴露成員屬性。眾所知,屬性名稱符合這種模式,其他Java類可以通過自身機(jī)制發(fā)現(xiàn)和操作這些JavaBean屬性。JavaBean是一個(gè)可重復(fù)使用的軟件組件。JavaBean是一種Java類,通過封裝屬性和法成為具有某種功能或者處理某個(gè)業(yè)務(wù)的對象,簡稱Bean。由于JavaBean是基于Java語言的,因此JavaBean不依賴平臺,可以實(shí)現(xiàn)代碼的重復(fù)利用、易編寫、易維護(hù)、易安裝??梢栽谌伟惭b了Java運(yùn)行環(huán)境的平臺上使用,而不需要重新編譯。在JSP頁面中,數(shù)據(jù)的處理過程指派給一個(gè)或幾個(gè)Bean來完成,我們只需要在JSP頁面中調(diào)用這個(gè)Bean即可,這樣可以有效的分離靜態(tài)工作部分和動態(tài)工作部分。當(dāng)用戶從瀏覽器訪問系統(tǒng)時(shí),也就是用戶向服務(wù)器發(fā)出請求時(shí),由JSP來接收這次請求,然后調(diào)用JavaBean做具體的數(shù)據(jù)存取邏輯運(yùn)算等處理,把結(jié)果返回給JSP,JSP把得到的結(jié)果通過瀏覽器返回給用戶,系統(tǒng)的整體流程如圖所示。圖1-3JSP+JavaBean開發(fā)模式1.4.3SQLServer技術(shù)MicrosoftSQLServer2000是微軟公司最新推出的,一個(gè)分布式的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有客戶機(jī)/服務(wù)器體系結(jié)構(gòu),采用了Transact-sql的sql語言在客戶機(jī)與服務(wù)器間傳遞客戶機(jī)的請求與服務(wù)器的處理結(jié)果。Transact-SQL強(qiáng)化了原有的SQL關(guān)鍵字以進(jìn)行數(shù)據(jù)的存取、儲存及處理等功能。而且還擴(kuò)充了流程控制指定,可以便的編寫功能強(qiáng)大的存儲過程。這些存儲過程存放在服務(wù)器端,并預(yù)先編譯過,執(zhí)行速度非常塊。觸發(fā)器是一種特殊的存儲過程,用來確保SQLServer數(shù)據(jù)庫引用的完整性。開發(fā)人員可以建立插入、刪除和更新觸發(fā)器以控制相關(guān)的表格中對數(shù)據(jù)列的插入、刪除和更新。還可以使用規(guī)則(Rule)、缺?。╠efault)以及限制(Constraints),來協(xié)助將新的數(shù)值套用到表格中去。SQLServer2000能夠滿足今天的商業(yè)環(huán)境要求不同類型的數(shù)據(jù)庫解決案。它是一種應(yīng)用廣泛的數(shù)據(jù)庫管理系統(tǒng),具有多顯著的優(yōu)點(diǎn):易用性、適合分布式組織的可伸縮性、用于決策支持的數(shù)據(jù)倉庫功能、與多其他服務(wù)器軟件緊密關(guān)聯(lián)的集成性、良好的性價(jià)比等。從數(shù)據(jù)管理和分析角度看,將原始數(shù)據(jù)轉(zhuǎn)化為商業(yè)智能和充分利用Web帶來的機(jī)會非常重要。作為一個(gè)完備的數(shù)據(jù)庫和數(shù)據(jù)分析包,SQLServer2000為快速開發(fā)新一代企業(yè)級商業(yè)應(yīng)用程序,為企業(yè)贏得核心競爭優(yōu)勢打開了勝利之門。作為重要的基準(zhǔn)測試可伸縮性和速度獎的記錄保持者,SQLServer2000是一個(gè)具備完全Web支持的數(shù)據(jù)庫產(chǎn)品,提供了對可擴(kuò)展標(biāo)記語言(XML)的核心支持以及在Internet上對防火墻外進(jìn)行查詢的能力。MicrosoftSQLServer2000數(shù)據(jù)庫管理系統(tǒng)包括:SQLServer管理工具的使用、SQLServer的安全性與權(quán)限管理、服務(wù)器LoGin\ID的管理、服務(wù)器職能組的管理、數(shù)據(jù)庫用戶的管理、數(shù)據(jù)庫職能組的管理。1.5可行性分析1.5.1技術(shù)可行性分析JavaServerPages(JSP)技術(shù)提供了一種建立動態(tài)網(wǎng)頁的簡單法,而且也簡化了構(gòu)造Web程序的工作。JavaServerPages技術(shù)可以讓W(xué)eb開發(fā)人員和設(shè)計(jì)人員非常容易的創(chuàng)建和維護(hù)動態(tài)網(wǎng)頁。作為JavaTM技術(shù)的一部分,JSP能夠快速開發(fā)出基于Web、獨(dú)立于平臺的應(yīng)用程序。一個(gè)JSP網(wǎng)頁就是在HTML網(wǎng)頁中包含了能夠生成動態(tài)容的可執(zhí)行應(yīng)用程序代碼。此應(yīng)用程序可能包含JavaBeanTM,JDBCTM 對象,EnterpriseJavaBeanTM(EJB)和RemoteMethodInvocation(RMI)對象,所有的部分都可以非常容易的從JSP網(wǎng)頁上訪問到。例如,一個(gè)JSP網(wǎng)頁可以包含HTML代碼所顯示的靜態(tài)文.專業(yè)資料專業(yè)資料.專業(yè)資料本和圖像,也可以調(diào)用一個(gè)JDBC對象來訪問數(shù)據(jù)庫;當(dāng)網(wǎng)頁顯示到用戶界面上以后,JSP頁面將包含靜態(tài)HTML容和從數(shù)據(jù)庫中找到相應(yīng)的動態(tài)信息。在JSP網(wǎng)頁中,要把用戶界面和應(yīng)用程序分開可以考慮在網(wǎng)頁設(shè)計(jì)人員和開發(fā)人員之間執(zhí)行一個(gè)非常便的授權(quán)任務(wù)。它也允開發(fā)人員去建立靈活的代碼,從而非常容易的進(jìn)行更新和重復(fù)利用。由于JSP網(wǎng)頁能夠根據(jù)需要自動進(jìn)行編譯,Web設(shè)計(jì)人員無須重新編譯應(yīng)用程序邏輯就可以改變表述代碼。這也使得JSP與Javaservlet相比成為一種可以更靈活生成動態(tài)Web容的法。1.5.2經(jīng)濟(jì)可行性分析傳統(tǒng)的科研申報(bào)系統(tǒng)由信函等式提出書面請求,人工記錄申請容,分類申報(bào)類型,審批是否可行,然后以信函等式把審批結(jié)果反饋給申報(bào)人。這些看似簡單的工作,當(dāng)申報(bào)項(xiàng)目越來越多的時(shí)候,會既浪費(fèi)人力又浪費(fèi)時(shí)間。用網(wǎng)絡(luò)實(shí)現(xiàn)這些功能是簡單可行的,可以大大節(jié)省人力資源,同時(shí)具有高效性,使申報(bào)期縮短,并且給申報(bào)人提供網(wǎng)絡(luò)瀏覽,網(wǎng)上申請等更多的便,使申報(bào)變的簡單。1.5.3操作可行性分析自從我國正式接入互聯(lián)網(wǎng)以來,短短的數(shù)年時(shí)間,互聯(lián)網(wǎng)在我國得到了飛速的發(fā)展。據(jù)中國互聯(lián)網(wǎng)信息中心(CNNIC)調(diào)查顯示,我國上網(wǎng)用戶人數(shù)每半年都以超過50%的速度增長。人們在網(wǎng)上不僅進(jìn)行購物、交流等一系列娛樂活動,而且還在網(wǎng)上開展工作,如科研申報(bào)、科研審批等。科研成果申報(bào)管理系統(tǒng)的操作界面簡潔明了,對不同的用戶進(jìn)行了精細(xì)的功能模塊劃分。不同的用戶在登陸系統(tǒng)后,無需進(jìn)行再進(jìn)一步的操作,相應(yīng)的功能菜單就可以在界面上完全的顯示。這些都有助于進(jìn)行第一次申報(bào)工作的申報(bào)員操作。1.6功能分析根據(jù)需求分析能夠?qū)⑾到y(tǒng)劃分為申報(bào)流程、科研申報(bào)、科研審批以及信息查詢大功能模塊。其中各個(gè)功能模塊具體說明如下:申報(bào)流程模塊:該模塊主要負(fù)責(zé)介紹科研申報(bào)的流程,對于首次使用,以及不熟悉本申報(bào)系統(tǒng)的用戶提供說明??蒲猩陥?bào)模塊:該模塊主要負(fù)責(zé)科研的申報(bào),包括讀成果申報(bào)、課題申報(bào)、修改個(gè)人信息、查詢成果申報(bào)以及查詢課題申報(bào)五個(gè)子模塊。科研審批模塊:該模塊主要負(fù)責(zé)科研申報(bào)的審批,包括未入庫課題、未入庫成果、已入庫課題、已入庫成果、查看用戶信息以及添加用戶信息六個(gè)子模塊。信息模塊:該模塊主要負(fù)責(zé)課題信息的查詢,包括課題查詢以及成果查詢兩個(gè)子模塊??蒲谐晒陥?bào)管理系統(tǒng)科研成果申報(bào)管理系統(tǒng)成果申報(bào)課題申報(bào)修改個(gè)人信息未入庫成果添加用戶信息查詢申報(bào)信息已入庫成果查看用戶信息成果查詢申報(bào)流程科研申報(bào)未入庫課題查詢課題申報(bào)已入庫課題課題查詢信息查詢科研審批圖1-4系統(tǒng)模塊總圖.2詳細(xì)設(shè)計(jì)2.1數(shù)據(jù)庫設(shè)計(jì)分析2.1.1數(shù)據(jù)庫設(shè)計(jì)基礎(chǔ)數(shù)據(jù)庫設(shè)計(jì)是數(shù)據(jù)庫生命期中非常重要的階段,它先于除需求收集和分析之外的所有其他階段。如果數(shù)據(jù)庫設(shè)計(jì)不規(guī)得到的數(shù)據(jù)庫很可能不能滿足用戶的性能要求它自身就有兩個(gè)缺點(diǎn)存在數(shù)據(jù)不良和使用不必要的磁盤空間。數(shù)據(jù)的規(guī)化是測試數(shù)據(jù)庫中存在的表發(fā)現(xiàn)表的列中間某些依賴性的過程。如果存在這樣的依賴性該表被重新構(gòu)造成多個(gè)(通常是兩個(gè))表消除任列依賴。因此在數(shù)據(jù)庫的設(shè)計(jì)過程中要格按照先進(jìn)的設(shè)計(jì)思想進(jìn)行數(shù)據(jù)庫設(shè)計(jì)(1)面向?qū)ο蟮臄?shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)在系統(tǒng)分析過程中我們確定了系統(tǒng)的對象模型列出了系統(tǒng)所涉及到的對象類及其..專業(yè)資料專業(yè)資料專業(yè)資料圖2-1數(shù)據(jù)流圖2.3數(shù)據(jù)庫設(shè)計(jì)由此針對系統(tǒng)需要實(shí)現(xiàn)的功能,故可以進(jìn)行如下簡單的設(shè)計(jì)E-R圖圖2-2用戶E-R圖圖2-3課題E-R圖
圖2-4系統(tǒng)聯(lián)系實(shí)例圖2.4數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)tb_Person人員信息表,用于保存申報(bào)和審批人員的基本信息圖2-5tb_Person人員信息表tb_Task課題申報(bào)表,用于保存申報(bào)課題的基本信息圖2-6tb_Task課題申報(bào)表(3)tb_Result成果信息表,用于保存申報(bào)成果的基本信息圖2-7tb_Result成果信息表(4)tb_Con關(guān)系表,用于保存課題和成果名稱圖2-8tb_Con關(guān)系表..專業(yè)資料專業(yè)資料.專業(yè)資料3編碼實(shí)現(xiàn)3.1申報(bào)員登錄實(shí)現(xiàn)在登錄窗口中為了減少輸入的誤差和防止其他人非法登錄,在登錄窗口中對輸入文本框中的信息進(jìn)行判斷,檢驗(yàn)輸入的信息不能為空。登錄界面中的函數(shù)check()代碼如下:functioncheck(){if(.value==""){alert("請輸入你的登錄名稱");.focus()//;法focus()使當(dāng)前的文本框獲得焦點(diǎn)returnfalse;}if(form1.password.value==""){alert("請輸入你的密碼");form1.password.focus();returnfalse;}}當(dāng)用戶輸入空白信息時(shí),check()函數(shù)調(diào)用法alert()輸出相對應(yīng)的反饋信息,并調(diào)用focus()法使當(dāng)前的文本框獲得焦點(diǎn)。為了使計(jì)算機(jī)能夠識別用戶的合法性,判斷申報(bào)員ID和密碼是否有效,當(dāng)填入申報(bào)員ID和密碼不為空時(shí),單擊“登錄”按鈕,系統(tǒng)自動從數(shù)據(jù)庫人員信息表中判斷是否存在相同的申報(bào)員ID和密碼,如果有則進(jìn)入系統(tǒng),如果不存在則提示用戶名或密碼有錯誤,在程序中上述功能是有check.jsp實(shí)現(xiàn)的,關(guān)鍵代碼如下:<%Condbcon=newCondb();//創(chuàng)建一個(gè)連接數(shù)據(jù)庫的對象Showshow=newShow();//創(chuàng)建一個(gè)系統(tǒng)提示出錯頁面的對象//置對象request調(diào)用getParameter()法獲得頁面框中的信息Stringname=request.getParameter("name");Stringpassword=request.getParameter("password");Stringsql="select*fromtb_PersonwhereUsername='"+name+andPassword='"+password+"'";//定義查找語句sqlResultSetrs=con.executeQuery(sql);//連接對象con調(diào)用executeQuery()法實(shí)現(xiàn)對數(shù)據(jù)庫的操作,并將操作結(jié)果返回給一個(gè)結(jié)果集rsif(rs.next()){//將游標(biāo)移動到下一行intstr=rs.getInt(11);if(str==1){//置對象session調(diào)用法setAttribute將信息添加到session對象中response.sendRedirect("index.htm");//跳轉(zhuǎn)到index.htm頁面}else{out.print(show.errorBox("非法的管理員名請不要登錄","錯誤信息"));out.close();}}else{%><scriptlanguage="javascript">alert("用戶名或密碼錯誤");history.back();//關(guān)閉與數(shù)據(jù)庫的連接</script><%}3.2科研課題申報(bào)實(shí)現(xiàn)為了確保申報(bào)科研項(xiàng)目的唯一性,在數(shù)據(jù)表單提交時(shí)就對數(shù)據(jù)表中申報(bào)的項(xiàng)目名稱進(jìn)行驗(yàn)證。如果有相同的名稱,提示用戶此科研科目已經(jīng)申報(bào),否則提示申報(bào)成功。用戶輸入完相關(guān)信息后單擊“填報(bào)存盤”按鈕,就會提交到文件名為check.jsp頁面中。關(guān)鍵代碼如下:Strsterr=newStr();//創(chuàng)建一個(gè)Str的對象Condbcon=newCondb();//創(chuàng)建一個(gè)連接數(shù)據(jù)庫的對象……inttemp=0;intinttemp=0;//判斷是否有相同的項(xiàng)目Stringsql="selectResultnamefromtb_ResultwhereResultname='"+resultname+"'";//數(shù)據(jù)庫連接對象con調(diào)用法executeQuery()對數(shù)據(jù)庫進(jìn)行添加操作ResultSetrs=con.executeQuery(sql);if(rs.next()){//游標(biāo)移動到rs中的第一行,每調(diào)用一次next()法,游標(biāo)向下移動一行inttemp=0;%><center><p><fontsize="+2"color="#0033FF"face="華文行楷"><%out.print("此成果已經(jīng)立項(xiàng)你不能申報(bào)!");%><ahref="resultadd.htm">返回</a></font></p></center><%}else{Stringstr="insertintotb_Result(Resultform,Resultname,Resultword,Resultnum,Subject,Resultype,Resultlan,Dattime,Workname,Test,Demo,Result,Province,keyid,Text,Booker,Publish)values('"+resultform+"','"+resultname+"','"+resultword+"','"+resultnum+"','"+subject+"','"+resultype+"','"+resultLan+"','"+dattime+"','"+workname+ "','"+test+"','"+Demo+"','"+0+"','"+province+"','"+key+"','"+textID+"','"+booker+"','"+publish+"')";temp=con.executeUpdate(str);//定義更新數(shù)據(jù)庫語句strsql,session調(diào)用法getAttribute()取出保存在會話中的值Stringstrsql="insertintotb_Con(GroupId,TaskRname)values('"+session.getAttribute("groupid")+"','"+resultname+"')con.executeUpdate(strsql);}if(temp>0){%><center><p><fontsize="+3"color="#0033ff"face="華文行楷"><%out.println("申報(bào)成功");%><ahref="resultadd.htm">返回</a></font></p></center><%}if(temp<0){out.println("系統(tǒng)故障請稍候重新來過");}con.close();由于用戶在申報(bào)項(xiàng)目時(shí),填寫的信息都是中文字符,所以在設(shè)計(jì)時(shí)必須創(chuàng)建一個(gè)處理中文字符亂碼的對象steer。當(dāng)獲得用戶所申報(bào)項(xiàng)目的具體信息時(shí),定義一條檢查數(shù)據(jù)庫中是否具有相同項(xiàng)目的sql語句。數(shù)據(jù)庫連接對象con調(diào)用法executeQuery()對數(shù)據(jù)庫進(jìn)行操作,并返回一個(gè)ResultSet對象rs,這樣就對用戶輸入的申報(bào)項(xiàng)目名稱進(jìn)行了判斷。如果申報(bào)的項(xiàng)目在數(shù)據(jù)庫中已經(jīng)存在,系統(tǒng)會提示用戶不能申報(bào)此項(xiàng)目,否則對象con調(diào)用法executeUpdate()對數(shù)據(jù)庫中的信息進(jìn)行更新,并返回一個(gè)temp值。然后對temp的值進(jìn)行判斷,如果temp>0,則out對象調(diào)用法print()輸出項(xiàng)目申報(bào)成功的信息。在對數(shù)據(jù)庫進(jìn)行完操作后,關(guān)閉與數(shù)據(jù)庫的連接。3.3個(gè)人信息修改實(shí)現(xiàn)由于管理員在為用戶分配完權(quán)限后,不可能對用戶個(gè)人信息進(jìn)行詳細(xì)的錄入,所以在每一個(gè)用戶登錄本系統(tǒng)時(shí)推薦用戶首先修改個(gè)人信息然后再進(jìn)行申報(bào)。這樣可以防止他人非法盜用,給工作帶來不必要的麻煩。當(dāng)用戶正常登錄后,單擊“修改個(gè)人信息”,系統(tǒng)會自動從人員信息表中取出相應(yīng)的個(gè)人信息顯示在頁面中。當(dāng)用戶輸入完個(gè)人信息后單擊“提交”按鈕把用戶填的基本信息更新到人員信息表中,文件名為Putin.jsp。關(guān)鍵代碼如下:Condbcon=newCondb();//定義一個(gè)數(shù)據(jù)庫連接對象//置對象request調(diào)用getParameter()讀取個(gè)人信息框中的信息StringUsername=request.getParameter("Username");StringPassword=request.getParameter("Password");StringOffice=request.getParameter("Office");StringName=request.getParameter("Name");StringAge=request.getParameter("Age");StringBusiness=request.getParameter("Business");StringPost=request.getParameter("Post");StringDattime=request.getParameter("Datetime");StringBio=request.getParameter("Bio");//定義數(shù)據(jù)庫更新語句StrupdStringStrupd="updatetb_PersonsetUsername='"+Username+"',Password='"+Password+"',Office='"+Office+"',Name='"+Name+"',Age='"+Age+"',Business='"+Business+"',Post='"+Post+"',Datetime='"+Dattime+"',Bio='"+Bio+"'whereUsername='"+session.getAttribute("name")+"'";//數(shù)據(jù)庫連接對象con調(diào)用法inttemp=con.executeUpdate(Strupd);if(temp==1){%><scriptlanguage="javascript">alert("數(shù)據(jù)更新成功");</script><%}3.4查詢成果或課題申報(bào)科研成果申報(bào)成功后,可以在一段時(shí)間查詢審批后的結(jié)果,也可以根據(jù)成果的名稱進(jìn)行查詢,用戶可以根據(jù)成果的名稱進(jìn)行查詢也可以模糊查詢某一時(shí)間段的成果入庫情況,利用SQL語句中的關(guān)鍵字“betweenand”和“or”對成果入庫情況進(jìn)行選擇性判斷查詢。當(dāng)輸入合法的相關(guān)信息后,單擊“提交”按鈕,就會把信息提交到文件為resultsql.jsp頁面中。關(guān)鍵代碼如下:Condbcon=newCondb();Stringdatetime=request.getParameter("datetime");Stringdattime=request.getParameter("dattime");Stringresultname=request.getParameter("resultname");//利用SQL語句中的關(guān)鍵字“betweenand”和“or”進(jìn)行選擇性判斷查詢Stringsql="select*fromtb_ResultwhereDattimebetween'"+datetime+"'and'"+dattime+"'andResultnamelike'%"+resultname+"%'";//數(shù)據(jù)庫連接對象con調(diào)用法executeQuery()查詢數(shù)據(jù)庫,并將結(jié)果返回給Result對象rsResultSetrs=con.executeQuery(sql);intnum=0;while(rs.next()){//讀取標(biāo)識符,判斷項(xiàng)目是否入庫num++;%><tr><tdheight="20"align="center"><%=num%></td><tdalign="center"><%=rs.getString(1)%> </td><tdalign="center"><%=rs.getString(2)%> </td><tdalign="center"><%=rs.getString(4)%> </td><tdalign="center"><%=rs.getDate(8)%> </td><tdalign="center"><%=rs.getString(10)%> </td><tdheight="20"colspan="11"align="center"><%Stringstr=rs.getString(12);if(str.equals"0"())out.println"否(");if(str.equals"1"())out.println"是(");%></td></tr><%}con.close();3.5科研審批登錄功能科研審批模塊是對科研項(xiàng)目的審核,評估申報(bào)的科研項(xiàng)目是否具有入庫上報(bào)的可能性,科研審批模塊包括:審批員登錄、未入庫課題及成果、已入庫課題及成果、查詢用戶信息、添加用戶信息7部分??蒲袑徟撁嫱ㄟ^點(diǎn)擊主頁可研審批標(biāo)簽進(jìn)入審批員登陸頁面。審批員由于身份的特殊性可以用雙重身份登錄申報(bào)系統(tǒng)和審批系統(tǒng),審批員可以對申報(bào)員申報(bào)的科研項(xiàng)目進(jìn)行審核。用戶在首頁中單擊“科研審批”超,就會打開審批員登錄頁面,審批員輸入身份ID和密碼后單擊“提交”按鈕,就會把信息提交到身份驗(yàn)證頁面,審批員和申報(bào)員的登錄流程是類似的,在這里不作過多的介紹。唯一的區(qū)別在與權(quán)限設(shè)置的不同,審批員的權(quán)限設(shè)置為“1”,而申報(bào)員的權(quán)限設(shè)置為“0”,所以在驗(yàn)證頁面中,需要對用戶的權(quán)限進(jìn)行判斷,關(guān)鍵代碼如下:Condbcon=newCondb();//創(chuàng)建一個(gè)連接數(shù)據(jù)庫的對象Showshow=newShow();//創(chuàng)建一個(gè)系統(tǒng)提示出錯頁面的對象//置對象request調(diào)用getParameter()法獲得頁面框中的信息Stringname=request.getParameter("name");Stringpassword=request.getParameter("password");Stringsql="select*fromtb_PersonwhereUsername='"+name+"'andPassword='"+password+"'";//定義查找語句sqlResultSetrs=con.executeQuery(sql);//連接對象con調(diào)用executeQuery()法實(shí)現(xiàn)對數(shù)據(jù)庫的操作,并將操作結(jié)果返回給一個(gè)結(jié)果集rsif(rs.next()){//將游標(biāo)移動到下一行intstr=rs.getInt(11);if(str==1){//置對象session調(diào)用法setAttribute將信息添加到session對象中response.sendRedirect("index.htm");//跳轉(zhuǎn)到index.htm頁面}else{out.print(show.errorBox("非法的管理員名請不要登錄","錯誤信息"));out.close();}}else{%><scriptlanguage="javascript">alert("用戶名或密碼錯誤");history.back();//關(guān)閉與數(shù)據(jù)庫的連接</script><%}con.close();3.6JavaBean的設(shè)計(jì)與數(shù)據(jù)庫連接的JavaBean設(shè)計(jì)publicclassCondb{privatestaticStringdriverClass=".microsoft.sqlserver.jdbc.SQLServerDriver";privatestaticStringurl="jdbc:sqlserver://:1433;DatabaseName=db_Scenince;user=sa;password=123456";privatestaticConnectioncon=null;//Connection對象privatestaticResultSetrs=null;//建立一個(gè)記錄集publicCondb(){try{Class.forName(driverClass);//用classforname法加載驅(qū)動程序類con=DriverManager.getConnection(url);}catch(Exceptione){System.err.println(e);}}publicResultSetexecuteQuery(Stringsql){//可以執(zhí)行添加刪等操作try{Statementstmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY );rs=stmt.executeQuery(sql);}catch(SQLExceptioner){System.err.println(er.getMessage());}returnrs;}publicintexecuteUpdate(Stringsql){//數(shù)據(jù)庫的更新操作intresult=0;try{Statementstmt=con.createStatement();result=stmt.executeUpdate(sql);}catch(SQLExceptionex){System.err.println(ex.getMessage());}returnresult;}publicvoidclose(){try{if(con!=null)con.close();}catch(Exceptione){System.out.print(e);}try{if(rs!=null)rs.close();}catch(Exceptione){System.out.println(e);}}4系統(tǒng)測試4.1系統(tǒng)測試的目的及要求測試的要要基于開發(fā)者和使用者雙的立場,以兩種不同的測試目的對設(shè)計(jì)成果進(jìn)行測試檢查。從用戶的角度出發(fā),普遍希望通過軟件測試暴露軟件中隱藏的錯誤和缺陷,界面友好度等因素以考慮是否可以接受該產(chǎn)品。而從軟件開發(fā)者的角度出發(fā),則希望測試成為表明軟件產(chǎn)品能否成功運(yùn)作以及對用戶可能出現(xiàn)的非常規(guī)操作或者錯誤操作有無正確反應(yīng),程序中往往存在著多預(yù)料不到的問題,可能會被疏漏,多隱藏的錯誤只有在特定的環(huán)境下才可能暴露出來。如果不把著眼點(diǎn)放在盡可能查找錯誤這樣一個(gè)基礎(chǔ)上,這些隱藏的錯誤和缺陷就查不出來,會遺留到運(yùn)行階段中去。如果站在用戶的角度,替他們設(shè)想,就應(yīng)當(dāng)把測試活動的目標(biāo)對準(zhǔn)揭露程序中存在的錯誤。在選取測試用例時(shí),考慮那些易于發(fā)現(xiàn)程序錯誤的數(shù)據(jù),驗(yàn)證該軟件已正確地實(shí)現(xiàn)了用戶的要求,確立人們對軟件質(zhì)量的信心。鑒于此,就軟件測試目的提出以下觀點(diǎn):測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤;一個(gè)好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;一個(gè)成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。測試的目標(biāo)是想以最少的時(shí)間和人力找出軟件中潛在的各種錯誤和缺陷。如果成功地實(shí)施了測試,就能夠發(fā)現(xiàn)軟件中的錯誤。測試的附帶收獲是,它能夠證明軟件的功能和性能與需求說明相符。此外,實(shí)施測試收集到的測試結(jié)果數(shù)據(jù)為可靠性分析提供了依據(jù)。根據(jù)這樣的測試目的,軟件測試的原則應(yīng)該是:(1)應(yīng)當(dāng)把“盡早地和不斷地進(jìn)行軟件測試”作為軟件開發(fā)者的座右銘。(2)測試用例應(yīng)由測試輸入數(shù)據(jù)和與之對應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。(3)程序員應(yīng)避免檢查自己的程序。(4)在設(shè)計(jì)測試用例時(shí),應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。(5)充分注意測試中的群集現(xiàn)象。(6)格執(zhí)行測試計(jì)劃,排除測試的隨意性。(7)應(yīng)當(dāng)對每一個(gè)測試結(jié)果做全面檢查。(8)妥善保存測試計(jì)劃,測試用例,出錯統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供便。4.2功能測試功能性測試,主要容:輸入框測試:輸入文字或者字符之后能夠正常的顯示,沒有出現(xiàn)不想要的文字或者字符,能否對應(yīng)檢驗(yàn)數(shù)據(jù)庫中的字符以便判斷身份。按鈕操作測試:能否正常進(jìn)行相應(yīng)的操作,進(jìn)行正確事件的響應(yīng)。功能功能A描述用戶登錄功能用例目的用例目的用戶使用特定登錄密碼的功能能否實(shí)現(xiàn)前提條件填寫用戶的用戶名和密碼輸入/動作期望的輸出/相應(yīng)實(shí)際情況輸入正確
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)參考:明清時(shí)期吉祥圖像基因譜系及其數(shù)智化構(gòu)建研究
- 歷史人教版七年級上冊歷史期末試卷及答案
- 二零二五年度影視基地場地租賃合同BF0602執(zhí)行規(guī)范5篇
- 二零二五獼猴桃種植基地土地租賃與農(nóng)產(chǎn)品溯源系統(tǒng)合同4篇
- 二零二五年度特色農(nóng)產(chǎn)品品牌授權(quán)許可合同3篇
- 二零二五年度智慧醫(yī)療PPP項(xiàng)目合作合同文本3篇
- 二零二五年度房地產(chǎn)項(xiàng)目承包經(jīng)營合同違約賠償約定3篇
- 二零二五版摩托車整車出口貿(mào)易合同8篇
- 2025年度個(gè)人養(yǎng)老金投資管理合同3篇
- 2025年個(gè)人產(chǎn)權(quán)式酒店買賣合同樣本4篇
- 無人化農(nóng)場項(xiàng)目可行性研究報(bào)告
- 《如何存款最合算》課件
- 社區(qū)團(tuán)支部工作計(jì)劃
- 拖欠工程款上訪信范文
- 2024屆上海市金山區(qū)高三下學(xué)期二模英語試題(原卷版)
- 學(xué)生春節(jié)安全教育
- 《wifi協(xié)議文庫》課件
- 《好東西》:女作者電影的話語建構(gòu)與烏托邦想象
- 教培行業(yè)研究系列(七):出國考培的再研究供需變化的新趨勢
- GB/T 44895-2024市場和社會調(diào)查調(diào)查問卷編制指南
- 高三日語一輪復(fù)習(xí)助詞「で」的用法課件
評論
0/150
提交評論