当前位置:首页 >> 英语 >>

1102


面向对象程序设计上机题

信息科学与工程学院

将代码贴在各题下面,将运行结果贴在各题下面。 1、 课本P248 第4题。 代码:
import java.io.*; public class timetest { public static void main(String[] args) throws Exception{ FileInputStream File=new DataInputStream Data=new int count=0; byte B; try{ while(true) { B=Data.readByte(); if(B==65||B==97) count++; } } catch( Exception e) { System.out.println("a和A出现的总次数为:" + count++); } } } FileInputStream ("myFile.txt"); DataInputStream(File);

截图:

1

面向对象程序设计上机题

信息科学与工程学院

2、

课本P248 第6题。 代码:

import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.RandomAccessFile; public class asf { public static void main(String[] args) { FileOutputStream fos=null; FileInputStream fis=null; File f=new File("E:\\a.txt"); //判断文件是否存在 if(!f.exists()) { try { f.createNewFile(); //如果文件不存在则创建此文件 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else{ System.out .println("此文件已创建"); System.out .println("请输入10个整数(0~9)"); } InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); try { fos=new FileOutputStream(f); String s=br.readLine();//从键盘输入数据 fos.write(s.getBytes());//将数据写入到文件里 fos.close(); RandomAccessFile fps = new RandomAccessFile(f,"r"); //定义一个字节数组,相当于缓存 byte bytes[]=new byte[100];

2

面向对象程序设计上机题
int n=0;//实际读取到的字节数 fps.skipBytes(4);

信息科学与工程学院

System.out.println("指针位置为:" + fps.getFilePointer()); n = fps.read(bytes); String str = new String(bytes,5,n); System.out.println("读出数据为"+str);//显示文件内容 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

截图:

3

面向对象程序设计上机题

信息科学与工程学院

3、

课本P248 第16题。并且按三层架构模式编程实现以下功能: (1) 实现对Customer信息的增加、修改、删除、查询, (先往 Customer表中增加一些测试记录,然后再修改、删除、查 询) ;

提示: (a) 按16题要求,在Access中创建2个表并建立关联(主外键关联); Order表:

Customer表:

数据表之间的关系: (b) 创建一个CustomerGUI类,作为界面类,如下图所示界面。

在这样一个界面,可以实现新增、修改、删除、查询任务。

4

面向对象程序设计上机题

信息科学与工程学院

(c) 创建一个Customer实体类,用来描述客户的基本信息。基本上,只有属性定 义。
public class Customer { private String CustomerName; private String CustomerID; public String getName() { return CustomerName; } public void setName(String name) { this.CustomerName = name; } public String getAddress() { return CustomerID; } public void setAddress(String ID) { this.CustomerID = ID; } }

(d) 创建一个DB类,提供connectDB()、disconnectDB()等方法。甚至还可以定义 一些其他方法,如:executeSQL(), executeUpdate(), executeDelete(), executeInsert()等。

5

面向对象程序设计上机题

信息科学与工程学院

import java.sql.*; public class DB { static String url ="jdbc:odbc:myDatasource"; static Connection con; public static Connection getCon() { return con; } public static void setCon(Connection con) { DB.con = con; } public static Connection connectDB() { try { Class.forName("sum.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection(url,"",""); } catch(ClassNotFoundException e) { System.out.println(e); } catch(SQLException e) { System.out.println(e); } return con; }

6

面向对象程序设计上机题
public static void disconnectDB() { try { con.close(); } catch(SQLException e) { System.out.println(e); } } }

信息科学与工程学院

(e) 创建一个CustomerDAL类,提供add、update、delete、findAll、findByName 等方法,每个方法里面,都要完成该方法所要做的事情。一般过程是:调用 DB类的connectDB方法?然后执行sql命令?调用DB类的disconnectDB方法
import java.sql.*; public class CustomerDAL { Statement stmt = null; void add(String sql) { try { DB.connectDB(); stmt = DB.getCon().createStatement(); stmt.executeUpdate(sql); } catch(SQLException e) { System.out.println(e.getMessage()); e.printStackTrace(); } finally { try { if(stmt!=null) stmt.close();

7

面向对象程序设计上机题

信息科学与工程学院

if(DB.getCon()!=null) DB.disconnectDB(); } catch(SQLException e) { System.out.println(e.getMessage()); e.printStackTrace(); } } } void update(String sql) { try { DB.connectDB(); stmt = DB.getCon().createStatement(); stmt.executeUpdate(sql); } catch(SQLException e) { System.out.println(e.getMessage()); e.printStackTrace(); } finally { try { if(stmt!=null) stmt.close(); if(DB.getCon()!=null) DB.disconnectDB(); } catch(SQLException e) { System.out.println(e.getMessage()); e.printStackTrace(); } } } void delete(String sql) { try

8

面向对象程序设计上机题
{ DB.connectDB();

信息科学与工程学院

stmt = DB.getCon().createStatement(); stmt.executeUpdate(sql); } catch(SQLException e) { System.out.println(e.getMessage()); e.printStackTrace(); } finally { try { if(stmt!=null) stmt.close(); if(DB.getCon()!=null) DB.disconnectDB(); } catch(SQLException e) { System.out.println(e.getMessage()); e.printStackTrace(); } } } }

(f) 创建一个CustomerBLL类, 这里提供add、 update、 delete、 findAll、 findByName 等方法。这里的方法,都要调用CustomerDAL类中对应的方法。

import java.sql.*; public class CustomerDAL { static Customer aCustomer; static String url="jdbc:odbc:myDataSource"; static Connection aConnection; static Statement aStatement; static String name; static String sex; static int age;
9

面向对象程序设计上机题 static String address;

信息科学与工程学院

/*添加一个新记录*/ public static void add(Customer aCustomer)throws DuplicateException{ name=aCustomer.getname(); sex=aCustomer.getsex(); age=aCustomer.getage(); address=aCustomer.getaddress(); String sql="INSERT INTO CustomerT(Name,SEX,Age,Address)" + "VALUES ('"+ name+"','"+ sex+"','"+ age+"','"+ address+"')"; System.out.println(sql); try{ Customer c=findAll(); throw(new DuplicateException("该用户已存在")); } catch(NotFoundException e){ try{ int result=aStatement.executeUpdate(sql); } catch(SQLException ee){ System.out.println(ee); } } } /*更新指定的记录*/ public static void update(Customer NotFoundException{ name=aCustomer.getname(); sex=aCustomer.getsex(); age=aCustomer.getage(); address=aCustomer.getaddress();

aCustomer)throws

String sql="Update CustomerT SET Name='" + name +"'," +" Sex='" +sex+"'" +" Age='" + age +"'" + " Address='" +address+"'"; try{
10

面向对象程序设计上机题

信息科学与工程学院

int result=aStatement.executeUpdate(sql); } catch(SQLException e){ System.out.println(e); } } /*删除指定的记录*/ public static void delete(Customer NotFoundException{ name=aCustomer.getname(); String sql="DELTTE FROM + "'"; try{ int result=aStatement.executeUpdate(sql); } catch(SQLException e){ System.out.println(e); } } //查询CustomerT表中的所有的信息 public static Customer findAll(){ String url; Connection conn=null; Statement stmt=null; String contactID; String name; //生成查询语句 String sqlx="select contactID,name from contactT"; /*连接数据库并执行查询语句,释放连接*/ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //指定myDataSource数据源 url="jdbc:odbc:myDataSource"; conn=DriverManager.getConnection(url,"",""); //创建一个Statement实例
11

aCustomer)throws

CustomerT" + "WHERE name='" + name

面向对象程序设计上机题

信息科学与工程学院

stmt=conn.createStatement(); //执行SQL查询语句sqlx ResultSet rs=stmt.executeQuery(sqlx); //从结果集合rs读取数据 while(rs.next()){ contactID=rs.getString("contactID"); name=rs.getString("name"); System.out.println(contactID+ "," +name); } rs.close(); } catch(ClassNotFoundException e){ System.out.println(e); } catch(SQLException e){ System.out.println(e.getMessage()); //显示异常信息 e.printStackTrace(); } finally{ try{ //释放Statement所用的资源 if(stmt!=null) stmt.close(); if(conn!=null) conn.close(); } catch(SQLException e){ System.out.println(e.getMessage()); e.printStackTrace(); } } return null;

} public void findByName(){ } public void findOrdersByCustomer(){

12

面向对象程序设计上机题 } }

信息科学与工程学院

(g) 在界面类中,调用CustomerBLL类中的相应方法完成任务。

public class CustomerBLL { public void add(){ Customer aCustomer=new Customer(); System.out.println("要添加的记录是:" + aCustomer.add()); } public void update(){ Customer aCustomer=new Customer(); System.out.println(" 要 更 新 的 aCustomer.update());









"

+

} public void delete(){ Customer aCustomer=new Customer(); System.out.println("要删除的记录是:" + aCustomer.delete); } public void findAll(){ Customer aCustomer=new Customer(); System.out.println("要查询的记录是:" + aCustomer.findAll); } }

(2)实现对Order信息的增加(往Order表中增加一些测试记录, 需要注意,Order记录跟Customer记录有关联,同上步骤a-g,只需完 成增加功能 ------ 提示:需要OrderGUI、Order实体类、OrderDAL、 OrderBLL等类, 可复用 DB 类的 connectDB、 disconnectDB 方法) ; (3) 查询Customer的订单信息(注意:需要体现类之间的1对多
13

面向对象程序设计上机题

信息科学与工程学院

关系) 。 ------ 提示:可以在(1)的CustomerGUI界面类中,增加一 个区域来显示查询结果。需要在CustomerBLL、CustomerDAL类中提 供一个findOrdersByCustomer() 方法,然后在CustomerGUI中调用 CustomerBLL类中的findOrdersByCustomer() 方法。

14


相关文章:
淡然1102-寻找适合自己的稳定盈利模式
淡然1102-寻找适合自己的稳定盈利模式_金融/投资_经管营销_专业资料。淡然 1102: 寻找适合自己的稳定盈利模式:精选个股,波段... 02-01 16:14 6 条评论 寻找...
HP惠普打印机,激光打印机1102路由器安装方法
HP惠普打印机,激光打印机1102路由器安装方法_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 HP惠普打印机,激光打印机1102路由器安装方法_IT/计算机_专业...
LT1102中文
LT1102中文_电子/电路_工程科技_专业资料。中文使用说明高速、精密结型场效应管仪表放大器 ( LT1102)特性:转换速率:30V/?s 增益带宽积:35MHz 稳定时间(0.01%)...
UV1102II紫外可见分光光度计的标准操作规程
***有限公司质量管理体系文件 文件名:UV1102II型紫外可见分光光度计操作 规程 1 目的 建立 UV1102II 型紫外可见分光光度计的标准操作规程,确保设备正常运行,防止...
仪器仪表采购合同1102
仪器仪表采购合同1102_合同协议_表格/模板_实用文档。采购合同 供需 方: 方: 太原市益买家工贸有限公司 山西省邮电建设工程有限公司 合同编号: 第一章 合同说明 ...
苏建函科(2010)1102号
江苏省住房和城乡建设厅苏建函科〔2010〕1102 号 江苏省建筑节能分部工程监理实施细则( 关于印发《江苏省建筑节能分部工程监理实施细则(标 准化格式文本)》(试行)...
苏建函科〔2010〕1102号
苏建函科〔2010〕1102号_建筑/土木_工程科技_专业资料。苏建函科〔2010〕1102号及建筑节能分部工程施工方案江苏省住房和城乡建设厅苏建函科〔2010〕1102 号 关于...
2013年奖学金公示单(学院专用)1102大班doc
2013年奖学金公示单(学院专用)1102大班doc_其它考试_资格考试/认证_教育专区 暂无评价|0人阅读|0次下载|举报文档2013年奖学金公示单(学院专用)1102大班doc_其它...
工业工程1102李佳伟毕业论文_图文
机电工程学院 工业工程系 11440215 李佳伟 工程 1102 卢伟宏 副教授 2015.1.6~2015.6.15 吉林化工学院 Jilin Institute of Chemical Technology 吉林化工学院本科...
UV1102II型紫外可见分光光度计操作规程1
UV1102II型紫外可见分光光度计操作规程1_电脑基础知识_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档UV1102II型紫外可见分光光度计操作规程1_电脑基础...
更多相关标签: