注册 登录
编程论坛 JAVA论坛

大佬,求帮助

yellowtao 发布于 2018-11-26 10:44, 2378 次点击
只有本站会员才能查看附件,请 登录
5 回复
#2
a5115282018-11-26 15:15
好难哦,做求不出来,黄涛我都没得法的
#3
纵横阳仔2018-11-26 17:48
采用面向对象的思路:
创建一个电脑对象,包含四个子类对象(cpu,显卡...),实现对应的获取总价,排序,获取价格区间电脑信息等方法;
#4
豆豆的滴2018-11-26 19:08
自己先试试相信你能行
#5
纵横阳仔2018-11-26 19:15
先自己写写,再看吧
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        String num = sc.nextLine();
        int cpus =Integer.parseInt(num.split(" ")[0]);
        int memoryChipss =Integer.parseInt(num.split(" ")[1]);
        int mainBorads =Integer.parseInt(num.split(" ")[2]);
        int graphicsCards =Integer.parseInt(num.split(" ")[3]);
        List<CPU> cpulist = new ArrayList<>();
        for (int i = 0;i<cpus;i++) {
            cpulist.add(new CPU(sc.nextLine()));
        }
        List<MemoryChips> memoryChipsList = new ArrayList<>();
        for (int i = 0;i<memoryChipss;i++) {
            memoryChipsList.add(new MemoryChips(sc.nextLine()));
        }
        List<MainBorad> mainBoradList = new ArrayList<>();
        for (int i = 0;i<mainBorads;i++) {
            mainBoradList.add(new MainBorad(sc.nextLine()));
        }
        List<GraphicsCard> graphicsCardList = new ArrayList<>();
        for (int i = 0;i<graphicsCards;i++) {
            graphicsCardList.add(new GraphicsCard(sc.nextLine()));
        }
        List<Computer> computerlist = new ArrayList<>();
        for (CPU cpu : cpulist) {
            for (MemoryChips memoryChips : memoryChipsList) {
                for (MainBorad mainBorad : mainBoradList) {
                    for (GraphicsCard graphicsCard : graphicsCardList) {
                        computerlist.add(new Computer(cpu,memoryChips,mainBorad,graphicsCard));
                    }
                }
            }
        }
        List<Computer> list = new ArrayList<>(computerlist);
        Collections.sort(list);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int i = 1;
        for(Computer computer:list){
            if(computer.getPrice()>=a&&computer.getPrice()<=b){
                System.out.println(computer.toString(i));
                i++;
            }
        }
        
        
    }
}

class Computer implements Comparable<Computer> {
   
    CPU cpu;
    MemoryChips memoryChips;
    MainBorad mainBorad;
    GraphicsCard graphicsCard;
    int price ;
    public Computer(CPU cpu, MemoryChips memoryChips, MainBorad mainBorad, GraphicsCard graphicsCard) {
        this.cpu = cpu;
        this.memoryChips = memoryChips;
        this.mainBorad = mainBorad;
        this.graphicsCard = graphicsCard;
    }
    public String toString(int i) {
        String  s= i+" "+cpu.brand+"-"+cpu.model+"-"+cpu.frequency
                +" "+memoryChips.brand+"-"+memoryChips.model+"-"+memoryChips.capacity
                +" "+mainBorad.brand+"-"+mainBorad.model
                +" "+graphicsCard.brand+"-"+graphicsCard.model+"-"+graphicsCard.capacity
                +" "+getPrice();
        return s;
    }
    int getPrice(){
        return cpu.price+memoryChips.price+mainBorad.price+graphicsCard.price;
    }
    @Override
    public int compareTo(Computer o) {
        return this.getPrice() -o.getPrice();
    }
   
   
}
class CPU{
    CPU(String s){
        this.brand = s.split(" ")[0];
        this.model = s.split(" ")[1];
        this.frequency = s.split(" ")[2];
        this.price = Integer.valueOf(s.split(" ")[3]);
    }
    String brand;//品牌
    String model;//型号
    String frequency;//频率
    int price;//品牌
}
class MemoryChips{//内存条
    MemoryChips(String s){
        this.brand = s.split(" ")[0];
        this.model = s.split(" ")[1];
        this.capacity = s.split(" ")[2];
        this.price = Integer.valueOf(s.split(" ")[3]);
    }
    String brand;//品牌
    String model;//型号
    String capacity;//容量
    int price;//品牌
}
class MainBorad{//主板
    MainBorad(String s){
        this.brand = s.split(" ")[0];
        this.model = s.split(" ")[1];
        this.price = Integer.valueOf(s.split(" ")[2]);
    }
    String brand;//品牌
    String model;//型号
    int price;//品牌
}
class GraphicsCard{//显卡
    GraphicsCard(String s){
        this.brand = s.split(" ")[0];
        this.model = s.split(" ")[1];
        this.capacity = s.split(" ")[2];
        this.price = Integer.valueOf(s.split(" ")[3]);
    }
    String brand;//品牌
    String model;//型号
    String capacity;//容量
    int price;//品牌
}


[此贴子已经被作者于2018-11-27 10:20编辑过]

#6
yellowtao2018-11-28 18:39
回复 5楼 纵横阳仔
非常感谢😄
1