版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学号:1310421053 面向对象程序设计实验报告与习题册2013 / 2014 学年 第1学期系 别 计算机科学与技术系专 业 软件工程班 级 (1)班姓 名 蔡 群 指导教师 朱 强 实验四 输入和输出流一 实验目的与要求 1、掌握java常用I/O输入流和输出流;2、掌握各种类型数据写入文件或读出文件的操作。二 实验内容1、编程利用文件流和缓冲流把一个文本文件中的内容复制到另外一个文件中。import java.io.*;public class FileCopy public static void main(Stringargs) FileInputStream fis = nul
2、l;FileOutputStream fos = null;BufferedInputStream bis = null;BufferedOutputStream bos = null;int c;tryfis = new FileInputStream("d:/a1.txt");bis = new BufferedInputStream(fis);fos = new FileOutputStream("d:/a2.txt");bos = new BufferedOutputStream(fos);while(c = bis.read()!=-1) bo
3、s.write(c); bos.flush();catch(FileNotFoundException e1) System.out.println(e1); catch(IOException e2) System.out.println(e2); finally try if(fis !=null) fis.close(); if(fos !=null) fos.close(); if(bis !=null) bis.close(); if(bos !=null) bos.close(); catch(IOException e3) System.out.println(e3); 运行结果
4、2、定义一个类,把这个类所生成的若干对象写入到文件中,然后从文件中读出对象,测试读出对象的正确性。import java.io.*;import java.util.*;class Student implements SerializableString name;char sex;int age;public Student(String name,char sex,int age) = name;this.sex = sex;this.age = age;public String getInfo()return("姓名:" + name + &qu
5、ot;t" + "性别:" + sex + "t" + "年龄:" + age);public class ObjectFile public static void main(String args) throws Exception/*Student s1 = new Student("Jack",'M',20);Student s2 = new Student("Jom",'M',25);FileOutputStream fos = new Fil
6、eOutputStream("e:b.txt");ObjectOutputStream os = new ObjectOutputStream(fos); os.writeObject(s1); os.writeObject(s2); os.close();*/Student s1;Student s2;FileInputStream fis = new FileInputStream("e:b.txt");ObjectInputStream os = new ObjectInputStream(fis);s1 = (Student)os.readObj
7、ect();System.out.println(s1.getInfo();s2 = (Student)os.readObject();System.out.println(s2.getInfo();运行结果三 实验内容中遇到的问题、解决方法和体会。问题:(1)利用文件流和缓冲流把一个文本文件中的内容复制到另外一个文件中时,程序代码没有问题,可是实验结果却显示“找不到指定文件”; (2)输入流、输出流对应的到底是读是写还是有点搞不清,经常在使用时两者搞混淆;解决方法:(1)询问同学,才发现文件后缀名是.txt时,里面的内容是被隐藏的,只需要把后缀名删除,留下文件名就可以了;(2)对于输入输出流
8、对应的是读是写问题,在自己仔细揣摩并且多次实践后终于弄清了他们的对应关系,在之后的使用中,基本没有出现类似这样的错误。体会:这次试验比较简单,基本都是老师上课所说的内容,所以都能实现出来。中间之所以出现错误,是因为自己不细心,所以在之后的实验中要做到细心仔细。实验五 GUI图形界面设计一 实验目的与要求 1、掌握Awt与Swing的区别与联系;掌握Swing常用图像组件的使用;掌握主要的布局管理器的使用方法;2、了解事件处理机制;掌握Swing常用图像组件的使用;掌握固定菜单和弹出式菜单的创建和使用;二 实验内容1、设计并实现一个类似于windows操作系统附件中自带的计算器的一款简单的计算器
9、,要求界面美观,设计合理;带有常用的菜单并实现其功能;能完成加、减、乘、除等简单的计算,在下面写出其核心代码。import java.awt.*;import java.awt.event.*;import javax.swing.*;class MyFrame extends JFramepublic MyFrame() setTitle("Calculator"); MyPanel panel = new MyPanel(); add(panel); pack(); class MyPanel extends JPanel private JButton display
10、;/ 显示单击计算器按钮的值和计算后的值private JPanel panel;/ 计算器面板private double result;private String lastCommand;/ 计算器的命令按钮private boolean start;public MyPanel() setLayout(new BorderLayout();result = 0;lastCommand = "="start = true;display = new JButton("0");display.setEnabled(false);add(display
11、, BorderLayout.NORTH);ActionListener insert = new InsertAction();ActionListener command = new CommandAction(); / 以网格布局管理器管理16个计算器按钮panel = new JPanel();panel.setLayout(new GridLayout(4, 4);/ 在JPanel布局16个计算器按钮addButton("7", insert);/ 把计算器按钮加到计算器面板上addButton("8", insert);addButton(
12、"9", insert);addButton("/", command);addButton("4", insert);addButton("5", insert);addButton("6", insert);addButton("*", command);addButton("1", insert);addButton("2", insert);addButton("3", insert);addButton(&
13、quot;-", command);addButton("0", insert);addButton(".", insert);addButton("=", command);addButton("+", command);add(panel, BorderLayout.CENTER); /*添加计算器按钮到计算器面板上*private void addButton(String label, ActionListener listener) JButton button = new JButton(la
14、bel);button.addActionListener(listener); / 注册事件监听器panel.add(button);/ 设置 display的值为所单击的计算器按钮的值private class InsertAction implements ActionListenerpublic void actionPerformed(ActionEvent event)/ 返回与此动作相关的命令字符串。String input = event.getActionCommand(); if (start) display.setText(""); start =
15、false;display.setText(display.getText() + input);/ 显示单击的计算器按钮的值/*依单击计算器上的内容执行命令*private class CommandAction implements ActionListener public void actionPerformed(ActionEvent event)String command = event.getActionCommand();if (start) if (command.equals("-")display.setText(command);/ 如果单击的是“
16、-”按钮,说明是负数start = false; elselastCommand = command; else / 把字符串转换为Double类型并计算结果calculate(Double.parseDouble(display.getText(); lastCommand = command;start = true;/ *计算结果*public void calculate(double x)if (lastCommand.equals("+")result += x;else if (lastCommand.equals("-")result -
17、= x;else if (lastCommand.equals("*")result *= x;else if (lastCommand.equals("/")result /= x;else if (lastCommand.equals("=")result = x;display.setText("" + result);public class Calculator public static void main(String args) MyFrame frame = new MyFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 关闭计算器窗口frame.setVisible(true);运行结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年企业级系统互联接入服务协议版B版
- 2024年度加工承揽合同:原材料供应商与加工厂之间的加工承揽协议
- 2024年专业物流服务10月委托运输协议版B版
- 2024年商用设施安装协议参考文本一
- 吉林省辽源市2023-2024学年高二语文上学期期中试题
- 2024商品房买卖合同
- 2024年定制版企业人力资源外包服务合同版B版
- 2024年企业协议拟定与执行要点解析
- 2024年度农产品供应与采购合同2篇
- 2024专项货运车辆承包服务协议版B版
- 无生上课课堂教学评价标准
- 提高科学素养 改进科研方法课件
- 《少年中国说》歌词
- 幼儿园中班语言:《谁的尾巴》 课件
- 车间安全生产培训
- 中国国民健康大数据报告(1)课件
- 外研版四年级英语上册M8测试题
- 思想道德与法治课件:第六章 第三节 维护宪法权威
- 共建共享“健康中国”课件
- 中国风古建筑通用ppt模板
- 台州市建筑施工安全生产标准化管理
评论
0/150
提交评论