一、实验目的
(1)掌握开发 Java 应用程序的步骤,掌握 Java 应用程序的基本结构。
(2)掌握 Java 基本数据类型在命令行的输入和输出方法。
(3)熟悉如何使用 Java 分支和循环语句解决问题。
(4)熟悉类的基本设计方法,根据 Java 类的继承机制有效解决问题
二、实验任务
实验任务一
编写一个 Java 应用程序,在主类的 main 方法中实现下列功能。
• 程序随机分配给用户一个 1 至 100 之间的整数
• 用户通过键盘输人自己的猜测
• 程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”和“猜对了”
• 用户可根据提示信息再次输入猜测,直到提示信息是“猜对了”
• 用户猜对以后,显示猜测次数,并提供“重新开始”和“退出”功能
import java.util.Random;
import java.util.Scanner;
public class gussNumber {
public static void main(String[] args) {
guessNumberGame();
//游戏入口
}
//游戏选项
public static void guessNumberGame() {
//
while (true) {
int choice = menu();
if (choice == 1) {
game();
} else if (choice == 0) {
System.out.println("结束");
break;
} else {
System.out.println("退出...");
}
}
}
//游戏实现
public static void game() {
Random random = new Random();//获取随机数
int toGuess = random.nextInt(100) + 1;
Scanner scanner = new Scanner(System.in);
int sum=0;
while (true) {
System.out.println("请输入你猜测的数:");
int num = scanner.nextInt();
sum++;
if (num > toGuess) {
System.out.println("猜大了");
} else if (num < toGuess) {
System.out.println("猜小了");
} else {
System.out.println("恭喜你,猜对了!");
System.out.println("猜测次数:"+sum);
break;
}
}
}
//游戏菜单
public static int menu() {
System.out.println(" 1、play/replay 0、exit ");
System.out.println("请输入您的选择:");
Scanner scanner = new Scanner(System.in);
int choice = scanner.nextInt();
return choice;
}
}
实验任务二
假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类
型的雇员按不同的方式支付工资:
• 经理(Manager):每月获得一份固定的工资
• 销售人员(Salesman):在基本工资的基础上每月还有销售提成
• 工人(Worker):按照每月工作的天数计算工资
根据上述要求试用类的继承和相关机制描述这些功能,并编写一个 Java 应用程序,演示这些
类的用法。
public class Main {
public static void main(String[] args) {
// 经理(Manager):每月获得一份固定的工资
//• 销售人员(Salesman):在基本工资的基础上每月还有销售提成
//• 工人(Worker):按照每月工作的天数计算工资
System.out.println("经理固定工资:30000");
System.out.println("销售基础工资3330,提成344");
System.out.println("员工每日工资100");
Employee temp = new Manager(30000);
temp.allSalary();
temp = new Salesman(3330,344);
temp.allSalary();
System.out.println("工人工作23天");
temp = new Worker(23,100);//2300
temp.allSalary();
}
}
abstract class Employee {
/*抽象类
* */
private int salary;
public Employee(int salary) {
this.salary = salary;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public abstract void allSalary();
}
class Manager extends Employee{
public Manager(int salary){
super(salary);
}
public void allSalary() {
System.out.println("经理工资:"+this.getSalary());
}
}
class Salesman extends Employee{
private int bound;//提成
private int base;//基础工资
public Salesman(){
super(0);
}
/*初始化基础工资和提成
* */
public Salesman( int base,int bound){
super(0);
this.base =base;
this.bound =bound;
}
public void allSalary() {
this.setSalary(this.base+this.bound);//
System.out.println("销售工资:"+this.getSalary());
}
}
class Worker extends Employee{
private int day;
private int daySalary;
public int getDay() {
return day;
}
public int getDaySalary() {
return daySalary;
}
public void setDay(int day){
this.day = day;
}
public void setDaySalary(int daySalary){
this.daySalary = daySalary;
}
public Worker(){
super(0);
}
public Worker(int day,int daySalary){
super(0);
this.day = day;
this.daySalary =daySalary;
}
public void allSalary(){
this.setSalary(this.getDay()*this.getDaySalary());
System.out.println("工人员工:"+this.getSalary());
}
}