Java程序设计实验报告资料_第1页
Java程序设计实验报告资料_第2页
Java程序设计实验报告资料_第3页
Java程序设计实验报告资料_第4页
Java程序设计实验报告资料_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生实验报告(理工类)课程名称: JAVA程序设计 专业班级:学生学号: 学生姓名:所属院部: 电子信息工程学院 指导教师: 王倩倩2015——2016 学年 第2 学期金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。填写注意事项1)细致观察,及时、准确、如实记录。2)准确说明,层次清晰。3)尽量采用专用术语来说明事物。4)外文、符号、公式要准确,应使用统一规定的名词和符号。5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。实验项目名称:JAVA编程基础 实验学时: 4同组学生姓名: ———— 实验地点: 1514/1502实验日期: 实验成绩:批改教师: 批改时间:一、实验目的和要求(1) 熟练掌握 JDK1.7及EclipseKeplerServiceRelease1 (下简称 Eclipse)编写调试Java应用程序及 Java小程序的方法;2)熟练掌握Java应用程序的结构;3)了解Java语言的特点,基本语句、运算符及表达式的使用方法;4)熟练掌握常见数据类型的使用;(5) 熟练掌握 if-else 、switch、while、do-while 、for、continue、break、return语句的使用方法;6)熟练掌握数组和字符串的使用;7)调试程序要记录调试过程中出现的问题及解决办法;8)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;9)做完实验后给出本实验的实验报告。二、实验仪器和设备奔腾以上计算机, Windows操作系统,装有 JDK1.7和Eclipse 软件。三、实验过程(1)分别使用 JDK命令行和 Eclipse 编译运行 Java应用程序。记录操作过程。Java应用程序参考如下:思考:

