实验八基于图形用户界面的JDBC程序开发_第1页
实验八基于图形用户界面的JDBC程序开发_第2页
实验八基于图形用户界面的JDBC程序开发_第3页
实验八基于图形用户界面的JDBC程序开发_第4页
实验八基于图形用户界面的JDBC程序开发_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验4基于图形用户界面的JDBC程序开发 (2)淮海工学院计算机科学系实验报告书课程名:_ Java_题 目:_基于图形用户界面的JDBC程序开发班 级:_ _ 学 号:_ _ 姓 名:_ _ _评语:成绩: 指导教师: 批阅时间: 年 月 日一、实验目的熟练运用GUI标准组件和布局管理器,正确合理地利用常用AWT和Swing组件进行图形界面的设计;理解Java的事件处理机制,正确运用Java的事件处理机制及事件委托模型编写图形界面组件的事件处理程序;理解Java多线程机制,掌握线程使用方法。理解JDBC的数据库访问编程原理,正确利用JDBC技术编写以数据库应用为核心的软件系统,并在设计中灵活

2、运用之前所学的Java语言面向对象的编程技术。二、实验环境操作系统:windows 2000 或 Window XP集成开发环境:JDK1.6及以上版本三、实验学时 2学时,必做实验。四、实验内容(1) 进一步熟悉JavaGUI标准组件和布局管理器、正确合理地利用常用AWT和Swing组件进行图形界面的设计;理解Java的事件处理机制,正确运用Java的事件处理机制及事件委托模型编写图形界面组件的事件处理程序;实践程序调试方法、纠错能力及编程规范性等;理解JDBC的数据库访问编程原理,正确利用JDBC技术编写以各种数据库应用;(2) 按以下各题目具体要求调试或编写相关算法程序五、实验步骤与结果

3、1 请按照以下功能要求编写并调试相关程序(1) 请定义一个抽象的“科学图书”类,其中包含1个公共的抽象方法:图书介绍;1个属性为:图书类别 (字符串类型); (2) 定义一个“计算机图书”子类(继承于“科学图书”类),其中包括2个域:出版社、定价;2个构造方法: 一个为无参构造方法,在该无参构造方法中将“图书类别”设置为“计算机图书”,一个带2个参数(出版社、定价);不少于2个成员方法:分别用来查看出版社、修改定价,图书介绍文字可自编,并编写输出计算机图书全部信息的toString()方法。(3) 编写一个图形用户界面,用来测试能否正确创建计算机图书类的对象、能否正常调用其方法,参考界面如下。

4、必须实现的基本功能是:1)单击图中的“新增计算机图书”按钮,则可显示出新增的计算机图书信息(显示信息的控件不限,用文本域、列表框、表格均可),要求添加的计算机图书不少于2本,如下图所示:图1 运行截图新增计算机图书2)单击图中的“修改定价”按钮,可修改其中某本图书的定价,并在下方显示出修改后的结果请按照实验内容具体要求完成相关设计与编程,实验步骤;(1) 程序代码import java.awt.*;import java.awt.event.*;class CM extends Frame implements ActionListenerCMBook start; /当做链表的开头Panel

5、 操作栏;Label 出版社,定价,显示;TextField 出版社栏,定价栏;Button 新增计算机图书,修改定价;TextArea 显示内容;CM()super("计算机图书类操作图形用户界面");start=null;显示=new Label();显示内容=new TextArea();显示内容.setSize(80,50);新增计算机图书=new Button("新增计算机图书");修改定价=new Button("修改定价");新增计算机图书.addActionListener(this);修改定价.addActionLi

6、stener(this);操作栏=new Panel();操作栏.setSize(60,5);出版社=new Label("出版社");定价=new Label("定价");出版社栏=new TextField(10);定价栏=new TextField(5);操作栏.add(出版社);操作栏.add(出版社栏);操作栏.add(定价);操作栏.add(定价栏);操作栏.add(新增计算机图书);操作栏.add(修改定价);setTitle("计算机图书类操作的图形界面");add(操作栏,BorderLayout.NORTH);ad

7、d(显示内容,BorderLayout.CENTER);add(显示,BorderLayout.SOUTH);setBounds(300,300,500,500);setVisible(true);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=新增计算机图书)String one=出版社栏.getText();String two=定价栏.getText();if(Integer.parseInt(two)<0)显示.setText("价格不能为负数");elseCMBook

8、 mid=new CMBook(one,Integer.parseInt(two);mid.next=start;start=mid;显示内容.append(mid.toString(); else if(e.getSource()=修改定价)int pricenew;CMBook point;String one,two,three;one=出版社栏.getText();two=定价栏.getText();point=start;while(true)if(point=null)显示.setText("查找不到该类别");break;if(point.出版社.equals

9、(one)point.定价=Integer.parseInt(two);显示内容.append("价格修改完成"+point.toString();break;elsepoint=point.next;abstract class Book String 图书类别;abstract String 图书介绍();class CMBook extends BookCMBook next; /额外增加一个引用String 出版社;int 定价;String 图书介绍()return "书籍是人类进步的阶梯"CMBook()图书类别="计算机图书&qu

10、ot;next=null;CMBook(String 出版社,int 定价)this.出版社=出版社;this.定价=定价;图书类别="计算机图书"next=null;String 查看出版社()return 出版社;void 修改定价(int 定价)this.定价=定价;public String toString()return ("类别"+图书类别+"|出版社"+出版社+"|定价"+定价+"图书介绍|书籍是人类进步的阶梯n");public class Bookcdxpublic stat

11、ic void main(String args)new CM();(2) 相应运行结果2、(选做题) 改正以下程序中出现的错误,并进行注释说明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("请输入部门的编号:"); inputNo1=new TextField(5

12、); prompt2=new Label("请输入部门的名称:"); 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("部门编号:"+getDeptNo()+" " +"部门名称:" +m_DeptName+" "); 改正:import java.applet.*;/ 引入包import java.awt.*; / 引入包import java.awt.event.*;/分号public class Test extends Applet implements ActionListener

15、 / extend错误Label prompt1,prompt2; TextField inputNo1,inputName1;/分号 Department MyDept1; public void init() /少public prompt1=new Label("请输入部门的编号:"); inputNo1=new TextField(5); prompt2=new Label("请输入部门的名称:"); 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)/ 单词错误Graphics g.drawString(MyDept1.toString(),20,100); /drawString public void actionPerformed(ActionEvent e

17、)/action 拼写错误 if(e.getSource()=inputNo1) MyDept1.setDeptNo(Integer.parseInt(inputNo1.getText(); /类型转换成字符 else if(e.getSource()=inputName1)/判断是相等用= MyDept1.m_DeptName=new String(inputName1.getText(); /repaint(); /return True; /返回为空不需要 class Department /final不需要 int m_DeptNo=10; /分号 String m_DeptName;

18、 /类型没有给出 String getDeptNo() /S return Integer.toString(m_DeptNo); /类型 boolean setDeptNo(int newno)/返回类型没有给出 if(newno>0) m_DeptNo=newno; return true; else return false; public String toString() /S return("部门编号:"+getDeptNo()+" " +"部门名称:" +m_DeptName+" "); 3、(

19、选做题) 请按照以下功能要求编写并调试相关程序实验内容:(1) 熟练Tomcat安装与配置; (2) 熟练servlet部署、三种开发方式;(3) 练习JDBC连接;(4) 练习基于JDBC与Servlet的数据库查询、更新(添加、删除、修改)(一) 实验步骤:熟悉Tomcat安装,servlet部署步骤;(1) 依次创建WEB-INF、classes、lib、web.xml等目录结构(2) 完成相关Servlet程序并调试(二) 以继承HttpServlet方式开发Servlet,完成基于Servlet的JDBC连接(数据库选择SQLServer2000以上)和数据查询应用。(1) 选择SQ

20、LServer2000数据库,建立Test数据库和相关users表(字段userid,username,userpass),用户名111,密码111;(2) 以继承HttpServlet方式开发Servlet,完成以下数据库查询显示代码并调试相关结果。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);(三) 在上例数据库基础上,继续以继承HttpServlet方式开发另一个Servlet,完成基于Servlet的数据更新应用,参考代码如下。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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论