142 - 计算机类

142 - 计算机类

Time Limit: 1000   Memory Limit: 65535
Submit: 563  Solved: 254

Description

构造计算机类,其中包含其配置信息:处理器、主板、内存、显示器、硬盘等设备,各个设备均有型号(字符串),特别的,处理器有主频(小数)和内核数(整数)、显示器有尺寸(整型)、内存和硬盘有容量数据(GB为单位)。请你尝试构造合适的类和类的关系来表示计算机,并为该计算机类添加计算价格(各设备价格之和)、打印配置信息等方法。重写相关类的equals方法,使得两个配置完全相同的计算机为相同的计算机。重写相关类的toString函数,打印计算机的配置信息。
在main函数中

Input

两个计算机对象,包含
CPU:型号、主频、内核
主板:型号
内存:容量
显示器:尺寸
硬盘:容量

Output

两个对象是否相等
两个对象的配置信息

Sample Input

Corei7 2.8 4
GIGABYTE-B250M-D3H
xiede-DDR3 8
SamsungC27F39 27
SEAGATE-ST1000DM010 2048
Corei7 2.8 4
GIGABYTE-B250M-D3H
xiede-DDR3 8
SamsungC27F39 27
SEAGATE-ST1000DM010 2048

Sample Output

true
Computer1:
CPU:
Model: Corei7
Frequency: 2.8
Number of Cores: 4
Mainboard:
Model: GIGABYTE-B250M-D3H
Memory:
Model: xiede-DDR3
Size: 8
Screen:
Model: SamsungC27F39
Size: 27
Harddisk:
Model: SEAGATE-ST1000DM010
Size: 2048
Computer2:
CPU:
Model: Corei7
Frequency: 2.8
Number of Cores: 4
Mainboard:
Model: GIGABYTE-B250M-D3H
Memory:
Model: xiede-DDR3
Size: 8
Screen:
Model: SamsungC27F39
Size: 27
Harddisk:
Model: SEAGATE-ST1000DM010
Size: 2048

HINT

为计算机类和各个组成配件都构造类,分别重写toString和equals方法
在计算机类中调用各个配件的equals和toString方法
回车用\n
小数用String.format("%.1f",1.234)

Pre Append Code

Post Append Code

 

import java.util.Scanner;
public class Main {

public static void main(String[] args){

Scanner scan = new Scanner(System.in);

String cModel;

String cFrequency;

int cNumofCores;

String mModel;

String meModel;

int meSize;

String sModel;

int sSize;

String hModel;

int hSize;

cModel = scan.next();//读入

cFrequency = scan.next();

cNumofCores = scan.nextInt();

mModel = scan.next();

meModel = scan.next();

meSize = scan.nextInt();

sModel = scan.next();

sSize = scan.nextInt();

hModel = scan.next();

hSize = scan.nextInt();

Computer c1 = new Computer(cModel,cFrequency,cNumofCores,mModel,meModel,meSize,sModel,sSize,hModel,hSize);

cModel = scan.next();//读入

cFrequency = scan.next();

cNumofCores = scan.nextInt();

mModel = scan.next();

meModel = scan.next();

meSize = scan.nextInt();

sModel = scan.next();

sSize = scan.nextInt();

hModel = scan.next();

hSize = scan.nextInt();

Computer c2 = new Computer(cModel,cFrequency,cNumofCores,mModel,meModel,meSize,sModel,sSize,hModel,hSize);

System.out.println(c1.equals(c2));

System.out.println("Computer1:");

System.out.println(c1);

System.out.println("Computer2:");

System.out.println(c2);

}

}

class CPU {//CPU

    

String Model;

String Frequency;

int NumberofCores;

public CPU(String Model, String Frequency, int NumberofCores) {

this.Model = Model;

this.Frequency = Frequency;

this.NumberofCores = NumberofCores;

}

public boolean equals(Object obj) {

CPU c = (CPU) obj;

if (this.Model.equals(c.Model) && this.Frequency.equals(Frequency) && this.NumberofCores == NumberofCores)

return true;

else

return false;

}

public String toString() {

return "CPU:\nModel: " + Model + 

        "
Frequency: " +Frequency +

        "
Number of Cores: " + NumberofCores;

}

}

class Mainboard {//Mainboard

    

String Model;

public Mainboard(String Model) {

this.Model = Model;

}

public boolean equals(Object obj) {

Mainboard m = (Mainboard) obj;

if (this.Model.equals(m.Model))

return true;

else

return false;

}

public String toString() {

return "
Mainboard:
Model: " + Model;

}

}

class Memory {//Memory

    

String Model;

int Size;

public Memory(String Model, int Size) {

this.Model = Model;

this.Size = Size;

}

public boolean equals(Object obj) {

Memory m = (Memory) obj;

if (this.Model.equals(m.Model) && this.Size == m.Size)

return true;

else

return false;

}

public String toString() {

    return "
Memory:
Model: " + Model + 

            "
Size: " + Size;

}

}

class Screen {

    

String Model;

int Size;

public Screen(String Model, int Size) {

this.Model = Model;

this.Size = Size;

}

public boolean equals(Object obj) {

Screen s = (Screen) obj;

if (this.Model.equals(s.Model) && this.Size == s.Size)

return true;

else

return false;

}

public String toString() {

return "
Screen:
Model: " + Model +

        "
Size: " + Size;

}

}

class Harddisk {

    

String Model;

int Size;

public Harddisk(String Model, int Size) {

this.Model = Model;

this.Size = Size;

}

public boolean equals(Object obj) {

Harddisk h = (Harddisk) obj;

if (this.Model.equals(h.Model) && this.Size == h.Size)

return true;

else

return false;

}

public String toString() {

return "
Harddisk:
Model: " + Model + 

        "
Size: " + Size;

}

}

class Computer {

CPU cpu;

Mainboard mainboard;

Memory memory;

Screen screen;

Harddisk harddisk;

public Computer(String cModel, String cFrequency, int cNumofCores, String mModel, String meModel, int meSize, String sModel, int sSize, String hModel, int hSize) {

cpu = new CPU(cModel, cFrequency, cNumofCores);

mainboard = new Mainboard(mModel);

memory = new Memory(meModel, meSize);

screen = new Screen(sModel, sSize);

harddisk = new Harddisk(hModel, hSize);

}

public CPU getCpu() {

return cpu;

}

public Mainboard getMainboard() {

return mainboard;

}

public Memory getMemory() {

return memory;

}

public Screen getScreen() {

return screen;

}

public Harddisk getHarddisk() {

return harddisk;

}

public boolean equals(Object obj) {

Computer c = (Computer) obj;

if (this.cpu.equals(c.getCpu()) && this.mainboard.equals(c.getMainboard()) && this.memory.equals(c.getMemory())

&& this.screen.equals(c.getScreen()) && this.harddisk.equals(c.getHarddisk()))

return true;

else

return false;

}

public String toString() {

return cpu.toString() + mainboard.toString() + memory.toString() + screen.toString() + harddisk.toString();

}

}

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值