2022年JAVA程序设计 .pdf

上传人:Che****ry 文档编号:27253338 上传时间:2022-07-23 格式:PDF 页数:26 大小:448.51KB
返回 下载 相关 举报
2022年JAVA程序设计 .pdf_第1页
第1页 / 共26页
2022年JAVA程序设计 .pdf_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《2022年JAVA程序设计 .pdf》由会员分享,可在线阅读,更多相关《2022年JAVA程序设计 .pdf(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、二一二一一学年第一学期信息科 学与工程学院Java实验报告课程名称:java 实验报告班级:学号:姓名:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 26 页 - - - - - - - - - 实验一熟悉 Java 程序的编辑、编译和运行环境一、 实验目的1) 掌握设置 Java 程序运行环境的方法,并熟悉Java 程序的集成开发工具。2) 掌握编写、编译、运行简单的Java Application和 Java Applet程序的方法步骤,初步了解 java 程序的特

2、点和基本结构。3) 掌握 Java 基本数据类型、运算符与表达式。4) 理解 Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。二、实验过程1)编写一个 Java Application,利用 JDK软件包中的工具编译并运行这个程序。步骤( 1) :编写、编译Java 源程序。打开 Jcreator编辑器,新建一个java 文件,键入如下程序代码: public class Hello public static void main(String args) System.out.println(Hello,World!); 将文件命名为Hello.java,注意保存

3、文件Hello.java到路径“ e:java”下。运行结果:2)编写一个Java Applet,使之能够在浏览器中显示“welcome to Java Applet World”的字符串信息。步骤( 1) :编写 HelloWorldApplet.java 程序文件,源代码如下。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 26 页 - - - - - - - - - import java.applet.* ; import java.awt.* ; public

4、class HelloWorldApplet extends Applet public void paint(Graphics g) g.drawString(“ welcome to Java Applet World,40,20); 步 骤 ( 2 ): 保 存 文 件 为e:javaHelloWorldApplet.java。 编 译 该 文 件 , 生 成HelloWorldApplet.class字节码文件。步骤( 3) :编写显示HelloWorldApplet.calss 的页面文件 HelloWorld.html,代码如下。 步骤(4) : 在提示符窗口调用小程序查看器浏览

5、HelloWorld.html 页面 , 观察 Applet 应用程序。运行结果:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 26 页 - - - - - - - - - 思考题: 1)编程实现:随机产生20 个整数存放到数组中,然后对其按照升序进行排序,最后对排序前后的数组按照每5 个数的方式输出。源程序:import java.util.*; class RandomPx public static void main(String args) int num=n

6、ew int20; int i,j,temp; Random r=new Random(); for(i=0;i20;i+) numi=r.nextInt(); for(i=0;i19;i+) for(j=0;jnumj+1) temp=numj; numj=numj+1; numj+1=temp; for(i=0;i=School.getscoreLine()| (s.getscore()96 & s.getcomScore()=300) ) return true; else return false; public static void main(String args) Studen

7、t s=new Student3; String info=new String4; int i,j; String messInfo; BufferedReader in=new BufferedReader(new InputStreamReader(System.in); StringTokenizer st; School.setscoreLine(550); for( i=0;is.length;i+ ) try messInfo=in.readLine(); st=new StringTokenizer(messInfo); for(j=0;jinfo.length;j+) inf

8、oj=st.nextToken(); catch(IOException ex) si=new Student(info0,info1,Float.parseFloat(info2),Float.parseFloat(info3); for(i=0;is.length;i+) if(isEnroll(si) System.out.println(si.name+ +si.id + + 被录取 !); else System.out.println(si.name+ +si.id + + 没有录取 !); 运行结果:思考题: 1、 1) 定义复数类Complex,其满足如下要求(18 分) :复

9、数类 Complex 的属性有:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 26 页 - - - - - - - - - RealPart : double型,代表复数的实数部分ImaginPart : double型,代表复数的虚数部分复数类 Complex 的方法有:Complex( double rp , double ip ) : 构造函数,形参 rp 为实部的初值,ip 为虚部的初值。Complex complexAdd(Complex a) :将当前复数对

10、象与形参复数对象相加,所得的结果仍是一个复数,并将结果返回给此方法的调用者。 Complex complexMinus(Complex a) : 将当前复数对象与形参复数对象相减,所得的结果仍是一个复数,并将结果返回给此方法的调用者。public String toString( ) : 把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中a 和 b 分别为实部和虚部的数据。源程序: import java.io.*; public class Complex double RealPart; double ImageinPart; Complex(double rp,double

11、ip) RealPart=rp; ImageinPart=ip; Complex complexAdd(Complex a) Complex temp; temp=new Complex(RealPart+a.RealPart,ImageinPart+a.ImageinPart); return temp; Complex complexMinus(Complex a) Complex temp; temp=new Complex(RealPart-a.RealPart,ImageinPart-a.ImageinPart); return temp; public String toStrin

12、g() if (ImageinPart0) return (RealPart+-+Math.abs(ImageinPart)+i); else return (RealPart+ImageinPart+i); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 26 页 - - - - - - - - - public static void main(String args) char operator; try Complex c1=new Complex(1,2); C

13、omplex c2=new Complex(3,4); Complex complexResult = null; operator=(char)System.in.read(); switch(operator) case +:complexResult=plexAdd(c2);break; case -:complexResult=plexMinus(c2);break; System.out.println(complexResult); catch(IOException e) System.out.println(e); 运行结果:名师资料总结 - - -精品资料欢迎下载 - - -

14、 - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 26 页 - - - - - - - - - 实验三面向对象程序设计的继承、多态等特性的练习一、实验目的1)掌握类的继承机制。2)熟悉类中成员变量和方法的访问控制。3)熟悉方法或构造方法多态性。4)熟悉接口的定义方法。二、实验内容1)编写程序实现如下功能:已知Person 类包含三个公共域变量(姓名、性别、年龄)和一个构造方法, Student类是 Person 类的派生类,包含两个新的公共域变量( 学号、班号 ) 、两个公共方法 (构造方法、 修改年龄、 显示基本信息)

15、和一个构造方法。定义一组学生对象,并初始化他们的基本信息,然后依次输出。源程序: class Person public String name; public String sex; int age; Person(String name,String sex,int age) this.name=name; this.sex=sex; this.age=age; class Student extends Person public String sno; public int classno; public void updateAge(int age) this.age=age; St

16、udent(String name,String sex,int age,String sno,int classno) super(name,sex,age); this.sno=sno; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 26 页 - - - - - - - - - this.classno=classno; public String toString() System.out.println(name=+name+ sex=+sex + age=+

17、age+ sno=+sno+ classno+classno+ ); return name=+name+ sex=+sex + age=+age+ sno=+sno+ classno+classno+ ; ; public class TestStudent public static void main(String args) Student s1=new Student(susan, 女,20,20031015123,2); s1.updateAge(21); s1.toString(); 2) 输入课本例5-4 的源程序, 观察其运行结果, 然后将 Shape 类分别定义为一个抽象类

18、和接口,然后将源程序进行修改,让其实现相同功能。源程序: public class TestVirtualInvoke static void doStuff(Shape s) s.draw(); public static void main(String args) Circle c=new Circle(); Triangle t=new Triangle(); Line l=new Line(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 26 页 - -

19、 - - - - - - - doStuff(c); doStuff(t); doStuff(l); class Shape void draw() System.out.println(Shape Drawing); class Circle extends Shape void draw() System.out.println(Shape Circle); class Triangle extends Shape void draw() System.out.println(Shape Triangle); class Line extends Shape void draw() Sys

20、tem.out.println(Shape Line); */ /* 方法二:使用抽象类abstract abstract class Shape abstract void draw(); class Circle extends Shape void draw() System.out.println(Shape Circle); / 定义 Shape抽象类的派生类Circle名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 26 页 - - - - - - - -

21、- class Triangle extends Shape void draw() System.out.println(Shape Triangle); / 定义 Shape抽象类的派生类Triangle class Line extends Shape void draw() System.out.println(Shape Line); */ / 定义 Shape抽象类的派生类Line / 方法三:使用 interface接口方法interface Shape public void draw(); / 定义一个 Shape接口class Circle implements Shape

22、 public void draw() System.out.println(Shape Circle); / 基于 Shape接口利用 implements 实现类 Circle class Triangle implements Shape public void draw() System.out.println(Shape Triangle); / 基于 Shape接口利用 implements 实现类Triangleclass Line implements Shape public void draw() System.out.println(Shape Line); / 基于 S

23、hape接口利用 implements 实现类Line 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 26 页 - - - - - - - - - 思考题:(1)某小型公司,主要有三类人员:经理、兼职技术人员和兼职推销员。这三类人员共同拥有的相关属性:姓名、编号; 相关方法: 获取当月薪水的getPay()方法、显示个人信息的toString()方法。人员编号基数为1000,每创建一个人员实例对象,其编号属性的值顺序加1。月薪计算方法:经理拿固定月薪8000 元;兼职

24、技术人员按每小时100 元领取月薪;兼职推销人员的月薪按当月的销售额的4% 提成。源程序: import java.util.*; abstract class Employee String name; long no; static long id=1000; abstract double getPay(); Employee(String name) this.name=name;id=id+1; ; class Manager extends Employee double pay=8000; double getPay()return 8000; Manager(String na

25、me) super(name); no=id; public String toString()return name:+name+ no:+no+ pay:8000; ; class Sale extends Employee long saleNum; double getPay()return saleNum*0.4; Sale(String name,long saleNum) super(name); no=id; this.saleNum=saleNum; public String toString() return name:+name+ no:+no+ pay:+getPay

26、(); class Tech extends Employee long salaryHours; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 26 页 - - - - - - - - - double getPay() return salaryHours*100; Tech(String name,long salaryHours) super(name); no=id; this.salaryHours=salaryHours; public String t

27、oString() return name:+name+ no:+no+ pay:+getPay(); ; class EmployApp public static void main(String args) Vector v=new Vector(); Employee em; double numPay=0; v.addElement(new Sale(liping,10000); v.addElement(new Sale(susan,12000); v.addElement(new Tech(linda,40); v.addElement(new Tech(write,20); v

28、.addElement(new Manager(gucci); v.addElement(new Manager(jessica); Enumeration e=v.elements(); while(e.hasMoreElements() em=(Employee)e.nextElement(); numPay=numPay+em.getPay(); System.out.println(em); System.out.println(总工资 :+numPay); ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整

29、理 - - - - - - - 第 16 页,共 26 页 - - - - - - - - - 实验四异常类的定义及处理一、实验目的1)了解异常处理方法。2)熟悉并掌握常见异常的捕获方法。3)熟悉 JDK中已经定义的若干异常类的层次结构。4)掌握自定义异常类的创建方法。二、实验内容1)编 写 程 序 实 现 如 下 功 能 : 生 成 并 捕 获 到NegativeArraySizeException和IndexOutOfBoundsException类型的异常,并显示捕获到的异常信息。然后在此基础上生成并捕获到NullPointerException类型的异常,并显示捕获到的异常信息。源程序

30、:import java.lang.*; import java.io.*; class TestException public static void main(String args) try outofBound(); arraySize(); nullPointer(); catch(NegativeArraySizeException e) System.out.println(e.toString(); static void outofBound() try int i;int a; a=new int10; for(i=0;i11;i+) ai=i; System.out.p

31、rintln(a+i+=+ ai); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 26 页 - - - - - - - - - catch(IndexOutOfBoundsException e) System.out.println(e.toString(); static void nullPointer() try String s=null; System.out.println(s.length(); catch(NullPointerException

32、e) System.out.println(e.toString(); static void arraySize() throws NegativeArraySizeException try int a; a=new int-3; catch(NegativeArraySizeException e) throw e; 2)编写程序实现如下功能:计算两个数之和, 参与求和运算的每个数的值都必须在10-20之间,当任意一个数超出范围时, 抛出自己的异常。源程序: class MyException extends Exception private String Msg; public My

33、Exception(String message) super(message); Msg=message; public void printMsg() System.out.println(Msg); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 26 页 - - - - - - - - - public class EX6_3 void GenerateMyException() throws MyException throw new MyException(

34、 此处发生异常信息); public static void main(String args) EX6_3 obj=new EX6_3(); try obj.GenerateMyException(); catch (MyException e) e.printMsg(); 思考题:2)编写一个程序,用于根据用户输入的命令行参数数量来计算长方形、正方形、三角形的面积。如果输入的参数个数为1、2、3 则它们应分别对应正方形、长方形、三角形,如果参数值为 0,则异常处理方法显示错误消息。源程序:class NullParameterException extends Exception Null

35、ParameterException(String Message) super(Message); class TestArea public static void main(String args) shape sh=null; int num; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 26 页 - - - - - - - - - num=args.length; try switch(num) case 1:sh=new Zangle(Double.pa

36、rseDouble(args0); break; case 2:sh=new Longangle(Double.parseDouble(args0),Double.parseDouble(args1);break; case 3:sh=new Triangle(Double.parseDouble(args0),Double.parseDouble(args1),Double.parseDouble(args2);break; case 0:throw new NullParameterException(参数个数为零!); System.out.println(sh.area(); catc

37、h(Exception e) System.out.println(e.toString(); ; abstract class shape abstract double area(); ; class Triangle extends shape double a,b,c; Triangle(double a,double b,double c) this.a=a; this.b=b; this.c=c; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 26 页 -

38、 - - - - - - - - double area() double s; s=(a+b+c)/2; return(Math.sqrt(s*(s-a)*(s-b)*(s-c); ; class Longangle extends shape double l,w; Longangle(double l,double w) this.l=l; this.w=w; double area() return (l*w); ; class Zangle extends shape double l; Zangle(double l) this.l=l; double area() return

39、l*l; ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 26 页 - - - - - - - - - 实验五流、文件及基于文本的应用一、实验目的1)理解数据流的概念。2)理解 Java 流的层次结构。3)理解并掌握文件的读写操作方法。二、实验内容1)编写一个 java Application程序,接受用户输入的10 个整数,比较并输出其中的最大值和最小值。源程序: import java.io.*; public class MaxMainClass /定义一个包

40、含main 方法的 Application 类 MaxMinClass static int maxInt(int data,int n) int k=data0; for(int i=0;in;i+) if(kdatai) k=datai; return k; /找到数组datan中的最大值static int minInt(int data,int n) int t=data0; for(int i=0;idatai) t=datai; return t; /找到数组datan中的最小值public static void main(String args) int data=new in

41、t10; String s=; System.out.println( 输入数组data10,输入每个数后按回车:); for(int i=0;i10;i+) try BufferedReader in=new BufferedReader(new InputStreamReader(System.in); s=in.readLine(); datai=Integer.parseInt(s); catch(IOException e) / 利用 Integer.parseInt 方法将字符串转换为整数int int k=maxInt(data,10); / 调用 maxInt 方法,找到dat

42、a10中最大值名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 26 页 - - - - - - - - - int t=minInt(data,10); /调用 minInt 方法,找到data10中最小值System.out.println( 最大值为: +k+n 最小值为: +t); 2)编写一个程序,能将一个源程序中的空行及注释去掉, 并将处理后的内容写到目标文件中。 (源文件名称和目标文件名称均要求以命令行参数形式输入)源程序:import java.io.*;

43、 class FileCopy public static void main(String args) tryString s1; int a=0; s1=abc+a; int LineCount=0; BufferedReader input=new BufferedReader(new FileReader(AccessControl.java); BufferedWriter output=new BufferedWriter(new FileWriter(test1.txt); String c=input.readLine(); String s; while(c!=null) s

44、=deleteComment(c); s=s.trim(); if (!s.equals() output.write(LineCount+:+deleteComment(c); /删 除 评论output.newLine(); System.out.println(deleteComment(c); LineCount+; c=input.readLine(); input.close(); output.close(); catch(IOException e) System.out.println(e); static String deleteComment(String s) 名师资

45、料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 26 页 - - - - - - - - - int pos=0; if(s=null) return s; pos=s.indexOf(/); if (pos0) return s; else return s.substring(0,pos); 思考题:1)从一个文本文件中读入30 个学生的姓名和成绩,计算所有学生的最高分、最低分和平均分,并将结果写入另外一个文件。源程序:import java.io.*; class St

46、udent String name; int index; Student(String name,int index) this.name=name; this.index=index; / 定义一个学生类,包含姓名、分数两个域变量和一个构造方法public class Chengji static int maxInt(int data) int t=data0; for(int i=0;idata.length;i+) if(tdatai) t=datai; return t; /求最高分的方法static int minInt(int data) int k=data0; for(in

47、t i=0;idatai) t=datai; return k; / 求最低分的方法static double diviInt(int data) double num=0.0; for(int i=0;idata.length;i+) num+=datai; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 26 页 - - - - - - - - - return num; /求平均分的方法static String find(String s) int pos=0;

48、 if(s=null) return s; pos=s.indexOf(,); if (pos0) return s; else return s.substring(pos+1,s.length); /获取每个学生的分数的方法public static void main(String args) int grade=new int30; try BufferedReader input=new BufferedReader(new FileReader(Student.txt); /读入一个Student.txt 文件BufferedWriter output=new BufferedWr

49、iter(new FileWriter(test.txt); /将处理后的Student.tex 文件写到test.tex 文件中String c=input.readLine(); / 每行的读入String s; int i=0; while(c!=null) s=find(c); gradei+=Integer.parseInt(s); c=input.readLine(); output.write( 最高分为: +maxInt(grade);/ 获得最高分output.newLine(); output.write( 最低分为: +minInt(grade);/ 获得最低分outpu

50、t.newLine(); output.write( 平均分为: +diviInt(grade)/i);/获得平均低分input.close(); output.close(); catch(IOException e) System.out.println(e); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 26 页 - - - - - - - - - 上机实验小结:几次上机实验的实验报告都是在最后一次集中处理的,所以对自己的学习过程可以有一个比较。发现自己第一次

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