1-IntReceiver类可以接受指定范围内的整数值

IntReceiver类可以接受指定范围内的整数值,具有下面四个属性:
最大的可接受值
最小的可接受值
输入提示字符串
错误消息字符串
并具有一个方法:
getValue(),功能是显示输入提示字符串,然后读取键盘输入的-一个整数。如果读取的
值不在允许范围内,则显示错误消息字符串,并重新要求用户输入一个新值,重复以上步骤
直到输入了一个可接受的值。最后返回读取到的整数。
要求编程实现IntReceiver类,使给定的Test类能正常运行,并实现指定的输出内容。

import java.util.Scanner;
public class IntReceiver {private int max = 100;private int min = 0;private String warningStr = "invalid input!";private String inputStr = "input an integer:";public int getValue() {int temp;Scanner in = new Scanner(System.in);System.out.print(inputStr);temp = in.nextInt();while (temp < min || temp > max) {System.out.println(warningStr);System.out.print(inputStr);temp = in.nextInt();}return temp;}
}class Test{public static void main(String[] args){IntReceiver ir = new IntReceiver();int value;value = ir.getValue();System.out.println("The value is "+value);}
}

2-汽车类

一辆Car有(has)四个轮子(Wheels)和一个发动机(Engine)。现在要求用组合方法设计类Car、类Wheel和类Engine.

(1) 类Engine 有字符串属性type记录发动机的型号,有构造方法,可设置发动机的型号有方法start()启动引擎(输出下面样例中包含发动机型号和“starts”的字符串)

(2)类Wheel有字符串属性type记录轮胎的型号,有整数类型属性index记录当前轮胎编号(1:front-left,2:front-right,3:back-left,4:back-right),有构造方法,可设置轮胎的型号和编号,有方法roll()表示轮胎正在转动(输出下面样例中包含轮胎型号、轮胎位置和“rolling”的字符串)

(3)类Car有字符串属性model记录轿车的型号,有属性wheels[]和engine,分别是Wheel类对象数组和Engine类对象,有构造方法,参数是三个字符串,分别表示轿车的型号、轮胎型号和发动机的型号,有方法changeWheel()可以改变指定轮胎的型号,有方法start(),先输出下面样例中包含轿车型号和“firing”的字符串,然后调用engine的start(),再调用所有轮胎的roll(),最后显示轿车型号和“running”。

要求编程实现类Car、类Wheel和类Engine,使给定的Test类能正常运行,并实现指定的输出内容。

class Engine{String type;Engine(){}Engine(String type){this.type = type;}void start() {System.out.println("Engine" + "<" + type + ">" + "  starts!");}
}class Wheel{String type;int index;public Wheel(){}public Wheel(int a,String b){index = a;type = b;}public void roll() {switch (index) {case 1:System.out.println("Wheel front-left " + "<" +type +">"+ " is rolling");break;case 2:System.out.println("Wheel front-right " + "<" +type +">"+ " is rolling");break;case 3:System.out.println("Wheel back-left " + "<" +type +">"+ " is rolling");break;case 4:System.out.println("Wheel back-right " + "<" +type +">"+ " is rolling");break;default:System.out.println("error\n");break;}}
}
class Car{String model;Wheel[] Wheels = new Wheel[4];//实例化数组Engine engine=new Engine();//实例化Enginepublic Car(String model, String Wheelstype, String engine) {this.model = model;for(int i=0;i<4;i++){Wheels[i]=new Wheel(i+1,Wheelstype);}//实例化数组成员this.engine.type = engine;}void changeWheel(int a, String type) {Wheels[a - 1].type = type;}void start() {System.out.println("Car" + "<" + model +">"+ " is firing!");engine.start();for (int i = 0; i < 4; i++) {Wheels[i].roll();}System.out.println("Car" + "<" + model +">"+ " is running");}}
public class Test01 {public static void main(String[] args){String wheel="BridgeStone";String model="BMW";String engine="Mode L";Car car1=new Car(model,wheel,engine);car1.start();System.out.println("=================");model="Benz";engine="Model S";Car car2=new Car(model,wheel,engine);car2.changeWheel(2,"Michelin");car2.start();}
}

3-Money类

编写Money类,要求具有yuan, jiao, fen三个int类型的属性及相应的置取方法,所表示的金额分别按元角分保存在各个属性中。

另外 ,还具有以下方法:

1 具有重载的四个set()方法,具体要求如下:

(1)参数为int类型,将参数值存入yuan, jiao和fen都置为0;

(2)参数为double类型,将参数值按分做四舍五入,然后分别存入对应的属性;

(3)参数为字符串String,对字符串中的数字做解析后,按分做四舍五入,将金额分别存入对应的属性;

(4)参数为Money类的对象,将参数中的金额分别存入对应的属性。

2 有两个可实现金额计算的方法

(1) times(int n)方法,参数为int,返回值为Money类对象,其中的总金额为当前对象的总金额乘以参数n

(2) add(Money money)方法,参数为Money类对象,返回值为Money类对象,其中的总金额为当前对象的总金额加上参数money中的总金额。

3 有一个静态方法,按照指定格式输出总金额

writeOut(String owner, Money money)方法,输出格式如“owner have/has XX Yuan XX Jiao XX Fen.”的字符串,所输出的的金额是参数money中的总金额。

字符串转浮点数可以使用静态方法:Double.parseDouble(String)。

要求编程实现类Money,使给定的Test类能正常运行,并实现指定的输出内容。

class Money{private int jiao;private int fen;private int yuan;public Money(){}public void set(int yuan){this.yuan=yuan;this.jiao=0;this.fen=0;}public void  set(double yuan){double f = Double.parseDouble(String.format("%.2f", yuan));int b=(int)(f*100);this.yuan=(int)(b/100);this.jiao=((int)(b/10))%10;this.fen=b%10;}public  void set(String yuan){double f = Double.parseDouble(yuan);int b=(int)(f*100);this.yuan=(int)(b/100);this.jiao=((int)(b/10))%10;this.fen=b%10;}public  void set(Money yuan){this.yuan=yuan.yuan;this.jiao=yuan.jiao;this.fen=yuan.fen;}public  Money times(int n){double a;Money c=new Money();a=n*(this.yuan+this.jiao*0.1+this.fen*0.01);int b=(int)(a*100);c.yuan=(int)(b/100);c.jiao=((int)(b/10))%10;c.fen=b%10;return c;}public Money add(Money money){Money d=new Money();d.yuan=money.yuan+this.yuan;d.jiao=money.jiao+this.jiao;d.fen=money.fen+this.fen;while (d.fen>10){d.jiao++;d.fen=d.fen-10;}while (d.jiao>10){d.yuan++;d.jiao=d.jiao-10;}return d;}public static void writeOut(String owner, Money money){System.out.println(owner+" have/has "+money.yuan+" Yuan "+money.jiao+" Jiao "+money.fen+" Fen.");}}
public class Test02 {public static void main(String[] args){Money myMoney = new Money();Money yourMoney = new Money();Money hisMoney = new Money();Money herMoney = new Money();int amountInt=365;double amountDouble=254.686;String amountString="368.244";myMoney.set(amountInt);Money.writeOut("I",myMoney);yourMoney.set(amountDouble);Money.writeOut("You",yourMoney);hisMoney.set(amountString);Money.writeOut("He",hisMoney);herMoney.set(myMoney);Money.writeOut("She",herMoney);herMoney = yourMoney.times(3);Money.writeOut("She",herMoney);herMoney = yourMoney.add(hisMoney);Money.writeOut("She",herMoney);System.out.println("Remember: A penny saved is a penny earned.");}
}

4-MyMath类

已知公式如下图,编程求f(x,y,z)的值 ,在Test类中实现x,y,z值 的输入及结果的输出 。

编写MyMath类,实现静态的4个重载方法f(),分别计算不同的函数值,使给定的Test类能正常运行,并实现指定的输出内容。

import java.util.Scanner;
class MyMath{public static int f(){return 0;}public static int f(int x){return x*x;}public static int f(int x,int y){return x*x + y*y;}public static int f(int x,int y,int z){return x*x + y*y +z*z;}}
public class Test03 {public static void main(String[] args){int x, y, z;Scanner in = new Scanner(System.in);x = in.nextInt();y = in.nextInt();z = in.nextInt();in.close();int result;if (x < 0) {result = MyMath.f();} else if (x >= 0 && y < 0) {result = MyMath.f(x);} else if (x >= 0 && y >= 0 && z < 0) {result = MyMath.f(x, y);} else {result = MyMath.f(x, y, z);}System.out.println(result);}
}

Java基础编程作业3相关推荐

  1. java编程基础素数实验报告,JAVA 基础编程练习题1 (输出素数)

    JAVA 基础编程练习题1 (输出素数) JAVA 基础编程练习题1 (输出素数) 题目:判断 101-200 之间有多少个素数,并输出所有素数. 程序分析:判断素数的方法:用一个数分别去除 2 到 ...

  2. 代写python作业费用标准_代做159.272作业、代写Programming Paradigms作业、代做Python实验作业、代写Java/c++编程作业代写Database|代做R...

    代做159.272作业.代写Programming Paradigms作业.代做Python实验作业.代写Java/c++编程作业代写Database|代做RComputational Thinkin ...

  3. java网络编程作业基于UDP简单聊天窗口,图形化界面,包含客户端和服务端

    //郑州轻工业大学 //题号:实验四 第二题 //题目:使用基于UDP的网络编程方法,完成客户端和服务器间的聊天功能.要求图形界面. java网络编程作业 基于UDP简单聊天窗口,图形化界面,包含客户 ...

  4. 实验一 java基础编程(预习报告)

    面向对象--Java实验报告 实验一:Java基础编程 实验一 java基础编程(预习报告) <center> <strong>姓名:</strong> <u ...

  5. java mq编程_MQ java 基础编程

    MQ java 基础编程 编写人:邬文俊 编写时间 : 2006-2-16 联系邮件 : wenjunwu430@gmail.com 前言 通过 2 个多星期对 MQ 学习,在 partner 丁 & ...

  6. Java基础编程及思维导图整理

    我把Java基础编程及思维导图整理的超级详细,小白都能看懂 Java基础编程及其思维导图 目录: Java学习导图 一.Java基本语法 1.关键字与标识符 2.变量分类 3.运算符 4.流程控制 二 ...

  7. Java基础编程及思维导图

    java基础编程及其思维导图 感谢尚硅谷宋红康老师 java学习导图 一.java基本语法 1.关键字与标识符 2.变量分类 3.运算符 4.流程控制 二.数组 1.数组概述 2.一维数组 3.二维数 ...

  8. Java基础编程练习50题(转载)

    JAVA基础编程练习50题 本文对50道经典的java程序题进行详细解说,对于初学者可以跳过一些逻辑性太强的题目,比如第一题用到了方法的递归,初学者可能不理解,最好先看那些有if.for.while可 ...

  9. java基础编程练习题--兔子生兔子问题

    java基础编程练习题--兔子生兔子问题 题目要求 题目分析 java代码示例 输出结果 题目要求 现有一对兔子,每一对兔子每个月都会生一对小兔子,小兔子在月龄达到第三个月开始每个月就可以生一对,兔子 ...

最新文章

  1. AI换脸技术再创新高度,DeepMind发布的VQ-VAE二代算法有多厉害?
  2. sklearn使用FeatureHasher处理字符串特征: AttributeError: ‘str‘ object has no attribute ‘items‘
  3. SDOI2014 LIS
  4. minute教会你shell
  5. CordovaWebViewImpl
  6. Java生鲜电商平台-电商支付流程架构实战
  7. hazelcast_带弹簧的Hazelcast分布式执行
  8. zabbix mysql pgsql_Zabbix 5.0 监控 PostgreSQL 数据库
  9. 通过Bigtop编译Hadoop组件的rpm包
  10. zk+kafka集群
  11. 文件读写处理:古诗问题
  12. win7系统备份还原软件_十分不错的系统还原工具 一键还原备份系统软件 一键还原备份SGIMINI4.0通用版本...
  13. 好用的在线思维导图软件--GitMind
  14. 【Socket网络编程进阶与实战】------ Socket网络编程快速入门
  15. c#网页设计 UI —登录注册界面
  16. 判断点在线段的左边还是右边 判断线段是否相交
  17. 项目管理绝版秘籍——IT项目管理全套127个表格文档
  18. 黑马程序员_困兽之斗
  19. react组件卸载调用的方法_小程序原生引入组件和调用组件的方法 - 一世^浮萍
  20. Numpy中的数组、行/列向量及其之间的转化

热门文章

  1. 杰理之带卡上电死机【篇】
  2. linux hexo搭建个人博客,gitee和hexo搭建个人博客
  3. java中获取配置文件路径中含有中文,出现乱码的情况解决方案
  4. html5 图片hover,关于html5:两种纯CSS方式实现hover图片popout弹出效果
  5. mysql日期正则表达式_MySQL 正则表达式
  6. Python字典中 items() 和 iteritems() 区别
  7. 学计算机专业能到职业学校当老师吗,做一名优秀职业学校计算机教师十个条件.doc...
  8. RPM 包默认安装路径
  9. Joker(https://acs.jxnu.edu.cn/problem/GYM103496J)
  10. 第二篇 关于BMP图像