【畢業(yè)論文】問卷調(diào)查系統(tǒng)的設計與實現(xiàn)_第1頁
【畢業(yè)論文】問卷調(diào)查系統(tǒng)的設計與實現(xiàn)_第2頁
【畢業(yè)論文】問卷調(diào)查系統(tǒng)的設計與實現(xiàn)_第3頁
【畢業(yè)論文】問卷調(diào)查系統(tǒng)的設計與實現(xiàn)_第4頁
【畢業(yè)論文】問卷調(diào)查系統(tǒng)的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

問卷調(diào)查系統(tǒng)的設計與實現(xiàn)PAGE―PAGEI―摘要電子問卷調(diào)查方式已經(jīng)成為一種流行并且便捷的調(diào)查方式,它具有調(diào)查范圍廣,信息量大,可挑選余地大,保密效果好,費用低等優(yōu)勢。因此,電子問卷調(diào)查勢必成為社會發(fā)展不可缺少的一部分。本系統(tǒng)采用JAVA語言開發(fā),主要采用Struts,Hibernate,Spring三大框架技術。其主要功能包括電子問卷設計和問卷活動的信息采集、問卷反饋信息記錄、并支持權(quán)限的控制以及強大的系統(tǒng)管理員的功能等等。本文闡述了在線調(diào)查方式的優(yōu)勢,并對所做軟件的需求、設計及實現(xiàn)過程做了詳細介紹?!娟P鍵詞】問卷調(diào)查在線JAVA

DesignandImplementationofQuestionnaireDesignSystem【Abstract】Electronicquestionnairehasbecomeapopularandconvenientmethodofinvestigation,ithasinvestigatedawiderangeoflargeamountofinformationcanberoomforalargeselection,confidentiality,effectiveandlowcostadvantages.Therefore,theelectronicsurveywillbecomeanindispensablepartofsocialdevelopment.ThesystemisdevelopedbyJAVAlanguage,mainlyinStruts,Hibernate,Springframeworkofthethreetechnologies.Itsmainfeaturesincludeelectronicquestionnairedesignandsurveyactivities,informationcollection,questionnairefeedbackrecord,andsupporttherightsofcontrolandpowerfulfeaturesforsystemadministratorsandsoon.Thispaperdescribestheadvantagesofonlinesurveymethods,andthedemandmadebythesoftware,designandimplementationprocessdescribedindetail.【Keywords】questionnaire,Online,JAVA

目錄TOC\o"1-2"\h\z\u摘要 I第一章緒論 11.1課題來源 11.2國內(nèi)現(xiàn)狀 1第二章需求分析 52.1系統(tǒng)定義 52.2功能需求 52.3數(shù)據(jù)需求 6第三章數(shù)據(jù)庫設計 73.1數(shù)據(jù)庫的概念 73.2數(shù)據(jù)庫的選擇 73.3數(shù)據(jù)庫表的描述 7第四章技術介紹 224.1JAVA開發(fā)語言的選擇 224.2MVC設計模式 244.3Struts,Hibernate,Spring技術 254.4SQL語言 274.5開發(fā)環(huán)境 27第五章系統(tǒng)實現(xiàn) 295.1總體架構(gòu)及實現(xiàn) 295.2查看問卷信息 315.3發(fā)送通知 345.4問卷導入導出功能 365.5問卷查看 395.6問卷分析代碼實現(xiàn) 46結(jié)論 52致謝 53參考文獻 54―PAGE49―緒論1.1課題來源問卷調(diào)查的目的,是要通過問卷上的封閉式問題和開放式問題了解調(diào)查對象:市場調(diào)查的目的是為了收集足夠的、真實的和有效的信息為企事業(yè)單位等的其他活動和策略所服務,為管理部門提供參考依據(jù)。利用市場調(diào)查的部門可以是企業(yè)、公司、團體以及任何一切企事業(yè)單位的管理決策層或個人。市場調(diào)查的目的可能是為了制定長遠性的戰(zhàn)略性規(guī)劃,也可能是為制定某階段或針對某問題的具體政策或策略,提供參考依據(jù)。研究可以是學術性的,也可以是實用性的。1.2國內(nèi)現(xiàn)狀市場調(diào)查的目的在于從零散的市場信息中收集、整理和提煉出有價值的信息和數(shù)據(jù)。問卷調(diào)查是市場調(diào)查的一種形式、問卷調(diào)查相對而言得到的回答會更加準確?;谲浖恼{(diào)查,是整合企業(yè)業(yè)務部門的相關需求,有針對性的對相關人員進行問卷調(diào)查。這樣能夠更好的是企業(yè)對于所期望調(diào)查的人員,部門,以及有針對性的對已限定范圍進行期望回饋。網(wǎng)上市場調(diào)查的優(yōu)勢有:1、便捷性和低費用(1)網(wǎng)上市場調(diào)查可節(jié)省傳統(tǒng)的市場調(diào)查中所耗費的大量人力和物力。(2)在網(wǎng)絡上進行調(diào)查,只需要一臺能上網(wǎng)的計算機即可。(3)調(diào)查者在企業(yè)站點上發(fā)出電子調(diào)查問卷,網(wǎng)民自愿填寫,然后通過統(tǒng)計分析軟件對訪問者反饋回來的信息進行整理和分析。(4)網(wǎng)上市場調(diào)查在收集過程中不需要派出調(diào)查人員,不受天氣和距離的限制,不需要印刷調(diào)查問卷,調(diào)查過程中最繁重、最關鍵的信息收集和錄入工作將分布到眾多網(wǎng)上用戶的終端上完成。(5)線上調(diào)查可以是無人值守和不間接地接受調(diào)查填表,信息檢驗和信息處理工作均由計算機自動完成。2、交互性和充分性網(wǎng)絡的最大優(yōu)勢是交互性。這種交互性在網(wǎng)上市場調(diào)研中體現(xiàn)在如下兩點:(1)在網(wǎng)上調(diào)查時,被訪問者可以及時就問卷相關的問題提出自己的看法和建議,可減少因問卷設計不合理而導致的調(diào)查結(jié)論出現(xiàn)偏差等問題。(2)被訪問者可以自由地在網(wǎng)上發(fā)表自己的看法,同時沒有時間的限制。而傳統(tǒng)的市場調(diào)研是不可能做到這些的,例如,面談法中的路上攔截調(diào)查,它的調(diào)查時間較短,不能超過10分鐘,否則被調(diào)查者肯定會不耐煩,因而對訪問調(diào)查員的要求非常高。3、調(diào)查結(jié)果的可靠性和客觀性由于企業(yè)站點的訪問者一般都對企業(yè)產(chǎn)品有一定的興趣,所以這種基于顧客和潛在顧客的市場調(diào)研結(jié)果是客觀和真實的,它在很大程度上反映了消費者的消費心態(tài)和市場發(fā)展(1)被調(diào)查者在完全自愿的原則下參與調(diào)查,調(diào)查的針對性更強。而傳統(tǒng)的市場調(diào)查中的面談法中的攔截詢問法,實質(zhì)上是帶有一定的“強制性”的。(2)調(diào)查問卷的填寫是自愿的,不是傳統(tǒng)調(diào)查中的“強迫式”,填寫者一般對調(diào)查內(nèi)容有一定的興趣,回答問題相對認真,所以問卷填寫可靠性高。(3)網(wǎng)上市場調(diào)查可以避免傳統(tǒng)市場調(diào)研中人為因素所導致的調(diào)查結(jié)論的偏差,被訪問者是在完全獨立思考的環(huán)境中接受調(diào)查的,能最大限度地保證調(diào)查結(jié)果的客觀性。4、無時空和地域的限制網(wǎng)上市場調(diào)查可以24小時全天候進行,這與受區(qū)域和時間制約的傳統(tǒng)的市場調(diào)查方式有很大的不同。5、可檢驗性和可控制性利用Internet進行網(wǎng)上調(diào)查收集信息,可以有效地對采集信息的質(zhì)量實施系統(tǒng)的檢驗和控制。(1)網(wǎng)上市場調(diào)查問卷可以附加全面規(guī)范的指標解釋,有利于消除因?qū)χ笜死斫獠磺寤蛘{(diào)查員解釋口徑不一而造成的調(diào)查偏差。(2)問卷的復核檢驗由計算機依據(jù)設定的檢驗條件和控制措施自動實施,可以有效地保證對調(diào)查問卷的100%的復核檢驗,保證檢驗與控制的客觀公正性。(3)通過對被調(diào)查者的身份驗證技術可以有效地防止信息采集過程中的舞弊行為。1.3研究意義問卷調(diào)查調(diào)查的范圍很廣,任何一種社會現(xiàn)象都可以作為我們研究性學習的內(nèi)容。然而,社會調(diào)查報告還是有著一定的程式。一般來說,社會調(diào)查報告應該包含以下一些內(nèi)容:調(diào)查的目的、調(diào)查的方法、調(diào)查的時間、樣本的情況、調(diào)查的內(nèi)容、調(diào)查表的分析、分析結(jié)果、提出自己的看法等等。問卷調(diào)查有如下意義(1)調(diào)查環(huán)境,適應快速。即通過對市場環(huán)境的調(diào)查,達到快速適應環(huán)境,快速順利地開拓新市場的目的。(2)調(diào)查對手,勝之一籌。即通過對競爭對手的調(diào)查,達到了解對手情況,制定出措施、辦法、制度勝過競爭地手一籌的目的。(3)調(diào)查客戶,刺激需求。即通過對現(xiàn)有客戶和潛在客戶的調(diào)查,達到了解在客戶心目中的形象,制定出相應對策,刺激客戶對產(chǎn)品。需求分析2.1系統(tǒng)定義問卷調(diào)查的目的,是要通過問卷上的封閉式問題和開放式問題了解調(diào)查對象:市場調(diào)查的目的是為了收集足夠的、真實的和有效的信息為企事業(yè)單位等的其他活動和策略所服務,為管理部門提供參考依據(jù)。利用市場調(diào)查的部門可以是企業(yè)、公司、團體以及任何一切企事業(yè)單位的管理決策層或個人。市場調(diào)查的目的可能是為了制定長遠性的戰(zhàn)略性規(guī)劃,也可能是為制定某階段或針對某問題的具體政策或策略,提供參考依據(jù)。研究可以是學術性的,也可以是實用性的。1)調(diào)查環(huán)境,適應快速。即通過對市場環(huán)境的調(diào)查,達到快速適應環(huán)境,快速順利地開拓新市場的目的。2)調(diào)查對手,勝之一籌。即通過對競爭對手的調(diào)查,達到了解對手情況,制定出措施、辦法、制度勝過競爭地手一籌的目的。3)調(diào)查客戶,刺激需求。即通過對現(xiàn)有客戶和潛在客戶的調(diào)查,達到了解在客戶心目中的形象,制定出相應對策,刺激客戶對產(chǎn)品需求的目的。2.2功能需求問卷調(diào)查的一個主要目的就是為企業(yè)的抉擇者和相關管理人員通過調(diào)查的形式來統(tǒng)計相關,企業(yè)所希望統(tǒng)計的相關信息,通過與預期的期望進行比對從而得出最終的決策方案或?qū)嵤┺k法。基于ERP系統(tǒng)通過問卷調(diào)查的方式可以統(tǒng)計企業(yè)中相關人員的意愿以及針對企業(yè)中相關人士進行全面的信息收集?;贓RP系統(tǒng)的問卷調(diào)查可以大大的提高企業(yè)中人力資源部門統(tǒng)計相關調(diào)查信息的效率,節(jié)省委托外部公司介入企業(yè)調(diào)查的相關環(huán)節(jié),并能繼承系統(tǒng)辦公和系統(tǒng)調(diào)查于一體,方便管理層得使用。從信息需求的角度分析針對以上方針,要設計一個公司內(nèi)部基于ERP系統(tǒng)的問卷調(diào)查系統(tǒng)。首先要確定公司中問卷調(diào)查是存在實名制,和匿名制。即公司根據(jù)調(diào)查項目的不同,以及調(diào)查范圍的不同可以針對不同的人員開展相關實名調(diào)查以及匿名調(diào)查以確保調(diào)查信息的貼真性。從用戶的角度分析統(tǒng)計者或相關管理人員應該可以通過企業(yè)的ERP系統(tǒng)制作相關的電子問卷,并能夠向相關從屬人員進行調(diào)查。被調(diào)查者,即企業(yè)員工應通過點擊郵件鏈接、登錄企業(yè)系統(tǒng)查看調(diào)查信息,或登錄自助系統(tǒng)接收系統(tǒng)消息查看并根據(jù)相關提示進入調(diào)查問卷的界面填寫問卷。2.3數(shù)據(jù)需求問卷設計必備的信息對于基于ERP設計的一份電子問卷,需要系統(tǒng)當前操作員給出必輸項目為問卷的調(diào)查日期,調(diào)查范圍,調(diào)查方式(實名、匿名)。企業(yè)中對應的部門、人員類別、人員編碼、所屬公司。應根據(jù)軟件的具體要求而設定。調(diào)查用戶所需提供信息對于實名調(diào)查而言用戶需要提供用用戶名、密碼來進行實名問卷調(diào)查。對于匿名調(diào)查中用戶僅需根據(jù)提供的調(diào)查地址填寫問卷中的必填項目即可通知方式企業(yè)通過ERP軟件對下屬員工通知的方式,可以為系統(tǒng)通知,書面通知,人事傳達,部門通知等,對于本軟件由于對當前用戶未作限定,所以本軟件僅通過系統(tǒng)通知、郵件通知、自助消息等相關ERP基礎功能以實現(xiàn)。

