实验报告(一)

实验任务 1

编写一个 Java 应用程序,在主类的 main 方法中实现下列功能。

  • 程序随机分配给用户一个 1 至 100 之间的整数
  • 用户通过键盘输人自己的猜测
  • 程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”和“猜对了”
  • 用户可根据提示信息再次输入猜测,直到提示信息是“猜对了”
  • 用户猜对以后,显示猜测次数,并提供“重新开始”和“退出”功能

实验源代码

/**
 * @AUTHOR Prince
 * @TIME 2020/11/10 9:26
 */

package com.science.sc1.No1;


import java.util.Random;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Random rd = new Random();
        Scanner sc = new Scanner(System.in);
        int num;  //系统分配的随机数
        int us;  //用户猜测的数
        int cnt = 0;
        num = rd.nextInt(100) + 1;
        System.out.print("游戏开始啦,请猜一个数字,1到100之间:");
        while(true){
            us = sc.nextInt();
            if(us > 100 || us <= 0){
                System.err.print("输入的范围不在[1,100],请重新输入:");
                continue;
            }
            ++cnt;
            if(us == num){
                System.out.println("猜对了!");
                System.out.println("目前你已经猜了" + cnt + "次了,请问你还要继续吗?");
                System.out.println("0-不想玩了  1-我还要继续");
                System.out.println("请输入:");
                String cmd = sc.next();
                while(!(cmd.equals("0") || cmd.equals("1"))){
                    System.out.print("输入格式不对,请重新输入:");
                    cmd = sc.next();
                }
                if("1".equals(cmd)){
                    System.out.println("继续游戏!");
                    cnt = 0;
                    num = rd.nextInt(100) + 1;
                    System.out.print("新一轮的游戏开始了,请输入你的数字:");
                    continue;
                }else{
                    System.out.println("欢迎下次再来!");
                    break;
                }
            }else if(us > num){
                System.out.println("猜大了!");
            }else{
                System.out.println("猜小了!");
            }
            System.out.print("你可以继续猜:");
        }
    }
}

实验运行截图

java猜拳游戏实验报告 java猜数游戏实验报告_java猜拳游戏实验报告


java猜拳游戏实验报告 java猜数游戏实验报告_System_02

实验任务 2

假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资:

  • 经理(Manager):每月获得一份固定的工资
  • 销售人员(Salesman):在基本工资的基础上每月还有销售提成
  • 工人(Worker):按照每月工作的天数计算工资

根据上述要求试用类的继承和相关机制描述这些功能,并编写一个 Java 应用程序,演示这些类的用法。

提示:应设计一个雇员类(Employee)描述所有雇员的共图特性,这个类应该提供一个计算工资的抽象方法 ComputeSalary( ),使得可以通过这个类计算所有雇员的工资。经理、销售人员和一般工人对应的类都应该继承这个类,并重新定义计算工资的方法,进而给出它的具体实现。

实验源代码

Employee.java

/**
 * @AUTHOR Prince
 * @TIME 2020/11/10 9:53
 */

package com.science.sc1.No2;

public abstract class Employee {

    public abstract void ComputeSalary();
}

Manager.java

/**
 * @AUTHOR Prince
 * @TIME 2020/11/10 9:56
 */

package com.science.sc1.No2;

public class Manager extends Employee {
    @Override
    public void ComputeSalary() {
        System.out.println("Manager:每月获得一份固定的工资");
    }
}

Salesman.java

/**
 * @AUTHOR Prince
 * @TIME 2020/11/10 9:56
 */

package com.science.sc1.No2;

public class Salesman extends Employee {
    @Override
    public void ComputeSalary() {
        System.out.println("Salesman:在基本工资的基础上每月还有销售提成");
    }
}

Worker.java

/**
 * @AUTHOR Prince
 * @TIME 2020/11/10 9:56
 */

package com.science.sc1.No2;

public class Worker extends Employee {
    @Override
    public void ComputeSalary() {
        System.out.println("Worker:按照每月工作的天数计算工资");
    }
}

Main.java

/**
 * @AUTHOR Prince
 * @TIME 2020/11/10 9:57
 */

package com.science.sc1.No2;

public class Main {
    public static void main(String[] args) {
        Employee manager = new Manager();
        Employee salesman = new Salesman();
        Employee workers = new Worker();
        manager.ComputeSalary();
        salesman.ComputeSalary();
        workers.ComputeSalary();
    }
}

实验运行截图

java猜拳游戏实验报告 java猜数游戏实验报告_System_03