JAVA第五次实验报告

合集下载

JAVA实验报告5异常处理实验

JAVA实验报告5异常处理实验

JAVA实验报告5异常处理实验异常处理是Java程序设计中非常重要的一部分,能够有效地处理程序在运行过程中可能出现的异常情况。

在本次实验中,我们主要学习了Java中的异常处理机制,并对其进行了实践。

一、实验目的:1、学习Java中的异常处理机制;2、掌握如何使用try-catch来处理异常;3、了解Java中常见的异常类和异常处理语句的使用方法。

二、实验内容:1、编写一个Java程序,在程序中故意引发一个异常,然后使用try-catch语句来处理该异常,并在catch块中打印异常的详细信息;2、使用多个catch块来处理不同类型的异常,并在每个catch块中打印对应异常的详细信息;3、使用finally块来执行一些必须要执行的代码,比如关闭文件等。

三、实验步骤:1、首先,我们编写一个简单的Java程序,使用try-catch语句来处理异常。

假设我们在程序中故意除以0,然后在catch块中打印出异常信息。

代码如下:```public class ExceptionHandlingDemopublic static void main(String[] args)tryint result = 10 / 0;} catch (ArithmeticException e)System.out.println("发生异常:" + e);}}```2、接下来,我们使用多个catch块来处理不同类型的异常。

假设我们在程序中使用一个空数组,然后尝试访问数组的第一个元素。

如果数组为空,则会抛出ArrayIndexOutOfBoundsException异常。

代码如下:```public class ExceptionHandlingDemopublic static void main(String[] args)int[] array = new int[0];tryint firstElement = array[0];} catch (ArrayIndexOutOfBoundsException e)System.out.println("发生异常:" + e);} catch (Exception e)System.out.println("未知异常:" + e);}}```3、最后,我们使用finally块来执行一些必须要执行的代码。

JAVA实验报告5异常处理实验

JAVA实验报告5异常处理实验

JAVA实验报告5异常处理实验一、实验目的1. 了解Java异常处理机制;2. 掌握Java中异常处理的方式;3.熟悉自定义异常的方法。

二、实验内容本实验通过编写代码来体验Java中的异常处理机制,主要包括以下几个方面:1.了解异常的基本知识;2. 学习try-catch语句的使用方法;3. 掌握throws关键字的用法;4.编写自定义异常类。

三、实验步骤1. 编写一个“除法计算器”类DivideCalculator,该类有一个名为divide的方法,用于计算两个整数的商,并返回结果。

如果除数为0,则会抛出一个自定义的异常类DivideByZeroException;2. 在DivideCalculator类中,先使用try-catch语句来捕获DivideByZeroException异常,如果除数为0,则在控制台上打印出“不能除以0”的错误信息;3. 在该方法中再使用throws关键字将异常抛出,以便调用方能捕获该异常;4. 编写一个测试类CalculatorTest来测试DivideCalculator类,将两个整数输入给divide方法,观察控制台输出的结果;5. 在CalculatorTest类中使用try-catch语句来捕获DivideByZeroException异常,并打印出错误信息;6. 在CalculatorTest的main方法中调用divide方法,传入5和0作为参数;7.运行程序,观察控制台输出的结果。

四、实验结果根据实验步骤中的代码编写,可得到以下实验结果:1.当传入的除数为非零整数时,程序正常执行并返回正确结果;2. 当传入的除数为0时,程序会抛出自定义的异常DivideByZeroException,并在控制台上打印出错误信息"不能除以0";3. 在CalculatorTest的try-catch语句中捕获到DivideByZeroException异常,并打印出错误信息"不能除以0"。

java实验报告第五次

java实验报告第五次

题目:简易聊天班级学号:姓名:一、实验内容实现简易两个客户端的聊天。

二、实验步骤1、创建服务器2、创建客户端,并与客户端建立连接。

3、实现两个客户端之间进行简单的聊天。