1.适当添加注释信息,通过 javadoc生成注释文档;2.为主方法传递参数 “Helloworld字符”串,并输出;压缩生成".jar"文件。2)分别使用JDK命令行和Eclipse编译JavaApplet,并建立HTML文档运行该Applet。记录操作过程。Java小应用程序参考如下:HTML文档参考如下:输出下列数字形式。n=40 0 0 00 1 1 10 1 2 20 1 2 3n=41121123211234321(4)采用数组输出等腰三角形的杨辉三角。(5)判断回文字符串回文是一种“从前向后读”和“从后向前读”都相同的字符串。如“ rotor ”是一个回文字符串。程序中使用了两种算法来判断回文字符串:算法一:分别从前向后和从后向前依次获得原串 str 的一个字符 ch1、ch2,比较ch1和ch2,如果不相等,则str肯定不是回文串,yes=false,立即退出循环:否则继续比较,直到字符全部比较完,yes的值仍为true,才能肯定str是回文串。算法二:将原串str反转成temp串,再比较两串,如果相等则是因文字符串。要求:(1) 编译调试程序之前应配置好环境变量;(2) 要分别掌握用 JDK命令行和 Eclipse 集成开发环境调试 Java程序;(3) 注意Java两大类程序:应用程序和小程序的区别。程序清单:(建议程序中适当添加注释信息, 增强可读性;较长程序可分栏书写, 保证报告排版整洁美观。)第(1)题代码:publicclassHello{publicstaticvoidmain(Stringargs[]){}}第(2)题代码:publicclassHelloAppletextendsApplet{publicvoidpaint(Graphicsg){g.setColor(Color.red);g.drawString("Hello!",20,20);}}第(3)题代码:○1package shiyan1_3;public class shuarray{public

static

void main(Stringargs[]){int n=4;int mat[][]=

newint[n][n];int i,j;for (i=0;i<mat.

length ;i++){for (j=i;j<mat[i].

length

;j++){mat[i][j]=i;mat[j][i]=i;}}for (i=0;i<mat. length ;i++){for (j=0;j<mat[i]. length ;j++)System. out.print(mat[i][j]+

"\t"

);System. out.println();}}}○2package shiyan1_3_2;public class yanghuitriangle{public

static

void

main(String[]args){int

n=4;int

a[][]=

newint

[n][2*n-1];int

i,j;for (i=0;i<a.{

length ;i++)a[i]= newint [2*i+1];int t=0;for (j=0;j<a[i]. length ;j++){if (j<i+1){a[i][j]=++t;}else{a[i][j]=--t;}}}for (i=0;i<a. length ;i++){for (j=0;j<a. length -1-i;j++)System. out.print( "" +"\t"

);for (j=0;j<a[i]. length ;j++)System. out.print(a[i][j]+

"\t"

);System. out.println();}}}第(4)题代码:package shiyan1_4;public class yanghuitriangle{public

static

void main(String[]args){int n=8;int a[][]=

newint [n][];int i,j;for (i=0;i<a.

length ;i++){a[i]= newint [i+1];for (j=0;j<a[i]. length ;j++){if (i==0||j==0||j==a[i].

length

-1)a[i][j]=1;else{a[i][j]=a[i-1][j-1]+a[i-1][j];}}}for (i=0;i<a. length ;i++){for (j=0;j<a. length -1-i;j++)System. out.print( " " );for (j=0;j<a[i]. length ;j++){System. out.printf( "%2d",a[i][j]);System. out.print( " " );}System. out.println();}}}第(5)题代码:package shiyan1_5_2;public class huiwenshu{huiwenshu(){}public static Stringset(Stringtext){int length=text.length();for (int i=0;i<length/2;i++){if(text.charAt(i)!=text.charAt(length-i-1))return "不是回文数";}return "是回文数";}public static void main(String[]args){Stringtext= "rotor" ;System. out.println(text+huiwenshu. set(text));}四、实验结果与分析第(1)题实验结果:JDK命令行运行结果:Eclipse运行结果:第(2)题实验结果:JDK命令行运行结果:Eclipse运行结果:第(3)题实验结果:○1实验结果:○2实验结果:第(4)题实验结果:第(5)题实验结果:实验项目名称:面向对象编实验学时:8同组学生姓名:————实验地点:1514/A203实验日期:4.13/4.15/4.20/4.22实验成绩:批改教师:王倩倩批改时间:一、实验目的和要求1)熟练掌握Java语言类定义的基本语法;2)熟练掌握类成员的访问控制,对象建立的方法;3)熟练掌握类构造方法、成员方法的定义和重载;4)熟练掌握类继承、多态和抽象性;5)熟练掌握接口的定义和实现方法;6)掌握基本的异常处理方法;7)调试程序要记录调试过程中出现的问题及解决办法;8)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;9)做完实验后给出本实验的实验报告。二、实验仪器和设备奔腾以上计算机, Windows操作系统,装有 JDK1.7和Eclipse 软件。三、实验过程1)设计复数类,成员变量包括实部和虚部,成员方法包括实现复数加法、减法、字符串描述、比较是否相等等操作。2)设计三角形类,继承图形抽象类,实现面积接口和周长接口,计算三角形面积和周长。3)包的建立与使用:设计计算器类Calculator,计算加、减、乘、除,并且打包为mypackage。观察源文件目录下是否生成了mypackage文件夹,在该文件夹中是否有Calculate.class文件。编辑PackageDemo.java,保存在Calculator.java同一目录下,引用计算器类的各方法显示计算结果。(4)编码实现多态在工资系统中的应用:给出一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资) 、HourlyWorker(根据工作时间长短发放工资) 。该例的

Employee

的每个子类都声明为

final

,因为不需要再继承它们生成子类。在主测试类

Test

中测试各类雇员工资计算结果。提示:对所有雇员类型都使用

earnings()

方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类

Employee

派出生的。在超类中声明

earnings()

为抽象方法,并且对于每个子类都提供恰当的 earnings() 的实现方法。为了计算雇员的工资,程序仅仅使用雇员对象的一个超类引用并调用 earnings() 方法。在一个实际的工资系统中,各种Employee对象的引用可以通过一个 Employee引用数组来实现。 程序依次使用数组的每个元素( Employee引用)调用每个对象的 earnings() 方法。Employee类定义如下:abstractclassEmployee{privateStringfirstName;privateStringlastName;publicEmployee(Stringfirst,Stringlast){firstName=first;lastName=last;}publicStringgetEmployeeName(){returnfirstName;}publicStringgetLastName(){returnlastName;}publicStringtoString(){returnfirstName+lastName;}publicabstractStringearnings();}(5)异常的捕获:计算两数相除并输出结果。使用三个

catch

