基于Java标准化考试系统
?
Java課程設計報告
?
?
?
專 ???業:?????????????????
班 ???級:?????????????????
學 ???號:?????????????????
姓 ???名:?????????????????
指導老師:?????????????????
時 ???間:?????????????????
?
?
????????
?
?
?
?
?
?
摘要 - 3 -
標準化考試系統 - 4 -
1.設計內容及要求 - 4 -
1.1 標準化考試系統的基本要求 - 4 -
1.2 需實現的主要功能 - 5 -
2.需求分析 - 5 -
2.1數據庫設計 - 5 -
2.2服務器端和客戶端的數據傳輸方式 - 5 -
2.3 服務器端功能設計 - 6 -
2.4客戶端功能設計 - 7 -
3.總體設計 - 8 -
3.1 總體功能圖 - 8 -
3.2 總體流程圖 - 9 -
4.數據庫設計 - 10 -
4.1 數據庫及表結構的建立 - 10 -
4.2 JAVA 數據庫的連接 - 11 -
5. 主要功能設計流程 - 11 -
5.1服務器端設計流程圖 - 11 -
5.2客戶端設計流程圖 - 12 -
6.代碼實現 - 13 -
6.1類之間關系圖 - 13 -
6.2 運行效果圖 - 14 -
7. 總結與說明 - 19 -
附錄?標準化考試系統部分源代碼 - 21 -
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
摘要
【摘要】
???隨著信息技術的飛速發展和日趨激烈的商業競爭,企業已不再滿足于獨立、零散的辦公自動化應用,企業需要的是協同工作、綜合、集成化的解決方案。而網絡是解決由于物理距離造成的信息交流不暢、協商溝通不便的辦公瓶頸問題的最佳方式。企業網上辦公自動化通過對各辦公自動化要素的閉環整合,實現了工作流、信息流、知識流和辦公自動化系統的整合管理,提供了一個科學、開放、先進的信息化辦公平臺,實現辦公自動化,并進行遠程辦公或在家辦公。企業網上辦公自動化將人從繁瑣、無序、低序、低端的工作中解放出來從事核心事務,整體提高了單位辦事效率和對信息的可控性,降低辦公成本,提高執行力,使管理趨于完善。
?
【關鍵詞】 辦公自動化管理、ADO連接、數據源、辦公管理
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
標準化考試系統
1.設計內容及要求
1.1 標準化考試系統的基本要求
????設計C/S模式的標準化考試系統,即客戶端和服務器端都是Java應用程序,具體要求如下:
(1)?開始運行程序后,出現連接服務器界面,用戶輸入服務器IP地址,并請求服務器建立套接字連接,程序可以判斷用戶輸入的服務器IP是否正確,并給出連接提示,使客戶端與服務器端分離。
(2)?正確連接服務器后,有用戶登錄驗證功能,用戶可以選擇自己的登錄身份,是學生還是教師。用戶在登錄界面輸入用戶名,密碼以及登錄身份后,客戶端會把用戶的相關信息通過套接字發送到服務器端,服務器端根據客戶端傳來的信息對用戶的身份進行驗證,并發送相關信息到客戶端。
(3)?學生正確登錄后,進入考試主界面,用戶可以選擇試題進行考試,點擊開始按鈕開始考試,考試考試后,有計時功能,考試完成以后用戶可以查看自己的分數,可以查看原題目、正確答案以及該道題目的分值,用戶還可以查看自己所選的答案,用戶考試完成后可以選擇退出系統。
(4)?教師登錄成功后,進入后臺管理界面,教師可以對標準化考試系統進行管理,教師有以下管理功能:1.可以增加、查詢、修改和刪除試題;2.可以查看所有考生的考試成績,而且可以對考生進行排名查看;3.可以增加、查詢、修改和刪除學生信息;4.可以增加、修改、查詢和刪除教師信息;
(5)?試卷名字、學生信息、教師信息、試題全都用SQL Server數據庫存儲,并且采用JDBC連接數據庫。每一道題都必須提供正確答案以及分值。
1.2 需實現的主要功能
① C/S模式,即客戶端與服務器端都是Java應用程序;
② 輸入服務器IP地址,連接服務器功能;
③ 登錄驗證功能;
④ 學生可以選擇所要做的試題;
⑤ 開始考試后,有計時功能,當時間結束時考試結束;
⑥ 完成考試后,學生可以查看自己的分數、試題、正確答案、分值以及自己所選擇的答案;
⑦ 教師可以增加、修改、查詢、刪除試題;
⑧ 教師可以查看所有考生的成績,并且可以按成績降序查看成績;
⑨ 教師可以增加、修改、查詢、刪除學生信息;
⑩ 教師可以增加、修改、查詢、刪除教師信息;
2.需求分析
????根據標準化考試系統的設計要求和所要實現的功能,對標準化考試系統的需求分析如下:
2.1數據庫設計
????此標準化考試系統采用的是數據庫來存儲試題的,而不是采用文件最主要的一個原因是數據庫的讀取速度比文件讀取速度快。該系統采用的是SQL Server 2005數據庫,SQL Server數據庫是一個非常強大的數據庫,在各方面應用比較廣泛,是一些中小型項目開發首選數據庫。該標準化考試系統需要創建kaoshi數據庫文件,在該數據庫中需要創建student、teachter、shijuan和Test1四個表。Student數據表是用來存儲學生信息;teachter數據表用來存儲教師信息;shijuan數據表用來存儲試卷名字;Test1用來存儲試題。
2.2服務器端和客戶端的數據傳輸方式
服務器端和客戶端的數據時用套接字來傳輸的。IP地址表示Internet上的計算機,端口號標識正在計算機運行的進程。端口號與IP地址的組合得出一個網絡套接字。客戶端使用Socket類建立到服務器的套接字連接,具體實現:
try{
??????Socket sock=new Socket(String host,int port);
}catch(IOException e){}
當套接字連接sock建立后,sock使用getInputStream()方法獲得一個輸入流,然后把獲得的輸入流接到另一個數據流上,然后就可以從這個數據流讀取服務器來的信息,同樣sock使用getOutputStream()方法獲得一個輸出流,然后把獲得的輸出流接到另一個DataOutputStram()數據流上,然后向這個數據流寫入信息,發送給服務器。客戶負責建立客戶端到服務器的套接字連接,即客戶端負責呼叫,因此服務器必須建立一個等待接收客戶的套接字的ServerSocket對象,具體實現:
try{
??????ServerSocket server_socket=new ServerSocket(int port);
}catch(IOException e){}
當服務器的ServerSocket對象建立后,就可以使用accept()方法接收客戶的套接字。
?
2.3 服務器端功能設計
服務器端是接受客戶端傳來的信息,并作出相應的處理。標準化考試系統服務器端最主要是實現試題的讀取。為了完成這個標準化考試系統還需要服務器有一些其他的功能,比如:計算學生考試分數,用戶登錄驗證,教師對系統管理的實現等。
2.3.1試題讀取功能
本系統是采用數據庫來存儲試題的,所以要讀取試題必須首先建立與Test1數據表的連接,然后利用ResultSet的對象rs的getString()方法得到試題的內容,然后把試題內容發給客戶端。
2.3.2?用戶登錄驗證功能
當用戶登錄時,客戶端會獲取用戶輸入的用戶名和密碼,并且會把信息發送給服務器,服務器會根據客戶端發來的信息對用戶的身份進行驗證。
kaoshi數據庫有兩個數據表是用來存儲用戶信息的,student數據表存儲學生信息,teachter數據表存儲教師信息,當用戶以學生身份登錄系統時,服務器會在student數據表中查詢有沒有這個用戶,并根據查詢的信息判斷學生是否成功登陸,把信息發送給客戶端,當用戶以教師身份登錄系統時,服務器會在student數據表中查詢有沒有這個用戶,并根據查詢的信息判斷教師是否成功登陸,把信息發送給客戶端。
2.4客戶端功能設計
客戶端是提供學生進行考試和教師對系統進行管理,由于該系統是C/S模式,所以客戶端必須有連接服務器功能,連接服務器后有用戶登錄功能,用戶正確登錄后,學生用戶進入考試界面,所以客戶端必須有考試功能,教師用戶正確登錄后進入教室管理界面,客戶端必須有試題管理功能,查詢學生成績功能,學生信息管理功能,教師信息管理功能。
2.4.1連接服務器功能
客戶端與服務器端連接時通過套接字實現的,本系統采用的是把套接字放在一個線程中,就是使用Socket類不帶參數的構造方法Socket()創建一個套接字對象,該對象需調用public void connect(SocketAddress endpoint) throws IOException ,請求和參數SocketServer指定的套接字建立連接。為了使用connect方法,可以使用SocketAddress的子類InetSocketAddress創建一個對象, InetSocketAddress的構造方法如下:public InetSocketAddress(InetAddress addr,int port)。
?
2.4.2用戶登錄功能
用戶在進入系統前必須經過用戶登錄,用戶登錄功能是為了保護系統的安全,當用戶寫入用戶名和密碼,并且選擇了登陸身份后,客戶端會獲取用戶的信息發送給服務器端,讓服務器度昂對用戶的身份進行驗證,并傳來登錄是否成功的信息,客戶端根據服務器端傳來的信息進行判斷,如果登錄成功,彈出對話框顯示用戶登錄成功,學生進入考試界面,教師進入后臺管理界面;如果登錄失敗,彈出對話框顯示用戶名或密碼錯誤或者顯示你已經登錄了。
2.4.3考試功能
學生正確登錄后就進入考試界面,學生進入考試界面后,必須選擇試卷,客戶端會通知服務器端列出所有的試卷名稱,在客戶端的下拉列表中會顯示所有試卷的名字,用戶選擇了試卷后,客戶端會通知服務器端學生所選的試卷名稱,學生點擊開始考試按鈕就可以開始考試了,同時計時器開始計時,當用戶完成考試或者時間用完了考試結束,考試結束后用戶可以點擊查詢成績按鈕,用戶可以看到題目,答案以及自己所選的答案,還有你的成績,查詢成績是用對話框實現,玩了后用戶可以退出系統。
2.4.4后臺管理功能
????后臺管理功能就是對試題進行管理,查詢學生成績,對學生信息進行管理,對教師信息進行管理,試題管理有對尸體進行增加,刪除,查詢,修改,當用戶在客戶端輸入試題信息后,點擊這些按鈕,客戶端就會發送信息給服務器,服務器來查詢或者修改數據庫,其他的也一樣,總是通過服務器端對數據庫進行數據庫操作
3.總體設計
3.1 總體功能圖
根據分析,標準化考試系統必須實現以下功能:1.連接服務器功能;2.用戶登錄功能;3.考試功能;4.管理功能;
根據系統需求,標準化考試系統的總體功能圖如圖3-1所示:
??????????????????????????圖3-1總體功能圖
?
3.2 總體流程圖
?
??????????????????????圖3-2 總體流程圖
4.數據庫設計
4.1 數據庫及表結構的建立
???該標準化考試系統共創建了一個kaoshi數據庫,該數據庫中創建了student、teachter、shijuan和Test1四個表。
表3-1 kaoshi數據庫
| 邏輯名稱 | 文件類型 | 文件組 | 初始大小 | 自動增長 | 路徑 | 文件名 |
| kaoshi | 數據 | PRIMARY | 3MB | 不限制 | D:\... | ? |
| Kaoshi_log | 日志 | 不適用 | 1MB | 不限制 | D:\... | ? |
?
student數據表是用來保存學生信息,該數據表包含用戶名,密碼,性別,年齡,班級和分數六個字段,具體設計如表3-2所示:
表3-2 student數據表
| 列名 | 數據類型 | 允許空 |
| 用戶名 | varchar(50) | 否 |
| 密碼 | varchar(50) | 否 |
| 性別 | varchar(50) | ??????否 |
| 年齡 | varchar(50) | 否 |
| 班級 | varchar(50) | 否 |
| 分數 | int | ??????是 |
?????????????????????????
teachter數據表是用來存儲教師信息,該數據表包含教工ID,教工姓名,教工密碼,教工性別和教工職稱5個字段,具體設計如表3-3所示:
表3-3 teachter數據表
| 列名 | 數據類型 | 允許空 |
| 教工ID | varchar(50) | 否 |
| 教工姓名 | varchar(50) | 否 |
| 教工密碼 | varchar(50) | ??????否 |
| 教工性別 | varchar(50) | 否 |
| 教工職稱 | varchar(50) | 否 |
??????????????????????
Test1數據表是用來存儲試題信息的,該數據表包含題目編號,內容,A選項,B選項,C選項,D選項,正確答案和分值8個字段,具體設計如表3-4所示:
?
?
?
?
表3-4 Test1數據表
| 列名 | 數據類型 | 允許空 |
| 題目編號 | varchar(50) | 否 |
| 內容 | varchar(500) | 否 |
| A選項 | varchar(100) | ??????否 |
| B選項 | varchar(100) | 否 |
| C選項 | varchar(100) | 否 |
| D選項 | varchar(100) | 否 |
| 正確答案 | varchar(50) | 否 |
| 分值 | varchar(50) | 否 |
???????????
4.2 JAVA 數據庫的連接
該系統是用JDBC連接數據庫。首先必須加載JDBC驅動,然后利用DriverManager.getConnection()連接服務器和數據庫。具體實現如下:
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; ?//加載JDBC驅動
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=kaoshi";
//連接服務器和數據庫kaoshi
String userName = "sa"; ?//默認用戶名
String userPwd = "123"; ?//密碼
try {
??????????Class.forName(driverName);
??????????dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
??????????System.out.println("Connection Successful!"); ?//如果連接成功 控制臺輸出Connection Successful!
????????}
????catch (Exception e) {e.printStackTrace();} ??
}
5. 主要功能設計流程
5.1服務器端設計流程圖
根據對服務器端功能的分析,得到服務器設計流程圖如圖3-3所示:
?
?
?
?
?
?????????????????????圖3-3 服務器端設計流程圖
5.2客戶端設計流程圖
根據客戶端功能分析,得到客戶端設計流程圖如圖3-4所示:
?
?
?
??????????????????
????????????圖3-4 客戶端設計流程圖?
6.代碼實現
6.1類之間關系圖
在編寫標準化考試系統時,編寫了8個java源文件:Main.Java,ChaChengji.Java,ClientTestArea.Java,DengluPanel.Java,Guanli.Java,Lianjie.Java,ChatServer.Java,ReadTestquestion.Java其中ChatServer.Java,ReadTestquestion.Java為服務器端java程序編譯產生所需要的類;Main.Java,ChaChengji.Java,ClientTestArea.Java,DengluPanel.Java,Guanli.Java,Lianjie.Java為客戶端java程序編譯產生所需要的類。標準化考試系統除了需要編寫的8個java源文件所編譯產生的類外,還需要java系統提供的一些重要的類。如ServerSocket,Socket,JTabbedPane等類。標準化考試系統所用到的一些重要的類以及它們之間的關系如圖3-5和圖3-6所示。
????????????????????圖3-5?服務器端類之間的關系圖?
?
?
??????????????圖3-6 客戶端類之間的關系圖
?
6.2 運行效果圖
連接服務器界面:
?
?
?
圖3-7 連接服務器界面
學生登錄界面:
?
?
?
圖3-8 學生登錄界面
考試主界面:
?
????
圖3-9 考試主界面
開始考試后界面:
?
?
圖3-10 開始考試后界面
成績查詢界面:
?
?
圖3-11 成績查詢界面
教師登錄界面:
?
?
圖3-12 教師登錄界面
試題管理界面:
?
?
圖3-13 試題管理界面
查看學生成績界面:
?
?
圖3-14 查看學生成績界面
學生信息管理界面:
?
?
圖3-15 學生信息管理界面
教師信息管理界面:
?
?
圖3-16 教師信息管理界面
服務器端效果圖:
?
?
?
???????????????????????圖3-17 服務器端效果圖
???????
7. 總結與說明
該標準化考試系統采用的是C/S模式,客戶端和服務器端都是應用程序。客戶端與服務器端是用Socket和ServerSocket進行通信,服務器端根據客戶端傳來的信息來進行相應的操作,客戶端根據服務器傳來的信息把信息顯示給用戶。該系統有學生考試功能和教師管理功能,兩個功能都是在客戶端,數據庫存放在服務器端。本系統有3個特點:
① 本系統采用的全都是null布局。空布局容器可以準確地定位組件在容器中的位置和大小,setBounds(int a,int b,int width,int height)方法是所有組件都擁有的一個方法,組件調用該方法可以設置本身的大小和在容器中的位置。
② 本系統用了大量的圖片。這些圖片作為窗口的背景和按鈕的背景,加入背景圖片必須采用null布局,這些圖片不是用drawImage()方法繪制的,而是用把背景圖片加到JLabel,然后在容器中加入其它組件并設置這些組件的大小和位置,最后在該容器中加入JLabel組件,把JLabel組件的大小設置成窗口一樣大,這樣就實現了背景圖片的加入。因為本系統采用了大量的圖片,所以界面不會很難看。有人說用java做出來的界面很難看,我看不一定,java不是提供了圖片功能嗎,只要應用好java的這個特性就行。所以不管那一種編程語言,只要它提供了圖片功能,那么用它編寫的界面就不會很難看。
本系統采用SQL Server存儲數據,并且用JDBC連接數據庫。用JDBC連接SQL Server數據庫首先必須加載JDBC驅動,然后利用DriverManager.getConnection()連接服務器和數據庫。?
總結
以上是生活随笔為你收集整理的基于Java标准化考试系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: echarts的gallery无法访问
- 下一篇: 计算机管理windows无法访问指定设备