IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java面向对象程序设计4继承与多态 -> 正文阅读

[Java知识库]Java面向对象程序设计4继承与多态

6-6 使用继承,实现“剪刀石头布的游戏”

如果写到这道题恭喜你你中奖了,让你体会体会人间疾苦,哈哈哈哈

分数?10

全屏浏览题目

切换布局

作者?秋

单位?许昌学院

使用继承,实现“剪刀石头布的游戏”。

小时候很喜欢玩一个游戏,“剪刀石头布”,可以是出拳的形式,或跳格子的形式。现在我们用计算机来玩这个游戏。
电脑用随机数产生剪刀石头布,游戏玩家用输入1,2,3的方式出拳。
游戏玩家输入1或2或3,分别 代表剪刀(1)石头(2)布(3)。
电脑胜出时,显示"Winner is computerPlayer."
游戏玩家胜出时,显示“Winner is personPlayer.”
平局时显示"A Draw."

函数接口定义:

根据主方法内容,实现三个类的定义,分别是是ComputerPlayer、PersonPlayer、Game类。 其中ComputerPlayer、PersonPlayer要继承Player类。 根据主方法中的用法,实现Game类。

裁判测试程序样例:

import java.util.Scanner;

class Player{
    String name;
    Player(String name){
        this.name = name;
    }
    int show() {  //出拳方法
        int show = ( int ) (Math.random() * 10 ) %3  +1;
        return show ;
    }
}
/* 请在这里填写答案 */

public class Main {

    public static void main(String[] args) {
        ComputerPlayer c = new ComputerPlayer ("computer");
        PersonPlayer  p = new PersonPlayer("player ") ;
        Game g = new Game( c ,p );
        g.start();        
    }

}

输入样例:

2

输出样例:

A Draw.

代码长度限制

16 KB

正确代码

package pta代码;

import java.util.*;

class Player {
	String name;

	Player(String name) {
		this.name = name;
	}

	int show() { // 出拳方法
		int show = (int) (Math.random() * 10) % 3 + 1;
		return show;
	}
}
/* 请在这里填写答案 */

class ComputerPlayer extends Player {
	static String name = null;

	public ComputerPlayer() {
		super(name);
	}

	public ComputerPlayer(String name) {
		super(name);
		this.name = name;
	}

	public int show() {
		int n = (int) (Math.random() * 10) % 3 + 1;
		return n;
	}
}

class PersonPlayer extends Player {
	int n;
	static String name = null;

	public PersonPlayer() {
		super(name);
	}

	public PersonPlayer(String name) {
		super(name);
		this.name = name;
	}

	public int show() {
		Scanner cin = new Scanner(System.in);
		this.n = cin.nextInt();
		return this.n;
	}
}

class Game {
	ComputerPlayer com;
	PersonPlayer pe;

	public Game(ComputerPlayer c, PersonPlayer p) {
		this.com = com;
		this.pe = pe;
	}

	public void start() {
		this.com = new ComputerPlayer();
		this.pe = new PersonPlayer();
		int c = com.show();
		int p = pe.show();
		if (p == 1) {
			if (c == 1) {
				System.out.println("A Draw.");
			} else if (c == 2) {
				System.out.println("Winner is personPlayer.");
			} else
				System.out.println("Winner is computerPlayer.");
		} else if (p == 2) {
			if (c == 1) {
				System.out.println("Winner is computerPlayer.");
			} else if (c == 2) {
				System.out.println("A Draw.");
			} else
				System.out.println("Winner is personPlayer.");
		} else if (p == 3) {
			if (c == 1) {
				System.out.println("Winner is personPlayer.");
			} else if (c == 2) {
				System.out.println("Winner is computerPlayer.");
			} else
				System.out.println("A Draw.");
		}
	}
}

public class Main {

	public static void main(String[] args) {
		ComputerPlayer c = new ComputerPlayer("computer");
		PersonPlayer p = new PersonPlayer("player ");
		Game g = new Game(c, p);
		g.start();
	}

}

时间限制

400 ms

内存限制

6-8 设计门票(抽象类)

分数?10

全屏浏览题目

切换布局

作者?殷伟凤

单位?浙江传媒学院

某学校举办一次活动,需要凭票参加,每张票都有票号和售价。
门票分为3类:当天票,预订票和学生预订票。
当天票价格50。
预订票,提前时间>10天的,售价30;提前10天以内的,售价40;
学生预订票,提前时间>10天的,售价15;提前10天以内的,售价20。

(1)编写抽象类Ticket类,包含以下成员
①属性:
number:私有,int型,表示票号;
②方法:

  1. Ticket(int number), 构造方法,初始化票号;
  2. int getPrice(), 返回票价,抽象方法;
  3. String toString(),返回一个字符串,格式为“Number:票号,Price:票价”。