子句,分别捕捉输入输出异常、除数为 0的异常和参数输入有误异常。classEx1{publicstaticvoidmain(Stringargs[]){try{BufferedReaderstrin=newBufferedReader(newInputStreamReader(System.in));// 建立输入流缓冲区 请输入除数: ");Stringcl=strin.readLine();// 键盘输入inta=Integer.parseInt(cl);System.out.print(" 请输入被除数: ");cl=strin.readLine();intb=Integer.parseInt(cl);intc=b/a;System.out.println(" 商为:"+c);}捕获与I/O有关的异常(空白处补全捕获语句)捕获数值转化时的异常,如不能将字符转化成数值捕获除数为0的异常}}编译并运行,当产生输入输出异常时显示异常信息;当输入除数为 0时,出现算术异常,提示除数为 0,并要求重新输入;当输入的不是整数时,如将 30输成了3o,出现数值格式异常,提示输入整数。思考:是否还有其他异常需要捕获处理?6)编写程序包含自定义异常MyException,当100被13和4除时抛出该异常,其余除数显示商值。要求:(1) 注意选用适当的类成员修饰符( private 、protected 、public 等),比较它们的使用情况;2)养成良好的编程习惯,严格按照命名规则为包、类及类成员命名,将每个程序打包,包的命名方式如two.num1表示实验二的第一题;3)学会使用Eclipse的各种调试方法;4)学会查阅JavaAPI文档,如查找异常类的使用方法。程序清单:(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)代码如下:package shiyan2_1;public class complexnumber{private

double real

,imag;public

complexnumber(

double

r,

double

i){this .real =r;this .imag=i;}public complexnumberadd(complexnumberc){complexnumbertemp=newcomplexnumber(0,0);temp.real=this.real+c.real;temp.imag=this.imag+c.imag;returntemp;}public complexnumbersub(complexnumberc){complexnumbertemp=newcomplexnumber(0,0);temp.real=this.real-c.real;temp.imag=this.imag-c.imag;returntemp;}public boolean equals(complexnumberc){if ( this ==c|| this .real ==c.real &&this .imag==c.imag){return true ;}return false ;}public StringtoString(){return this .real +"+"+this .imag+"i" ;}public static void main(String[]args){complexnumbera=newcomplexnumber(1,2);System.out.println("第一个虚数为:"+a.toString());complexnumberb=newcomplexnumber(1,2);System.out.println("第二个虚数为:"+b.toString());System.out.println("两个徐庶的和:"+a.add(b).toString());System.out.println("两个徐庶的差:"+a.sub(b).toString());if(a.equals(b)){System.out.println("两个虚数相等");}else{System. out.println( "两个虚数不相等 ");}}}代码如下:Point 类:package shiyan2_2;public class Point{publicpublic

intPoint(

x,y;int

x, int y){this .x=x;this .y=y;}public Point(){this (0,0);}public StringtoString(){return "Point(" +this .x+"," +this .y+")" ;}}figure 类:package shiyan2_2;public class figure{public Point point1 ;protected String shape;protected figure(Pointpoint){this .point1 =point;}protected figure(Pointpoint,Stringshape){this .point1 =point;this .shape=shape;}protected figure(){this (newPoint());}}Triangle 类:package shiyan2_2;public

class

Triangle

extends

figure

implements

Area,Perimeter{public Point point2 ,point3 ;protected double a,b,c;public Triangle(Pointp1,Pointp2,Pointp3){super(p1, "三角形

");this .point2 =p2;this.point3=p3;this.a=Math.sqrt((point1.x-point2.x)*(point1.x-point2.x)+(point1.y-point2.y)*(point1.y-point2.y));this.b=Math.sqrt((point2.x-point3.x)*(point2.x-point3.x)+(point2.y-point3.y)*(point2.y-point3.y));this.c=Math.sqrt((point3.x-point1.x)*(point3.x-point1.x)+(point3.y-point1.y)*(point3.y-point1.y));}public Triangle(Pointp1, double a, double b,double c){super(p1,this .a=a;this .b=b;this .c=c;

"三角形");}public

double

area(){double

s=( a+b+c)/2;return

Math. sqrt (s*(s-

a)*(s-

b)*(s-

c));}public

double

perimeter(){return

a+b+c;}public{

StringtoString()return this .getClass().getName()+ this .shape+",三点坐标"+this .point1 +"," +(this .point2 ==null ?"null" :this .point2 .toString())+is.point3 ==null ?"null" :this .point3 .toString())+ ",三边长"+String. format ("%1.2f,%1.2f,%1.2f" ,this .a,this .b,this .c);}

","

+(th}Area接口:package shiyan2_2;public interface{

Areapublic

abstract

double area();}Perimeterpackage

接口:shiyan2_2;public interface Perimeter{public abstract double perimeter();}Test类:package shiyan2_2;public class text{public

static

void

main(String[]args){Triangletr= newTriangle( newPoint(100,100),Point(140,130));Areaar=tr;System. out.println(tr.toString());System. out.println( "面积为:"+String. formatPerimeterpe=tr;System. out.println( "周长为:"+String. format

newPoint(100,130),("%1.2f" ,ar.area()));("%1.2f" ,pe.perimeter()));

new}}代码如下:package mypackage;public class calculator{private

double

x;public

calculator(

double xx){this .x=xx;}public double add(calculatorc){return (this .x+c.x);}public double sub(calculatorc){return (this .x-c. x);}public double mul(calculatorc){return (this .x*c. x);}public double div(calculatorc){return (this .x/c. x);}public

StringtoString(){return

""

+this

.x+""

;}}packagepublic{

mypackage;class PackageDemopublic

static

void

main(String[]args){calculatoraa= newcalculator(1);calculatorbb= newcalculator(1);System. out.println( "加法:"+aa.toString()+ "+"+bb.toString()+ "="+aa.add(bb));System. out.println( "减法:"+aa.toString()+ "-" +bb.toString()+ "="+aa.sub(bb));System. out.println( "乘法:"+aa.toString()+ "*" +bb.toString()+ "="+aa.mul(bb));System. out.println( "除法:"+aa.toString()+ "/" +bb.toString()+ "="+aa.div(bb));}}代码如下:Employee 类:package shiyan2_4;public abstract

class

Employee{public{

Employee()}privateprivatepublic

String firstName ;String lastName ;Employee(Stringfirst,Stringlast){firstName =first;lastName =last;}public

StringgetEmployeeName(){return

firstName

;}public{

StringgetLastName()return

lastName ;}public

StringtoString(){return

firstName

+lastName ;}public

abstract

Stringearnings();}Employee类:package shiyan2_4;public final class

Boss

extends

Employee{public{

Stringearnings()return

"通过Boss的工资计算公式计算出老板的工资

";}}CommissionWorker 类:package shiyan2_4;public final class CommissionWorker{

extends

Employeepublic{

Stringearnings()return

"通过CommissionWorker

的工资计算公式计算出老板的工资

";}}HourlyWorke 类:package shiyan2_4;public final class

HourlyWorker

extends

Employee{public{

Stringearnings()return

"通过HourlyWorker

的工资计算公式计算出老板的工资

";}}PieceWorker 类:package shiyan2_4;public final class

PieceWorker

extends

Employee{public{

Stringearnings()return

"通过PieceWorker

的工资计算公式计算出老板的工资

";}}Text类:package shiyan2_4;public class text{public static void main(String[]args){Employeeem= newBoss();System.out.println(em.earnings());em=newCommissionWorker();System.out.println(em.earnings());em=newPieceWorker();System.out.println(em.earnings());em=newHourlyWorker();System.out.println(em.earnings());}}代码如下:package shiyan2_5;import public class Ex1{public

static

void

main(Stringargs[]){Stringcl=

null

;try{BufferedReaderstrin= newBufferedReader(InputStreamReader(System. in)); //建立输入流缓冲区System. out.print( "请输入除数: ");cl=strin.readLine(); //键盘输入int a=Integer. parseInt (cl);System. out .print( "请输入被除数: ");cl=strin.readLine();int b=Integer. parseInt (cl);int c=b/a;System. out .println( "商为:"+c);

new}catch (IOExceptionex){System. out.println( "I/O 有关的异常");}catch (NumberFormatExceptionex){System. out.println(cl+ "字符串不能转换成整数 ");}catch (ArithmeticExceptionex){System. out.println( "除数不能0");}}}代码如下:自定义异常类:package shiyan2_6;public class MyException

extends

Exception{public{

MyException(Strings)super

(s);}public MyException(){super();}}packageshiyan2_6;publicclassDivide{publicstaticdoublediv(doublea,doubleb)throwsMyException{if(a==100&&(b==4||b==13))thrownewMyException("不符合规范");elsereturna/b;}publicstaticvoidmain(Stringargs[]){Stringcl=null;doublea,b;try{BufferedReader strin=new

BufferedReader(new

InputStreamReader(System.in));

请输入被除数:

");cl=strin.readLine();a=Double.parseDouble(cl);System.out.print(" 请输入除数: ");cl=strin.readLine();b=Double.parseDouble(cl);System.out.println(" 商为:"+Divide.div(a,b));}catch(IOExceptionex){ 有关的异常");}catch(NumberFormatExceptionex){ 字符串不能转换成整数 ");}catch(ArithmeticExceptionex){ 除数不能 0");}catch(MyExceptionex){ 输入的数据不规范 ");}}}四、实验结果与分析第(1)题实验结果:第一个虚数为: 1.0+2.0i第二个虚数为: 1.0+2.0i两个徐庶的和: 2.0+4.0i两个徐庶的差: 0.0+0.0i两个虚数相等第(2)题实验结果:shiyan2_2.Triangle 三角形,三点坐标Point(100,100),Point(100,130),Point(140,130),三边长30.00,40.00,50.00面积为:600.00周长为:120.00第(3)题实验结果:加法: 1.0+1.0=2.0减法: 1.0-1.0=0.0乘法: 1.0*1.0=1.0除法: 1.0/1.0=1.0第(4)题实验结果:通过Boss的工资计算公式计算出老板的工资通过CommissionWorker 的工资计算公式计算出老板的工资通过PieceWorker 的工资计算公式计算出老板的工资通过HourlyWorker 的工资计算公式计算出老板的工资第(5)题实验结果:请输入除数: 3o3o字符串不能转换成整数请输入除数: 0请输入被除数: 13除数不能 0第(6)题实验结果:请输入被除数: 100请输入除数: 4输入的数据不规范请输入被除数: 100请输入除数: 13输入的数据不规范实验项目名称:图形用户界面实验学时:6同组学生姓名:————实验地点:1514/A203实验日期:2016.5.4/5.6/5.11实验成绩:批改教师:王倩倩批改时间:一、实验目的和要求1)掌握Swing组件的使用方法;2)熟练掌握Swing中常用布局管理器的使用方法;3)掌握用户界面动作与事件的处理程序的编写方法;4)熟练掌握构造用户界面的方法和常见界面元素的使用;5)熟练掌握Java绘图的主要方法。6)调试程序要记录调试过程中出现的问题及解决办法;7)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;8)做完实验后给出本实验的实验报告。二、实验仪器和设备奔腾以上计算机, Windows操作系统,装有 JDK1.7和Eclipse 软件。三、实验过程计算器设计模拟裁判评分。设计如图所示图形界面,显示 n个裁判的评分,根据制定规则计算出最后得分。要求:图形界面采用表格显示裁判评分,随裁判人数变化而变化;指定分数范围,若超出,则异常处理;得分规则有指定接口约定,由多个接口对象给出多种得分规则,如求平均数值,或去掉一个最高分和一个最低分后,再求平均值。编译运行下例,然后修改程序,当使用鼠标单击后在另一位置重新绘制月亮。【例】在Applet中画月亮。publicclassMoonAppletextendsApplet{publicvoidpaint(Graphicsg)

//

Applet

上绘图{g.setColor(Color.red);g.drawString("TheMoon",100,20);intx=0,y=0; // 圆外切矩形左上角坐标x=this.getWidth()/4;y=this.getHeight()/4;int diameter = Math.min(this.getWidth()/2,

this.getHeight()/2);//圆的直径g.setColor(Color.yellow);g.fillOval(x,y,diameter,diameter); //g.setColor(this.getBackground()); //g.fillOval(x-20,y-20,diameter,diameter);//

画圆设置为背景色画圆}}根据阿基米德螺线的极坐标方程:r=aθ画出相应图形。要求:注意选用适当的布局管理器设计图形用户界面,比较它们的布局情况;养成良好的编程习惯,严格按照命名规则为包、类及类成员命名,将每个程序打包,包的命名方式如three.num1表示实验三的第一题;学会使用Eclipse的各种调试方法;学会查阅JavaAPI文档,如查找事件类的处理里方法。程序清单:(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)第1题实验代码:packageshiyan3_1;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.event.*;publicclasscalculatorframeextendsJFrameimplementsActionListener{privateJTextFieldtext;privateJButtonbuttons[];public{

calculatorframe()super("Calculator");this.setSize(500,300);this.setLocation(300,240);this.setDefaultCloseOperation(3);//EXIT_ON_CLOSEtext=newJTextField("",20);text.setHorizontalAlignment(JTextField.RIGHT);text.setEditable(false);this.getContentPane().add(text,"North");JPanelpanel=newJPanel(newGridLayout(5,4));this.getContentPane().add(panel,"Center");Stringstr[]={"sqrt","+/-","Backspace","C","7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"};this.buttons=newJButton[str.length];for(inti=0;i<buttons.length;i++){buttons[i]=newJButton(str[i]);panel.add(buttons[i]);buttons[i].addActionListener(this);}this.setVisible(true);}publicvoidactionPerformed(ActionEventev){Stringcurrent=ev.getActionCommand();if(current.equals("C")){text.setText("0");}elseif(current.equals( "Backspace" )){Stringstr= text.getText().substring(0,text.getText().length()-1);text.setText(str);}else{if (text .getText().equals( "0"))//字符串比较要用 equals{text .setText(

"");}if (!current.equals(

"=")){if (current.equals(

"sqrt"

)){Stringstrtemp= text .getText();double value=Double. parseDoubletext .setText( ""+Math. sqrt (value));

(strtemp);}else{text .setText(

text .getText()+current);}}else{Stringstrtemp=Stringstr1,str2;int i=0;char op;

text .getText();double value=0;/*while(strtemp.charAt(i)!='+'&&strtemp.charAt(i)!='-'&&strtemp.charAt(i)!='*'&&strtemp.charAt(i)!='/'){}*/for(i=0;i<strtemp.length();i++){if(strtemp.charAt(i)==*'||strtemp.charAt(i)==

'/'

'+'||strtemp.charAt(i)==)

'-'

||strtemp.charAt(i)==

'{break;}}str1=strtemp.substring(0,i);op=strtemp.charAt(i);str2=strtemp.substring(i+1);if (op=='+' ){value=Double.parseDouble(str1)+Double.parseDouble(str2);}if(op=='-'){value=Double.parseDouble(str1)-Double.parseDouble(str2);}if(op=='*'){value=Double.parseDouble(str1)*Double.parseDouble(str2);}if (op=='/' ){value=Double. parseDouble (str1)/Double. parseDouble (str2);}text .setText( ""+value);}}}public static void main(Stringargs[]){newcalculatorframe();}}第2题实验代码:packageshiyan3_2;importshiyan2_6.MyException;publicclassanalogscoreextendsJFrameimplementsActionListener,scoreprinciple{privateJTextFieldtext;privateJButtonbutton;privateDefaultTableModeltablemodel;privatedoublea[];publicanalogscore(doublea[]){super(" 模拟裁判评分");this.setBounds(300,240,780,400);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.a=a;introw;intrest;if(a.length%5!=0){if(a.length<5){this.tablemodel=newDefaultTableModel(1,a.length);intt=0,i;for(i=0;i<a.length;i++){t++;}}else{ 是整行");row=a.length/5+1;rest=a.length%5;this.tablemodel=newDefaultTableModel(row,5);intt=0,i,j;for(i=0;i<row-1&&t<a.length;i++){for(j=0;j<5;j++){t++;}}for(j=0;j<rest;j++){t++;}}}else{ 不是整行");row=a.length/5;this.tablemodel=newDefaultTableModel(row,5);intt=0,i,j;for(i=0;i<row&&t<a.length;i++){for(j=0;j<5;j++){}}}JTablejtable=newJTable(this.tablemodel);this.getContentPane().add(jtable,"North");JPanelpanel=newJPanel(newFlowLayout(FlowLayout.RIGHT));this.getContentPane().add(panel);button=newJButton(" 平均分");panel.add(button);button.addActionListener(this);text=newJTextField("",8);text.setEditable(false);panel.add(text);this.setVisible(true);}publicdoublesp(doublea[]){doublesum=0;if(a!=null&&a.length>2){doublemax=a[0],min=a[0];for(inti=0;i<a.length;i++){sum+=a[i];if(a[i]>max){max=a[i];}if(a[i]<max){min=a[i];}}return(sum-max-min)/(a.length-2);}return0.0;}publicvoidactionPerformed(ActionEventev){doublet=this.sp(a);}publicstaticvoidmain(Stringarg[]){try{BufferedReader strin=new BufferedReader(newInputStreamReader(System.in));// 建立输入流缓冲区 请输入裁判人数 :");Stringcl=strin.readLine();intn=Integer.parseInt(cl); 请以此输入裁判的分数 :");String[]strArray=newString[n];for(inti=0;i<n;i++){strArray[i]=strin.readLine();if(Double.parseDouble(strArray[i])<0||Double.parseDouble(strArray[i])>10)thrownewMyException();}doublea[]=newdouble[n];for(inti=0;i<n;i++){a[i]=Double.parseDouble(strArray[i]);//if(a[i]<0||a[i]>10)thrownewMyException();}newanalogscore(a);}catch(IOExceptionex){ 有关的异常");}catch(NumberFormatExceptionex){ 字符串不能转换成整数 ");}catch(MyExceptionex){ 输入评分超出范围 ");}}}第3题实验代码:packageshiyan3_3_1;publicclassmooncanvasextendsCanvasimplementsMouseListener{privateColorcolor;intx=this.getWidth()/2;inty=this.getHeight()/2;publicmooncanvas(){this.addMouseListener(this);}publicmooncanvas(Colorcolor){this.setColor(color);}publicvoidsetColor(Colorcolor){this.color=color;}publicvoidpaint(Graphicsg){g.setColor(Color.red);g.drawString("TheMoon",300,20);//

圆外切矩形左上角坐标int

diameter

= Math.min(this.getWidth()/2,

this.getHeight()/2);//圆的直径g.setColor(Color.yellow);g.fillOval(x,y,diameter,diameter); //g.setColor(this.getBackground()); //g.fillOval(x-20,y-20,diameter,diameter);//}publicvoidmousePressed(MouseEvente)

画圆设置为背景色画圆{x=e.getX();y=e.getY();repaint();}publicvoidmouseReleased(MouseEvente){}publicvoidmouseEntered(MouseEvente){}publicvoidmouseExited(MouseEvente){}publicvoidmouseClicked(MouseEvente){x=e.getX();y=e.getY();repaint();}/*publicvoidupdate(Graphicsg){paint(g);super.update(g);}*/}packageshiyan3_3_1;publicclassMoonJframeextendsJFrame{privatemooncanvascanvas;publicMoonJframe(){super(" 月亮");Dimensiondim=this.getToolkit().getScreenSize();this.setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/2);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.canvas=newmooncanvas();this.getContentPane().add(this.canvas,"Center");this.setVisible(true)}publicstaticvoidmain(Stringargs[]){newMoonJframe();}}第4题实验代码:package shiyan3_4;import import import public

class

archimedeslinejframe

extends

JFrame

implements

ActionListener{privateprivate

ArchimedesCanvasJButtonbutton_color

archimedes;

;public

archimedeslinejframe(){super("阿基米德螺线 ");Dimensiondim=getToolkit().getScreenSize();this .setBounds(dim. width /4,dim. height

/4,dim. width /2,dim.

height

/2);this .setDefaultCloseOperation(

EXIT_ON_CLOSE);button_color =newJButton( "选择颜色");this .getContentPane().add( button_colorbutton_color .addActionListener( this );

,"North"

);archimedes=newArchimedesCanvas(Color.this.getContentPane().add(archimedes

red);,"Center"

);this .setVisible( true );}public

void actionPerformed(ActionEvente){Colorc=JColorChooser.

showDialog

(this

,

"选择颜色

",Color.

blue);this .archimedes

.setColor(c);this .archimedes

.repaint();}public

static

void

main(String[]args){newarchimedeslinejframe();}}四、实验结果与分析(分析每题采用的布局管理器、事件处理类和主要功能实现方法。 )第1题实验结果:第2题实验结果:请输入裁判人数 :10请以此输入裁判的分数 :1314输入评分超出范围请输入裁判人数 :10请以此输入裁判的分数 :10a字符串不能转换成整数第3题实验结果:(1)输出结果:(2)点击鼠标结果:第4题实验结果:实验项目名称: Java 高级编程 实验学时: 6同组学生姓名: ———— 实验地点: 1514/A203实验日期: 实验成绩:批改教师: 王倩倩 批改时间:一、实验目的和要求1)了解文件的概念和文件对象的创建方法;2)掌握使用文件输入输出流读写文件的方法;3)了解线程的基本概念和多线程程序设计的基本方法;4)掌握数据库连接的方法;5)创建SQL查询并更新数据库中的信息;6)调试程序要记录调试过程中出现的问题及解决办法;7)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;8)做完实验后给出本实验的实验报告。二、实验仪器和设备奔腾以上计算机, Windows操作系统,装有 JDK1.7和Eclipse 软件,Access数据库。三、实验过程1)使用文件字节输入/输出流,合并两个指定文件;当文件中的数据已排序时,合并后的数据也要求是已排序的。(2)将Java的关键字保存在一个文本文件中,判断一个字符串是否为Java的关键字。(3)编写在构造方法中产生一个1-5之间的随机数的继承Thread类的线程类DelayPrintThread,使得线程体每休眠此随机数时间就打印输出线程号和休眠时间;另外编写应用DelayPrintThread类的Java应用程序TwoThread.java,在main()方法中创建两个线程,并应用sleep()控制主应用程序延迟一段时间。(4)编写继承Runnable接口的Applet多线程小程序类MultiThreadApplet,编写继承该类的Applet小程序类Clock,在Clock中重新构造父类的run()方法,实现数字时钟的功能,要求不断刷新显示时、分、秒。要求:注意选用适当的文件流进行文件读写;学会两种创建线程的方法,并比较使用场合;养成良好的编程习惯,严格按照命名规则为包、类及类成员命名,将每个程序打包,包的命名方式如four.num1表示实验四的第一题;学会查阅JavaAPI文档,如查找常用工具类。程序清单:(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)第1题实验代码:package shiyan4_1;import import public class mergefile //extendsFilterInputStreanmimplementsDateIput{public int ct;public mergefile(){}public void merge(Stringfilename1,Stringfilename2,Stringfilename3){try{FileInputStreamfin1=newFileInputStream(filename1);FileInputStreamfin2=newFileInputStream(filename2);FileOutputStreamfout3=newFileOutputStream(filename3,true);bytebuffer[]=newbyte[512];intcount=0;while ((count=fin1.read(buffer))!=-1){this .ct=count;fout3.write(buffer,0,count);}fin1.close();while ((count=fin2.read(buffer))!=-1){this .ct+=count;fout3.write(buffer,0,count);}System. out.print( "&"+this .ct);fin2.close();fout3.close();}catch (FileNotFoundExceptionex){JOptionPane. showMessageDialog (null ,filename1+ "文件不存在,不能合并。");}catch (IOExceptionex){JOptionPane. showMessageDialog (null , "IO异常,合并\"" +filename1+filename2+ "\" 文件未成功 ");}}public void sort(Stringfilename){try{byte temp[]= newbyte[ct];int count=0;byte t;FileInputStreamfin= newFileInputStream(filename);while ((count=fin.read(temp))!=-1){}fin.close();FileOutputStreamfout= newFileOutputStream(filename, false );for(int i=0;i<temp. length ;++i){for (int j=0;j<temp. length -i-1;++j){if (temp[j]>temp[j+1]){t=temp[j];temp[j]=temp[j+1];temp[j+1]=t;}}}fout.write(temp);fout.close();}catch(FileNotFoundExceptionex){JOptionPane. showMessageDialog (null ,filename+ "文件不存在,不能合并。");}catch(IOExceptionex){JOptionPane. showMessageDialog (null ,"IO异常,合并\"" +filename+ "\" 文件未成功");}}public static void main(Stringargs[]){mergefilemf=

newmergefile();mf.merge(

"f:\\tex1.txt"

, "f:\\tex2.txt"

,"f:\\tex3.txt"

);mf.sort(

"f:\\tex3.txt"

);}}第2题实验代码:packageshiyan4_2;importshiya

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论