數(shù)據(jù)庫設計3.1數(shù)據(jù)庫的概念當人們從不同的角度來描述這一概念時就有不同的定義。例如,稱數(shù)據(jù)庫是一個“記錄保存系統(tǒng)”(該定義強調(diào)了數(shù)據(jù)庫是若干記錄的集合)。又如稱數(shù)據(jù)庫是“人們?yōu)榻鉀Q特定的任務,以一定的組織方式存儲在一起的相關的數(shù)據(jù)的集合”(該定義側(cè)重于數(shù)據(jù)的組織)。更有甚者稱數(shù)據(jù)庫是“一個數(shù)據(jù)倉庫”。當然,這種說法雖然形象,但并不嚴謹。嚴格地說,數(shù)據(jù)庫是“按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫”。本軟件使用的數(shù)據(jù)庫模型將一直以來使用都最為廣泛的關系模型作為數(shù)據(jù)庫的建設依據(jù)。關系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是以二維表的形式實現(xiàn)多對多、多對一、一對多等表關系實現(xiàn)方式,一個關系對應通常說的一張表,并且關系的每一個分量必須是一個不可分的數(shù)據(jù)項。而一個基于關系模型的數(shù)據(jù)庫則是由若干個二維表組成的。對于一些大型和中型的數(shù)據(jù)庫,如Oracle11G,SQLServer2008等都屬于關系型數(shù)據(jù)庫,同時它們所帶有的數(shù)據(jù)庫管理工具是其他小型數(shù)據(jù)庫所沒有的,而同時這些工具又為管理員的工作節(jié)省了很多的時間和財力。3.2數(shù)據(jù)庫的選擇本軟件兼容Oracle10G/Oracle11g、Sql2005/Sql2008、DB2等多種數(shù)據(jù)庫,可選擇NC中間件(用友公司平臺研制,Tomcat代理)、weblogic、websphere等多種中間件實現(xiàn)軟件管控。對于中小型企業(yè),通常會根據(jù)客戶需要使用SQL2005進行數(shù)據(jù)庫搭配,而對于一些大中型企業(yè),數(shù)據(jù)庫對應信息過萬的的大庫存量,通常會采取ORACLE數(shù)據(jù)庫,ORACLE數(shù)據(jù)庫具有安全性強,兼容性好,數(shù)據(jù)承受能力好的特點。演示產(chǎn)品對應數(shù)據(jù)量較小,故本軟件演示平臺所加數(shù)據(jù)源為SQL2008數(shù)據(jù)庫。3.3數(shù)據(jù)庫表的描述概念模型是對信息世界建模,其表示方法有很多,其中最為常用的是實體-聯(lián)系模型,即E-R模型,它是用E-R圖來描述現(xiàn)實世界的概念模型。E-R圖中用矩形表示實體;用橢圓表示屬性;用菱形表示聯(lián)系。為了清楚簡便的描述出實體與其屬性之間的關系,用VISIO軟件生成了一張包含實體屬性的完整E-R圖,見圖3—1。圖3—1E-R圖使用PowerDesigner生成的數(shù)據(jù)庫關系圖,見圖3—2圖3—23.3.1調(diào)查結(jié)果(hrqs_met)該表主要定義了頭信息的主鍵,調(diào)查結(jié)果的主鍵以及為頭信息取值設定表項。見表3-1。標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明pk_meta_resultChar20Y主鍵pk_resultChar20N調(diào)查結(jié)果主鍵YY自增pk_inv_metaChar20N頭信息主鍵Y自增meta_infoChar20N取值表3—13.3.2調(diào)查問卷頭信息項(hrqs_inv_meta)該表主要實現(xiàn)功能為存儲頭信息項目,具體實現(xiàn)方法繼承基類而實現(xiàn)。見表3-2。標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明pk_inv_metaChar20Y主鍵Y自增pk_invVarchar20Y所屬調(diào)查活動Ypk_metaVarchar20Y頭信息項表3—23.3.3調(diào)查結(jié)果(hrqs_result)該表主要完成對于員工的調(diào)查問卷狀態(tài)、提交日期等調(diào)查結(jié)果的記錄。見表3-3。標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明pk_resultChar20Y主鍵Ypk_invChar20N調(diào)查活動Y自增pk_ownerVarchar20N調(diào)查對象主鍵owner_infoVarchar20N調(diào)查對象信息form_statusSmallint100N問卷狀態(tài)0,1,2表示,0編寫中,1已提交,3結(jié)束submit_dateChar19N提交日期表3—33.3.4調(diào)查范圍(hrqs_inv_scope)該表主要完成公司調(diào)查活動對應的對象,實現(xiàn)一對多的對應。見表3-4。標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明pk_inv_scopeChar20Y主鍵Y自增pk_invChar20N所屬調(diào)查活動Ypk_ownerChar20N調(diào)查對象主鍵表3—43.3.5調(diào)查結(jié)果_問卷明細(hrqs_result_form)該表主要用來保存調(diào)查問卷中的問卷對應答案相關數(shù)據(jù),如數(shù)字值,字符值(文字敘述題)等。見表3-5。標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明pk_result_formChar20Y主鍵Ypk_resultChar20N調(diào)查結(jié)果Y自增pk_topic_optionChar20N題目選項Ystr_valueVarchar1000N字符值dbl_valuedcimal(12,4)12N數(shù)字值pk_topicChar20N題目主鍵表3—53.3.6調(diào)查活動(hrqs_inv)該表主要記錄問卷活動中調(diào)查范圍,調(diào)查時間,調(diào)查問卷,調(diào)查名稱等一系列關聯(lián)信息。在此表中定義了10個字段來進行信息存儲。見表3-6。標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明pk_invChar20Y主鍵Yinv_namVarchar100Y調(diào)查名稱Y自增pk_formChar20Y關聯(lián)問卷Ypk_corpChar4N所屬公司PeriodChar4N所屬年度anonymousChar1N是否匿名調(diào)查begin_dateChar19N調(diào)查開始日期end_dateChar19N調(diào)查截止日期intendedInt自動N預期問卷數(shù)量invstatussmallint自動N狀態(tài)object_typesmallint自動Y調(diào)查范圍對象類型表3—63.3.7問卷題目(hrqs_topic)該表主要功能是記錄問卷設計的相關信息,并記錄問卷內(nèi)容相關信息以便進行問卷展現(xiàn)時進行調(diào)用,以及問卷導出時進行調(diào)用。此表中定義了12個字段進行信息存儲,以外鍵題目分類來進行聯(lián)結(jié)表與表之間的關系,實現(xiàn)問卷分類與問卷一對多關系。見表3-7。標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明pk_topicChar20Y主鍵Y自增pk_topic_typeChar20N題目分類Ytopic_descVarchar500N題目描述sort_orderIntN序號directionSmallintN排列方式topic_styleSmallintN題型scaleSmallintN精度max_valuedecimal(12,4)12N最大值最大四位min_valuedecimal(12,4)12N最小值最大四位font_familyVarchar500N字體font_sizeIntN字體大小font_styleIntN字體樣式font_colorInt30N字體顏色表3—73.3.8問卷題目選項(hrqs_topic_option)該表的主要功能是記錄問卷設計(內(nèi)容選項)的相關信息,并記錄問卷內(nèi)容的相關信息以便進行問卷展現(xiàn)時進行調(diào)用以及問卷導出時進行調(diào)用。在此表中定義了12個字段來進行信息存儲,以外鍵題目分類來進行聯(lián)結(jié)表與表之間的關系,實現(xiàn)問卷分類與問卷一對多的關系。見表3-8。標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明pk_topic_optionChar20Y主鍵Ypk_topicChar20N所屬題目Yoption_descVarchar500N選項描述edit_flagChar1N是否編輯scoredecimal(124)12N分值sort_orderIntN序號font_sizeIntN字體大小font_familyVarchar500N字體font_styleIntN字體樣式font_colorIntN字體顏色表3—83.3.9問卷(hrqs_form)該表的主要功能是記錄問卷概覽的相關信息,用于公司的私有調(diào)用以及問卷維護使用。在此表中定義了10個字段來進行信息存儲,實現(xiàn)問卷調(diào)用的數(shù)據(jù)存儲表。標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明pk_formChar20Y主鍵Yform_typeChar20N問卷分類pk_corpChar4N所屬公司form_codeVarchar40N問卷編碼form_nameVarchar80N問卷名稱page_sizeSmallintN每頁題目數(shù)量issue_flagChar1N是否發(fā)布memoVarchar1000N備注page_headerVarchar4000N頁眉page_footerVarchar4000N頁腳form_classSmallintN類型表3—93.3.10問卷題目分類(hrqs_topic_type)該表的主要功能是記錄問卷分類概覽的相關信息,用于公司的私有調(diào)用以及問卷分類維護使用。在此表中定義了8個字段來進行信息存儲。以外鍵題目分類來進行聯(lián)結(jié)表與表之間的關系,實現(xiàn)問卷分類與問卷一對多的關系。標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明pk_topic_typeChar20Y主鍵pk_formChar20N所屬問卷Ysort_orderIntN序號type_nameVarchar80N分類名稱type_descVarchar500N分類描述font_familyVarchar500N字體font_sizeIntN字體大小font_styleIntN字體樣式font_colorIntN字體顏色表3—103.3.11問卷自定義檔案列表(hrqs_doclist)該表為基礎數(shù)據(jù)附加表,基于標準版本V57系列擴充表,該表主要對問卷序號問卷頭信息關聯(lián)進行維護,實現(xiàn)表中頭信息與表的存儲。調(diào)用時采用繼承基類方式進行調(diào)用。標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明pk_doclistChar20Y主鍵關聯(lián)自定義檔案中創(chuàng)立該表(基礎表)pk_defdoclistChar20N所屬問卷Ysystem_flagInt1N序號表3—11

技術介紹4.1JAVA開發(fā)語言的選擇現(xiàn)在,市場上的應用開發(fā)產(chǎn)品很多,流行的也有數(shù)十種。目前在我國市場上最為流行,使用最多,最為先進的可用作企業(yè)級開發(fā)語言的產(chǎn)品有:SUN公司的JavaMicrosoft公司的VisualBasicMicrosoft公司的VisualCBorland公司的DelphiPowersoft公司的PowerBulider在目前市場上這些眾多的程序開發(fā)工具中,有些強調(diào)語言的彈性與執(zhí)行效率;有些偏重于可視化程序開發(fā)工具所帶來的便利性與效率的提高,各有各的優(yōu)點和特色,也滿足了不同用戶的不同需求。我的網(wǎng)站選擇Java語言開發(fā),其原因基于以下幾點:Java是一種簡單的、面向?qū)ο蟮?、分布式的、健壯的、安全的、結(jié)構(gòu)中立的、可移植的、性能很優(yōu)異的、多線程的、動態(tài)的語言。簡單Java的風格類似于C++,并且摒棄了C++中容易引發(fā)程序錯誤的地方,如指針和內(nèi)存管理。此外Java提供了豐富的類庫。面向?qū)ο竺嫦驅(qū)ο罂梢哉f是Java最重要的特性。Java語言的設計完全是面向?qū)ο蟮?。Java支持靜態(tài)和動態(tài)風格的代碼繼承及重用。分布式Java包括一個支持HTTP和FTP等基于TCP/IP協(xié)議的子庫。因此,Java應用程序可憑借URL打開并訪問網(wǎng)絡上的對象,其訪問方式與訪問本地文件系統(tǒng)幾乎完全相同。健壯Java致力于檢查程序在編譯和運行時的錯誤。Java自己操縱內(nèi)存減少了內(nèi)存出錯的可能性。Java提供Null指針檢測數(shù)組邊界、檢測異常出口、字節(jié)代碼校驗。安全Java的安全性可從兩個方面得到保證。一方面,在Java語言里,像指針和釋放內(nèi)存等C++功能被刪除,避免了非法內(nèi)存操作。另一方面,當Java用來創(chuàng)建瀏覽器時,語言功能和瀏覽器本身提供的功能結(jié)合起來,使它更安全。結(jié)構(gòu)中立為了建立Java作為網(wǎng)絡的一個整體,Java將它的程序編譯成一種結(jié)構(gòu)中立的中間文件格式。只要有Java運行系統(tǒng)的機器都能執(zhí)行這種中間代碼。Java源程序被編譯成一種高層次的與機器無關的byte-code格式語言,這種語言被設計在虛擬機上運行,由機器相關的運行調(diào)試器實現(xiàn)執(zhí)行。可移植的Java的可移植性一直是Java程序設計師們的精神指標,也是Java之所以能夠受到程序設計師們喜愛的原因之一,最大的功臣就是JVM的技術。JAVA編譯器產(chǎn)生的目標代碼(J-Code)是針對一種并不存在的CPU--JAVA虛擬機(JAVAVirtualMachine),而不是某一實際的CPU。JAVA虛擬機能掩蓋不同CPU之間的差別,使J-Code能運行于任何具有JAVA虛擬機的機器上。高性能Java可以在運行時直接將目標代碼翻譯成機器指令。Sun用直接解釋器一秒鐘內(nèi)可調(diào)用300,000個過程。翻譯目標代碼的速度與C/C++的性能沒什么區(qū)別。多線程Java支持多線程,多線程功能使得在一個程序里可同時執(zhí)行多個小任務。線程,有時也稱小進程,是一個大進程里分出來的小的獨立的進程。動態(tài)Java的動態(tài)特性是其面向?qū)ο笤O計方法的發(fā)展。它允許程序動態(tài)地裝入運行過程中所需要的類,這是C++語言進行面向?qū)ο蟪绦蛟O計所無法實現(xiàn)的。Java編譯器不是將對實例變量和成員函數(shù)的引用編譯為數(shù)值引用,而是將符號引用信息在字節(jié)碼中保存下傳遞給解釋器,再由解釋器在完成動態(tài)連接類后,將符號引用信息轉(zhuǎn)換為數(shù)值偏移量。4.2MVC設計模式MVC是Model-View-Controller的簡稱,它是一種設計模式,它把應用程序分成三個核心模塊:模型、視圖、控制器,它們各自處理自己的任務。視圖是用戶看到并與之交互的界面,作用包括向用戶顯示相關的數(shù)據(jù)、接受用戶的輸入、向模型查詢業(yè)務狀態(tài)、接受模型發(fā)出的數(shù)據(jù)更新事件,從而對用戶界面進行同步更新。模型表示業(yè)務數(shù)據(jù)和業(yè)務邏輯,是應用程序的主體部分。一個模型能為多個視圖提供數(shù)據(jù),因此提高了代碼的可重用性。控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。當Web用戶單擊Web頁面中的遞交按鈕來發(fā)送HTML表單時,控制器本身不輸出任何東西和做任何處理。控制器接收請求并決定調(diào)用哪個模型組件去處理請求,然后決定調(diào)用哪個視圖來顯示模型處理返回的數(shù)據(jù)。MVC的優(yōu)點表現(xiàn)在如下幾個方面:首先,最重要的一點是多個視圖能共享一個模型。同一個模型可以被不同的視圖重用,大大提高了代碼的可重用性。由于MVC的三個模塊相互獨立,改變其中一個不會影響其他兩個,所以依據(jù)這種設計思想能構(gòu)造良好的松偶合的構(gòu)件。此外,控制器提高了應用程序的靈活性和可配置性??刂破骺梢杂脕砺?lián)接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構(gòu)造應用程序提供強有力的手段。MVC處理過程的結(jié)構(gòu)圖,見圖4-1。圖4—14.3Struts,Hibernate,Spring技術4.3.1StrutsStruts是目前Java