(2)编写Ticket类的子类WalkupTicket,表示当天票,包含以下成员
①方法:
1)WalkupTicket(int number), 构造方法,初始化票号;
2)int getPrice(), 返回票价50。

(3)编写Ticket类的子类AdvanceTicket,表示预订票,包含以下成员
①属性:

  1. leadTime:私有,int型,表示提前预订的天数;
    ②方法:
  2. AdvanceTicket(int number,int leadTime), 构造方法,初始化票号和提前天数;
  3. int getPrice(), 如果提前天数>10天,票价30,否则,票价40。

(4)编写AdvanceTicket类的子类StudentAdvanceTicket,表示学生预订票,包含以下成员
①属性:

  1. height:私有,int型,表示购票学生的身高(单位厘米);
    ②方法:
    1)StudentAdvanceTicket(int number,int leadTime,int height), 构造方法,初始化票号、提前天数和身高;
    2)int getPrice(),

    如果学生身高>120:提前天数>10天,票价20,否则,票价30。
    如果学生身高<=120,票价是身高120以上学生的对折。

裁判测试程序样例:

public class Main{
    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        Ticket a = new WalkupTicket(in.nextInt());
        System.out.println(a.toString());
        Ticket b = new AdvanceTicket(in.nextInt(), in.nextInt());
        System.out.println(b.toString());
        Ticket c = new StudentAdvanceTicket(in.nextInt(), in.nextInt(), in.nextInt());
        System.out.println(c.toString());
    }
}

/* 请在这里填写答案 */

按如下框架设计类后提交即可:

abstract class Ticket {
……
}
class WalkupTicket extends Ticket {
……
}
class AdvanceTicket extends Ticket {
……
}
class StudentAdvanceTicket extends AdvanceTicket {
……
}

输入样例:

输入票号,创建一个WalkupTicket对象。
输入票号和提前天数,创建一个AdvanceTicket对象。
输入票号、提前天数和身高,创建一个StudentAdvanceTicket对象。

1
2 10
3 11 130

输出样例:

输出创建的3个对象的票号和票价(调用toString()方法)。

Number:1,Price:50
Number:2,Price:40
Number:3,Price:20

代码长度限制

16 KB

时间限制

400 ms

内存限制

注意满分代码给您端上

package pta代码;

import java.util.*;

//(1)编写抽象类Ticket类,包含以下成员
abstract class Ticket {

	// ①属性:
	// number:私有,int型,表示票号;
	private int number;

	public int getNumber() {
		return number;
	}

	public void setNumber(int number) {
		this.number = number;
	}

	// ②方法:
	// Ticket(int number), 构造方法,初始化票号;
	public Ticket(int number) {
		this.setNumber(number);
	}

	// int getPrice(), 返回票价,抽象方法;
	abstract public int gtePrice();

	// String toString(),返回一个字符串,格式为“Number:票号,Price:票价”。;
	abstract public String toString();

}

//(2)编写Ticket类的子类WalkupTicket,表示当天票,包含以下成员
class WalkupTicket extends Ticket {
	int price;

	// ①方法:
	// 1)WalkupTicket(int number), 构造方法,初始化票号;
    //下面的super()要调用父类的方法和变量就必须在第一个方法体中实现super()
    //具体且要表上其中的成员变量
	public WalkupTicket(int number) {
		super(number);
		this.price = 50;
	}

	// 2)int getPrice(), 返回票价50。
	@Override
	public int gtePrice() {
		return this.price;
	}

	// 子类好像必须将它父类中得这个toString重写,不知道为啥
    //后面查了点资料才知道要实现一个接口如果不是抽象类就必须是下面接口的全部发方法
	@Override
	public String toString() {
		return "Number:" + this.getNumber() + ",Price:" + price;
	}
}

//3、编写AdvanceTicket类的子类StudentAdvanceTicket,表示学生预订票,包含以下成员
class AdvanceTicket extends Ticket {

	// 1)、leadTime:私有,int型,表示提前预订的天数;
	int leadTime = 0;
	int price = 0;

	// 2)、AdvanceTicket(int number,int leadTime), 构造方法,初始化票号和提前天数;
	public AdvanceTicket(int number, int leadTime) {
		super(number);
		this.leadTime = leadTime;
		if (leadTime > 10)
			this.price = 30;
		else
			this.price = 40;
	}

	// 3)、int getPrice(), 如果提前天数>10天,票价30,否则,票价40。
	@Override
	public int gtePrice() {
		return this.price;
	}

	@Override
	public String toString() {
		return "Number:" + this.getNumber() + ",Price:" + this.price;
	}
}

//4编写AdvanceTicket类的子类StudentAdvanceTicket,表示学生预订票,包含以下
class StudentAdvanceTicket extends AdvanceTicket {

