版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
TOC\o"1-5"\h\z第1部分概述1第2部分分析部分21.功能需求2第3部分系統(tǒng)設計31.功能模塊設計32.數據庫的設計3第4部分系統(tǒng)開發(fā)31.數據庫34.1.1.創(chuàng)建數據庫34.1.2.創(chuàng)建表44.1.3.連接數據庫42.功能的實現53.問題及解決5第5部分運行部分51.系統(tǒng)的安裝52.系統(tǒng)的使用6第6部分附錄8附錄1運行環(huán)境8.1硬件要求8.2.軟件要求9附錄2設計代碼9.vote.jsp9.result.jsp10.add.jsp11.del.jsp13.display.jsp14.modify.jsp15.DBConnect.java18第1部分概述在線投票系統(tǒng)主要用來統(tǒng)計網站用戶對某個主題或熱門話題的意見。決策者通過這些統(tǒng)計數據做出相應的決策。在線投票系統(tǒng)是一般網站必備的程序之一,如果網站開發(fā)者想了解用戶對該網站的意見和建議。他可以設計這樣一個投票主題:你認為該網站如何?(A.很好B.一般C.不好)然后提供給用戶進行投票。我的投票系統(tǒng)具有極大的靈活性,投票類型分為單選投票和多選投票。管理員可以在線設計不同的投票主題供用戶進行投票。對于該設計報告還有什么不當之處請見諒,同時也希望你能多提寶貴意見。我會認真參考您的意見,修改和完善該系統(tǒng)。術語列表:JSP:(JavaServerPages),JSP是一種基于Java的技術,用來產生跨平臺和跨Web服務器的動態(tài)頁面。JDBC:(JavaDataBaseConnectivity),Java數據庫連接。它主要是一套讓你訪問數據庫的API,程序人員可以利用JDBCAPI來執(zhí)行SQL語句。Servlet:Servlet可以稱之為“服務器小程序”,與Javaapplication不同,它沒有main方法,而是用一些特定的方法用于啟動、執(zhí)行和退出。通過使用Servlet,可以與運行與客戶端的Applet進行交互,也可以直接與HTML頁進行交互。JavaBeans:JavaBeans是可復用的平臺中立的軟件組件,可以在軟件開發(fā)工具中被直觀地操作。應用程序開發(fā)者可以通過支持JavaBeans的開發(fā)工具,直接使用現成的JavaBeans,也可以在開發(fā)工具容器中,對組件進行必要的修改、測試而不必編寫和編譯程序。在Java模型中,組件可以修改或與其他組件組合以生成新組件或完整的應用程序。HTML:(HypertextMarkupLanguage)超文本標記語言,它是組織多媒體文檔的重要語
言,它不僅用來編寫Web網頁,而且可以使用它來制作光盤上的多媒體節(jié)目。HTML可用來編排文檔、創(chuàng)建列表、建立鏈接等等。XML:(eXtensibleMarkupLanguage)可擴展標記語言,它是一種具有數據描述功能(Meta-language)、高度結構性及可驗證性的語言。SQL:(StructuredQueryLanguage),結構化查詢語言。SQL語言地任務就是與各種數據庫建立關系,SQL語言是關系型數據庫的標準語言,大多數關系型數據庫管理系統(tǒng)都支持SQL語言并米用了SQL的語言標準。MySQL:MySQL是一個可用于各種流行操作系統(tǒng)平臺的關系數據庫系統(tǒng),它具有客戶機/服務器體系結構的分布式數據庫管理系統(tǒng)。按照使用又可以分為DML(DataManipulationLanguage),即數據操作語言和DDL(DataDefinitionLanguage)。第2部分分析部分1.功能需求通過對用戶的需求調查分析,可以概括出用戶的功能需求如下:單選投票、多選投票、查看投票、投票設計。單選投票:用戶只能從多個選項中選取一項進行投票。多選投票:用戶可以從多個選項中選取多項進行投票。查看投票:提供用戶查看當前投票情況,投票結果以條形圖顯示。投票設計:管理員可以設計不同的投票主題,及投票主題的內容供用戶進行投票。投票設計又包括以下功能需求:增加主題、刪除主題、查看主題、修改主題。
第3部分系統(tǒng)設計1.功能模塊設計通過對功能需求進行分析和概括得到如圖所示的系統(tǒng)功能模塊圖:系統(tǒng)的功能模塊圖系統(tǒng)的功能模塊圖在線投票系統(tǒng)投票設計返回投票結果多選投票顯示投票表單單選投票返回投票結果投票設計返回投票結果多選投票顯示投票表單單選投票返回投票結果2.數據庫的設計該系統(tǒng)的數據庫采用MySQL,根據投票系統(tǒng)功能設計的要求,可以列出以下數據項和數據結構:投票表:存放投票信息,數據項包括:序號、標識、選項類型、投票主題、投票選項內容、得票數。第4部分系統(tǒng)開發(fā)4.1.數據庫1.1.創(chuàng)建數據庫CREATEDATABASEdb70019618;1.2.創(chuàng)建表創(chuàng)建數據庫中用到的投票表:CREATETABLEvote(idINTNOTNULLAUTO_INCREMENT,flagint,optTypeint,questionCHAR(255),optContentCHAR(255),numberINT,PRIMARYKEY(id),);數據庫創(chuàng)建后的結構圖如下:4++H!Field:Type:Null卜++-KeyiDefault!Extva!idFRIINULLauto_increnent'flagVES:NULL!optTvpeYES:NULL!questionchapCSSb>VES!NULL!optContentchart^55>¥E£:NULL(number+4卜——-iYES卜J:NULL卜4——t卜1.3.連接數據庫該系統(tǒng)使用了MySQL的JDBC驅動程序來連接數據庫。因為對數據庫的訪問,在整個系統(tǒng)中比較頻繁,所以我將對數據庫的操作寫成一個DBConnect的類,通過該類來連接數據庫和訪問數據庫?!ú糠执a如下publicDBConnect(){try{//加載數據庫驅動程序Class.forName(sDBDriver);//建立連接conn=DriverManager.getConnection(sConnStr);}catch(Exceptione){System.out.println("DBConnect():"+e.getMessage());}2.功能的實現投票流程圖:該流程圖已經包含了在線投票系統(tǒng)的制作的主要方法。下面的工作實際上就是按照該流程圖,寫出具體的代碼。在附錄2設計代碼中有我開發(fā)的代碼,并附有注釋。所以在這里我就不展開介紹每一個功能的開發(fā)過程。3.問題及解決這部分應該寫在開發(fā)中遇到了哪些問題,如何解決等。第5部分運行部分1.系統(tǒng)的安裝該系統(tǒng)我在j2sdk1.4.1_01+resin-2.1.9+MySQL-4.0.12-nt環(huán)境下測試通過:安裝步驟:該系統(tǒng)需要JSP運行環(huán)境和MySQ改據庫,如果服務器還沒有搭建的話請先搭建。.把vote、WEB-INF(vote文件夾存放的是.jsp文件,WEB-INF存放的是該系統(tǒng)使用到的一些.class文件)文件夾上傳到你的主機目錄。.修改DBConnect.java里連接MySQ改據庫的IP、用戶名和密碼為你自己的IP,user,password修改編譯之后放到目錄下面。.請創(chuàng)建數據庫db70019517,然后使用mysqldb70019517<vote.sql腳本創(chuàng)建該數據庫使用到的表。(腳本存放的路徑vote\vote.sql).然后在瀏覽器輸入URL(例如這是我的運行方法::8080/vote/index.jsp)。
5.2.系統(tǒng)的使用為了直觀,在這里我將主要通過程序運行截圖來介紹該投票系統(tǒng)的使用。在瀏覽器地址欄里輸入在線投票系統(tǒng)的URL后,將進入在線投票系統(tǒng)的首頁。在首頁中顯示了該系統(tǒng)的操作。在線投票(姓名噴學號:加01魴18)單選投票I隆選投票II查看投票||投票設計在首頁中點擊你所要進行的操作,即可打開相應的頁面。如點擊“單選投票”鏈接即可打開單選投票頁面。單選投票主題1:你喜炭用種語言?BJSPFHP在首頁中點擊“多選投票“鏈接,打開多選投票頁面。多選投票主題1:你喜歡邦些體育潮?球球豚泳球球豚泳
籃足排游
P17E巴在首頁中點擊“在線投票“鏈接后,可以查看在線投票的結果。
在線投票結果主題1:餌喜料些體育運動?度洋塢事算:4足球律稟毅:3排球得割:£,赤涿褐尊數:1■主題2:你喜歡用種語言?型數如數票票票累福譚程謀型數如數票票票累福譚程謀返回主員在首頁中點擊“投票設計“鏈接后,即可打開投票設計中的”增加主題“,同時你會看到投票設計中的其它幾項功能:刪除主題、查看主題、修改主題、返回首頁。增加主題的方法如下圖所示:增加主題喈加主題II胴除主題II宜看主題II修改主題II返回苜頁請算久主題名:?你喜歡那種語言?「新嬴稿網目;F一創(chuàng)建選項I逢項1:J.'Ja闿藪:選項3:逢項1:J.'Ja闿藪:選項3:[C++指加主期在投票設計中點擊“刪除主題“鏈接后,即可打開刪除主題頁面。如果你要刪除某個主題以及其選項,只需在文本框中輸入其ID號即可。(如果你不知道待刪除主題的ID號你可以首先點擊”查看主題“查看其ID號。刪除主題增加主題IIH除主題II查看主題11修改主建11返回甑話輸入刪琮的序號皿)二〔叫11ttl在投票設計中點擊“查看主題“鏈接后,即可打開查看主題頁面。
查看主題喈加主題II刪除主題It有看主題H窿改主逝||返回苜面序號標識投案主題投票選項將索數10你百嫻種語言巧null02Inullm43;1nullASP341J墓山1PKP25]nullCGI1g0你喜蝌桂體育運動?null07$null意球4&null足球3g5null排球2106null娜泳1在投票設計中點擊“修改主題“鏈接后,即可打開修改主題頁面。如果你要修改某個主題以及其選項,只需在文本框中輸入其主題名即可。(如果你不知道待修改主題的主題名你可以首先點擊”查看主題“查看其主題名并復制主題名,然后將其粘貼到修改主題名的文本框中,點查詢即可打開相應的主題及其選項。修改主題|N^£11西玨IliglElWil請缺磐所要修改的主題名:
|皂叫題目11"Ft?沖卡壬更新第6部分附錄附錄1運行環(huán)境硬件要求CPU使用586或更局級別的處理器內存64MB及其以上硬盤500MB以上(根據不同的服務器要求不向)其他計算機設備網卡等聯網設備.軟件要求要使用JSP,在服務器端和客戶端都必須有對應的運行環(huán)境。服務器主要是Servlet兼容白Web服務器,客戶端主要是瀏覽器。由于Java具有跨平臺的特點,所以只要能夠安裝JDK,就能在此安裝JSP服務器。JSP服務器能夠運行在目前絕大多數的操作系統(tǒng)上,目前在普通用戶中用到的系統(tǒng)絕大多數為Windows系列和UNIX系列。附錄2設計代碼l.vote.jsp<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><jsp:useBeanid="dbBean"class="vote.DBConnect"scope="page"/><html><head><title>在線投票</title><linkhref="vote.css"rel="stylesheet"type="text/css"></head><body><center><h3>單選投票</h3><hr><formaction="result.jsp"method="post"><divalign="left"><%Stringsql="select*fromvotewhereflag=0andoptType=0orderbyiddesc";ResultSetrs=dbBean.executeQuery(sql);intquestionNum=0,optType,id,id1;Stringquestion,str,optContent,type;while(rs.next()){//輸出投票的主題questionNum++;str="主題"+questionNum+":";question=rs.getString("question");optType=rs.getInt("optType");id=rs.getInt("id");out.print(str+question+"<br>");ResultSetrs1;sql="select*fromvotewhereflag="+id;rs1=dbBean.executeQuery(sql);out.print("<hr>");//輸出該主題的選項while(rs1.next()){id1=rs1.getInt("id");optContent=rs1.getString("optContent");if(optType==0)type="radio";else{type="checkbox";}%><inputtype="<%=type%>"name="vote"value="<%=id1%>"><%=optContent%><br><%}%></div><hr><divalign="left"><%}%></div><inputtype="submit"name="sumbit1"value="確定"></form><%rs.close();%></center></body></html>2.result.jsp<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><html><head><title>投票結果</title><linkhref="vote.css"rel="stylesheet"type="text/css"></head><body><jsp:useBeanid="dbBean"class="vote.DBConnect"scope="page"/><h3align="center">單選投票結果</h3><hr><%Stringsql="select*fromvoteorderbyid";ResultSetrs=dbBean.executeQuery(sql);Stringid;id=request.getParameter("vote");sql="updatevotesetnumber=number+1whereid="+id;dbBean.executeQuery(sql);ResultSetrs1,rstotal;intquestionNum=0,optType,id1,number,total=0;Stringquestion,str,optContent;sql="select*fromvotewhereflag=0andoptType=0orderbyiddesc";rs=dbBean.executeQuery(sql);while(rs.next()){questionNum++;str="主題"+questionNum+":";question=rs.getString("question");optType=rs.getInt("optType");id=Integer.toString(rs.getInt("id"));out.print(str+question+"<br>");sql="select*fromvotewhereflag="+id;rstotal=dbBean.executeQuery(sql);//求得投票的總數while(rstotal.next()){number=rstotal.getInt("number");total+=number;)sql="select*fromvotewhereflag="+id;rs1=dbBean.executeQuery(sql);out.print("<hr>");//輸出各選項的得票數while(rs1.next()){id1=rs1.getInt("id");optContent=rs1.getString("optContent");number=rs1.getInt("number");%><%=optContent%>得票數:<%=number%><imgsrc=bar.gifwidth="<%=100*number/total%>"height=10><br><%}%><hr><divalign="left"><%}%></div><divalign="center"><ahref="index.jsp">返回主頁</a></div></body></html>3.add.jsp<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*"%><jsp:useBeanid="dbBean"scope="page"class="vote.DBConnect"/><%Stringquestion=request.getParameter("question");if(question==null){question="";}Stringtype=request.getParameter("type");intnum=0,optType=0;try{num=Integer.parseInt(request.getParameter("num"));}catch(Exceptione){}%><html><head><title>增加主題</title><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><linkhref="vote.css"rel="stylesheet"type="text/css"></head><body><center><h3>增加主題</h3><hr><ahref="add.jsp">href="display.jsp">||<ahref="modify.jsp">增加主題</a>||<ahref="del.jsp">查看主題</a>修改主題</a>||<ahref="index.jsp">刪除主題</a>||返回首頁</a><a<hr><formaction="add.jsp"method="post">請輸入主題名:<br><inputtype="text"name="question"size="50"value="<%=question%>"><p><inputtype="checkbox"value="T"name="type"<%if(type!=null){out.print("checked");optType=1;}else{optType=0;}%>>多選 請輸入選項的數目:創(chuàng)建選項">創(chuàng)建選項"><inputtype="submit"name="sumbit"value=<p><%Stringsubmit=request.getParameter("sumbit");if(submit!=null){for(inti=1;i<=num;i++){%>選項<%=i%>:<inputtype="text"name="<%=i%>"value=""size="50"><br><%}%><inputtype="submit"name="submit1"value="增力口主題"><%}%></form><%Stringsubmit1=request.getParameter("submit1"),str="",optContent,sql;intid;if(submit1!=null){sql="insertintovote(flag,optType,question)values(0,"+optType+",'"+question+"')";dbBean.executeUpdate(sql);sql="select*fromvoteorderbyiddesc";ResultSetrs=dbBean.executeQuery(sql);id=rs.getInt(1);for(inti=1;i<=num;i++){str=Integer.toString(i);optContent=request.getParameter(str);sql="insertintovote(flag,optContent,number)values("+id+",'"+optContent+"',0)";dbBean.executeUpdate(sql);}out.print("成功插入主題!");}%></center></body></html>4.del.jsp<%@pagecontentType="text/html;charset=gb2312"%><jsp:useBeanid="dbBean"scope="session"class="vote.DBConnect"/><%Stringid=request.getParameter("id");Stringsql="deletefromvotewhereid="+id;if(id!=null){
if(dbBean.executeUpdate(sql)){out.print("刪除記錄成功。");}}%><html><head><title>刪除主題</title><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><linkhref="vote.css"rel="stylesheet"type="text/css"></head><body><center><h3>刪除主題</h3><hr><ahref="add.jsp">href="display.jsp">增加主題</a>||<a查看主題</a>href="del.jsp">刪除主題</a>||<ahref="add.jsp">href="display.jsp">增加主題</a>||<a查看主題</a>href="del.jsp">刪除主題</a>||<a||<ahref="modify.jsp">修改主題</a>||<ahref="index.jsp">返回首頁</a><hr><formname="form1"action="del.jsp"method="post">請輸入刪除的序號(ID):<inputname="id"type="text"id="id"size="50"><inputname="submit"type="submit"value="刪除"><br><hr><formname="form1"action="del.jsp"method="post">請輸入刪除的序號(ID):<inputname="id"type="text"id="id"size="50"><inputname="submit"type="submit"value="刪除"><br></form></hr></center></body></html>5.display.jsp<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><html><head><title>查看主題</title><linkhref="vote.css"rel="stylesheet"type="text/css"><body><center><h3>查看主題</h3><hr><ahref="add.jsp">增加主題</a>||<ahref="del.jsp">href="display.jsp">||<ahref="modify.jsp">查看主題</a><ahref="add.jsp">增加主題</a>||<ahref="del.jsp">href="display.jsp">||<ahref="modify.jsp">查看主題</a>修改主題</a>||<ahref="index.jsp">刪除主題</a>||返回首頁</a><a<hr><jsp:useBeanid="dbBean"class="vote.DBConnect"scope="page"/><%Stringsql="select*fromvote";ResultSetrs=dbBean.executeQuery(sql);%><tableborder=1align="center"><tr><td>序號</td>投票主題</div></td>投票選項</div></td>投票主題</div></td>投票選項</div></td>得票數</div></td><td><divalign="center"><td><divalign="center"><td><divalign="center"></tr><%while(rs.next()){out.println("<tr>");out.println("<td>"+rs.getInt("id")+”</td>");out.println("<td>"+rs.getInt("flag")+”</td>");out.println("<td>"+rs.getString("question")+”</td>");out.println("<td>"+rs.getString("optContent")+"</td>");out.println("<td>"+rs.getInt("number")+"</td>");out.println("</tr>");)%></table><divalign="center"><%rs.close();%></div></hr></center></body></html>6.modify.jsp<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><jsp:useBeanid="dbBean"scope="session"class="vote.DBConnect"/><html><head><title>修改主題</title><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><linkhref="vote.css"rel="stylesheet"type="text/css"></head><body>
<center><h3>修改主題</h3><hr><ahref="add.jsp">增加主題</a>||<ahref="del.jsp">刪除主題</a>||<ahref="display.jsp">查看主題</a>||<ahref="modify.jsp">修改主題</a>||<ahref="index.jsp">返回首頁</a><formaction="modify.jsp"method="post">請輸入您所要修改的主題名:<br><inputtype="text"name="sql"size="50"><inputtype="submit"name="submit"value="查詢"></form><%Stringsubmit,sql;intid;submit=request.getParameter("submit");if(submit!=null){Stringsql_s=request.getParameter("sql");ResultSetrs,rs1;inti=0;if(sql_s!=null){sql="select*fromvotewherequestion='"+sql_s+""';rs=dbBean.executeQuery(sql);id=rs.getInt("id");%><formaction="modify.jsp"method="post"><table><tr><td>題目</td></tr><tr><td><inputtype="hidden"name="id"value="<%=id%>">size="50"<inputname="question"type="text"size="50"value="<%=rs.getString("question")%>maxlength="50"></td></tr><tr><td>選項</td></tr><tr><td><%sql="select*fromvotewhereflag="+id;rs1=dbBean.executeQuery(sql);while(rs1.next()){%><inputtype="text"name="optContent<%=i%>"size="100"value="<%=rs1.getString("optContent")%>"><inputtype="hidden"name="id<%=i%>"value="<%=rs1.getInt("id")%>"><%i++;}%><inputtype="hidden"name="count"value="<%=i%>"></td></tr><tr><td>是否多選<%inttype=rs.getInt("optType");Strings_type="";if(type==1){s_type="checked";}%><inputtype="checkbox"name="multiple"value="1"<%=s_type%>></td></tr><tr><td><inputtype="submit"name="submit1"value="更新"></td></tr></table></form><%}}Stringsubmit1;submit1=request.getParameter("submit1");if(submit1!=null){intcount=Integer.parseInt(request.getParameter("count"));intflag=Integer.parseInt(request.getParameter("id"));StringoptType,optType1;optType=request.getParameter("multiple");if(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇教版數學一年級下冊教案
- 2024年游艇碼頭物業(yè)委托管理及船舶維護服務協(xié)議3篇
- 2024年甲乙雙方關于物聯網技術研發(fā)與推廣的合同
- 商場工作計劃模板七篇
- 減溫減壓閥行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 簡短的個人述職報告
- 2022新學期開學感悟(10篇)
- 以家為話題作文15篇
- 幼兒園大班體育教案教學
- 土木工程認知實習報告4篇
- JJF(石化)047-2021氟化氫氣體檢測報警器校準規(guī)范
- 品質總監(jiān)述職報告
- 2024年中信金屬股份有限公司招聘筆試參考題庫附帶答案詳解
- 山東省淄博市2022-2023學年高一上學期期末數學試題含答案
- 7【題組七】雙變量的恒成立與存在性問題
- 2023年1月自考11749商務管理綜合應用試題及答案
- 汽車制造整車AUDIT質量評審
- 非洲豬瘟防控難點與對策
- 教師如何管理和控制自己的情緒
- 《中外歷史綱要(上)》全冊單元知識點高頻考點
- (完整版)庭審筆錄(刑事普通程序)
評論
0/150
提交評論