JAVA实验报告分析(4)

2025-11-14

//除基本工资外还根据销售额发放浮动工资

final class CommissionWorker extends Employee{ private double salary; private double fsalary;

public CommissionWorker(String first,String last,double s,double f){

super(first,last); setSalary(s); setFsalary(f); }

public void setFsalary(double f){

fsalary=(f>0?f:0); }

public void setSalary(double s){

salary=s; }

public String earnings(){

String salary1 = String.valueOf(salary+fsalary); return salary1; }

public String toString(){

return \ } }

HourlyWorker类

package ss1;

//根据工作时间长短发放工资

final class HourlyWorker extends Employee{

private double wage; private double hours;

public HourlyWorker(String first,String last,double w,double h) {

super(first,last); setWage(w); setHours(h);

}

public void setWage(double w) {

wage=(w>0?w:0); }

public void setHours(double h) {

hours=(h>=0&&h<168?h:0); }

public String earnings() {

String salary1 = String.valueOf(wage*hours); return salary1; }

public String toString() {

return \—— \ }}

PieceWorker类

package ss1;

//按其生产的产品数发放工资

final class PieceWorker extends Employee{

private double wagePiece; private int quantity;

public PieceWorker(String first,String last,double w,int q){

super(first,last); setWage(w); setQuantity(q); }

public void setWage(double w) {

wagePiece=(w>0?w:0); }

public void setQuantity(int q){

quantity=q; }

public String earnings() {

String salary1 = String.valueOf(quantity*wagePiece); return salary1; }

public String toString() {

return \—— \ }

}

Test类

package ss1;

class Test{

public static void main(String args[ ]) { //使用超类声明ref Employee ref; String out=\ //分别定义各子类

Boss b=new Boss(\

CommissionWorker c=new CommissionWorker(\ PieceWorker p=new PieceWorker(\ HourlyWorker h=new HourlyWorker(\ //使用子类分别实例化 ref=b;

out+=ref.toString()+\父类调用earnings方法得\子类调用earnings方法得:\ ref=c;

out+=ref.toString()+\父类调用earnings方法得\子类调用earnings方法得:\ ref=p;

out+=ref.toString()+\父类调用earnings方法得\子类调用earnings方法得:\ ref=h;

out+=ref.toString()+\父类调用earnings方法得\子类调用earnings方法得:\ System.out.print(out); }

:::: }

(6)异常的捕获

package ss;

import java.io.*; class Ex1 {

public static void main(String args[ ]) {

try{

BufferedReader strin=new BufferedReader(

new InputStreamReader(System.in));//建立输入流缓冲区 System.out.print(\请输入除数:\String 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(\商为:\ }

//捕获异常

catch(IOException e){ //捕获I/O异常

System.out.println(\有关的异常\ }

//捕获数值转化时的异常,如不能将字符转化成数值 catch(NumberFormatException e){

System.out.println(\数值转化有关的异常\ }

//捕获除数为0的异常 catch(Exception e){

System.out.println(\除数为0的异常\ } } }

(8)编写程序包含自定义异常MyException,当100被13和4除时抛出该异常,其余除数显示商值。

import java.io.*;

class MyException extends Exception{ MyException(String msg) { super(msg); } }

public class DoubleDivideA {

public static void main(String[] args) throws MyException { try {

BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print(\请输入实数除法运算的被除数:\ String str = in.readLine();

double a = Double.parseDouble(str); System.out.print(\请输入除数:\ str = in.readLine();

double b = Double.parseDouble(str);

System.out.println(\商结果:\ }

catch (ArithmeticException e1) {

System.out.println(\商结果:Infinity\

System.out.println(\商结果:NaN\ }

catch (NumberFormatException e2) {

System.out.println(\异常:字符串不能转换成整数!\ }

catch (IOException e3) { System.out.println(\异常:IO异常\ }

finally {

System.out.println(\程序结束。\ } }

static double division(double a, double b) throws MyException {

if (a==100&&(b==4||b==13))

throw new MyException (\不符规范\

else

return (a/b); } }

四、实验结果与分析

(1)调试结果

调试结果:(2.0+3.5i)+(9.0+1.7i)=(11.0+5.2i)

(2.0+3.5i)-(9.0+1.7i)=(-7.0+1.8i)


JAVA实验报告分析(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:08机械原理习题解答改1

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219