三、源程序部分源程序服务器端:public class Server {// 保存在线人的套接字和名字HashMap<String, Socket> online = new HashMap<String, Socket>();private UserDao dao = new UserDao();public void server() {try {// 服务器端ServerSocket server = new ServerSocket(2222);while (true) {Socket socket = server.accept();new QQReader(socket).start();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}class QQReader extends Thread {private Socket socket;public QQReader(Socket socket) {this.socket = socket;}// 判断某人是否在线,返回true表示不在线public boolean isOnline(String name) {return online.get(name) == null ? true : false;}public String getonlineName() {Set<String> onlineName = online.keySet();Iterator<String> it = onlineName.iterator();StringBuffer sf = new StringBuffer("ONLINELIST:");while (it.hasNext()) {sf.append(it.next() + ":");// ONLINE:zhangsan1:zhangsan2}String sendText = sf.toString();return sendText.substring(0, sendText.length() - 1);}public void sendMessageToAllButSelf(String info, String self) {try {// 给所有已经上线的人发送好友在线信息Collection<Socket> onlineSocket = online.values();Iterator<Socket> iterator = onlineSocket.iterator();while (iterator.hasNext()) {Socket temp_socket = iterator.next();if (!temp_socket.equals(online.get(self))) {BufferedWriter temp_writer = new BufferedWriter(new OutputStreamWriter(temp_socket.getOutputStream()));// temp_writer.write("ONLINE:" + infos[1] + "\r\n");temp_writer.write(info);temp_writer.flush();}}} catch (IOException e) {e.printStackTrace();}}@Overridepublic void run() {try {BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));String info = "";while ((info = reader.readLine()) != null) {String[] infos = info.split(":");if (info.startsWith("LOGIN")) {if (dao.select(infos[1])) {// 首先判断是否已经在线if (isOnline(infos[1])) {online.put(infos[1], socket);writer.write("LOGIN:OK\r\n");writer.flush();sendMessageToAllButSelf("SYSTEM:ONLINE:" + infos[1]+ "\r\n", infos[1]);writer.write(getonlineName() + "\r\n");writer.flush();} else {writer.write("LOGIN:RELOG\r\n");writer.flush();}} else {writer.write("LOGIN:REFUSE\r\n");writer.flush();}} else if(info.startsWith("CHA T")){Socket temp_socket = online.get(infos[2]);if(temp_socket != null){BufferedWriter temp_writer = new BufferedWriter(new OutputStreamWriter(temp_socket.getOutputStream()));//原样转发不做处理自己加上\r\ntemp_writer.write(info+"\r\n");temp_writer.flush();}else{if (infos[2].equals("所有人")) {sendMessageToAllButSelf(info + "\r\n", infos[1]);}}}else if(info.startsWith("EXIT")){//移除要下线的人online.remove(infos[1]);//给还在线上的用户发送好友下线信息将树的刷新操作交给客户端了,由于jtree不熟,移除指定名的结点相对麻烦/** 第二个参数指的是给所有人发送,但是除去自己,现在没有自己,我们就传原因是由于map 中从未放置过"" */sendMessageToAllButSelf(getonlineName() + "\r\n", "");sendMessageToAllButSelf("SYSTEM:EXIT:" + infos[1] + "\r\n", "");}} } catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static void main(String[] args) {new Server().server();}}客户端:public class Chat {private String name;private Socket socket;private JFrame frame;private JTextArea area;private JScrollPane pane;private DefaultMutableTreeNode root;//根结点private DefaultTreeModel model;//树模型private JTree tree;private JLabel lbl;private JTextField field;//保存对方的姓名private JTextField txt;//要发送的内容private JButton btnSet;//发送按钮private JPanel panelSouth;public Chat(Socket socket,String name){this.socket = socket; = name;}private Reader reader;public void init(){frame = new JFrame();area = new JTextArea(25,30);area.setLineWrap(true);pane = new JScrollPane(area,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZON TAL_SCROLLBAR_NEVER);root = new DefaultMutableTreeNode("我的好友");model = new DefaultTreeModel(root);tree = new JTree(model);model.insertNodeInto(new DefaultMutableTreeNode(), root, 0);panelSouth = new JPanel();lbl = new JLabel( + "对:");field = new JTextField(15);txt = new JTextField(25);btnSet = new JButton("发送");frame.add(pane);frame.add(tree,BorderLayout.EAST);panelSouth.add(lbl);panelSouth.add(field);panelSouth.add(txt);panelSouth.add(btnSet);frame.add(panelSouth,BorderLayout.SOUTH);frame.setBounds(200, 240, 900, 400);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);new Reader().start();tree.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {String path = tree.getSelectionPath().toString();String[] paths = path.split(",");if(paths.length == 2){String id = paths[1].substring(0, (paths[1].length() - 1)).trim();field.setText(id);}else{field.setText("");}}});btnSet.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub//判断是否有人发送//判断是否有发送的消息String to = field.getText().trim();String comms = txt.getText().trim();if(!to.equals("") && !comms.equals("")){try {BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(Chat.this.socket.getOutputStream()));writer.write("CHA T:" + + ":" + to + ":" + comms +"\r\n");writer.flush();txt.setText("");area.setText(area.getText() + + "\t" + newSimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()) + "\r\n");area.setText(area.getText() + comms + "\r\n"} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}else{JOptionPane.showMessageDialog(frame, "发送人或者发送消息为空", "警告",JOptionPane.W ARNING_MESSAGE);}}});frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {// TODO Auto-generated method stubtry {//将下线信息发送给服务器端BufferedWriter writer = new BufferedWriter(new OutputStreamWriter( socket.getOutputStream()));writer.write("EXIT:" + + "\r\n");writer.flush();Thread.sleep(50);//保证数据能够正确的发送到服务器端//关闭socketreader.setFlag(false);socket.close();} catch (Exception e1) {// TODO Auto-generated catch block//e1.printStackTrace();} }});}class Reader extends Thread{private boolean flag = true;public void flushTree(String[] online){root.removeAllChildren();//移除某一个根结点下的所有的叶子节点//添加自己model.insertNodeInto(new DefaultMutableTreeNode(), root, 0);model.insertNodeInto(new DefaultMutableTreeNode("所有人"), root, root.getChildCount());//添加除自己之外的结点for(String name:online){if(!name.equals()){model.insertNodeInto(new DefaultMutableTreeNode(name), root, root.getChildCount());}}model.reload();}public void setFlag(boolean flag){this.flag = flag;}@Overridepublic void run() {try {BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));while(flag){String info = reader.readLine();String[] infos = info.split(":");if(info.startsWith("ONLINELIST")){//更新树flushTree(Arrays.copyOfRange(infos, 1,infos.length));}else if(info.startsWith("SYSTEM:ONLINE")){model.insertNodeInto(new DefaultMutableTreeNode(infos[2]), root, root.getChildCount());model.reload();area.setText(area.getText() + "系统消息" + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()) + "\r\n" + infos[2] + "上线了\r\n");}else if(info.startsWith("CHAT")){area.setText(infos[1] + ":\t" + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()) + "\r\n");area.setText(area.getText()+ infos[3] + "\r\n");field.setText(infos[1]);}else if(info.startsWith("SYSTEM:EXIT")){area.setText(area.getText() + "系统消息" + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()) + "\r\n" + infos[2] + "下线了\r\n");}}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}四、实验结果五、出现的问题及解决的方法。

Java实验报告(w5-w6)

Java实验报告(w5-w6)

师大福清分校计算机实验报告〔W5,W6〕院/系:数学与计算机科学系课程名称:Java面向对象程序设计日期:测试报告结果分析注意非法字符2class Letter{char start = 'A';void printLetter(){for(int i = 0;i<25;i++){char c = '0';c = (char)(i+start);System.out.printf("%c ",c);if(i%7==0&&i!=0) System.out.printf("\n");}}}class Letter2{public static void main(String[] args){Letter p = new Letter();p.printLetter();}}3.import java.util.*;public class DengCha3{public static void main(String[] args){DengCha shulie = new DengCha();shulie.setStart(6);shulie.setD(7);System.out.printf("首项为6,公差为7的等差数列的前5项和为%d",shulie.getSum(5));}}class DengCha{int s;int d;int sum ;DengCha(){}void setStart(int s){this.s = s;}void setD(int d){this.d = d;}int getSum(int n){sum = n*s+n*(n-1)*d/2;return sum;}}4.import ng.Math;class SquareEquation{double a;double b;static double c;double x1,x2;SquareEquation(double a,double b,double c){this.a = a;this.b = b;SquareEquation.c = c;}void getRoots(){double temp = b*b-4*a*c;if(temp<0) System.out.println("方程无根\n");else if(temp != 0){x1 = (-b+Math.sqrt(temp))/(2.0*a);x2 = (-b-Math.sqrt(temp))/(2.0*a);System.out.printf("方程有两个不同的实根其中x1=%.2f,x2=%.2f\n",x1,x2);}else{x1 = -b/(2.0*a);System.out.printf("方程有两个一样的实根,值为%f\n",x1);}}}public class SquareEquation4{public static void main(String[] args){SquareEquation yi = new SquareEquation(1,2,3);System.out.println("方程式一为x*x+2x+3=0");yi.getRoots();SquareEquation er = new SquareEquation(4,10,1);System.out.println("方程式二为4x^2+10x=0");er.getRoots();System.out.printf("方程一的常数项为%.2f,方程二的常数项为%.2f",yi.c,er.c);}}5.public class Shiyan_5{public static void main(String args[]){Complex x = new Complex(4.0,2.1);Complex y = new Complex(2.5,5.0);Complex t1 = new Complex( );Complex t2 = new Complex( );t1 =x.add(y);t2 =x.sub(y);t1.print( );t2.print( );}}class Complex{double a;double b;Complex(){}Complex(double a1,double b1){a =a1;b=b1;} Complex add(Complex x){double a1,a2;a1 = a + x.a;a2 = b + x.b;return new Complex(a1,a2);}Complex sub(Complex x){double a1,a2;a1 = a - x.a;a2 = b - x.b;return new Complex(a1,a2);}void print(){System.out.printf("实部%.2f,虚部%.2f\n",a,b);}}说明:系统实施:〔程序流程图、重要过程说明、参数设置、变量的说明等〕测试报告:〔调试输入数据、结果数据或状态。

java实验报告5

java实验报告5

《Java语言程序设计》上机实验报告(5)实验名称:实验五Java面向对象编程(2) 班级:软件工程 101姓名:周顺权学号: 110029026上机时间:指导教师:王华一、实验内容或题目:1.方法中参数传递---传值调用。

编写一个传值调用的程序。

2.方法中参数传递---调用对象方法。

编写一个调用对象方法的程序。

3.类的继承。

(1)首先预测下列程序的运行结果,然后编译、执行以验证你的预测:(2) 修改Dog类的构造函数,使之可以初始化Dog类中的weight值。

(3) 在Dog类中添加方法getWeight以获得其weight值(4) 修改类JLab0501,使用新的构造函数创建一个名为“snoopy”,重为10的Dog类的对象,并利用其方法输出包括重量在内的各项值。

(5) 要使Dog类对象的speak()方法返回值为“Woof Woof”,应如何做?修改(1)中程序,并验证你的做法。

4.方法的重载。

(1)首先预测下列程序的运行结果,然后编译、执行以验证你的预测:(2)在类JLab0502中添加下列方法:二、实验目的与要求:1.程序首先给整型变量x 和y 赋一个初值10,然后使用传值调用方式调用方法ff1对x 和y 做乘方及输出x 和y 的乘方值。

2.通过调用对象的方法在方法调用后修改了成员变量的值。

4.(2)编译该程序,观察报错信息,并思考原因。

三、实验步骤与源程序:(1)实验步骤a) 编辑源文件b) 编译c) 运行(2)源代码1:package test5;class XY{int x,y;void setX(int a){x=a;}void setY(int b){y=b;}int getX(){return x;}int getY(){return y;}void ff1(){x=getX()*getX();y=getY()*getY();System.out.println("x^2="+x);System.out.println("y^2="+y);}}public class Involution {public static void main(String args[]){XY xy=new XY();xy.setX(10);xy.setY(10);xy.ff1();}}2:package test5;public class KY3_6 {public static void main(String args[]) {Power p=new Power();p.ff2(10,10);System.out.println("方法调用后x="+p.x+", y="+p.y);}}class Power{int x=10, y=10;void ff2(int passX, int passY) {System.out.println("初始时x="+x+", y="+y);x=passX*passX;y=passY*passY;System.out.println("方法调用中x="+x+", y="+y);}}3(1):class Pet{protected String name;public Pet(String n){name = n;}public String getName(){return name;}public String move(){return "run";}public String speak(){return "";}public String toString(){return "My pet " + name;}}class Dog extends Pet{protected int weight;public Dog(String s){super(s);}}class JLab0501{public static void main(String[] args){Pet myPet = new Pet("George");Dog myDog = new Dog("Spot");System.out.println(myPet.toString() + "\n" + "Speak: " +myPet.speak() +"\n" + myPet.move() + " " +myPet.getName() + "\n");System.out.println(myDog.toString() + "\n" + "Speak: " +myDog.speak() +"\n" + myDog.move() + " " +myDog.getName() + "\n"); }}3(2),3(3),3(4),3(5)(已集合在一起):class Pet{protected String name;public Pet(String n){name = n;}public String getName(){return name;}public String move(){return "run";}public String speak(){return "";}public String toString(){return "My pet " + name;}}class Dog extends Pet{protected int weight=0;void setWeight(int a){weight=a;}int getWeight(){return weight;}public Dog(String s){super(s);// super是指向父类的指针可以通过该指针调用父类//的函数}public String speak(){return "woof woof";}}class JLab0501{public static void main(String[] args){Pet myPet = new Pet("George");Dog myDog = new Dog("Spot");Dog dog=new Dog(“snoopy”);dog.setWeight(10);System.out.println(myPet.toString() + "\n" + "Speak: " +myPet.speak() +"\n" + myPet.move() + " " +myPet.getName() + "\n");System.out.println(myDog.toString() + "\n" + "Speak: " +myDog.speak() +"\n" + myDog.move() + " " +myDog.getName() + "\n");System.out.println(dog.toString()+"\n"+"Speak:"+dog.speak()+"\n"+dog.m ove()+" "+dog.getName()+"\n"+"Weight:"+dog.getWeight()+"\n");}}4(1):public class JLab0502 {public static void test() {System.out.println("test() invoked");}public static int test(int i) {System.out.println("test(" + i + ") invoked");return i;}public static String test(String s) {System.out.println("test(" + s + ") invoked");return s;}public static void test(String s, int i) {System.out.println("test(" + s + ", " + i + ") invoked");}public static void test(int i, String s) {System.out.println("test(" + i + ", " + s + ") invoked");}public static void main(String[] args) {test();test(100);test("test");test("test",100);test(100,"test");}}4(2):添加方法:public static int test(int j) {System.out.println("test(" + j + ") invoked");return j;}四、测试数据与实验结果:1:2:3(1):猜测:My pet GeorgeSpeak:run GeorgeMy pet SpotSpeak:run Spot结果截图:3(2),3(3),3(4),3(5)(已集合在一起):4(1):猜想:test() invokedtest(100) invokedtest(test) invokedtest(test,100) invokedtest(100,test) invoked截图结果:4(2):重载必须保证参数不同。

Java第五次实验要求

Java第五次实验要求

1.输入阿拉伯数字1,2,3,4,5,在屏幕上输出中文的“一,二,三,四,五”。

2.输入两个整数,如果第一个比第二个大,输出“大”,反之输出“小”。

3.设计一个类A,定义一个字符串类型的变量,设计set()方法赋值,设计get()方法取出值。

设计类B,设用set()方法赋值,在屏幕上输出该值(调用get()方法取值)。

4.设计一个类C,定义一个整型变量x,初值为100,设计disp()在屏幕上显示该值。

设计类D,继承类C,定义整型变量x,初值为99,设计dispD()方法,显示本类的x的值。

再设计方法,显示类C中的x 的值。

5.设计一个类E,定义整型变量q,在构造方法里为其赋值。

设计类F,实例化E的一个对象,输入q的值,并显示。

6.设计一个类G,定义有一个整型参数的构造方法,在构造方法中显示这个参数,定义有两个整型参数的构造方法,在构造方法中显示这两个参数的和。

在类G中设计主方法,实现这两个构造方法。

7. 设计一个类H,定义有两个整型参数的构造方法,在构造方法中计算这两个参数的和。

设计类H1继承类H,将构造方法改为,计算两个参数的和之后,再显示这个和乘以500之后的值。

8.输入N个数,反向输出这N个数。

9.输入1个数,显示200除以这个数的商,要求程序能捕获异常。

10.依次输入5个数,显示最大的那一个,并将最大的那个数写入文件t.txt文件中。

JAVA第五次实验报告

JAVA第五次实验报告

JAVA第五次实验报告实验五:数组的引用类型与多态性实验目的:1.掌握数组的引用类型和多态性的概念和使用。

2. 熟悉Java中数组的创建、初始化和遍历。

3.理解多态性的概念和实现方式。

4. 掌握Java中类和对象的定义和使用。

实验过程:1. 创建了一个名为"Person"的类,拥有一个私有成员变量"name"和一个公有的构造方法和一个公有的成员方法printName(。

2. 创建了一个名为"Student"的类,作为Person类的子类,拥有一个私有成员变量"grade"和一个公有的构造方法和一个公有的覆盖了父类方法的成员方法printName(。

3. 创建了一个名为"Teacher"的类,作为Person类的子类,拥有一个私有成员变量"subject"和一个公有的构造方法和一个公有的覆盖了父类方法的成员方法printName(。

4. 在主函数中,创建了一个长度为5的Person类型的数组,并分别实例化了两个Student对象和两个Teacher对象,并将这四个对象赋值给数组的前四个元素。

5. 遍历数组,调用每个对象的printName(方法,分别输出每个对象的名称。

实验结果:运行程序后,实验结果如下:Student - 1Student - 2Teacher - 1Teacher - 2实验分析:通过以上实验,我们可以看到数组可以存储同一父类引用类型的不同子类对象,这种特性称为多态性。

在遍历数组时,可以调用每个对象的方法,实现多态的效果。

在本实验中,通过将两个Student对象和两个Teacher对象赋值给Person类型的数组,我们实现了多态性。

在遍历数组时,调用每个对象的printName(方法,程序会根据对象的具体类型执行对应的方法。

实验总结:通过本次实验,我学会了如何使用数组的引用类型和多态性。

java实验报告五

java实验报告五

java实验报告五Java实验报告五一、引言Java是一种面向对象的编程语言,具有跨平台性、安全性和易学性等特点。

本实验报告将介绍我们在学习Java过程中进行的第五个实验。

二、实验目的本次实验的主要目的是通过实践进一步熟悉Java的基本语法和面向对象的编程思想,并掌握Java中的异常处理机制。

三、实验内容本次实验主要分为两个部分:实现一个简单的图书管理系统和异常处理。

3.1 图书管理系统我们设计了一个简单的图书管理系统,主要包括图书类、用户类和图书管理类。

图书类包含图书的基本信息,如书名、作者、出版社等;用户类包含用户的基本信息,如姓名、年龄、性别等;图书管理类实现了对图书和用户的管理功能,如添加图书、删除图书、借阅图书等。

3.2 异常处理在图书管理系统中,我们使用了异常处理机制来处理一些可能发生的异常情况,如图书馆中没有要借阅的图书、图书已被借完等。

我们使用try-catch语句来捕获异常,并根据具体情况进行相应的处理。

四、实验过程4.1 图书管理系统的实现首先,我们定义了图书类和用户类,并在类中定义了相应的属性和方法。

然后,我们创建了一个图书管理类,并在该类中实现了对图书和用户的管理功能。

最后,我们编写了一个测试类,通过创建对象并调用相应的方法来测试图书管理系统的功能是否正常。

4.2 异常处理在图书管理类的方法中,我们使用了try-catch语句来捕获可能发生的异常。

当出现异常时,程序会跳转到catch块中,并执行相应的处理代码。

我们根据具体情况,输出相应的错误信息或进行其他操作,以保证程序的正常运行。

五、实验结果通过测试,我们发现图书管理系统的功能正常运行,并且能够正确处理可能发生的异常情况。

我们成功添加了图书、删除了图书,并能够正确借阅和归还图书。

六、实验总结通过本次实验,我们进一步熟悉了Java的基本语法和面向对象的编程思想。

我们学会了如何设计和实现一个简单的图书管理系统,并掌握了异常处理的基本方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一:编写一个Java Application程序,打印命令行输入的所有参数。

实验源代码:package .bing;import java.util.Scanner;public class Scanner_01 {public static void main(String[] args) { String name;String Sage;int age;String Ssore;double sore;Scanner in = new Scanner(System.in);System.out.println("请输入你的姓名:");name = in.nextLine();System.out.println("请输入您的年龄:");Sage = in.nextLine();age = Integer.parseInt(Sage);System.out.println("请输入您的分数");Ssore =in.nextLine();sore = Double.parseDouble(Ssore);System.out.println(name+" "+age+" "+sore);}}运行结果:实验题2 阅读下面程序,叙述其功能程序功能:从指定的文件中读出数据。

实验题 3 设计一个类FileRWTest,实现从input.txt文件中读入数据到字符数组cBuffer中,然后再写入到文件“output.txt”中。

[基本要求] 编写完整程序。

程序源代码:package .bing;import java.io.*;public class FileRWTest {public static void main(String[] args) throws FileNotFoundException{int rs;File file = new File("D:\\","input.txt");File fileout = new File("D:\\","Output.txt");FileInputStream fis = new FileInputStream(file);FileOutputStream fos = newFileOutputStream(fileout,true);InputStreamReader isr = new InputStreamReader(fis);OutputStreamWriter out = new OutputStreamWriter(fos);try {while((rs = isr.read())!=-1){char cBuffer=(char)rs;out.write((int)cBuffer);}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {isr.close();out.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}实验题 4"水仙花数"。

所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。

例如,153就是一水仙花数,因为153 = 13+53+33。

请计算出100万以内所有的水仙花数,并以一行一个水仙花数的格式保存到文本文件data.txt中。

输出格式如下:153 = 1*1*1 + 5*5*5 + 3*3*3程序源代码:package .bing;import java.io.*;public class Daffodil {public static void Check(){Integer num;for(num=100;num<1000;num++){String str = new String(num.toString());char []s = new char[str.length()];s = str.toCharArray();int sum=0;for(int i=0;i<str.length();i++){int m = (s[i]-'0');int n = m*m*m;sum+=n;}if(num == sum ){StringBuffer aline = new StringBuffer();aline.append(num+" = ");for(int i=0;i<3;i++){if(i!=2)aline.append(s[i]+"*"+s[i]+"*"+s[i]+"*"+" + ");elsealine.append(s[i]+"*"+s[i]+"*"+s[i]);}String al = new String(aline);File file = new File("F:\\shuixianhua.txt");FileWriter fos;try {fos = new FileWriter(file);BufferedWriter bw = new BufferedWriter(fos);bw.write(al+"\n");bw.newLine();bw.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(al);}}}public static void main(String[] args) {// TODO Auto-generated method stubCheck();}}运行结果:实验题 5写一程序统计纯文本文件“Early-Precaution.txt”的大写字母、小写字母个数,并将所有小写字母转换为大写字母,输出到result.txt程序源代码:package .bing;import java.io.*;public class Getchar {FileReader fr;public static void main(String[] args) {FileReader fr;try {fr = new FileReader("F:\\Early-Precaution.txt");File file = new File("F:\\result.txt");FileWriter fos =new FileWriter(file);BufferedReader br = new BufferedReader(fr);BufferedWriter bw = new BufferedWriter(fos);String aline;int k=0;int m=0;while((aline = br.readLine())!=null){String str = new String (aline);char []s = new char[str.length()];s=str.toCharArray();for(int i=0;i<str.length();i++){if(s[i]>='a'&& s[i]<='z'){k++;}else if(s[i]>='A' && s[i]<='Z'){m++;}}String STR = str.toUpperCase();bw.write(STR + "\n");}br.close();bw.close();System.out.println("小写字母的个数为:");System.out.println(k);System.out.println("大写字母的个数为:");System.out.println(m);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}程序运行结果:实验总结:1、对String类有了进一步的认识。

2、了解并掌握了基本的输入输出流的实现方法。

3、字符流和字节流有了更为深刻的认识。

相关文档
最新文档