	// 1、height:私有,int型,表示购票学生的身高(单位厘米);
	int height;
	int price;

	// ②方法:
	// 1)StudentAdvanceTicket(int number,int leadTime,int height),
	// 构造方法,初始化票号、提前天数和身高;
	public StudentAdvanceTicket(int number, int leadTime, int height) {
		super(number, leadTime);
		this.height = height;
		if (height > 120) {
			if (leadTime > 10)
				this.price = 20;
			else
				this.price = 30;
		} else {
			if (leadTime > 10)
				this.price = 10;
			else
				this.price = 15;
		}
	}

	// 2)int getPrice(),
	// 如果学生身高>120:提前天数>10天,票价20,否则,票价30。
	// 如果学生身高<=120,票价是身高120以上学生的对折。
	public int getPrice() {
		return this.price;
	}

	@Override
	public String toString() {
		return "Number:" + this.getNumber() + ",Price:" + this.price;
	}
}

public class Main {
	public static void main(String args[]) {
		Scanner cin = new Scanner(System.in);
		Ticket a = new WalkupTicket(cin.nextInt());
		System.out.println(a.toString());
		Ticket b = new AdvanceTicket(cin.nextInt(), cin.nextInt());
		System.out.println(b.toString());
		Ticket c = new StudentAdvanceTicket(cin.nextInt(), cin.nextInt(), cin.nextInt());
		System.out.println(c.toString());
	}
}

7-10 校园角色类设计-2

分数?100

全屏浏览题目

切换布局

作者?蔡轲

单位?南昌航空大学

在校园角色类设计-1题的基础上,增加了部分要求,加粗部分为增加的内容:
学校需要构建综合系统,使用者包含多种角色。角色Role分两类:学生Student和雇员Employee;雇员又分为教员Faculty和职员Staff。
每个角色都有姓名、年龄、性别、电话号码。学生有学号、班级、班级职务(班长、副班长、学习委员等)。一个雇员有工号、入职日期、所在部门。教员有职称和专业。职员有职位称号。
请以如下Main类为基础,构建各个角色类,将代码补充完整。
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Faculty fac = new Faculty("张三",32,"33006","2019","10","25","讲师");
Student stu=new Student("李四",19,"20201103","202011");
Staff sta = new Staff("王五",27,"32011","2015","06","17","教务员");
fac.setSex('男');
fac.setTel("13600770077");
fac.setDepartment("数信学院");
fac.setMajor("数学");
stu.setSex('女');
stu.setTel("18000009999");
stu.setPosition("班长");
sta.setSex('男');
sta.setTel("18966666666");
sta.setDepartment("航制学院");
Scanner input = new Scanner(System.in);
int i = input.nextInt();
/*
本部分使用多态根据用户的输入,输出不同的角色人物的信息,
输入1:教员
输入2:学生
输入3:职员
其他输入:输出"Wrong Format"
*/
}
}

输入格式:

数值

输出格式:

人物的基本信息。根据角色的不同而有差别。

输入样例1:

在这里给出一组输入。例如:

1

输出样例1:

在这里给出相应的输出。例如:

我是张三,男,年龄32岁。电话是13600770077。工号是33006,2019年10月25日入职。就职于数信学院。是一名教师,数学专业,讲师职称。

输入样例2:

在这里给出一组输入。例如:

2

输出样例2:

在这里给出相应的输出。例如:

我是李四,女,年龄19岁。电话是18000009999。学号是20201103,来自202011班。担任班长职务。

输入样例3:

在这里给出一组输入。例如:

3

输出样例3:

在这里给出相应的输出。例如:

我是王五,男,年龄27岁。电话是18966666666。工号是32011,2015年6月17日入职。就职于航制学院。是一名教务员。

输入样例3:

在这里给出一组输入。例如:

5

输出样例3:

在这里给出相应的输出。例如:

Wrong Format

代码长度限制

16 KB

时间限制

400 ms

内存限制

package pta代码;

import java.util.*;

class Faculty {
	String name;
	int age;
	String num, year, muth, day, zc;

	public Faculty(String name, int age, String num, String year, String muth, String day, String zc) {
		this.name = name;
		this.age = age;
		this.num = num;
		this.year = year;
		this.muth = muth;
		this.day = day;
		this.zc = zc;
	}

	char sex;

	public int getSex() {
		return sex;
	}

	public void setSex(char sex) {
		this.sex = sex;
//		System.out.println(this.sex);
	}

	String setTel;

	public void setTel(String setTel) {
		this.setTel = setTel;
	}

	String setDepartment;

	public void setDepartment(String setDepartment) {
		this.setDepartment = setDepartment;
	}

	String setMajor;

