学院 | 计算机科学与教育软件学院 | 年级、专业、班 | 网络16* | 姓名 | 卟咚君 | 学号 | 1606100*** | |
实验课程名称 | Java语言实验 | 成绩 |
| |||||
实验项目名称 | Java 语言面向对象编程技术基础 | 指导老师 | ** |
一.实验目的
• 掌握开发 Java 应用程序的步骤,掌握 Java 应用程序的基本结构。
• 掌握 Java 基本数据类型在命令行的输入和输出方法。
• 熟悉如何使用 Java 分支和循环语句解决问题。
• 熟悉类的基本设计方法,根据 Java 类的继承机制有效解决问题。
二.实验任务
1.编写一个 Java 应用程序,在主类的 main 方法中实现下列功能。
• 程序随机分配给用户一个 1 至 100 之间的整数
• 用户通过键盘输人自己的猜测
• 程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”和“猜对了”
• 用户可根据提示信息再次输入猜测,直到提示信息是“猜对了”
• 用户猜对以后,显示猜测次数,并提供“重新开始”和“退出”功能
2. 假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资:
• 经理(Manager):每月获得一份固定的工资
• 销售人员(Salesman):在基本工资的基础上每月还有销售提成。
• 工人(Worker):按照每月工作的天数计算工资。
根据上述要求试用类的继承和相关机制描述这些功能,并编写一个 Java 应用程序,演示这些类的用法。
提示:应设计一个雇员类(Employee)描述所有雇员的共图特性,这个类应该提供一个计算工资的抽象方法 ComputeSalary( ),使得可以通过这个类计算所有雇员的工资。经理、销售人员和一般工人对应的类都应该继承这个类,并重新定义计算工资的方法,进而给出它的具体实现。
三.实验内容
(1)编写一个 Java 应用程序,在主类的 main 方法中实现下列功能。
• 程序随机分配给用户一个 1 至 100 之间的整数
• 用户通过键盘输人自己的猜测
• 程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”和“猜对了”
• 用户可根据提示信息再次输入猜测,直到提示信息是“猜对了”
• 用户猜对以后,显示猜测次数,并提供“重新开始”和“退出”功能
package byd001;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
boolean flag = true;
@SuppressWarnings("resource")
Scanner reader = new Scanner(System.in);
while (flag) {
int cnt = 0;
int num = (int) (Math.random() * 100+1);
//生成1~100的随机数
while (true) { //进行猜数
cnt++; //猜数次数记录
int random_num = reader.nextInt(); //猜一个数
if (random_num > num)
System.out.println("猜大了!");
else if (random_num < num)
System.out.println("猜小了!");
else {
System.out.println("猜对了!,一共猜了" + cnt + "次!"); //猜中数字,输出本次猜数的次数,并结束这次猜数
break;
}
System.out.println("请再次输入猜测!");
//猜不对就继续猜
}
System.out.print("继续玩猜数游戏输入1,退出游戏请输入0:"); //完成一次猜数后,询问继续游戏还是退出游戏
int temp = reader.nextInt();
if (temp == 1)
flag = true;
else
flag = false;
}
}
}
(2)假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资:
• 经理(Manager):每月获得一份固定的工资
• 销售人员(Salesman):在基本工资的基础上每月还有销售提成。
• 工人(Worker):按照每月工作的天数计算工资。
根据上述要求试用类的继承和相关机制描述这些功能,并编写一个 Java 应用程序,演示这些类的用法。
提示:应设计一个雇员类(Employee)描述所有雇员的共图特性,这个类应该提供一个计算工资的抽象方法 ComputeSalary( ),使得可以通过这个类计算所有雇员的工资。经理、销售人员和一般工人对应的类都应该继承这个类,并重新定义计算工资的方法,进而给出它的具体实现。
Employee.java
package byd001;
public abstract class Employee {
String name; //姓名
int age; //年龄
String position; //职务
double salary; //工资
public Employee(String Name,int Age) { //构造函数
name=Name;
age=Age;
}
public String getName() { //返回姓名
return name;
}
public int getAge() { //返回年龄
return age;
}
public abstract double ComputeSalary(); //抽象类计算并返回工资的函数
}
Manager.java
package byd001;
public class Manager extends Employee {
Manager(String Name,int Age){
super(Name,Age); //调用父类的构造函数
position="经理";
}
public double ComputeSalary() { //自定义计算工资的方法
salary=10000;
return salary;
}
}
Salesman.java
package byd001;
public class Salesman extends Employee{
double sells;
Salesman(String Name,int Age){
super(Name,Age); //调用父类的构造函数
position="销售人员";
}
public void setSells(double Sells) { //设置销售员的销售额
sells=Sells;
}
public double ComputeSalary() { //自定义计算销售员的工资方法
salary=4000+sells*0.3;
return salary;
}
}
Worker.java
package byd001;
public class Salesman extends Employee{
double sells;
Salesman(String Name,int Age){
super(Name,Age); //调用父类的构造函数
position="销售人员";
}
public void setSells(double Sells) { //设置销售员的销售额
sells=Sells;
}
public double ComputeSalary() { //自定义计算销售员的工资方法
salary=4000+sells*0.3;
return salary;
}
}
EmployeeTest.java
package byd001;
public class EmployeeTest {
public static void main(String[] args) {
Manager manager=new Manager("张三", 40); //创建一个管理员对象
System.out.println(manager.name+"的职位是"+manager.position+",工资是"+manager.ComputeSalary()+"元"); //输出管理员的姓名,职位,工资
Salesman salesman=new Salesman("李四",35); //创建一个销售员对象
salesman.setSells(6000); //设置该销售员的销售额
System.out.println(salesman.name+"的职位是"+salesman.position+",工资是"+salesman.ComputeSalary()+"元");//输出销售员的姓名,职位,工资
Worker worker=new Worker("王五",30); //创建一个工人对象
worker.setworkdays(28); //设置工人的工作天数
System.out.println(worker.name+"的职位是"+worker.position+",工资是"+worker.ComputeSalary()+"元");//输出工人的姓名,职位,工资
}
}
四.实验结果记录(程序运行结果截图)
1.编写一个 Java 应用程序,实现猜数功能
(1)进行猜数,输入一个数字50,结果表示猜大了
(2)进行猜数,输入一个数字25,结果表示猜大了
(3)进行猜数,输入一个数字12,结果表示猜大了
(4)进行猜数,输入一个数字 6,结果表示猜小了
(5)进行猜数,输入一个数字9,结果表示猜对了,这轮游戏猜了5次
(6)选择继续猜数,输入一个数字1
(7)进行猜数,输入一个数字50,结果表示猜小了
(8)进行猜数,输入一个数字75,结果表示猜大了
(9)进行猜数,输入一个数字62,结果表示猜小了
(10)进行猜数,输入一个数字69,结果表示猜小了
(9)进行猜数,输入一个数字73,结果表示猜小了
(10)进行猜数,输入一个数字74,结果表示猜对了本轮游戏一共猜了6次
(11)选择退出游戏,输入0
2. 为某个公司编写雇员工资支付程序
五.实验心得总结
通过本次实验,掌握了编写源文件,编译源文件,和运行程序的步骤。更加熟悉了java应用程序的基本结构,能联合多个类编译应用程序,学会了创建对象,通过键盘输入输出和类的基本设计方法,以及使用抽象类的方法,能够根据java类的继承机制灵活的解决问题。