




免费预览已结束,剩余19页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告 实践报告课程名称: Java语言程序设计 实验、实践名称:Java语言基础、数组和字符串编程、Java面向对象程序设计、Java异常处理 多线程编程、图形用户界面编程 实验、实践地点: 致向楼301 专业班级: 软件1531 学号: 2015006446 学生姓名: 关玉芬 指导教师: 相洁 2017 年 1月8日实验一 Java语言基础一、实验目的和要求(1) 通过实验,掌握Java语言程序设计的基本方法。(2) 学会Java语言中标示符的命名、运算符和表达式的应用。(3) 熟练地掌握Java程序流程控制语句的应用。二、实验内容1.编写应用程序,计算100(含100)以内所有偶数的和。2.“水仙花数”是指一个3位数,其个位、十位、百位上的数字的立方和等于该数本身,例如371=33+73+13,因此371是一个水仙花数。编写程序,求所有的水仙花数。3.编写一个程序,求1-100间的素数。4. 有一函数: x (x1)Y= 3x-2 (1x10) 4x (x10) 写一程序,给定x值,输出y值。5. 使用for循环语句,编写程序输出以下图案。6.编写程序,输出从公元1900年到2100年所有闰年的年号,每输出5个年号换一行。判断年是否为闰年的条件是: 若年号可以被4整除,而不能被100整除,则是闰年; 若年号可以被400整除,也是闰年。三、主要仪器设备使用的计算机惠普:硬件配置Win7、软件环境eclipse四、实验代码1. public class a1 public static void main(String args) int i,sum=0;for(i=0;i=100;i+)if(i%2=0)sum+=i;System.out.println(sum);2. public class a2 public static void main(String args) int i,a,b,c;for(i=100;i=999;i+)a=i%10;b=(i-a)%100/10;c=(i-b*10-a)/100;if(i=a*a*a+b*b*b+c*c*c)System.out.println(i);3. public class a3 public static void main(String args) / TODO Auto-generated method stub for(int i=2;i=100;i+) boolean t = false; for(int j=2;ji;j+) if(i%j=0)t=false;break; else t=true; if(t) System.out.print(i+ );4. public class a4 public static void main(String args) int i,j;for(i=1;i=4;i+)for(j=1;j=(-1)*i+4);j+)System.out.print( );for(j=1;j=1;i-)for(j=1;j=(-1)*i+4);j+)System.out.print( );for(j=1;j=(2*i-1);j+)System.out.print();System.out.println();5. import java.util.*;public class a5 public static void main(String args) Scanner x=new Scanner(System.in);System.out.println(请输入一个大于1的整数);int i=x.nextInt();System.out.println(你刚才输入的数为+i);if(i=1&i10) System.out.print(输出结果为+(i*3-2);else System.out.print(输出结果为+i*4);x.close();6. package shiyan;public class a6 public static void main(String args) int i,j=0; for(i=1900;i=2100;i+) if(i%4=0)&(i%100!=0)|(i%400=0)j+;if(j%5=0)System.out.println(i);elseSystem.out.print(i);System.out.print( );五、实验结果1 23. 4 5.6.六、讨论、心得初步掌握了Eclipse集成开发环境。掌握Java基本数据类型、运算符与表达式、数组的使用方法,语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。、对JAVA程序设计有初步的了解实验二 数组和字符串编程一、实验目的和要求(1) 通过实验,掌握Java语言中数组、字符串程序设计的基本方法。(2) 较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。2、 实验内容(1) 编写一个程序,在控制台输入10个数,按大小顺序输出。(2) 求一个3*3矩阵对角元素之和。(3) 输入一段字符串,统计其中有多少个单词。(单词用空格隔开)三、主要仪器设备使用的计算机惠普:硬件配置Win7、软件环境eclipse四、实验代码1、package a1;import java.io.*;import java.util.Scanner;public class a1 public static void main(String args) throws IOException int count=10,k; double data=new doublecount;Scanner sr = new Scanner(System.in); System.out.print(请输入十个数字:n); for(k=0;kcount;k+) datak=sr.nextDouble(); sr.close(); System.out.println(你输入的十个数字是:); for(k=0;kcount;k+) System.out.print( +datak); double dataCopy=new doublecount+1; double temp=0; System.arraycopy(data,0,dataCopy,1,data.length); for(k=1;kcount;k+) for(int j=1;jdataCopyj+1) temp=dataCopyj; dataCopyj=dataCopyj+1; dataCopyj+1=temp; System.out.println(); System.out.println(从小到大排序后的序列是:); for(int j=1;jdataCopy.length;j+) System.out.print( +dataCopyj);2、package a1;import java.io.*;import java.util.Scanner;public class a2 public static void main(String args) throws IOException double a; int sum=0;a=new double33;Scanner sr = new Scanner(System.in);System.out.println(请按行优先输入一个3*3的矩阵:);for(int i=0;i3;i+)for(int j=0;j3;j+) aij=sr.nextDouble(); sr.close(); System.out.print(你输入的3*3的矩阵是:); for(int i=0;i3;i+) System.out.println(); for(int j=0;j3;j+) System.out.print( +aij+t); if(i=j) sum+=aij; System.out.println(); System.out.println(对角线元素之和为+sum);3、package a1;import java.util.*;public class a3 public static void main(String args)System.out.println(请输入英语单词并用空格隔开:);Scanner sr=new Scanner(System.in);String word=new String();word=sr.nextLine(); String words=word.split( ); int num=words.length; System.out.println(字符串的单词数为+num); sr.close();五、实验结果1. 2.3.六、实验心得通过本次实验掌握数组的声明、分配空间及初始化;理解多维数组(重点掌握二维);掌握String类的特点及常用方法的使用;掌握StringBuffer类的特点及常用方法的使用;掌握String类和StringBuffer类的区别;掌握equal方法与=的区别;但是本次练习中,我也出现了一些错误,是由于知识上的失误和不小心犯下的低级错误,但是我努力改正。实验三 Java面向对象程序设计一、实验目的和要求掌握Java面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素。二、实验内容1.创建一个复数类complex,以附属进行数学运算、复数具有如下格式:RealPart+ImaginaryRart*I ,其中,I为-1的平方根。 要求如下:利用浮点变量表示此类的私有数据。提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参构造方法。提供两复数加、减、乘的运算方法。按格式(a,b)打印复数。其中a为实部,b为虚部。2. 创建银行账号Account类,实现存款(balance)的存(deposit)、取(withdraw)和查询(getbalance)等功能。3.编程定义一个接口,实现三个数中求最小值和最大值的方法,并将程序存放在mymaths包中。4. 编程实现以下简单超市管理,具体要求如下:实现描述超市的类Suppermacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果;定义商品类Goods,具有商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。 main函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架的操作提示: 超市货架可以使用商品数组,数组大小100表明存放100个商品。 注意实现商品查询的多态性,要求可以根据商品的名称或产地或价格查询商品的数量。三、主要仪器设备使用的计算机惠普:硬件配置Win7、软件环境eclipse四、实验代码 1. package a1;public class Complex float RealPart;float ImaginaryRart;public Complex()public Complex(float R,float I)RealPart=R;ImaginaryRart=I;public static Complex add(Complex a,Complex b)Complex c=new Complex();c.RealPart=a.RealPart+b.RealPart;c.ImaginaryRart=a.ImaginaryRart+b.ImaginaryRart;return c;public Complex minus(Complex a,Complex b)Complex c=new Complex();c.RealPart=a.RealPart-b.RealPart;c.ImaginaryRart=a.ImaginaryRart-b.ImaginaryRart;return c;public Complex multiply(Complex a,Complex b)Complex c=new Complex();c.RealPart=a.RealPart*b.RealPart-a.ImaginaryRart*b.ImaginaryRart;c.ImaginaryRart=a.RealPart*b.ImaginaryRart+a.ImaginaryRart*b.RealPart;return c;public void print()System.out.println(+this.RealPart+,+this.ImaginaryRart+);public static void main(String args)Complex a = new Complex(1f,3f);Complex b = new Complex(3f,4f);Complex c = new Complex();c = add(a,b);c.print();2. package shiyan;import java.util.*;class Accountprivate double balance;Account()balance=5000;public void deposit(double n)balance=balance+n;System.out.println(存款成功!);public void withdraw(double n)balance=balance-n;System.out.println(取款成功!);public void getbalance()System.out.println(当前账户余额为+balance);public static void main(String args) Account c=new Account(); c.getbalance();System.out.println(请输入存款金额:);Scanner sc=new Scanner(System.in);double i=sc.nextDouble(); c.deposit(i); c.getbalance();System.out.println(请输入取款金额:); double x=sc.nextDouble(); c.withdraw(x);c.getbalance(); sc.close();3. package mymaths;public interface Myinterface int max(int a,int b,int c);int min(int a,int b,int c);class Zzr implements Myinterfacepublic int max(int a,int b,int c)int temp;if(ac) return temp;else return c;public 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 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(数量+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.println(商品名称+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,String producer,int num) = name;this.price = price;ducer = 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(Goods g:All)if(=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);catch(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.六、讨论、心得 本次实验让我了解到想用程序解决实际问题时,最好写出三种代码:伪代码、产品代码、测试代码,这样才能快速的写出代码,并且实用性强。希望以后能通过实验了解更多运用java解决实际问题的方法,学好Java。实验四 Java异常处理一、 实验目的和要求掌握异常的概念,以及如何定义、抛出和捕获处理异常。二、 实验内容1.做实验之前要求思考以下问题,作为预习内容;错误和异常有何区别?查看Java异常类的关系图。异常是如何抛出、捕获和处理的?Java捕获和处理异常的结构式怎样的?Try语句如何嵌套?Trow语句有何作用?Finally程序快的作用是什么?2运行下面的程序,理解异常的抛出、捕获与处理。Import java.io.*;public class void main(String args) public staic void main(String args) for(int i=0;i4;i+) int k; try switch(i) case 0: /divided by zero int zero=0; k=911 /zero break; case 1:/null pointer int b=null; k=b0; break; case 2; /array index out of bound int c=new int2; k=c9; break; case 3: /string index out of bound char ch=abc.charAt(99); break; catch(Exception e) System.out.println(nTestcase#+i+n); System.out.println(e); 3.在实验三中的超市、商品类中创建一个自定义异常类。 要求:在定义商品类时,若销售商品数量大于余额则作为异常处理(InsufficientFundsException)。提示:产生异常条件是某类商品销售数量大于库存额,因此是否抛出异常要先判断该条件。确定产生异常的方法,应该在sale方法中产生异常Insufficient Funds Exception。处理异常安排在调用sale的时候,因此sale方法要声明异常,由上级方法捕获并处理。要定义好自己的异常。三、 主要仪器设备使用的计算机惠普:硬件配置Win7、软件环境eclipse四、实验代码.1.(1)错误与异常的区别:错误:指在程序编译时如果程序进入死循环,或递归无法结束,或内存溢出。错误只能在编程阶段解决,只能依靠其他程序干预,否则会一直处于非正常状态。异常:指运算时除数为0,或操作数超过范围,或打开一个文件时发现文件并不存在,或欲装入的类文件丢失,或网络连接中断等。 (2) java提供了一种利用简单易行的方法检查和处理运行时产生的错误的异常处理机制,它是通过面向对象的方法来处理异常的。在java程序的执行过程中,如果出现了异常事件,就会生成一个异常对象。生成的异常对象将传递给java运行时系统,这一异常的产生和提交过程成为抛弃异常。当java运行时系统得到一个异常对象时,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。找到能够处理这类异常的方法后,运行时系统把当前异常对象交给这个方法进行处理,这一过程称为捕获异常。 (3) 根据程序对错误与异常的处理方式,可以将java中的异常分为Error类,RuntimeException类和Exception类。其中Error类包括的是一些严重的程序不能处理的系统错误类,如内存溢出,虚拟机错误,栈溢出等。这类错误一般主要与硬件有关,与程序本身无关,通常由系统进行处理,程序本身无需去捕获和处理。程序运行过程中,可能出现RuntimeException类的异常数量相当大,对于运行时的异常类,如数组越界,算术异常等,应通过程序尽量避免而不是去捕获它。 (4) 为了避免程序运行时可能出现的错误,将程序代码放在try程序块中,紧跟在try语句后面包括一个catch语句,用来指定需要捕获的异常类型。 在程序中发生异常时,程序员可以抛出(throw)一个自定义异常类的实例,将其放到异常队列中去,并激活java的异常处理机制。 当抛出一个异常时,程序的执行就不再是线性的,这样就有可能导致方法的执行中断。在java语言中,使用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.toString();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 private static final long serialVersionUID = 1L;InsufficientFundsException() super(商品销售数量大于库存额!);五、实验结果23.六、讨论、心得通过本次实验,熟悉掌握了Java的异常机制,trycatch()finally的执行过程。通过new一个数组,从而通过数组的下标取出内容,当下标不合法时就会出现数组下标越界异常。通过catch捕获异常,并对异常作出处理。再通过将一个字符串的大写字母转换成小写字母,练习String的常用方法。同时了解了字符串的使用。这仅仅是简单异常的处理,必须更进一步对异常熟悉。还有对字符串的其他方法进行练习并熟悉掌握。还需要在课下多多练习,熟悉它们。实验五 多线程编程一、实验目的和要求(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 n) pauseTime=x; name=n;public void run() while(true) try system.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 S09_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) try system.out.println(name+:+new Date(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,该程序将创建三个线程,每个线程应当显示它所运行的时间(可以考虑使用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();t3.start();public void run()System.out.println(+ this.getName()+ +new Date(System.currentTimeMillis(); 5、 实验结果1.2.3.六、讨论、心得线程是提高cpu运行效率的方法,内容很重要,需要认真学习和理解。实验六 图形用户界面编程一、实验目的和要求掌握文本组件、按钮和单、复选按钮组件的使用;掌握列表的使用,鼠标、键盘事件的处理;掌握布局控制的方法。二、实验内容1. 编写一个程序响应鼠标事件,当鼠标事件发生时,在状态条显示相应的时间信息。提示:使用showStatus(字符串)方法。2. 试设计一窗口,内含一个按钮。开始运行时,按钮显示“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 static void main(String args)JFrame frm=new JFrame();frm.setLayout(null); frm.setDefault
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务部2025年合同管理及知识产权双重保护协议
- 2025年新能源汽车融资租赁合同模板(含绿色环保评估)
- 2025年绿色智能物流仓储中心建设项目合作协议
- 2025年公共文化设施运营合同管理及社会效益评估准则
- 2025年企业核心竞争力人才招聘及综合福利保障合同
- 2025年智能班轮运输货物包装解决方案定制合同
- 2025年智能互动幼儿园环境创设与保育服务聘用合同
- 2025年印刷行业数字化印刷设备引进与操作员培训服务合同
- 2025年房地产按揭贷款第三方担保协议模板
- 2025综合养老院入住生活照料与心灵呵护服务合同
- XX学校(幼儿园)食堂管理各岗位廉政(廉洁)风险点及防控措施一览表
- 钢结构钢爬梯包工包料合同范本
- 家庭房屋财产协议书
- 陶行知生活即教育教师读书分享
- 工业固废处置协议书
- 股东决策协议书模板
- NB/T 11525-2024气动、电动调度单轨吊车技术条件
- 2025年全国特种设备观光车N1证理论考试笔试试题(含答案)
- 1.1什么是新媒体 课件(共17张)-《新媒体营销》同步教学(北京出版社)
- 林地托管合同协议
- 2020-2025年中国智慧仓储行业市场调查研究及投资战略咨询报告
评论
0/150
提交评论