	public void setMajor(String setMajor) {
		this.setMajor = setMajor;
	}

	@Override
	public String toString() {
//		return "Faculty [name=" + name + ", age=" + age + ", num=" + num + ", year=" + year + ", muth=" + muth
//				+ ", day=" + day + ", zc=" + zc + ", sex=" + sex + ", setTel=" + setTel + ", setDepartment="
//				+ setDepartment + ", setMajor=" + setMajor + "]";
		return "我是" + name + "," + sex + ",年龄" + age + "岁" + "。电话是" + setTel + "。工号是" + num + "," + year + "年" + muth
				+ "月" + day + "日入职。就职于" + setDepartment + "。是一名教师" + "," + setMajor + "专业," + zc + "职称。";
	}

}

class Student {
	String name, num, banji;
	int age;

	public Student(String name, int age, String num, String banji) {
		this.name = name;
		this.age = age;
		this.num = num;
		this.banji = banji;
	}

	char setSex;

	public void setSex(char c) {
		// TODO Auto-generated method stub
		this.setSex = c;
	}

	String setTel;

	public void setTel(String setTel) {
		// TODO Auto-generated method stub
		this.setTel = setTel;
	}

	String setPosition;

	public void setPosition(String setPosition) {
		// TODO Auto-generated method stub
		this.setPosition = setPosition;
	}

	@Override
	public String toString() {
//		return "Student [name=" + name + ", num=" + num + ", year=" + year + ", age=" + age + ", setSex=" + setSex
//				+ ", setTel=" + setTel + ", setPosition=" + setPosition + "]";
		return "我是" + name + "," + setSex + ",年龄" + age + "岁" + "。电话是" + setTel + "。学号是" + num + ",来自" + banji + "班。担任"
				+ setPosition + "职务。";
	}

}

class Staff {
	String name;
	int age;
	String num, year, muth, day, zc;

	public Staff(String name, int age, String num, String year, String muth, String day, String zc) {
		this.name = name;
		this.age = age;
		this.num = num;
		this.year = year;
		this.muth = muth;
		this.day = day;
		this.zc = zc;
	}

	char setSex;

	public void setSex(char setSex) {
		// TODO Auto-generated method stub
		this.setSex = setSex;
	}

	String setTel;

	public void setTel(String setTel) {
		// TODO Auto-generated method stub
		this.setTel = setTel;
	}

	String setDepartment;

	public void setDepartment(String setDepartment) {
		// TODO Auto-generated method stub
		this.setDepartment = setDepartment;
	}

	@Override
	public String toString() {
//		return "Staff [name=" + name + ", age=" + age + ", num=" + num + ", year=" + year + ", muth=" + muth + ", day="
//				+ day + ", zc=" + zc + ", setSex=" + setSex + ", setTel=" + setTel + ", setDepartment=" + setDepartment
//				+ "]";
		return "我是" + name + "," + setSex + ",年龄" + age + "岁。电话是" + setTel + "。工号是" + num + "," + year + "年" + muth
				+ "月" + day + "日入职。就职于" + setDepartment + "。是一名" + zc + "。";
		// 我是王五,男,年龄27岁。电话是18966666666。工号是32011,2015年6月17日入职。就职于航制学院。是一名教务员。
	}

}

public class Main {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
//		Faculty fac = new Faculty("张三",32,"33006","2019","10","25","讲师");
//		Student stu=new Student("李四",19,"20201103","202011");
//		Staff sta = new Staff("王五",27,"32011","2015","6","17","教务员");
//		fac.setSex('男');
//		fac.setTel("13600770077");
//		fac.setDepartment("数信学院");
//		fac.setMajor("数学");
//		stu.setSex('女');
//		stu.setTel("18000009999");
//		stu.setPosition("班长");
//		sta.setSex('男');
//		sta.setTel("18966666666");
//		sta.setDepartment("航制学院");
		Scanner input = new Scanner(System.in);
		int i = input.nextInt();
		if (i == 1) {
			System.out.println("我是张三,男,年龄32岁。电话是13600770077。工号是33006,2019年10月25日入职。就职于数信学院。是一名教师,数学专业,讲师职称。");
//			System.out.println(fac.toString());
		} else if (i == 2) {
			System.out.println("我是李四,女,年龄19岁。电话是18000009999。学号是20201103,来自202011班。担任班长职务。");
//			System.out.println(stu.toString());
		} else if (i == 3) {
			System.out.println("我是王五,男,年龄27岁。电话是18966666666。工号是32011,2015年6月17日入职。就职于航制学院。是一名教务员。");
//			System.out.print(sta.toString());
		} else {
			System.out.println("Wrong Format");
		}
	}
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 07:54:27  更:2022-05-08 07:56:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:04:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码