一、今日学习内容:
今天练习实验六的内容。
二、遇到的问题:
无
三、明日计划:
明天练习实验七的习题。
今日练习的具体内容如下:
1.电子钟
设计一款电子钟类,用于显示时、分、秒
1. 含有形参有默认值的默认构造函数;
2. 重载 前缀++ 和 后缀—用于调整时间,每次调整均对秒进行调整,若秒满60,则分加1,若分满60则时加1,时满24,则清零重新开始;
3.输入(设定)时间;
4. 输出时间。
import java.util.Scanner; public class clock { private int h; private int m; private int s; clock(){ h=0; m=0; s=0; } clock(int a,int b,int c){ if(0<=h&&h<24&&0<=m&&m<60&&0<=s&&s<60){ this.h=a; this.m=b; this.s=c; } else System.out.println("Time error"); } public clock run() { s++; if(s>=60){ s-=60; m++; if(m>=60){ m-=60; h=(h+1)%24; } } return this; } public void input(int a,int b,int c) { if(0<=h&&h<24&&0<=m&&m<60&&0<=s&&s<60){ this.h=a; this.m=b; this.s=c; } else System.out.println("Time error"); } public void display() { System.out.println(this.h+":"+this.m+":"+this.s); } public static void main(String [] args) { int t; Scanner sc=new Scanner(System.in); clock time=new clock(); System.out.println("请输入当前的时间:"); int x=sc.nextInt(); int y=sc.nextInt(); int z=sc.nextInt(); time.input(x, y, z); for(;;){ for(t=0;t<100000000;t++); time.run(); time.display(); } } }
测试截图:
2.分数类
定义一个分数类,包含分子、分母
1. 含有无参的默认构造函数,并进行构造函数的重载;
2. 分数的加法+、减法-、数乘*这三运算符;
3.分数的输入和输出运算符;
4. 分数的关系运算符==,!=,>=,<=;
5. 定义约简函数,使分子分母没有公因子。
import java.util.Scanner; public class fraction { private int x; private int y; fraction(){ } fraction(int a,int b){ x=a; y=b; } public void setvalue(int a,int b) { x=a; y=b; } public fraction add(fraction f) { fraction F1=new fraction(); F1.x=this.x*f.y+f.x*this.y; F1.y=this.y*f.y; return F1; } public fraction Subtraction(fraction f) { fraction F=new fraction(); F.x=this.x*f.y-f.x*this.y; F.y=this.y*f.y; return F; } public fraction Multiplication(int n) { fraction F=new fraction(); F.x=this.x*n; F.y=this.y; return F; } public fraction single() { int a=x; int b=y; int z=y; while(a%b!=0) { z = a%b; a = b; b = z; } x=x/z; y=y/z; return this; } public void display() { if(this.x%this.y!=0) System.out.println("结果为:"+this.x+"/"+this.y); else System.out.println("结果为:"+this.x/this.y); } public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入一个分数的分子和分母:"); int a=sc.nextInt(); int b=sc.nextInt(); fraction fra=new fraction(a,b); fraction F=new fraction(); System.out.println("1.进行加法运算"); System.out.println("2.进行减法运算"); System.out.println("3.进行数乘运算"); System.out.println("进行选择:"); Scanner sc1=new Scanner(System.in); int n=sc.nextInt(); if(n==1) { System.out.println("请输入一个分数的分子和分母:"); Scanner sc2=new Scanner(System.in); int a1=sc2.nextInt(); int b1=sc2.nextInt(); fraction f1=new fraction(); f1.setvalue(a1, b1); F=fra.add(f1); F.single(); F.display(); } if(n==2) { System.out.println("请输入一个分数的分子和分母:"); Scanner sc2=new Scanner(System.in); int a1=sc2.nextInt(); int b1=sc2.nextInt(); fraction f1=new fraction(); f1.setvalue(a1, b1); F=fra.Subtraction(f1); F.single(); F.display(); } if(n==3) { System.out.println("请输入一个整数:"); Scanner sc2=new Scanner(System.in); int m=sc2.nextInt(); F=fra.Multiplication(m); F.single(); F.display(); } System.exit(0); } }
测试截图: