Using Java language and following the requirements posted below.

Using Java language and following the requirements posted below.

Several GMU students have decided to start their own cloud computing company called GMU Cloud which hosts virtual machines (VM) for customers. They have hired you as an IT Architect to develop a system to track the customers of their cloud and compute the customer bills. GMU Cloud’s marketing department forecasts the maximum number of customers to be less than 1000. A customer is given a 7-character application generated customer ID in the format of “usr” plus a 4-digit number, such as “usr1243”, whereby customer ID numbers start at “usr1000”. Additionally, the system must track the customer’s name, phone number, email address, and if the customer has a corporate discount. Customers with corporate discounts receive 20% off their total bill. The customer phone number is validated as (xxx) xxx-xxxx where each x must be a digit, such as (571) 123-3456. The customer email address is validated as containing only one @ sign and only one period – where the @ sign appears prior to the period and there exists at least one letter or digit: before the @ sign, in between the @ sign and the period, and after the period, such as bsit@gmu.edu.

Each customer will only select a single VM. All VMs have a flat monthly rate of $20 which includes 8 GB of memory and 20 GB of SSD storage. Additionally, the customer must customize the VM based on the customer’s needs. The customer must choose from one of the following choices: web server, file server, or Bitcoin miner.

Those who choose the web server VM customization must choose the additional amount of memory they want at a monthly rate of $10 per 8 GB increments. The can choose up to and addition 120 GB of memory (this would give them a total of 128 GB of memory for their VM).

If the customer chooses the file server VM customization they must select between either block storage or object storage. They must also choose the type of storage media of SSD or magnetic storage. SSD storage is $5 per terabyte per month and magnetic storage is $2 per terabyte per month. The maximum amount of storage is 1024 terabytes (this does not include the 20 GB of standard SSD storage).

If the customer chooses the Bitcoin miner customization the customer must select the number and brand of GPUs. A VM can support up to 8 GPUs and they can either be the brand AMD or Nvidia. The GPUs cost $10 per month, but for Nvidia GPUs there is a flat $15 monthly fee.

Create an efficient, object-oriented solution, using solid design principles, allowing the user to enter all customers (and all associated details), one at a time, until they indicate they are finished entering customers. If more than 1000 customers are attempted to be entered, the user should see an error message. After each customer is entered, print a well-formatted report to the screen (monitor) displaying all customer details, the total amount of monthly fees incurred, and the total amount of monthly fees incurred with the corporate discount, if applicable.

Next, management has asked you to print a summary report on customer statistics to the screen (monitor). This well-formatted summary must include how many customers have VMs, total amount of all monthly fees collected, the average monthly fee collected per customer, how much memory and disk space and GPUs are used, and the number of customers who are Bitcoin miners. Finally, management needs a printable roster that can be emailed to all staff. To create the printable roster, build a text file containing a list of all customers and the total number of customers. For each customer, you must include two attributes: the customer’s name and their associated customer ID number.

Notes:

·       Pay very careful attention to the logic requirements of the scenario including the relationships between objects. Make sure your solution meets each requirement.

·       Think about what type of validations might be appropriate for this application. Unless otherwise specified, all user input should contain some type of reasonable validation.

Other Requirements:

·       Your solution must demonstrate use object-oriented techniques. No points earned for a procedural solution.

·       Your solution must include appropriate constants, constructors, accessors, mutators, and special purpose methods (including a toString() method) with exception handling, as necessary in support of the problem.

·       Your solution may not use parallel arrays anywhere in the solution.

·       Your solution must be designed as a modular solution using methods other than main, with each method performing one task.

·       Your solution may only import JOptionPane and the libraries listed in the Files module. You may not import any other Java library.

Hide 

Calculate the price of your order

Simple Order Process

Fill in the Order Form

Share all the assignment information. Including the instructions, provided reading materials, grading rubric, number of pages, the required formatting, deadline, and your academic level. Provide any information and announcements shared by the professor. Choose your preferred writer if you have one.

Get Your Order Assigned

Once we receive your order form, we will select the best writer from our pool of experts to fit your assignment.

Share More Data if Needed

You will receive a confirmation email when a writer has been assigned your task. The writer may contact you if they need any additional information or clarifications regarding your task

Let Our Essay Writer Do Their Job

Once you entrust us with your academic task, our skilled writers embark on creating your paper entirely from the ground up. Through rigorous research and unwavering commitment to your guidelines, our experts meticulously craft every aspect of your paper. Our process ensures that your essay is not only original but also aligned with your specific requirements, making certain that the final piece surpasses your expectations.

Quality Checks and Proofreading

Upon the completion of your paper, it undergoes a meticulous review by our dedicated Quality and Proofreading department. This crucial step ensures not only the originality of the content but also its alignment with the highest academic standards. Our seasoned experts conduct thorough checks, meticulously examining every facet of your paper, including grammar, structure, coherence, and proper citation. This comprehensive review process guarantees that the final product you receive not only meets our stringent quality benchmarks but also reflects your dedication to academic excellence.

Review and Download the Final Draft

If you find that any part of the paper does not meet the initial instructions, send it back to us with your feedback, and we will make the necessary adjustments.