




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)4基于圖形用戶界面的JDBC程序開發(fā) (2)淮海工學(xué)院計(jì)算機(jī)科學(xué)系實(shí)驗(yàn)報(bào)告書課程名:_ Java_題 目:_基于圖形用戶界面的JDBC程序開發(fā)班 級(jí):_ _ 學(xué) 號(hào):_ _ 姓 名:_ _ _評(píng)語(yǔ):成績(jī): 指導(dǎo)教師: 批閱時(shí)間: 年 月 日一、實(shí)驗(yàn)?zāi)康氖炀氝\(yùn)用GUI標(biāo)準(zhǔn)組件和布局管理器,正確合理地利用常用AWT和Swing組件進(jìn)行圖形界面的設(shè)計(jì);理解Java的事件處理機(jī)制,正確運(yùn)用Java的事件處理機(jī)制及事件委托模型編寫圖形界面組件的事件處理程序;理解Java多線程機(jī)制,掌握線程使用方法。理解JDBC的數(shù)據(jù)庫(kù)訪問(wèn)編程原理,正確利用JDBC技術(shù)編寫以數(shù)據(jù)庫(kù)應(yīng)用為核心的軟件系統(tǒng),并在設(shè)計(jì)中靈活
2、運(yùn)用之前所學(xué)的Java語(yǔ)言面向?qū)ο蟮木幊碳夹g(shù)。二、實(shí)驗(yàn)環(huán)境操作系統(tǒng):windows 2000 或 Window XP集成開發(fā)環(huán)境:JDK1.6及以上版本三、實(shí)驗(yàn)學(xué)時(shí) 2學(xué)時(shí),必做實(shí)驗(yàn)。四、實(shí)驗(yàn)內(nèi)容(1) 進(jìn)一步熟悉JavaGUI標(biāo)準(zhǔn)組件和布局管理器、正確合理地利用常用AWT和Swing組件進(jìn)行圖形界面的設(shè)計(jì);理解Java的事件處理機(jī)制,正確運(yùn)用Java的事件處理機(jī)制及事件委托模型編寫圖形界面組件的事件處理程序;實(shí)踐程序調(diào)試方法、糾錯(cuò)能力及編程規(guī)范性等;理解JDBC的數(shù)據(jù)庫(kù)訪問(wèn)編程原理,正確利用JDBC技術(shù)編寫以各種數(shù)據(jù)庫(kù)應(yīng)用;(2) 按以下各題目具體要求調(diào)試或編寫相關(guān)算法程序五、實(shí)驗(yàn)步驟與結(jié)果
3、1 請(qǐng)按照以下功能要求編寫并調(diào)試相關(guān)程序(1) 請(qǐng)定義一個(gè)抽象的“科學(xué)圖書”類,其中包含1個(gè)公共的抽象方法:圖書介紹;1個(gè)屬性為:圖書類別 (字符串類型); (2) 定義一個(gè)“計(jì)算機(jī)圖書”子類(繼承于“科學(xué)圖書”類),其中包括2個(gè)域:出版社、定價(jià);2個(gè)構(gòu)造方法: 一個(gè)為無(wú)參構(gòu)造方法,在該無(wú)參構(gòu)造方法中將“圖書類別”設(shè)置為“計(jì)算機(jī)圖書”,一個(gè)帶2個(gè)參數(shù)(出版社、定價(jià));不少于2個(gè)成員方法:分別用來(lái)查看出版社、修改定價(jià),圖書介紹文字可自編,并編寫輸出計(jì)算機(jī)圖書全部信息的toString()方法。(3) 編寫一個(gè)圖形用戶界面,用來(lái)測(cè)試能否正確創(chuàng)建計(jì)算機(jī)圖書類的對(duì)象、能否正常調(diào)用其方法,參考界面如下。
4、必須實(shí)現(xiàn)的基本功能是:1)單擊圖中的“新增計(jì)算機(jī)圖書”按鈕,則可顯示出新增的計(jì)算機(jī)圖書信息(顯示信息的控件不限,用文本域、列表框、表格均可),要求添加的計(jì)算機(jī)圖書不少于2本,如下圖所示:圖1 運(yùn)行截圖新增計(jì)算機(jī)圖書2)單擊圖中的“修改定價(jià)”按鈕,可修改其中某本圖書的定價(jià),并在下方顯示出修改后的結(jié)果請(qǐng)按照實(shí)驗(yàn)內(nèi)容具體要求完成相關(guān)設(shè)計(jì)與編程,實(shí)驗(yàn)步驟;(1) 程序代碼import java.awt.*;import java.awt.event.*;class CM extends Frame implements ActionListenerCMBook start; /當(dāng)做鏈表的開頭Panel
5、 操作欄;Label 出版社,定價(jià),顯示;TextField 出版社欄,定價(jià)欄;Button 新增計(jì)算機(jī)圖書,修改定價(jià);TextArea 顯示內(nèi)容;CM()super("計(jì)算機(jī)圖書類操作圖形用戶界面");start=null;顯示=new Label();顯示內(nèi)容=new TextArea();顯示內(nèi)容.setSize(80,50);新增計(jì)算機(jī)圖書=new Button("新增計(jì)算機(jī)圖書");修改定價(jià)=new Button("修改定價(jià)");新增計(jì)算機(jī)圖書.addActionListener(this);修改定價(jià).addActionLi
6、stener(this);操作欄=new Panel();操作欄.setSize(60,5);出版社=new Label("出版社");定價(jià)=new Label("定價(jià)");出版社欄=new TextField(10);定價(jià)欄=new TextField(5);操作欄.add(出版社);操作欄.add(出版社欄);操作欄.add(定價(jià));操作欄.add(定價(jià)欄);操作欄.add(新增計(jì)算機(jī)圖書);操作欄.add(修改定價(jià));setTitle("計(jì)算機(jī)圖書類操作的圖形界面");add(操作欄,BorderLayout.NORTH);ad
7、d(顯示內(nèi)容,BorderLayout.CENTER);add(顯示,BorderLayout.SOUTH);setBounds(300,300,500,500);setVisible(true);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=新增計(jì)算機(jī)圖書)String one=出版社欄.getText();String two=定價(jià)欄.getText();if(Integer.parseInt(two)<0)顯示.setText("價(jià)格不能為負(fù)數(shù)");elseCMBook
8、 mid=new CMBook(one,Integer.parseInt(two);mid.next=start;start=mid;顯示內(nèi)容.append(mid.toString(); else if(e.getSource()=修改定價(jià))int pricenew;CMBook point;String one,two,three;one=出版社欄.getText();two=定價(jià)欄.getText();point=start;while(true)if(point=null)顯示.setText("查找不到該類別");break;if(point.出版社.equals
9、(one)point.定價(jià)=Integer.parseInt(two);顯示內(nèi)容.append("價(jià)格修改完成"+point.toString();break;elsepoint=point.next;abstract class Book String 圖書類別;abstract String 圖書介紹();class CMBook extends BookCMBook next; /額外增加一個(gè)引用String 出版社;int 定價(jià);String 圖書介紹()return "書籍是人類進(jìn)步的階梯"CMBook()圖書類別="計(jì)算機(jī)圖書&qu
10、ot;next=null;CMBook(String 出版社,int 定價(jià))this.出版社=出版社;this.定價(jià)=定價(jià);圖書類別="計(jì)算機(jī)圖書"next=null;String 查看出版社()return 出版社;void 修改定價(jià)(int 定價(jià))this.定價(jià)=定價(jià);public String toString()return ("類別"+圖書類別+"|出版社"+出版社+"|定價(jià)"+定價(jià)+"圖書介紹|書籍是人類進(jìn)步的階梯n");public class Bookcdxpublic stat
11、ic void main(String args)new CM();(2) 相應(yīng)運(yùn)行結(jié)果2、(選做題) 改正以下程序中出現(xiàn)的錯(cuò)誤,并進(jìn)行注釋說(shuō)明import java.applet.applet;import java.awt.*;public class test extends Applet Label prompt1,prompt2; TextField inputNo1,inputName1 Department MyDept1; void init() prompt1=new Label("請(qǐng)輸入部門的編號(hào):"); inputNo1=new TextField(5
12、); prompt2=new Label("請(qǐng)輸入部門的名稱:"); inputName1=new TextField(5); add(prompt1); add(inputNo1); add(prompt2); add(inputName1); MyDept1=new Department ( ); inputNo1.addAction(this); public paint(graphic g) g.drawstring(MyDept1.toString(),20,100); public void action(ActionEvent e) if(e.getSourc
13、e=inputNo1) MyDept1.setDeptNo(inputNo1.getText(); else if(e.getSource()=inputName1) MyDept1.m_DeptName=new String(inputName1.getText(); repaint(); return True; final class Department int m_DeptNo=10; static m_DeptName; String getDeptNo() return m_DeptNo; setDeptNo(int newno) if(newno>0) m_DeptNo=
14、newno; return true; else return false; public String toString() return("部門編號(hào):"+getDeptNo()+" " +"部門名稱:" +m_DeptName+" "); 改正:import java.applet.*;/ 引入包import java.awt.*; / 引入包import java.awt.event.*;/分號(hào)public class Test extends Applet implements ActionListener
15、 / extend錯(cuò)誤Label prompt1,prompt2; TextField inputNo1,inputName1;/分號(hào) Department MyDept1; public void init() /少public prompt1=new Label("請(qǐng)輸入部門的編號(hào):"); inputNo1=new TextField(5); prompt2=new Label("請(qǐng)輸入部門的名稱:"); inputName1=new TextField(5); add(prompt1); add(inputNo1); add(prompt2); a
16、dd(inputName1);/添加inputName1 MyDept1=new Department ( ); inputNo1.addActionListener(this);/添加this inputName1.addActionListener(this); this.setVisible(true);/顯示輸出 public void paint(Graphics g)/ 單詞錯(cuò)誤Graphics g.drawString(MyDept1.toString(),20,100); /drawString public void actionPerformed(ActionEvent e
17、)/action 拼寫錯(cuò)誤 if(e.getSource()=inputNo1) MyDept1.setDeptNo(Integer.parseInt(inputNo1.getText(); /類型轉(zhuǎn)換成字符 else if(e.getSource()=inputName1)/判斷是相等用= MyDept1.m_DeptName=new String(inputName1.getText(); /repaint(); /return True; /返回為空不需要 class Department /final不需要 int m_DeptNo=10; /分號(hào) String m_DeptName;
18、 /類型沒(méi)有給出 String getDeptNo() /S return Integer.toString(m_DeptNo); /類型 boolean setDeptNo(int newno)/返回類型沒(méi)有給出 if(newno>0) m_DeptNo=newno; return true; else return false; public String toString() /S return("部門編號(hào):"+getDeptNo()+" " +"部門名稱:" +m_DeptName+" "); 3、(
19、選做題) 請(qǐng)按照以下功能要求編寫并調(diào)試相關(guān)程序?qū)嶒?yàn)內(nèi)容:(1) 熟練Tomcat安裝與配置; (2) 熟練servlet部署、三種開發(fā)方式;(3) 練習(xí)JDBC連接;(4) 練習(xí)基于JDBC與Servlet的數(shù)據(jù)庫(kù)查詢、更新(添加、刪除、修改)(一) 實(shí)驗(yàn)步驟:熟悉Tomcat安裝,servlet部署步驟;(1) 依次創(chuàng)建WEB-INF、classes、lib、web.xml等目錄結(jié)構(gòu)(2) 完成相關(guān)Servlet程序并調(diào)試(二) 以繼承HttpServlet方式開發(fā)Servlet,完成基于Servlet的JDBC連接(數(shù)據(jù)庫(kù)選擇SQLServer2000以上)和數(shù)據(jù)查詢應(yīng)用。(1) 選擇SQ
20、LServer2000數(shù)據(jù)庫(kù),建立Test數(shù)據(jù)庫(kù)和相關(guān)users表(字段userid,username,userpass),用戶名111,密碼111;(2) 以繼承HttpServlet方式開發(fā)Servlet,完成以下數(shù)據(jù)庫(kù)查詢顯示代碼并調(diào)試相關(guān)結(jié)果。package js.hit;import javax.servlet.http.*;import java.sql.*;import java.io.*;public class DataSel extends HttpServletpublic void doGet(HttpServletRequest req,HttpServletResp
21、onse res)try res.setContentType("text/html;charset=gbk");PrintWriter out = res.getWriter();String url = "jdbc:microsoft:sqlserver:/:1433;DatabaseName = test"String user = "111"String password = "111"String sqlsel = "select userid,username,userpas
22、s from users"Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");Connection cn = DriverManager.getConnection(url,user,password);Statement sm = cn.createStatement();ResultSet rs = sm.executeQuery(sqlsel);while(rs.next()out.println(rs.getString(1)+"");out.println(rs.
23、getString(2)+"");out.println(rs.getString(3)+"");out.println("<br>");rs.close();sm.close();cn.close(); catch (Exception ex) public void doPost(HttpServletRequest req,HttpServletResponse res)this.doGet(req,res);(三) 在上例數(shù)據(jù)庫(kù)基礎(chǔ)上,繼續(xù)以繼承HttpServlet方式開發(fā)另一個(gè)Servlet,完成基于Servlet的數(shù)據(jù)更新應(yīng)用,參考代碼如下。package js.hit;import javax.servlet.http.*;import java.io.*;import java.sql.*;public class DataUpd extends HttpServlet public void doGet(HttpServletRequest req,HttpServletRes
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度房產(chǎn)抵押小微企業(yè)貸款合同模板
- 2025年度兒童房安全木門定制合同
- 2025年度專利技術(shù)許可協(xié)議模板-智能硬件
- 2025年度家具行業(yè)專利技術(shù)許可合同
- 冷藏肉類電商運(yùn)輸合同
- 2025年度導(dǎo)演聘用合同范例:院線電影導(dǎo)演合作協(xié)議書
- 2025年吉安職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)完整
- 2025年度農(nóng)業(yè)種植合同解除協(xié)議樣本
- 親子教育居間合同
- 2025年度文化旅游產(chǎn)業(yè)投資合作協(xié)議書范文
- 2024年中國(guó)血糖健康管理行業(yè)白皮書
- 大班數(shù)學(xué)PPT課件《實(shí)物填補(bǔ)數(shù)》
- 乳痛癥的健康宣教
- GB/Z 43281-2023即時(shí)檢驗(yàn)(POCT)設(shè)備監(jiān)督員和操作員指南
- 吊籃檢查記錄
- 《我的家族史》課件
- 干部考察報(bào)告表()
- 《攝影圖片分析》課件
- 青少年社會(huì)支持評(píng)定量表
- kW直流充電樁的設(shè)計(jì)
- 施工圖總目錄
評(píng)論
0/150
提交評(píng)論