Web

MVC框架中不爭的王者。Struts由一組相互協(xié)作的類(組件)、Serlvet以及jsp

tag

lib組成。由于Struts實質(zhì)上就是在JSPModel2的基礎上實現(xiàn)的一個MVC框架,所以基于struts構(gòu)架的web應用程序基本上符合JSP

Model2即MVC的設計標準。其中的模型是JavaBean,控制器是ActionServlet、Action,視圖是JSP、Struts客戶化標簽。Struts控制器組件主要包括:充當Struts框架的中央控制器的ActionServlet組件、充當每個子應用模塊的請求處理器的RequestProcessor組件、負責處理一項具體的業(yè)務的Action組件。其工作流程如圖4-2。圖4—2Struts

的另一特點是使用ActionFormBean,ActionFormBean也是一種JavaBean,除了具有一些JavaBean的常規(guī)方法,還包含一些特殊的方法,用于驗證HTML表單數(shù)據(jù)以及將其屬性重新設置為默認值。Struts框架利用ActionFormBean來進行View組件和Controller組件之間表單數(shù)據(jù)的傳遞。JSP文件使用Struts標簽讀取修改后的ActionFormBean的信息,重新設置HTML表單。4.3.2HibernateHibernate是連接Java應用程序和關系數(shù)據(jù)庫的中間件,它封裝了JDBC,實現(xiàn)了Java對象的持久化;封裝了所有數(shù)據(jù)訪問細節(jié),使業(yè)務邏輯層專注于業(yè)務邏輯。并且通過對象關系映射(ObjectRelationalMapping,簡稱ORM)解決了面向?qū)ο笈c關系數(shù)據(jù)庫之間存在的互不匹配的現(xiàn)象。如圖4-3所示。4.3.3SpringSpring是為了降低企業(yè)應用開發(fā)的復雜性而創(chuàng)建的。Spring只使用基本的JavaBeans就能完成以前必須通過EJB來完成的事情,而與EJB是相比,Spring的核心是個輕量級的容器,它是實現(xiàn)IoC(InversionofControl-控制反轉(zhuǎn))容器,是非侵入性的框架,并提供AOP(Aspect-orientedprogramming-面向方面編程)概念的實現(xiàn)方式,提供對持久層和事務的支持,提供MVCWeb框架的實現(xiàn),并對一些常用的企業(yè)服務API提供一致的模型封裝,是一個全方位的應用程序框架。圖4—34.4SQL語言SQL(StructureQueryLanguage結(jié)構(gòu)化查詢語言)自1974年被提出,至今已經(jīng)是世界上最流行的關系數(shù)據(jù)庫的標準語言。SQL語言的分類一、DDL(DataDefinitionLanguage)數(shù)據(jù)定義語言,其作用包括創(chuàng)建數(shù)據(jù)庫對象、刪除數(shù)據(jù)庫對象、修改數(shù)據(jù)庫對象(create、drop、alter)。二、DML(DataManipulationLanguage)數(shù)據(jù)操縱語言,其作用包括查找數(shù)據(jù)信息、插入數(shù)據(jù)信息、刪除數(shù)據(jù)信息、更改數(shù)據(jù)信息(select、insert、delete、update)。三、DCL(DataControlLanguage)數(shù)據(jù)控制語言,作用主要對是授權(quán)數(shù)據(jù)庫對象(grant,revoke)。4.5開發(fā)環(huán)境操作系統(tǒng):WINDOWSXP;運行工具:IE7.0開發(fā)工具:MyEclipse5.1.0(附加組件MVC)數(shù)據(jù)庫管理軟件:AquaDataStudio數(shù)據(jù)庫:ORACLE9.0、SQL2008、DB2服務器:Tomcat6.0輔助工具:DJJavaDecompilerver.1,DoradoV1.0.8

