freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文---基于java的在線考試系統(tǒng)的設(shè)計-資料下載頁

2025-01-16 19:35本頁面
  

【正文】 碼如下: LoginFrame類: private JTextField idField。 private JPasswordField pwdField。 public int getUserId(){ String str = ()。 return (str)。 } public String getUserPwd(){ char[] pwd = ()。 return new String(pwd)。 } ClientContext類: int id = ()。 String pwd = ()。 User user = (id, pwd)。 //實例化接口, ExamServiceImpl examService 東北林業(yè)大學(xué)畢業(yè)論文 15 (user)。 主菜單界面 主菜單界面采用可擴(kuò)展 JFrame繼承類的 MenuFrame 類來實現(xiàn)。 圖 44 主菜單界面圖 主菜單界面設(shè)計也是考試系統(tǒng)設(shè)計中不可缺少的一個環(huán)節(jié),它也包括以下幾個模塊: 1).界面的初始化 設(shè)置界面標(biāo)題“個人在線測評系統(tǒng)”;設(shè)置界面大小,長 600,高 400;設(shè)置內(nèi)容面板;添加事件偵聽器,將在窗口關(guān)閉按鈕 windowClosing 被點擊的時候 執(zhí)行事件,然后調(diào)用控制器 clientContext的退出功能 exit方法。相關(guān)代碼如下: addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { ()。 } })。 2).內(nèi)容面板的創(chuàng)建 先設(shè)置 JPanel 對象 pane,采用 相對位置管理方法 BorderLayout 布局;然后是菜單標(biāo)題圖片“ ” 的加載,通過 getResource 方法獲取圖片,以標(biāo)簽形式顯示,將其放在內(nèi)容面板的上方; 創(chuàng)建菜單面板并加載到內(nèi)容面板的中間位置;最后將標(biāo)簽“東北林業(yè)大學(xué) — 版權(quán)所有,盜版必究”添加到內(nèi)容面板的右下方。 3).菜單面板的創(chuàng)建 菜單面板主要用來顯示 四個菜單按鈕 :開始 (start)、分?jǐn)?shù) (result)、考試規(guī)則東北林業(yè)大學(xué)畢業(yè)論文 16 (message)和離開 (exit);在每一個按鈕上面 都加載有一張圖片,如下代碼: JPanel pane = new JPanel(new FlowLayout())。 JButton start = createImgBtn(, 開始 )。 JButton result = createImgBtn(, 分?jǐn)?shù) )。 JButton msg = createImgBtn(, 考試規(guī)則 )。 JButton exit = createImgBtn(, 離開 )。 將這些按鈕添加到菜單面板上: (start)。 (result)。 (msg)。 (exit)。 同樣每個面板都加有事件偵聽器,將在每個按鈕被點擊的時候調(diào)用控制器的各個功能。 4).圖片按鈕的創(chuàng)建 需要用到垂直文本對齊位置和水平文本對齊位置,代碼: JButton button = new JButton(txt, ico)。 //垂直文本對齊位置 ()。 //水平文本對齊位置 ()。 5).菜單界面信息的更新 private JLabel info。 public void updateView(User user) { (歡迎 +()+參加個人在線考試 )。 } 6).開始考試之前 點擊“分?jǐn)?shù)”按鈕 , 會彈出對話框: 圖 45 “還沒有考試”對話框 彈出對話框事件將在“分?jǐn)?shù)”按鈕被點擊的時候執(zhí)行,調(diào)用業(yè)務(wù)層 ExamServiceImpl類的 getScore方法,該方法用 if條件語句來拋出 RuntimeException異?!斑€沒有考試!” ,相關(guān)代碼如下: public int getScore() { if(! over){ throw new RuntimeException(還沒有考試 !)。//() } return score。 } 東北林業(yè)大學(xué)畢業(yè)論文 17 7).考試答題結(jié)束交卷以后,點擊“分?jǐn)?shù)”按鈕,會彈出對話框: 圖 46 成績顯示對話框 彈出對話框事件將在“分?jǐn)?shù)”按鈕被點擊的時候執(zhí)行 ,調(diào)用控制器 ClientContext的 result方法,該方法調(diào) 用顯示消息對話框來顯示考生成績,代碼如下: MenuFrame類: (new ActionListener() { public void actionPerformed(ActionEvent e) { ()。 } })。 ClientContext類: public void result() { try{ int score = ()。 (menuFrame,你的成績 :+score)。 }catch(Exception e){ ()。 (examFrame,())。 } } 8).點擊“考試規(guī)則 (message)”按鈕會彈出對話框: 圖 47 “考試規(guī)則”對話框 彈出對話框事 件將在“分?jǐn)?shù)”按鈕被點擊的時候執(zhí)行,調(diào)用 顯示消息對話框showMessageDialog方法, 顯示以上消息,代碼如下: (new ActionListener() { public void actionPerformed(ActionEvent arg0) { (, 考生請自覺遵守考試規(guī)則!禁止作弊,考試期間禁止喧嘩! )。 } 東北林業(yè)大學(xué)畢業(yè)論文 18 })。 考生考試模塊 考試框 考試框圖如下: 圖 48 考試框圖 考試框是考試系統(tǒng)設(shè)計中很重要的環(huán)節(jié),通過 ExamFrame類實現(xiàn),它的設(shè)計分為以下幾個模塊: 1).考試框的初始化 ( 1) 設(shè)置考試框的標(biāo)題為“個人在線測評”;設(shè)置考試框大小,長 600,高 380;初始化創(chuàng)建內(nèi)容面板;添加事件偵聽器,即交卷事件將在考試框的關(guān)閉按鈕 被點擊的時候執(zhí)行,調(diào)用控制器 ClientContext 的 send方法,執(zhí)行交卷功能,代碼: addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { ()。 } })。 2).考試內(nèi)容面板的創(chuàng)建 設(shè)置 JPanel 的對象為 pane,采用相對管理位置 BorderLayout 布局;加載圖片“ ”到內(nèi)容面板的上方,通過 getResource 方法獲取圖片;添加中心面板到內(nèi)容面板的中間位置;工具面板放在內(nèi)容面板的下方; 中心面板 顯示:標(biāo)簽“姓名: XXX 考試: XXX 考試時間: XXX”,位于 內(nèi)容 面板的上方,為 examInfo;考試試題面板位于中心面板的中間;考試選項面板位于中心面板的下方。 東北林業(yè)大學(xué)畢業(yè)論文 19 3).考試試題面板的創(chuàng)建 面板上方是題目(題干),下方是四個選項,代碼: private JScrollPane createQuestionPane() { JScrollPane pane = new JScrollPane()。 (new TitledBorder(題目 ))。//標(biāo)題框 questionArea = new JTextArea()。 (問題 \nA.\nB.)。 (true)。//允許折行顯示 (false)。//不能夠編輯內(nèi)容 //JTextArea 必須放到 JScrollPane 的視圖區(qū)域中 (Viewport) ().add(questionArea)。 return pane。 } 4).考試選 項面板的創(chuàng)建 選項有 A、 B、 C、 D 四個,分別添加到選項面板上,代碼如下: private JPanel createOptionsPane(){ JPanel pane = new JPanel()。 Option a = new Option(0,A)。 Option b = new Option(1,B)。 Option c = new Option(2,C)。 Option d = new Option(3,D)。 options[0]=a。 options[1]=b。 options[2]=c。 options[3]=d。 (a)。 (b)。 (c)。 (d)。 return pane。 } 5).“上 /下一題”、“交卷”按鈕的創(chuàng)建 “上 /下一題”按鈕用來 切換到上一個或是下一個題目, 做完第一題,點擊下一題按鈕可以切換到第二題,做完第二題也可以返回到上一題;等所有題目都做完,而且做題時間沒有用完,就可以點擊交卷按鈕 ,執(zhí)行交卷功能。三個事件偵聽器分別執(zhí)行相應(yīng)的功能,分別調(diào)用控制器 ClientContext 的 next(下一題)、 prev(上一題)和 send(交卷)方法,代碼如下: private JPanel createBtnPane() { JPanel pane = new JPanel(new FlowLayout())。 prev = new JButton(上一題 )。 next = new JButton(下一題 )。 JButton send = new JButton(交卷 )。 (prev)。 東北林業(yè)大學(xué)畢業(yè)論文 20 (next)。 (send)。 (new ActionListener() { public void actionPerformed(ActionEvent e) { ()。 } })。 (new ActionListener() { public void actionPerformed(ActionEvent e) { ()。 } })。 (new ActionListener() { public void actionPerformed(ActionEvent e) { ()。 } })。 return pane。 } 考生在線考試界面 在線考試界面就是考生答題界面, 如下所示。該答題界面是由上圖 48所示的考試框視圖更新以后得到的,視圖更新主要包括:考試信息的更新(姓名、編號、考試時間、考試科目、題目數(shù)量),試題的更新(題干和選項的更新),顯示題號的更新,首末頁按鈕的更新,還有剩余答題時間的更新。 東北林業(yè)大學(xué)畢業(yè)論文 21 圖 49 考生考試界面圖 考試框視圖更新模塊: 1).視圖更新主方法 ( 1) 視圖的更新采用 updateView 方法實現(xiàn), updateView 方法內(nèi)含兩個參數(shù):考試信息( ExamInfo)和試題信息( QuestionInfo),該方法調(diào)用了以下更新方法:更新首末頁按鈕顯示的方法 updateButton,更新顯示題號的方法 updateQuestionNum,更新選項答題情況顯示的方法 updateOptions。代碼如下: private JLabel examInfo。 private JTextArea questionArea。 public void updateView(ExamInfo examInfo,QuestionInfo questionInfo){ (updateView:+examInfo)。 (())。 (())。 updateOptions(())。 updateQuestionNum((), ())。 updateButton((), ())。 } 2).考試信息的更新 考試信息更新后可以顯示是誰在考試,由數(shù)據(jù)管理層包中的 ExamInfo 類實現(xiàn),ExamInfo類是考試信息值對象, 采用 Java Bean 規(guī)范,代碼如下: public String toString() { if(user==null) return 無信息 !。 return 姓名 : +() + 編號 : + () + 考試時間 : + timeLimit + 分鐘 + 考試科目 : + title + 題目數(shù)量 : + questionCount。 } 3).試題的更新 試題的更新包括題干( title)的更新和四個選項的更新 ,采用 Question 類實現(xiàn),Question 對象代表一道試題, 包含題干和四個選項以及正確答案 。實現(xiàn)更新的相關(guān)代碼如下: private String title。//題干 private ListString options = new ArrayListString()。//若干選項 private ListInteger answers = new ArrayListInteger()。//正確答案 private int score。//每題分?jǐn)?shù) private int level。//題目等級 private int type。 //試題 類型 : 單選 SINGLE_SELECTION /多選 MULTI_SELECTION public String toString(){ StringBuffer sb=new StringBuffer(title+\n)。 東北林業(yè)大學(xué)畢業(yè)論文 22 for(int i=0。i()。i++){ ((char)(i+39。A39。)+.+(i)+\n)。 } (正確答案: )。 for(int i=0。i()。i++){ ((char)((i)+39。A39。)+,)。 } (\n)。 return ()。 } 4).答題情況的更新 ExamFrame類實現(xiàn): private void updateOptions(ListInteger userAnswers) { (Call updateOptions userAnswers:+userAnswers)。 for (Option option : options) { (())。 } } 5).顯示題號的更新 ( ExamFrame類) private JLabel questionCount。 private void updateQuestionNum(int questionCount, int questionIndex){ String str = 題目 :+questionCount+ 的第 +(questionIndex+1)+ 題 。 (str)。 } 6).首末頁按鈕顯示的更新 ( ExamFrame類) private JButton prev, next。 private void updateButton(int questionCount, int questionIndex){ (questionIndex!=0)。 (questionIndex!=(questionCount1))。 } 7).定時器的更新 ( ExamFrame類) 定時器的更新主要用來顯示考試時間還剩余多少,以“時:分:秒”形式顯示,如下: Show參數(shù)的單位是微秒。 private JLabel timer。
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1