




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、網(wǎng)上測試系統(tǒng)西南財經(jīng)大學9 / 29SouthwesternUniversity of Finance andEconomics課程名稱學生姓名:周小李佳穎學 院:經(jīng)濟信息工程學院專 業(yè):計算機科學與技術指導教師:李玉榮.2016年12月1. 課程設計題目與要求1.1數(shù)據(jù)庫設計題目設計和實現(xiàn)一個網(wǎng)上在線考試系統(tǒng),系統(tǒng)應完成以下基本的業(yè)務:a. 至少兩個教師,每個教一門課程b. 每個班至少包含十名學生。c. 教師能夠修改試卷的題目并模仿一名同學參加一門考試d. 教師可提取一份試卷查卷e. 教師可檢查其所教班級的成績、任一學生的成績以及查詢?nèi)嗟钠骄?成績和總成績。f. 每一套題至少包括十道選擇題
2、g. 選擇題自動閱卷,書寫題人工閱卷以上很粗略描述了網(wǎng)上考試系統(tǒng)的基本要求,你們可以根據(jù)實際問題 的需要,補充和細化系統(tǒng)的要求。本課程設計包括兩個部分:數(shù)據(jù)庫和用戶界面(用戶圖形化界面基本 要求就是登錄加試卷內(nèi)容的提取)1.2數(shù)據(jù)庫設計要求a. 使用java/c語言,源程序要有適當?shù)淖⑨?,使程序易丁閱讀b. 建議作出用戶界面c. 學生可自動增加新功能模塊2. 數(shù)據(jù)庫設計過程2.1需求分析2.1.1業(yè)務范圍a. 增加、刪除、維護學生賬號,老師賬號,課程信息和選課信息b. 在線出題、出題過程可修改試題、答題、分數(shù)c. 學生若有疑問可以由老師提出自己的答卷查卷d. 統(tǒng)計一個班的學生的成績情況供老師分
3、析e. 提取試題2.1.2業(yè)務流程a .進入在線考試系統(tǒng)b.通過輸入賬號密碼判斷身份,分別進入不同界面:(1) 進入管理員界面后獲取管理員身份。管理員具有對整個系統(tǒng)的管理權限,可以管理所有賬戶,管理課程,以及對選課過程控制。(2) 進入教師界面后獲取教師身份。教師有權自出題、對題庫進 行管理以及對學生試卷進行查詢。進入出題模塊后,教師可自主命題,命題內(nèi)容分為單選題和填空題。進入改題模塊后,首先判斷是否已有人做題,若已存在完成題目的 記錄,則執(zhí)行修改題目功能;若無學生完成題目的記錄,則執(zhí)行修改題 目和答案兩項功能。進入查詢模塊后,教師可執(zhí)行試卷、答卷以學生成績的查詢功能。(3) 進入學生考試界面
4、后,學生可選擇參加考試或成績查詢。c.結束所有操作,退出界面。2.1.3業(yè)務流程圖th 均H 盤lJTS圖1業(yè)務流程圖2.2概念結構設計2.2.1步驟a. 抽象數(shù)據(jù)并設計局部視圖b.集成局部視圖,得到全局概念結構2.2.2原則a.忠實性(設計忠實丁應用的具體要求,恰當?shù)胤从超F(xiàn)實)b. 盡可能減少冗余c. 簡單性考慮2.2.3具體實現(xiàn)圖2-1總ER圖圖2-2管理員圖2-7答卷圖2-8試卷2.3邏輯結構設計2.3.1設計目的把概念結構設計階段設計好的概念模型轉換為邏輯模型,即將基本 E-R圖通過轉換規(guī)則轉換為關系模型,然后根據(jù)優(yōu)化方法得到優(yōu)化的數(shù)據(jù)模型。2.3.2具體實現(xiàn)將上述E-R圖轉換優(yōu)化后得
5、到的關系模式為:Admin(I旦password);Teacher(tQpassword);Student(snosname,password);Course(cnpJcname);Sc(cno,sno,grade);Paper(cno,sno,titleno,sanswer,getscore);Title(cno,titleno,titlecontent,answear,score);Title1(cno,titleno,titlecontent,A,B,C,D,answear,score);Testpaper(cno,testpaperno,titleno,titlecontent);后期
6、titlei 刪去,統(tǒng)一使用了 titleO題庫表表圖2-9 ER圖轉關系模式2.4數(shù)據(jù)庫實施和維護針對數(shù)據(jù)庫維護部分,我們小組將及時對該系統(tǒng)數(shù)據(jù)庫進行備份,將各用戶信息保存在文件中,保證用戶信息的安全性。3. 運行結果登入(以管理員為例):I修史3里戶名:連接到,Dracle Database 11g EnterUith tlie Fart It ion insr, 01管理員管理相關表信息:SQL> call nanastnCJ 41410041J , J 344' * *123456* >;調(diào)用完成。SQL> select * from student wher
7、e sno=,414180411:SNOSNAMEPASSUORD4141004112345fc張牛樣登入老師后出題:TH 仁 c應頁如質(zhì) mli D4 i 0 >T<內(nèi)內(nèi)內(nèi)內(nèi)用充成aQL> se lect * f rom t it le where cno= MaU4, and tit leno = H4 ;NO TtTUEHOITtECONTEHTMSUEIRSCORE洛容容容容內(nèi)內(nèi)內(nèi) 林申詵選選選 _w BT ft B c D老師修改題目:sql> call x(rrri<j,0004j,04*,*修改后調(diào)用完成,SQL> select »
8、fron title where cno=,0004* and titleno=,04J;CNO TITLENOTITLECONTEHTANGUERMORE000404修改后網(wǎng)上測試系統(tǒng)老師查卷(生成的視圖): TITLEUC(-TITLECOITEin-A15 EE<SAIJSISRGETSCOREV - 1 01黑由的內(nèi)容A被碩內(nèi)容B詵而內(nèi)容C送攻內(nèi)咨魂防內(nèi)容二A52 02這是題目題目蜓:頁AB送【頁BC迭項C磁就AB03 M楚目,的內(nèi)客且避敏內(nèi)容日迭度內(nèi)容仁選成內(nèi)咨1盜通內(nèi)容4 04鵲目4的內(nèi)春入訪項內(nèi)寄B送項內(nèi)看送頂內(nèi)容】送項內(nèi)容BTi TT.fiks55 口5膽目b的內(nèi)吾冬魅項
9、內(nèi)吾B選貝內(nèi)看匚迭項內(nèi)吾口逢頊時吾cc56 0£遍目七的內(nèi)容真避項肉答B(yǎng)選頃內(nèi)容C送成內(nèi)容。迭項內(nèi)容cc57 07膽目7的肉融站項內(nèi)翻選【頁內(nèi)答C迭I頁內(nèi)容D選項肉答DD59 0?鹿目曰的肉吝A曾項內(nèi)容B選【頁內(nèi)容仁選項內(nèi)容。遇頂向吝DD59 09題目g的內(nèi)容有道項內(nèi)答B(yǎng)送頃內(nèi)答仁迭蜓內(nèi)答J迭項內(nèi)容DDs二to 10髭目內(nèi)客A迭頃內(nèi)容B魂此肉客C:避頊內(nèi)容口魂項內(nèi)容BC011 11題目1埔內(nèi)苔這是一道嗔空盟。12 12題目聽肉答這是一道本空題_ =答案M答案皿答案n答案kID1013 13題目L3的內(nèi)容這是一道窟空矩,管案L3VX13ID14 14題目站她吝這是一迫尊空蔻。15 15
10、題目L珀馳客這是一道富空置_。吾荼皿菩案L5晉案H皆案ISinID運行結果:11 29fl10容容容晝酉丁 分 心以A R c D正侑<!一得目內(nèi)內(nèi)內(nèi)EIS茶 栽項項項頂念晝口 曰供選選選確的W內(nèi)內(nèi)內(nèi)內(nèi)蒙g項項項項食口目選選選選確K跆容容容官集忡內(nèi)內(nèi)內(nèi)四a親成項項項項口目1XM1XM硅&目選選選選確的小IrJ網(wǎng)上測試系統(tǒng)試卷提取:容容容容 內(nèi)內(nèi)內(nèi)內(nèi) 6項蠹項 目選選選選 6頁BkhLolcb的_楣容容容容忡內(nèi)內(nèi)內(nèi)內(nèi)沱頁頁頁頁目也痂也也37題g容容備 ;:內(nèi)內(nèi)內(nèi) 毗頊頂頂頂 目選選選選9題曰9的內(nèi)容藉頂占食 童項由登 選成內(nèi)容28 / 290AHCD蠣1雎四容 整理內(nèi)容 讒項內(nèi)至返
11、頂內(nèi)谷題目11的內(nèi)容這是一道埴空題題目坦的內(nèi)容這是一道填空目一查看相關成績信息:日大一堅良小美三天趙T-李周®劉胡?SH0SHAMEGRADE1410051 14 1410049 1410048 1410047 141B946 1416045 1116044 1410043 1410042S0L> SeLct:日傳frvn 2 Where sc-cno=*0601J; ¥AUG<GRADE>學生答題后生成的數(shù)據(jù)呻'蚓* 5W衡n?V &JiHST ER<-tEISCORf1000141410042Q1A5 &0014:141f
12、lQ4505C5300014141004203D5450014:41Q042C4D5000141410042asB56。"14141OO4ZC'6匚Qn 000141410.04207A58000141410042 BA5900014141004209A01000014141U04210B5H00014141004211答案M101200014141QD4312罟案u10口000141410.04213皆案131014000141410'04214管案141010gg15答案姑A學生查詢自己的成績(后兩門暫時沒有考試):SQL> select * from sc
13、 uhere sno=J 41410051"CNOSNOGRADE000141410BE195HO0241410B51知團朋4141切©51登陸界面:<- co man鞘ibh制山腳眼遍jmi吼皿圈Hi! aw:i:應用B網(wǎng)址導航 日百度海至D 舟 D 雌拓 0游池大全歡迎使淚在線考試系統(tǒng)用戶名:(密碼:(:7J V.萱錄歡迎使用在線考試系統(tǒng)次迎登錄!退出4.源代碼4.1 建表/課程表CREATE TABLE COURSE(CNO CHAR(4) NOT NULL,CNAME VARCHAR2(20) NOT NULL,CONSTRAINT COURSE_PK PRI
14、MARY KEY(CNO)ENABLE);創(chuàng)建學生信息表CREATE TABLE STUDENT(SNO CHAR(9) NOT NULL,SNAME CHAR(20) NOT NULL,PASSWORD VARCHAR2(20) NOT NULL,CONSTRAINT STUDENT_PK PRIMARY KEY(SNO)ENABLE);/創(chuàng)建選課表CREATE TABLE SC(CNO CHAR(4) NOT NULL,SNO CHAR(9) NOT NULL,GRADE CHAR(4),CONSTRAINT SC_PK PRIMARY KEY(CNO,SNO)ENABLE);ALTER
15、TABLE SCADD CONSTRAINT SC_FK1 FOREIGN KEY(CNO)REFERENCES COURSE(CNO)ENABLE;ALTER TABLE SCADD CONSTRAINT SC_FK2 FOREIGN KEY(SNO)REFERENCES STUDENT(SNO)ENABLE;/老師信息表CREATE TABLE TEACHER(TID CHAR(9) NOT NULL,PASSWORD VARCHAR2(20),CONSTRAINT TEACHER_PK PRIMARY KEY(TID)ENABLE);/試題信息表CREATE TABLE TITLE(CN
16、O CHAR(4) NOT NULL,TITLENO CHAR(4) NOT NULL,TITLECONTENT VARCHAR2(40),ANSWER VARCHAR2(10),SCORE CHAR(4),CONSTRAINT TITLE_PK PRIMARY KEY(CNO,TITLENO)ENABLE);ALTER TABLE TITLEADD CONSTRAINT TITLE_FK1 FOREIGN KEY(CNO)REFERENCES COURSE(CNO)ON DELETE CASCADE ENABLE;/創(chuàng)建學生答題表CREATE TABLE PAPER(CNO CHAR(4)
17、NOT NULL,SNO CHAR(9) NOT NULL,TITLENO CHAR(4) NOT NULL,SANSWER VARCHAR2(10),GETSCORE CHAR(4),CONSTRAINT PAPER_PK PRIMARY KEY(CNO,SNO,TITLENO)ENABLE);ALTER TABLE PAPERADD CONSTRAINT PAPER_FK1 FOREIGN KEY(CNO)REFERENCES COURSE(CNO)ON DELETE CASCADE ENABLE;ALTER TABLE PAPERADD CONSTRAINT PAPER_FK2 FORE
18、IGN KEY (SNO)REFERENCES STUDENT(SNO)ON DELETE CASCADE ENABLE;ALTER TABLE PAPERADD CONSTRAINT PAPER_FK3 FOREIGN KEY (CNO,TITLENO)REFERENCES TITLE(CNO,TITLENO)ON DELETE CASCADE ENABLE;CREATE USER teacer1 IDENTIFIED BY 123456 ;4.2存儲過程/管理員存儲過程Create or replace procedure manastu( sno in CHAR, sname in ch
19、ar, password in varchar2 ) Is BeginInsert into studentValues(SNO, SNAME, PASSWORD); Commit;End;CALL MANASTU ('4141051','趙日天','123456');Create or replace procedure manatea(tid in CHAR,password in varchar2)IsBeginInsert into teacherValues(TID, PASSWORD);Commit;End;CALL MANATEA
20、('teacher1','123456');Create or replace procedure manacou(cno in CHAR,cname in varchar2)IsBeginInsert into courseValues(CNO, cname);Commit;End;CALL MANACOU ('0001','課程 1');Create or replace procedure manasc(cno in CHAR, sno in char)IsBeginInsert into SCValues(cno, sno
21、,NULL);Commit;End;CALL MANASC ('0001','41410051');/出題存儲過程Create or replace procedure ks(Cno_input in CHAR,Sno_input in char,Titleno_input in char,Sanswer_input in varchar2 )Is answerl varchar2(10); scorel char(4); Cno1 char(4); Sno1 char(9); BeginSelect cno,sno INTO cno1,sno1 from sc
22、WHERE o=cno_input and sc.sno = sno_input; exceptionwhenno_data_foundthen dbms_output.put_line('沒有選課不能考試!');selectanswer,score INTO answer1,score1 FROM title WHERE o=cno_input AND title.titleno=Titleno_input; ifSanswer_input = answer1 THENInsert into paperValues(cno_input,sno_input,titleno_in
23、put,sanswer_inut,score1); elseInsert into paperValues(cno_input,sno_input,titleno_input,sanswer_inut,'0'); END IF;Commit; End;Call KS('000T,'4141005T,'0T,'B');/修改題目存儲過程/修改題目create or replace procedure XGTM( cno_input in char, titleno_input in char, titlecontent_input in v
24、archar2 )is begin update title settitle.titlecontent = titlecontent_inputWHERE o = cno_input AND title.titleno = titleno_input; commit;end;/修改答案create or replace procedure XGDA(cno_input in char,titleno_input in char,answer_input in varchar2)isbeginupdate title settitle.answer = answer_inputWHERE o
25、= cno_input AND title.titleno = titleno_input; commit;end;/修改分數(shù)create or replace procedure XGFS(cno_input in char,titleno_input in char,score_input in char)isbeginupdate title settitle.score = score_inputWHERE o = cno_input AND title.titleno = titleno_input; commit;end;/學生查卷過程create or replace proce
26、dure CJ (cno_input in char,sno_input in char)_isv_sqlvarchar2(1024);beginv_sql := 'create or replace VIEWPAPER_VIEW(titleno,titlecontent,answer,sanswer,gerscore)ASSELECTtitle.titleno,title.titlecontent,title.answer,paper.sanswer,paper.getscoreFROMtitle,paperWHEREo=o AND title.titleno=paper.title
27、no ANDpaper.sno=sno_input AND o=cno_inputorder by titleno'EXECUTE IMMEDIATE v_sql using cno_input,sno_input;end;/成績統(tǒng)計過程(學生考試完成點擊提交時)create or replace procedure TJ(cno_input in char,sno_input in char)istotle number(10,0);beginselect SUM(GETSCORE) into totle from paperWHERE paper.CNO = cno_input A
28、ND paper.SNO = sno_input;updatesc set sc.grade = totleWHERE sc.CNO = cno_input AND SC.SNO = sno_input;commit;end;call TJ ('0001','41410050');4.3查詢/查卷(視圖)CREATE or replace VIEWPAPER_VIEW_41410051(titleno,titlecontent,answer,sanswer,gers core)AS SELECTtitle.titleno,title.titlecontent,t
29、itle.answer,paper.sanswer,paper.getscoreFROMtitle,paperWHEREo=o AND title.titleno=paper.titleno ANDpaper.sno='41410051'order by titleno;/ 查卷(sqlplus ) setlinesize 200 pagesize 999 newpage; Col answer format a47;SELECTtitle.titleno,title.titlecontent,'正確答案是',title.answer,' 你的答案是
30、39;,paper.sanswer,' 得分',paper.getscoreFROMtitle,paperWHEREo=o AND title.titleno=paper.titleno AND paper.sno='4141005T order by titleno;/查看試題SELECTtitle.titleno,title.titlecontent FROM titleWHEREo='0001' order by titleno;/查看課程考試成績情況Selectstudent.sno,student.sname,sc.grade fromstud
31、ent,sco='000T ANDsc.sno = student.sno;/查看課程平均分Select avg(grade) from sc Where o='0001'4.4登陸設計由丁做登陸的時候分表查詢用戶信息一直出bug,經(jīng)過搜索解決辦法后決定建立一個教師學生用戶表來解決問題create table P_USER(username CHAR(9),password VARCHAR2(20),)從此表中只判斷登陸是否成功。4.4.1 jsp頁面部分login.jsp<%page contentType="text/html" pageE
32、ncoding="UTF-8"%><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8”><title>login</title></head><body><form action,"http:/localhost:8080/loginServlet/LoginServlet” method=&quo
33、t;post”>歡迎使用在線考試系統(tǒng)用戶名:<input type="text" name="username" /><br/>密碼:<input type="password" name="password" /><br/><input type="submit" value=" 登錄"/></form></body></html>Welcome.jsp<%page
34、contentType="text/html" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>login</title></head><body><form action="http:/localhost
35、:8080/loginServlet/LoginServlet" method="post">歡迎使用在線考試系統(tǒng)歡迎登陸!</form></body></html>4.4.2 servlet 編寫UserServlet.javapackagecom.baosight.servlet;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpSer
36、vlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.baosight.bean.UserBean;/* <p>Title:UserServlet</p>* <p>Description:TODO</p>* <p>Company: </p>* author zxy* date 2016-12-26 下午 10:50:57*/public class UserServlet
37、 extends HttpServlet (public void doGet(HttpServletRequest request,HttpServletResponse response)throwsServletException, lOException (doPost(request,response);public void doPost(HttpServletRequest request,HttpServletResponse response)throwsServletException, lOException (String method = request.getPar
38、ameter("method");if("login".equals(method)(/登錄String username = request.getParameter("username");String password = request.getParameter("password");if(username=null|"".equals(username.trim()|password=null|"".equals(password.trim()System.out
39、.println("用戶名或密碼不能為空!");response.sendRedirect("login.jsp");return;UserBeanuserBean = new UserBean();booleanisValid = userBean.valid(username,password);if(isValid)System.out.println("登錄成功!");request.getSession().setAttribute("username", username);response.sendR
40、edirect("welcome.jsp");return;elseSystem.out.println("用戶名或密碼錯誤!");response.sendRedirect("login.jsp");return;else if("logout".equals(method)/退出登錄System.out.println("退出登錄!");request.getSession().removeAttribute("username");response.sendRedire
41、ct("login.jsp");return;4.4.3 javabeans 編寫DBAcess.javapackagecom.baosight.bean;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;/*數(shù)據(jù)庫操作類* <p>Title:DBAcess</p>* <p>Description:TODO</p>
42、* <p>Company: </p>* author zxy* date 2016-12-25 下午 12:40:24*/public class DBAcess private String driver = "oracle.jdbc.driver.OracleDriver”;private String url = "jdbc:oracle:" + "thin:25:1158:orcl"private String username = "system"private Stri
43、ng password = "123456"private Connection conn;private Statement stm;privateResultSetrs;/ 創(chuàng)建連接publicbooleancreateConn() boolean b = false;try Class.forName(driver);/ 加載 Oracle 驅動程序conn = DriverManager.getConnection(url, username, password); b = true; catch (SQLException e) / TODO Auto-gener
44、ated catch blocke. printStackTrace();/獲取連接catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace();return b;/ 查詢public void query(String sql)try stm = conn.createStatement();rs = stm.executeQuery(sql); catch (SQLException e) / TODO Auto-generated catch blocke.printStackT
45、race();/判斷有無數(shù)據(jù)publicboolean next()(boolean b = false;try (if(rs.next()(b = true; catch (SQLException e) (/ TODO Auto-generated catch blocke.printStackTrace();return b;/獲取表字段值public String getValue(String field) (String value = null;try (if (rs != null) (value = rs.getString(field); catch (SQLException e) (/ TODO Auto-generated catch blocke.printStackTrace();return value;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中數(shù)學蘇科版七年級上冊2.4 絕對值與相反數(shù)教案設計
- 北師大版(2013)六年級下冊第二十九課 小小理財師教案配套
- 五一節(jié)前安全教育培訓
- 重癥肌無力小講課
- 浙教版七年級科學上 4.8 物理性質(zhì)和化學性質(zhì)教學設計
- 二婚夫妻合同終止條款
- 人教版小學二年級上冊數(shù)學 第4單元 第3課時 5的乘法口訣 教案
- 供應商合作合同樣本
- 人教版實驗活動1 氧氣的實驗室制取與性質(zhì)教案配套
- 2025網(wǎng)絡視頻廣告投放合同范本
- 培訓調(diào)查問卷分析報告
- 廣東省廣州市2024年中考英語真題(含答案)
- 佘祥林案件完整版本
- DB23T 3840-2024 非煤礦山隱蔽致災因素普查治理工作指南
- 配電箱巡查記錄表
- 2024年建設工程質(zhì)量檢測人員-建設工程質(zhì)量檢測人員(使用功能)考試近5年真題集錦(頻考類試題)帶答案
- 2024年亞馬遜廣告洞察報告 Amazon Advertising Report 2024 -Featuring Google advertising insights
- 龐貝病護理教學查房
- 第3節(jié) 第2課時 理想氣體狀態(tài)方程和氣體實驗定律的微觀解釋 教學課件
- 2024年大學生信息素養(yǎng)大賽(省賽)練習考試題庫(含答案)
- 《中國心力衰竭診斷和治療指南2024》解讀
評論
0/150
提交評論