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

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第二节雷达及ARPA的使用
1102第二节雷达及ARPA的使用 - 第二节雷达及 ARPA 的使用 1156. __A___ is not a job of the radar antenna. 下列哪一项不是雷达天线的...
淡然1102-寻找适合自己的稳定盈利模式
淡然1102-寻找适合自己的稳定盈利模式_金融/投资_经管营销_专业资料。淡然 1102: 寻找适合自己的稳定盈利模式:精选个股,波段... 02-01 16:14 6 条评论 寻找...
段科 新能源1102 发明制作类_图文
段科 新能源1102 发明制作类 - 编号: 江苏大学学生科研项目申请书 课题名称:LED 纳米流体喷雾冷却技术申请者: 所在学院: 年级专业: 指导老师: 申请...
SC1102
SC1102 - SC1102/SC1102A Synchronous Voltage Mode Controller for Distributed Power Supply Applicat...
LT1102中文
LT1102中文_电子/电路_工程科技_专业资料。中文使用说明高速、精密结型场效应管仪表放大器 ( LT1102)特性:转换速率:30V/?s 增益带宽积:35MHz 稳定时间(0.01%)...
网络1102计算机硬件工艺
计算机硬件工艺 实习报告 姓名 宋博涵 院系 计通学院 班级 网络 1102 班学号 201158080224 指导老师 吴佳英、龙际珍、刘青共 3 位老师 实习时间 2013 年 1 月...
1102班班会总结
1102班班会总结_工作总结/汇报_总结/汇报_应用文书。班会总结认真学习习近平主席 在北京大学讲话精神 主题班会总结时间:2014 年 5 月 7 日 地点:大操场 参与者:...
1102班班规
1102 班班规为了给同学们创造一个愉快的学习和生活环境, 使班级工作能够 正常有序进行,使 1102 班成为一个团结优秀的集体,特建立此班级管 理制度。具体内容如下...
SIVX系列VR1102工程案例
北京华鼎恒业技术有限公司 产品案例 问题类型 SIVX 系列 VR1102 维护 项目名称 武汉和左高速 拟制人 汪先 【故障现象】 在 SIVX 的平台页面上,发现有 2 台 ...
(泰州)RJGC1102
(泰州)RJGC1102_其它_高等教育_教育专区。看看呢南京理工大学泰州科技学院课程考试试卷 (学生考试用) 课程名称:试卷编号: 软件工程基础(B) 考试方式: 闭卷 学分...
更多相关标签: