1,定义一个电视机类,实现电视机的基本功能(换台,调整音量,开关),并测试。
实验运行截图:
实验代码:
package 实验.作业2;
import java.util.Scanner;
public class j_01_电视机 {
int on;
private String brand; //品牌
private double price; //价格
private int size; //规格
int Channel = 1; //频道,默认值为1
int Volumn = 1; //音量,默认值为1
public void TV(String brand,double price,int size){
this.brand = brand;
this.price = price;
this.size = size;
}
public void SetBrand(String brand){
this.brand = brand; //设置电视机品牌
}
public String GetBrand(){
return brand; //得到电视机品牌
}
public void SetPrice(double price){
this.price = price; //设置电视机价格
}
public double GetPrice(){
return price; //得到电视机价格
}
public void SetSize(int size){
this.size = size; //设置电视机规格
}
public int GetSize(){
return size; //得到电视机规格
}
public void TurnOn(){ //开机
System.out.println("欢迎使用电视机...");
on = 1; //开机时int型变量的值是1,用于换台功能实现
}
public void TurnOff(){ //关机
System.out.println("感谢您的使用,再见!");
on = 0; //关机时int型变量的值是0,用于换台功能实现
}
public void SetChannel(int NewChannel){ //调频功能,参数是新频道的值
if(on == 1){
if(NewChannel >= 0 && NewChannel <= 100){
Channel = NewChannel;
System.out.println("调频成功,当前电视机频道为:" + Channel);
}
else
System.out.println("调频失败,所选频道不在合理范围内,当前电视机频道为:" + Channel);
}
else
System.out.println("电视机处于关机状态,无法进行调频操作,请先开机!");
}
public void SetVolumn(int NewVolumn){
if(on == 1){
if(NewVolumn >= 0 && NewVolumn <= 20){
Volumn = NewVolumn;
System.out.println("调整音量成功,当前音量为:" + Volumn);
}
else
System.out.println("调整音量失败,所输音量不在合理范围内,当前电视机音量为:" + Volumn);
}
else
System.out.println("电视机处于关机状态,无法进行调整音量操作,请先开机!");
}
// public static void main(String[] args) { //测试1
// j_01_电视机 tv1 = new j_01_电视机();
// tv1.TurnOn();
// tv1.SetBrand("海信");
// tv1.SetPrice(10000.00);
// tv1.SetSize(100);
// tv1.SetChannel(20);
// tv1.SetVolumn(10);
//
// j_01_电视机 tv2 = new j_01_电视机();
// tv2.TurnOn();
// tv2.SetBrand("海信");
// tv2.SetPrice(9000.00);
// tv2.SetSize(90);
// tv2.SetChannel(25);
// tv2.SetVolumn(6);
//
// System.out.println("tv1的品牌是:" + tv1.brand + ", 价格是:" + tv1.price + ", 规格是:" + tv1.size);
// System.out.println("tv2的品牌是:" + tv2.brand + ", 价格是:" + tv2.price + ", 规格是:" + tv2.size);
//
// System.out.println("tv1的频道是:" + tv1.Channel + ", 音量是:" + tv1.Volumn);
// System.out.println("tv2的频道是:" + tv2.Channel + ", 音量是:" + tv2.Volumn);
// }
public static void main(String[] args) { //测试2
int x=0; //定义一变量用于退出程序时使用
int choose; //定义一变量记录用户选择
Scanner sc = new Scanner(System.in);
int ch; //记录需要调频到的频道
int vo; //记录更改后的音量
j_01_电视机 tv1 = new j_01_电视机();
tv1.TurnOn();
tv1.SetBrand("海信");
tv1.SetPrice(10000.00);
tv1.SetSize(100);
System.out.println("** 1开机 **");
System.out.println("** 2关机 **");
System.out.println("** 3调频 ***");
System.out.println("** 4调整音量 **");
System.out.println("** 5退出并关机 ***");
while(x == 0){
System.out.printf("请选择功能:");
choose = sc.nextInt();
switch (choose){
case 1:
tv1.TurnOn();
break;
case 2:
tv1.TurnOff();
break;
case 3:
System.out.printf("请输入希望到的频道:");
ch = sc.nextInt();
tv1.SetChannel(ch);
break;
case 4:
System.out.printf("请输入理想音量:");
vo = sc.nextInt();
tv1.SetVolumn(vo);
break;
case 5:
System.out.printf("输入任意一个非零的数结束运行:");
x = sc.nextInt();
System.out.println("电视机关机成功!");
tv1.TurnOff();
break;
}
}
}
}
2,设计一个分数类,分数的分子和分母用两个整型数表示,类中定义方法对分数进行加、减、乘、除运算。定义分数类对象,运算并输出运算结果。
实验运行截图:
实验代码:
package 实验.作业2;
import java.util.Scanner;
import java.util.StringTokenizer;
public class j_02_分数计算 {
int fz;
int fm;
j_02_分数计算(){};
j_02_分数计算(int fz,int fm){ //构造分数
if(fm != 0){
SetFzFm(fz,fm); //分母不为0时,构造分数
}
else
System.out.println("分母不可以为0,构造分数失败!");
}
public void SetFzFm(int fz,int fm){ //设置分子分母
int c = f(Math.abs(fz),Math.abs(fm)); //得到分子分母的最大公约数
this.fz = fz/c;
this.fm = fm/c; //处理后得到的分数不需要再进行约分操作
if(this.fz < 0 && this.fm < 0){
this.fz = -this.fz;
this.fm = -this.fm;
}
}
public int GetFz(){ //得到分子
return fz;
}
public int GetFm(){ //得到分母
return fm;
}
int f(int a,int b){ // 求最大公约数
if(a < b){
int c = a;
a = b;
b = c;
}
int r = a % b;
while(r != 0){
a = b;
b = r;;
r = a % b;
}
return b;
}
j_02_分数计算 add(j_02_分数计算 r){ //分数的加法计算
int a = r.GetFz();
int b = r.GetFm(); //得到分子分母
int m = fm * b; //分母
int z = fz * b + fm * a; //分子
j_02_分数计算 result = new j_02_分数计算(z,m);
return result;
}
j_02_分数计算 sub(j_02_分数计算 r){//分数的减法计算
int a = r.GetFz();
int b = r.GetFm();
int m = fm * b; //分母
int z = fz * b - fm * a; //分子
j_02_分数计算 result = new j_02_分数计算(z,m);
return result;
}
j_02_分数计算 mult(j_02_分数计算 r){ //分数的乘法计算
int a = r.GetFz();
int b = r.GetFm();
int m = fm * b;
int z = fz * a;
j_02_分数计算 result = new j_02_分数计算(z,m);
return result;
}
j_02_分数计算 div(j_02_分数计算 r){ //分数的除法运算
int a = r.GetFz();
int b = r.GetFm();
int m = fm * a;
int z = fz * b;
j_02_分数计算 result = new j_02_分数计算(z,m);
return result;
}
public static void all(String data1,String a,String data2){
StringTokenizer fenxi = new StringTokenizer(data1,"/");
int data1_1 = Integer.parseInt(fenxi.nextToken());
int data1_2 = Integer.parseInt(fenxi.nextToken());
fenxi = new StringTokenizer(data2,"/");
int data2_1 = Integer.parseInt(fenxi.nextToken());
int data2_2 = Integer.parseInt(fenxi.nextToken());
j_02_分数计算 r1 = new j_02_分数计算(data1_1,data1_2);
j_02_分数计算 r2 = new j_02_分数计算(data2_1,data2_2); //构造两个分数
j_02_分数计算 result;
if(a.equals("+")){
result = r1.add(r2);
System.out.println("两个分数相加的结果为:" + result.GetFz() + "/" + result.GetFm());
}
if(a.equals("-")){
result = r1.sub(r2);
System.out.println("两个分数相减的结果为:" + result.GetFz() + "/" + result.GetFm());
}
if(a.equals("*")){
result = r1.mult(r2);
System.out.println("两个分数相乘的结果为:" + result.GetFz() + "/" + result.GetFm());
}
if(a.equals("/")){
result = r1.div(r2);
System.out.println("两个分数相除的结果为:" + result.GetFz() + "/" + result.GetFm());
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int choose; //定义变量记录选择
int x = 0; //定义变量退出循环
System.out.println("** 1分数的加法运算 **");
System.out.println("** 2分数的减法运算 **");
System.out.println("** 3分数的乘法运算 **");
System.out.println("** 4分数的除法运算 **");
System.out.println("** 5退出程序的运行 **");
System.out.printf("请输入第一个分数(分母不为0),以a/b的形式输入:");
String data1 = sc.next();
System.out.printf("请输入第二个分数(分母不为0),以a/b的形式输入:");
String data2 = sc.next();
while(x == 0){
System.out.printf("您希望这两个分数进行什么运算,请选择功能:");
choose = sc.nextInt();
switch (choose){
case 1:
String operation1 = "+";
j_02_分数计算 result1 = new j_02_分数计算();
result1.all(data1, operation1, data2);
break;
case 2:
String operation2 = "-";
j_02_分数计算 result2 = new j_02_分数计算();
result2.all(data1, operation2, data2);
break;
case 3:
String operation3 = "*";
j_02_分数计算 result3 = new j_02_分数计算();
result3.all(data1, operation3, data2);
break;
case 4:
String operation4 = "/";
j_02_分数计算 result4 = new j_02_分数计算();
result4.all(data1, operation4, data2);
break;
case 5:
System.out.printf("输入任意一个非0的数结束程序的运行:" );
x = sc.nextInt();
System.out.println("成功退出程序,感谢您的使用!");
break;
}
}
}
}