Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Problem: I do have code at the very bottom, but it doesn't work. Can't figure out why **You are tasked with writing a console-based (text-based)

Problem: I do have code at the very bottom, but it doesn't work. Can't figure out why

**You are tasked with writing a console-based (text-based) Java application called ManageComputers that manages information about computers for a company. The company owns laptop and desktop computers and needs to store, display and manage the data about the specifications for the machines. You will use principles from the Java Secure Coding Guidelines document in the development of this application.**

(0) Showing the menu When the application is run it should display the following menu: The user can enter a number for their selection, e.g. 3 to list the details of all the computers stored in the system.

image text in transcribed

(1) Listing the Computers (List) If the user enters 3 at the menu: 3 of 19 In this case there is no computer data available to the system yet, so the application simply redisplays the menu again. In the event that there is data for a computer(s) in the system then it should display as follows: In the example above there is data for a laptop and a desktop computer that can be displayed. The computers are numbered based upon the order they were stored in the system. Note that the data for laptop and desktop computers is a little different, i.e. laptops specify screen size as a specification detail whereas desktops specify GPU type instead.

image text in transcribed

sample output:

image text in transcribed

====The code that I have====

======This is what I have so far for codes(However, my current code doesn't work)=====

**DesktopComputer.java**

package domain;

//Class Desktop Computer extends Computer and hence //has all the attributes of Computer class and some // of its own - here, GPU. class DesktopComputer extends ManageComputer { private String GPU; public DesktopComputer(String CPU,int ram, int disk, String GPU) { //call base class's constructor, // i.e, constructor of Computer class super("LaptopComputer",CPU,ram,disk); this.GPU = GPU; }

public String getGPU() { return GPU; }

public void setGPU(String CPU) { this.GPU = CPU; } @Override public void printDetails(){ System.out.println("Type: DesktopComputer"); //Calling base class's printDetails method. super.printDetails(); System.out.println("GPU: " + getGPU()); } }

**ManageComputer.java**

package domain;

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList;

public class ManageComputer { //using a arraylist that will be able //to store our items - laptops and desktops static ArrayList allItems = new ArrayList(); public static void main(String[] args) throws IOException { int choice = -1; BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); //Using a do-while loop to keep //displaying menu until user exits. do{ System.out.println("===MENU==="); System.out.println("1. Load"+" "+ "2. Save"+" "+ "3. List"+" "+ "4. Add"+" "+ "5. Delete"+" "+ "6. Edit"+" "+ "0. Exit"); System.out.println("Enter selection:"); choice = Integer.parseInt(br.readLine()); //check for invalid choice(our choice //lies between 0 and 6. Other inputs are invalid if(choice6){ System.out.println("Invalid Input! Try again."); continue; }

//Using switch to choose appropriate //functions according to choices. switch(choice){ case 1: optionLoad(); break; case 2: optionSave(); break; case 3: optionList(); break; case 4: optionAdd(); break; case 5: //optionDelete(); break; case 6: //optionEdit(); break; case 0: optionLoad(); break; } }while(choice!=0); //Continue showing menu till user exits. } public static void optionLoad(){ } public static void optionSave(){ } //Listing all items in arraylist public static void optionList(){ int sr_no = 1; //If list is empty, display so and exit. if(allItems.size()==0){ System.out.println("Currently, we don't have any items."); return; } //Printing details of each item in list. for(Computer c: allItems){ System.out.println("--------------"); System.out.println("Computer #"+sr_no); sr_no++; c.printDetails(); } } //Adding items to arraylist. public static void optionAdd() throws IOException{ String CPU; int ram,disk; int opt=0; BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); System.out.println("What do you want to add?"); System.out.println("\t1.Laptop \t2.Desktop"); opt = Integer.parseInt(br.readLine()); System.out.println("Enter CPU description:"); CPU = br.readLine(); System.out.println("Enter RAM Size:"); ram = Integer.parseInt(br.readLine()); System.out.println("Enter Disk Space:"); disk = Integer.parseInt(br.readLine()); //Check first what the user wants to add //and create and add items accordingly. if(opt==1){ //user wants to add laptop System.out.println("Enter Screen sixe:"); float scr_size = Float.parseFloat(br.readLine()); allItems.add(new LaptopComputer(CPU,ram,disk,scr_size)); } else{ //user wants to add desktop System.out.println("Enter GPU description:"); String GPU = br.readLine(); allItems.add(new DesktopComputer(CPU,ram,disk,GPU)); } } }

**LaptopComputer.java**

package domain;

//Class Laptop Computer extends Computer and hence //has all the attributes of Computer class and some // of its own - here, screen_size. class LaptopComputer extends ManageComputer { private float screen_size;

public LaptopComputer(String CPU,int ram, int disk, float screen_size) { //call base class's constructor, // i.e, constructor of Computer class super("DesktopComputer",CPU,ram,disk); this.screen_size = screen_size; }

public float getScreen_size() { return screen_size; }

public void setScreen_size(int screen_size) { this.screen_size = screen_size; } //Calling base class's printDetails method. @Override public void printDetails(){ System.out.println("Type: LaptopComputer"); super.printDetails(); System.out.println("Screen Size: " + getScreen_size() + " inches"); } }

**BaseComputer.java**

package domain;

class BaseComputer{ private String type; private String CPU; private int ram; private int disk;

//Defining constructor, getter and setter functions. public BaseComputer(String type, String CPU, int ram, int disk) { this.type = type; this.CPU = CPU; this.ram = ram; this.disk = disk; } public String getCPU() { return CPU; }

public void setCPU(String CPU) { this.CPU = CPU; }

public int getRam() { return ram; }

public void setRam(int ram) { this.ram = ram; }

public int getDisk() { return disk; }

public void setDisk(int disk) { this.disk = disk; } //Printing details of attributes. public void printDetails(){ System.out.println("CPU: " + getCPU()); System.out.println("RAM: " + getRam() + " GB"); System.out.println("DISK: " + getDisk() + " GB"); }

}

====MENU==== 1. Load 2. Save 3. List 4. Add 5. Delete 6. Edit 0. Exit Enter selection: ====MENU==== 1. Load 2. Save 3. List 4. Add 5. Delete 6. Edit 0. Exit Enter selection: ====MENU==== 1. Load 2. Save 3. List 4. Add 5. Delete 6. Edit 0. Exit Enter selection: ====MENU==== 1. Load 2. Save 3. List 4. Add 5. Delete 6. Edit 6. Exit Enter selection: COMPUTER #1 Type: Laptop Computer CPU: i5 RAM: 8 GB DISK: 250 GB Screen Size: 13 inches COMPUTER #2 Type: Desktop Computer CPU: i7 RAM: 16 GB DISK: 500 GB GPU: intel ====MENU==== 1. Load 2. Save 3. List 4. Add 5. Delete 6. Edit 0. Exit Enter selection

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Professional Visual Basic 6 Databases

Authors: Charles Williams

1st Edition

1861002025, 978-1861002020

More Books

Students also viewed these Databases questions

Question

Which of the following statements is true of electronic meetings

Answered: 1 week ago