实验报告(一)
实验任务 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("你可以继续猜:");
}
}
}实验运行截图


实验任务 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();
}
}实验运行截图

















