收藏 分享(赏)

java实验报告-.doc

上传人:精品资料 文档编号:8770326 上传时间:2019-07-11 格式:DOC 页数:24 大小:440KB
下载 相关 举报
java实验报告-.doc_第1页
第1页 / 共24页
java实验报告-.doc_第2页
第2页 / 共24页
java实验报告-.doc_第3页
第3页 / 共24页
java实验报告-.doc_第4页
第4页 / 共24页
java实验报告-.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、实验报告 实践报告课程名称: Java 语言程序设计 实验、实践名称:Java 语言基础、数组和字符串编程、Java 面向对象程序设计、Java 异常处理 多线程编程、图形用户界面编程 实验、实践地点: 致向楼 301 专业班级: 软件 1531 学号: 2015006446 学生姓名: 关玉芬 指导教师: 相洁 2017 年 1 月 8 日实验一 Java 语言基础一、实验目的和要求(1) 通过实验,掌握 Java 语言程序设计的基本方法。(2) 学会 Java 语言中标示符的命名、运算符和表达式的应用。(3) 熟练地掌握 Java 程序流程控制语句的应用。二、实验内容1.编写应用程序,计算

2、 100(含 100)以内所有偶数的和。2.“水仙花数”是指一个 3 位数,其个位、十位、百位上的数字的立方和等于该数本身,例如 371=33+73+13,因此 371 是一个水仙花数。编写程序,求所有的水仙花数。3.编写一个程序,求 1-100 间的素数。4. 有一函数:x (x=1;i-)for(j=1;j=1dataCopyj=dataCopyj+1;dataCopyj+1=temp;System.out.println();System.out.println(“从小到大排序后的序列是:“);for(int j=1;jc) return temp;else return c;publi

3、c int min(int a,int b,int c)int temp;if(ac) return c;else return temp;package mymaths;public class interfaceTest public static void main(String args) int x,y;Zzr c=new Zzr();x = c.min(3,5,8);y = c.max(6,8,9);System.out.println(“最小值为“+x+“,最大值为“+y);4. package a1;class Basepublic static Goods All = new

4、 Goods2;/?public String name;public double price;public String producer;public int id,num;public void showMe()System.out.println(“*“+name+“*“);System.out.println(“商品名称:“+name);System.out.println(“商品编号:“+id);System.out.println(“商品价格:“+price);System.out.println(“生产地“+producer);System.out.println(“数量“+

5、num);System.out.println(“*“+“end“+“*“);public void showNum()System.out.println(“*showNum*“);System.out.println(“商品名称:“+name);System.out.println(“商品id“+id);System.out.println(“数量:“+num);class Goods extends Basepublic void sale(int n,double pay) throws Excif(nthis.num)throw new Exc();System.out.printl

6、n(“商品名称“+name);System.out.println(“商品价格:“+n+“*“+price+“=“+n*price);System.out.println(“您缴费“+pay);double money = pay-n*price;if(money0)System.out.println(“余额不足,您还需要缴费“+(-money);elseSystem.out.println(“购买成功“);System.out.println(“找您“+money);this.num-=n;public void add(String name,int id,double price,St

7、ring producer,int num)this.name = name;this.price = price;this.producer = producer;this.id = id;this.num+=num;System.out.println(“商品上架成功,以下为该商品的基本信息:“);this.showMe();Allid = this;public class Supermarket extends Base public void query(int id)Allid.showMe();/why?public void query(String name)for(Good

8、s g:All)if(g.name=name)g.showMe();public void cheak()for(Goods g:All)g.showNum();public static void main(String args)/ TODO Auto-generated method stubGoods sofa = new Goods();sofa.add(“sofa“, 0, 1000, “太原“, 20);Goods phone = new Goods();phone.add(“phone“, 1, 16, “太原理工“, 30);trysofa.sale(100,3000);ca

9、tch(Exc e)System.out.println(e.getMessage();System.out.println(“请稍等,商品正在入库“);Supermarket s = new Supermarket();s.cheak();s.query(1);s.query(0);sofa.add(“sofa“, 0, 1000, “太原“, 1);s.query(“phone“);class Exc extends ExceptionExc()super(“商品库存不足!“); 五、实验结果1.2.3.4.六、讨论、心得 本次实验让我了解到想用程序解决实际问题时,最好写出三种代码:伪代码

10、、产品代码、测试代码,这样才能快速的写出代码,并且实用性强。希望以后能通过实验了解更多运用 java 解决实际问题的方法,学好 Java。实验四 Java 异常处理一、 实验目的和要求掌握异常的概念,以及如何定义、抛出和捕获处理异常。二、 实验内容1.做实验之前要求思考以下问题,作为预习内容; 错误和异常有何区别?查看 Java 异常类的关系图。 异常是如何抛出、捕获和处理的? Java 捕获和处理异常的结构式怎样的? Try 语句如何嵌套?Trow 语句有何作用?Finally 程序快的作用是什么?2运行下面的程序,理解异常的抛出、捕获与处理。Import java.io.*;public

11、class void main(String args)public staic void main(String args)for(int i=0;i4;i+)int k;tryswitch(i)case 0: /divided by zeroint zero=0;k=911 /zerobreak;case 1:/null pointerint b=null;k=b0;break;case 2; /array index out of boundint c=new int2;k=c9;break;case 3: /string index out of boundchar ch=“abc“.

12、charAt(99);break;catch(Exception e)System.out.println(“nTestcase#“+i+“n“);System.out.println(e);3.在实验三中的超市、商品类中创建一个自定义异常类。要求:在定义商品类时,若销售商品数量大于余额则作为异常处理(InsufficientFundsException) 。提示: 产生异常条件是某类商品销售数量大于库存额,因此是否抛出异常要先判断该条件。 确定产生异常的方法,应该在 sale 方法中产生异常 Insufficient Funds Exception。 处理异常安排在调用 sale 的时候,因

13、此 sale 方法要声明异常,由上级方法捕获并处理。 要定义好自己的异常。三、 主要仪器设备使用的计算机惠普:硬件配置 Win7、软件环境 eclipse四、实验代码.1.(1)错误与异常的区别:错误:指在程序编译时如果程序进入死循环,或递归无法结束,或内存溢出。错误只能在编程阶段解决,只能依靠其他程序干预,否则会一直处于非正常状态。异常:指运算时除数为 0,或操作数超过范围,或打开一个文件时发现文件并不存在,或欲装入的类文件丢失,或网络连接中断等。(2) java 提供了一种利用简单易行的方法检查和处理运行时产生的错误的异常处理机制,它是通过面向对象的方法来处理异常的。在 java 程序的执

14、行过程中,如果出现了异常事件,就会生成一个异常对象。生成的异常对象将传递给 java 运行时系统,这一异常的产生和提交过程成为抛弃异常。当 java 运行时系统得到一个异常对象时,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。找到能够处理这类异常的方法后,运行时系统把当前异常对象交给这个方法进行处理,这一过程称为捕获异常。(3) 根据程序对错误与异常的处理方式,可以将 java 中的异常分为 Error 类,RuntimeException 类和 Exception 类。其中 Error 类包括的是一些严重的程序不能处理的系统错误类,如内存溢出,虚拟机错误,栈溢出等。这类错误一般主要

15、与硬件有关,与程序本身无关,通常由系统进行处理,程序本身无需去捕获和处理。程序运行过程中,可能出现 RuntimeException 类的异常数量相当大,对于运行时的异常类,如数组越界,算术异常等,应通过程序尽量避免而不是去捕获它。(4) 为了避免程序运行时可能出现的错误,将程序代码放在 try 程序块中,紧跟在 try 语句后面包括一个 catch 语句,用来指定需要捕获的异常类型。在程序中发生异常时,程序员可以抛出(throw)一个自定义异常类的实例,将其放到异常队列中去,并激活 java 的异常处理机制。当抛出一个异常时,程序的执行就不再是线性的,这样就有可能导致方法的执行中断。在 ja

16、va 语言中,使用 finally 语句来解决此类问题。Finally 语句创建一个代码块,在try/catch 语句执行后执行,不管是否抛出一个异常,系统都将执行 finally 语句的程序代码。3. package shiyan;public class a1public static void main(String args)try Shop sh = new Shop(100);sh.sale(200);System.out.println(“销售成功!“); catch (InsufficientFundsException e) System.out.println(e.toSt

17、ring();class Shop int num;Shop(int num) this.num = num;public void deposite(int dAmount) num += dAmount;public void sale(int dAmount) throws InsufficientFundsException if (num dAmount)throw new InsufficientFundsException();num = num - dAmount;class InsufficientFundsException extends Exception privat

18、e static final long serialVersionUID = 1L;InsufficientFundsException() super(“商品销售数量大于库存额 !“);五、实验结果23.六、讨论、心得通过本次实验,熟悉掌握了 Java 的异常机制,trycatch()finally的执行过程。通过 new 一个数组,从而通过数组的下标取出内容,当下标不合法时就会出现数组下标越界异常。通过 catch 捕获异常,并对异常作出处理。再通过将一个字符串的大写字母转换成小写字母,练习 String 的常用方法。同时了解了字符串的使用。 这仅仅是简单异常的处理,必须更进一步对异常熟悉

19、。还有对字符串的其他方法进行练习并熟悉掌握。还需要在课下多多练习,熟悉它们。实验五 多线程编程一、实验目的和要求(1) 现成的概念、线程的生命周期。(2) 多线程的编程:扩展 Thread 类与使用 Runnable 接口。(3) 使用多线程机制实现动画二、实验内容1.运行下面的程序,理解用创建 Thread 子类的方法实现多线程。/S09_01_Thread.JavaImport java.util.*;class S09_01_Thread extends Thread int pauseTime;String name;public S09_01_Thread(int x,String

20、n)pauseTime=x;name=n;public void run()while(true)trysystem.out.println(name+“:“+new Date(System.currentTimeMillis();Tread.sleep(pauseTime);catch(Exception e)System.out.println(e);static public void main(String srgs)S09_01_Thread tp1=new S09_01_Thread(1000,“Fast“);tp1.start();S09_01_Thread tp2=new S0

21、9_01_Thread(3000,“Slow“);tp2.start();2.运行下面的程序,理解用实现 Runnable 接口的方法实现多线程。/S09_02_Thread.JavaImport java.util.*;class S09_02_Thread implements Runnable int pauseTime;String name;public S09_02_Thread(int x,String n)pauseTime=x;name=n;public void run()while(true)trysystem.out.println(name+“:“+new Date(

22、System.currentTimeMillis();Tread.sleep(pauseTime);catch(Exception e)System.out.println(e);static public void main(String srgs)Thread t1=new Thread(new S09_02_Thread(1000,“Fast“);t1.start();Thread t2=new Thread(new S09_02_Thread(3000,“Slow“);t2.start();3.创建简单的程序 ThreeThread.java,该程序将创建三个线程,每个线程应当显示它所

23、运行的时间(可以考虑使用 Date 类或 Calendar 类) 。三、主要仪器设备使用的计算机惠普:硬件配置 Win7、软件环境 eclipse4、实验代码3package mymaths;import java.sql.Date;public class Xiancheng extends Threadpublic static void main(String args) Xiancheng t1=new Xiancheng();t1.start();Xiancheng t2=new Xiancheng();t2.start();Xiancheng t3=new Xiancheng();

24、t3.start();public void run()System.out.println(“+ this.getName()+“ “+new Date(System.currentTimeMillis();5、实验结果1.2.3.六、讨论、心得线程是提高 cpu 运行效率的方法,内容很重要,需要认真学习和理解。实验六 图形用户界面编程一、实验目的和要求掌握文本组件、按钮和单、复选按钮组件的使用;掌握列表的使用,鼠标、键盘事件的处理;掌握布局控制的方法。二、实验内容1. 编写一个程序响应鼠标事件,当鼠标事件发生时,在状态条显示相应的时间信息。提示:使用 showStatus(字符串)方法。2

25、. 试设计一窗口,内含一个按钮。开始运行时,按钮显示“Click Me”字样,当按钮按下时,按钮显示为“Click Me Again”字样,再按一次,则按钮显示“Click Me”字样,依次循环。三、主要仪器设备使用的计算机惠普:硬件配置 Win7、软件环境 eclipse四、 实验代码1. package mymaths;import javax.swing.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.*;public class Clickpublic s

26、tatic void main(String args)JFrame frm=new JFrame();frm.setLayout(null);frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JButton btn=new JButton(“请点击“);btn.setBounds(45, 65,100, 200);frm.getContentPane().add(btn);ButtonHandle bur=new ButtonHandle(btn);btn.addActionListener(ActionListener) bur);frm

27、.setBounds(400, 400, 400,400);frm.setVisible(true);class ButtonHandle implements ActionListenerJButton btn;public ButtonHandle(JButton btn)this.btn=btn;Overridepublic void actionPerformed(ActionEvent e) System.out.println(“当前时间为:“+new Date(System.currentTimeMillis();2.package mymaths;import javax.sw

28、ing.*;import java.awt.event.*;public class ClickJButton btn;public static void main(String args)JFrame frm=new JFrame();frm.setLayout(null);frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JButton btn=new JButton(“Click me“);btn.setBounds(45, 65,200, 300);frm.getContentPane().add(btn);ButtonHandle

29、 bur=new ButtonHandle(btn);btn.addActionListener(bur);frm.setBounds(100, 200, 500, 600);frm.setVisible(true);class ButtonHandle implements ActionListenerJButton btn;public ButtonHandle(JButton btn)this.btn=btn;public void actionPerformed(ActionEvent e) if (btn.getText().equals(“Click Me“)btn.setText

30、(“Click Me Again“);else btn.setText(“Click Me“);五、 实验结果1.2.六、讨论、心得Graphic User Interface, (图形用户界面) :其实 GUI 其实只是一个图形界面,能比较形象的,生动的把模拟、运算结果表现出来。它只是一个包装外壳。您开发的程序,最好用这个包装起来,这样别人用的时候会方便很多很多. 具体的算法,运算,分析是相对独立与 GUI存在的。换句话说,GUI 可以只有外壳,而没有内容;或者你预先做好的算法都可以套进一个做好的 GUI 里去。 (当然,GUI 也是由 m 文件构成的。 )但另一个方面,GUI 是用来人机交流的界面。所以,用户具体的行为,比如运行某一功能,暂停,重置,弹菜单,切换机面等等,在 GUI 中要精心设计。逻辑要精密,考虑要全面。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报