系統(tǒng)實現(xiàn)5.1總體架構(gòu)及實現(xiàn)5.1.1系統(tǒng)總體結(jié)構(gòu)圖圖5—15.1.2用戶首頁界面風格圖5—2問卷調(diào)查使用的調(diào)查界面為企業(yè)的系統(tǒng)界面,根據(jù)權(quán)限進行分類,企業(yè)的系統(tǒng)業(yè)務管理的管理員進入界面后可查看到相關問卷活動信息,以及問卷與員工相同,可以接受到調(diào)查信息。如圖5-2。使用用戶登陸自助系統(tǒng)可以接受到來自系統(tǒng)管理員發(fā)來的相關問卷調(diào)查信息。如圖5-3。圖5—35.2查看問卷信息5.2.1功能描述問卷管理人員在登錄之后可根據(jù)當前的權(quán)限進行問卷查詢,在此對查看問卷信息作出的查詢條件是僅能查詢當前公司下的問卷。數(shù)據(jù)庫的查詢方式按照PK_CORP(公司pk)來進行查詢。如圖5-4。5.2.2模塊流程圖圖5—45.2.3界面風格圖5—55.2.4實現(xiàn)算法publicvoidexecute()throwsException{ FormVOform=(FormVO)getSelection(getMainPanel()).getParentVO(); form=(FormVO)PubDelegator.getIPersistenceRetrieve().retrieveByPk(null,FormVO.class,form.getPk_form()); if(form==null){ thrownewBusinessException("問卷不存在,請查詢后重試!"); } StringbaseUrl=RuntimeEnv.getInstance().getProperty("SERVICEDISPATCH_URL"); URLurl=newURL(baseUrl.substring(0,baseUrl.indexOf("/",10)) +"/hrss/qs/Form.jsp?pk_form="+form.getPk_form()+"&preview=Y"); ClientAssistant.showDocument(url,"_blank");}5.3發(fā)送通知5.3.1功能描述問卷調(diào)查活動中實現(xiàn)了問卷調(diào)查活動制作,問卷調(diào)查活動開啟。但是如果調(diào)查信息不能告知被調(diào)查的員工,則問卷調(diào)查活動意義則不能體現(xiàn)。所以問卷調(diào)查活動節(jié)點中添加了發(fā)送通知功能,具體實現(xiàn)的界面如圖5-7。5.3.2模塊流程圖圖5—65.3.3界面風格圖5—75.3.4實現(xiàn)算法發(fā)送通知校驗publicvoidexecute()throwsException{ HRAggVOvo=getSelection(getMainPanel()); InvActiveVOinv=(InvActiveVO)vo.getParentVO(); if(newUFDate().after(inv.getEnd_date())&& MessageDialog.showYesNoDlg(getFrameUI(),null,"該活動已經(jīng)超出調(diào)查日期之內(nèi),您確定要發(fā)送通知么?")!=UIDialog.ID_YES){ return; } Listlist=null; if("1".equals(inv.getObject_type())){ //按部門范圍 list=HRQSDelegator.getIInvActive().getDeptScopeEmail( Global.getCorpPK(),inv.getPk_inv(),Global.getUserID(), inv.getAnonymous().booleanValue()); }else{ //按人員范圍 list=HRQSDelegator.getIInvActive().getPsnScopeEmail(inv.getPk_inv()); }5.4問卷導入導出功能5.4.1描述如圖5-9所示,問卷制作之后為了方便問卷保存以及問卷電子檔案遷移,必要的需要實現(xiàn)問卷資料的導入導出以便實現(xiàn)數(shù)據(jù)遷移,本系統(tǒng)中為了實現(xiàn)此方法實現(xiàn)的功能為EXCEL方式數(shù)據(jù)導出、導入。當問卷設計結(jié)束之后可通過導入、導出向?qū)ζ鋯柧淼碾娮訑?shù)據(jù)進行導入導出。實現(xiàn)的導出數(shù)據(jù)可以保證問卷設計的完整導出。同樣為了保證問卷在公司與公司間共享,問卷導入系統(tǒng)支持修改問卷編碼,問卷名稱等問卷相關信息。5.4.2模塊流程圖圖5—85.4.3界面風格見圖5-9,5-10。5.4.4實現(xiàn)算法導入框架方法publicFormDataImportAction(FrameUIframeUI1){super(frameUI1);//按公司com對象在求職表查詢向他投簡歷的求職者導出重寫內(nèi)容publicList<WizardStep>getSteps(){ List<WizardStep>steps=newArrayList<WizardStep>(); //第一步 WizardStepstepone=newDataIOWizardFirstStep(getWizardModel()); //第二步 WizardStepsteptwo=newDataIOWizardSecondStep(getWizardModel()); //對第二步的表格進行特殊處理 SelectableBillScrollPanestep2Table=(SelectableBillScrollPane)steptwo.getComp(); step2Table.hideTableCol("excel_field_name"); step2Table.hideTableCol("default_value"); //第三步 WizardStepstepthree=newDataIOWizardThirdStep(getWizardModel()); //放到List中 steps=Arrays.asList(newWizardStep[]{stepone,steptwo,stepthree}); returnsteps; }圖5—9圖5—105.5問卷查看5.5.1描述為了實現(xiàn)統(tǒng)計人員以及管理員對問卷調(diào)查結(jié)果的查看或者進行數(shù)據(jù)抽查,問卷查看節(jié)點可針對員工填寫的問卷進行問卷查看,以及實際文字信息填寫內(nèi)容進行查看。并且可根據(jù)問卷調(diào)查狀態(tài)對問卷調(diào)查活動進行過濾查看。5.5.2模塊流程圖圖5—105.5.3界面風格圖5—115.5.4實現(xiàn)算法調(diào)用方法,根據(jù)字符串中封裝的vo數(shù)據(jù)進行數(shù)據(jù)調(diào)用,簡單的循環(huán)算法的出數(shù)據(jù)中datas的值的長度,并賦值給maxValue,取得數(shù)據(jù)時候由于平臺采用數(shù)據(jù)分割,為了實現(xiàn)數(shù)據(jù)與分隔符脫離,使用strLable.replaceAll("\\$","#####&&&&&&&&&&#####");使數(shù)據(jù)實體分離 publicHrQueryDialoggetQueryDialog(){ StringpkInv=((ResultViewTopPanel)getTopPanel()).getPkInv(); if(queryDlgHash.get(pkInv)!=null){ returnqueryDlgHash.get(pkInv); } HrQueryDialogqueryDialog=newHrQueryDialog(this,getNormalPanel(pkInv),getTemplateInfo()){ publicStringgetWhereSQL(){ QueryTreetree=(QueryTree)getQryCondEditor().getCurrentCriteriaEditor().getCriteria().getCriteriaObject(); QueryTreeNoderoot=(QueryTreeNode)tree.getRoot(); Enumerationenu=root.preorderEnumeration(); //排除根節(jié)點 enu.nextElement(); while(enu.hasMoreElements()){ QueryTreeNodenode=(QueryTreeNode)enu.nextElement(); if(!node.isLeaf()){ continue; } if(!(node.getUserObject()instanceofDefaultFilter) ||!((DefaultFilter)node.getUserObject()).getFilterMeta().getFieldCode().equals("hrqs_result.submit_date")){ continue; } DefaultFilterfilter=(DefaultFilter)node.getUserObject(); if(filter.getOperator()instanceofEqOperator){ //等于 filter.setOperator(newEqOperator(){ publicStringgetSQLString(FilterMetameta,IFieldValuevalue){ if(value==null||value.getFieldValues()==null||value.getFieldValues().size()<1 ||value.getFieldValues().get(0)==null){ returnnull; } StringvalueString=value.getFieldValues().get(0).getSqlString(); returnmeta.getSQLFieldCode()+">='"+valueString+"00:00:00'and"+meta.getSQLFieldCode()+"<='" +valueString+"23:59:59'"; } }); }elseif(filter.getOperator()instanceofBetweenOperator){ //介于 filter.setOperator(newBetweenOperator(){ publicStringgetSQLString(FilterMetameta,IFieldValuevalue){ if(value==null||value.getFieldValues()==null||value.getFieldValues().size()<1){ returnnull; } Stringresult=null; if(value.getFieldValues().size()==1&&value.getFieldValues().get(0)!=null){ result=meta.getFieldCode()+">='"+value.getFieldValues().get(0).getSqlString()+"00:00:00'"; }elseif(value.getFieldValues().size()>1&&value.getFieldValues().get(0)!=null &&value.getFieldValues().get(1)==null){ result=meta.getFieldCode()+">='"+value.getFieldValues().get(0).getSqlString()+"00:00:00'"; }elseif(value.getFieldValues().size()>1&&value.getFieldValues().get(0)==null &&value.getFieldValues().get(1)!=null){ result=meta.getFieldCode()+"<='"+value.getFieldValues().get(1).getSqlString()+"23:59:59'"; }elseif(value.getFieldValues().size()>1&&value.getFieldValues().get(0)!=null &&value.getFieldValues().get(1)!=null){ result="("+meta.getFieldCode()+">='"+value.getFieldValues().get(0).getSqlString()+"00:00:00'" +"and"+meta.getFieldCode()+"<='"+value.getFieldValues().get(1).getSqlString()+"23:59:59'" +")"; } returnresult; } }); }elseif(filter.getOperator()instanceofGtOperator){ //大于 filter.setOperator(newGtOperator(){ publicStringgetSQLString(FilterMetameta,IFieldValuevalue){ if(value==null||value.getFieldValues()==null||value.getFieldValues().size()<1 ||value.getFieldValues().get(0)==null){ returnnull; } StringvalueString=value.getFieldValues().get(0).getSqlString(); returnmeta.getFieldCode()+""+getOperatorCode()+"'"+valueString+"00:00:00'"; } }); }elseif(filter.getOperator()instanceofGetOperator){ //大于等于 filter.setOperator(newGetOperator(){ publicStringgetSQLString(FilterMetameta,IFieldValuevalue){ if(value==null||value.getFieldValues()==null||value.getFieldValues().size()<1 ||value.getFieldValues().get(0)==null){ returnnull; } StringvalueString=value.getFieldValues().get(0).getSqlString(); returnmeta.getFieldCode()+""+getOperatorCode()+"'"+valueString+"00:00:00'"; } }); }elseif(filter.getOperator()instanceofLtOperator){ //小于 filter.setOperator(newLtOperator(){ publicStringgetSQLString(FilterMetameta,IFieldValuevalue){ if(value==null||value.getFieldValues()==null||value.getFieldValues().size()<1 ||value.getFieldValues().get(0)==null){ returnnull; } StringvalueString=value.getFieldValues().get(0).getSqlString(); returnmeta.getFieldCode()+""+getOperatorCode()+"'"+valueString+"23:59:59'"; } }); }elseif(filter.getOperator()instanceofLetOperator){ //小于等于 filter.setOperator(newLetOperator(){ publicStringgetSQLString(FilterMetameta,IFieldValuevalue){ if(value==null||value.getFieldValues()==null||value.getFieldValues().size()<1 ||value.getFieldValues().get(0)==null){ returnnull; } StringvalueString=value.getFieldValues().get(0).getSqlString(); returnmeta.getFieldCode()+""+getOperatorCode()+"'"+valueString+"23:59:59'"; } }); } } returnsuper.getWhereSQL(); } };5.6問卷分析代碼實現(xiàn)publicabstractChartViewercreateChartViewer(GeneralVO[]generalvos); /** *得到最大值 *@paramdatas *@returndouble */ protecteddoublegetMaxValue(double[]datas){ doublemaxValue=0; for(inti=0;datas!=null&&i<datas.length;i++){ if(datas[i]>maxValue){ maxValue=datas[i]; } } returnMath.ceil(maxValue); } /** *取得圖形展示數(shù)據(jù) *@paramgeneralvos *@return */ protecteddouble[]getdatas(GeneralVO[]generalvos){ double[]dbldatas=newdouble[generalvos.length]; intintCnt=0; for(GeneralVOdatainfo:generalvos){ if(datainfo.getAttributeValue(getStrDateKey())==null){ dbldatas[intCnt]=0; }else{ Strings=datainfo.getAttributeValue(getStrDateKey()).toString(); dbldatas[intCnt]=newUFDouble(s).setScale(2,UFDouble.ROUND_HALF_UP).doubleValue(); } intCnt++; } returndbldatas; } /** *取得圖形展示項目 *@paramgeneralvos *@return */ protectedString[]getLabels(GeneralVO[]generalvos){ String[]strlabels=newString[generalvos.length]; intintCnt=0; for(GeneralVOdatainfo:generalvos){ StringstrLable=datainfo.getAttributeValue(getStrItemKey()).toString(); if(strLable.length()>8){ strLable=strLable.substring(0,8)+".."; } strlabels[intCnt]=strLable; intCnt++; } returnstrlabels; } /** *取得圖形展示項目 *@paramgeneralvos *@return *//**getAllNameLabels(GeneralVO[]String)得到姓名列表*/ protectedString[]getAllNameLabels(GeneralVO[]generalvos){ String[]strlabels=newString[generalvos.length]; intintCnt=0; for(GeneralVOdatainfo:generalvos){ StringstrLable=datainfo.getAttributeValue(getStrItemKey()).toString(); if(!StringUtils.isEmpty(strLable)&&strLable.indexOf("$")!=-1) { strLable=strLable.replaceAll("\\$","#####&&&&&&&&&&#####"); } strlabels[intCnt]=strLable; intCnt++; } returnstrlabels; } 5.6.1顯示控件控件分四種,其中餅狀圖,柱狀圖,塔狀圖為swing控件繼承修改。如圖5-12,如圖5-13,如圖5-14所示:圖5—12圖5—13圖5—14

結(jié)論在前面幾章中,我對問卷調(diào)查的制作過程從需求分析、設計、實現(xiàn)等階段分別做了介紹。本軟件的問卷調(diào)查模塊實現(xiàn)了從企業(yè)管理者的問卷設計,設定調(diào)查范圍,問卷活動發(fā)布,至下屬員工通過ERP自助系統(tǒng)進行電子問卷填寫,至用戶管理者、企業(yè)相關信息統(tǒng)計人員對用戶回饋問卷的分析等一些流流程的實現(xiàn)。而本文對所選擇的開發(fā)語言做了介紹,本網(wǎng)站在開發(fā)過程中采用Struts、Hibernate、Spring三大框架相結(jié)合,利用Spring的聲明式事務管理,不同于以往開發(fā)過程中所使用的編程式事務管理,在這一點上,本文也做了詳細的介紹。此外,在項目的開發(fā)過程中采用規(guī)范的軟件工程的開發(fā)流程,因此在需求分析及數(shù)據(jù)庫設計部分做了大量的工作,這些對本模塊后期的編碼過程起到了指導作用,在本文中也有所體現(xiàn)。本軟件對應此功能現(xiàn)已于年初發(fā)行,正在各個合作公司中實施使用中。

致謝

參考文獻[1](美)MartyHall,LarryBrown.Servlet與JSP核心編程.第二版.趙學良譯.北京:清華大學出版社,2004.06[2]林上杰,林康司.JSP2.0技術手冊.北京:電子工業(yè)出版社,2005.04[3]孫衛(wèi)琴.精通Struts:基于MVC的JavaWeb設計與開發(fā).北京:電子工業(yè)出版社,2004.08[4]孫衛(wèi)琴.精通Hibernate.北京:電子工業(yè)出版社,2006.09[5]林信良.Spring技術手冊.北京:電子工業(yè)出版社,2006.06[6]張孝祥.Java就業(yè)培訓教程.北京:清華大學出版社,2003.09[7]林信良.JavaJDK6學習筆記.北京:清華大學出版社,2007.04:P2-9[8]BruceEckel.ThinkinginJava.ThirdEdition.January,2004[9]薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論.第三版.北京:高等教育出版社,2000.02[10]劉佳音.我國人力資源信息網(wǎng)站的現(xiàn)狀與發(fā)展——基于人才招聘網(wǎng)站的調(diào)查分析.情報科學.2004(6):24-25[11]方小明.基于Struts的JavaWeb應用開發(fā)(一).軟件報,2006.04.10[12]史濟民,顧春華,李昌武等.軟件工程——原理、方法與應用.第二版.北京:高等教育出版社,2002.12基于C8051F單片機直流電動機反饋控制系統(tǒng)的設計與研究基于單片機的嵌入式Web服務器的研究MOTOROLA單片機MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內(nèi)壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內(nèi)核設計及其應用研究基于單片機的遠程抄表系統(tǒng)的設計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構(gòu)件開發(fā)的技術研究基于單片機

溫馨提示

  • 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

提交評論