联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2024-06-01 10:11

159.234 OBJECT-ORIENTED PROGRAMMING S1, 2024

Assignment 3

Deadline: 4 June 2024, 11pm

Evaluation: 40 marks (20% of your final grade)

Late Submission: Deduct 4 marks per day late

Individual Work You must complete this assignment by yourself (you must NOT share your code

with others or use others’ code)

Purpose: Reinforce Java OOP core concepts (abstraction, encapsulation, inheritance, and

polymorphism), collections framework and generics, exception handling, input and

output streams, and GUI using Swing

1. System Description (Overview of Problem)

You are asked to write a program in Java to simulate a computer store’s management system

A computer store maintains three categories of computers: Desktop PCs, Laptops, and Tablets. Each

category is further divided into different types, as listed below:

Desktop PC types: Gaming, Home & Study, Business, and Compact

Laptop types: Gaming, Home & Study, Business, and Thin & Light

Tablet types: Android, Apple, and Windows

Each computer’s unique ID, brand, CPU family, and price need to be specified regardless of its category.

The computer store must also record memory size (GB) and SSD capacity (GB) for Desktop PCs and

Laptops as well as screen size (inches) for Laptops and Tablets.

The computer store has two types of staff: salespersons and managers. A salesperson can log into the

computer store’s management system to view a list of all computers. A salesperson can also search for

computers by category and type before clicking on a search result to view that computer’s details.

A manager can log into the computer store’s management system to do everything that a salesperson can

do, but a manager can also maintain records—by updating computer details or adding and deleting

computers.

2. Tasks to complete:

a) Create a narrative step-by-step storyboard using screenshots of your system-generated GUIs to

demonstrate required functions of the computer store’s management system (please refer to a

sample at the end of this document; you can use its format to present your work)

Your Java code should:

b) Import the provided test data (computers.txt) to your system using Java Input

c) Add five staff to the computer store’s system—three salespersons and two managers—using usernames

and passwords provided (this function should have classes designed with an appropriate inheritance

hierarchy that applies core OOP concepts)

d) Realize all functions specified in the system description above (for this assignment, you are NOT

required to update computers.txt file after a manager update/add/delete records, you only need to

update the GUI to show the change)

3. Design and Implementation Guidelines

Note: You will receive credit for correctness, completeness, no code duplication, and clear on-screen outputs.

Also, we will grade your program using the following OOP and general software implementation

guidelines:

1) Encapsulation design and implementation—proper use of modifiers

a. Private/Protected/Public

b. Must make use of getters and/or setters wherever appropriate  

2

159.234 OBJECT-ORIENTED PROGRAMMING S1, 2024

2) Inheritance design and implementation

a. Reasonable class hierarchies

b. Proper data fields separation in base and derived classes

c. Proper methods separation/overloading/overriding in base and derived classes

d. Proper use of base and derived class constructors

3) Polymorphism and implementation

a. Write generic code that targets the base class whenever possible

b. Appropriate use of overriding in derived classes to realize polymorphism

4) Information store and implementation

a. Use HashMap and other Java collection class(es) to store information

5) Exception handling

a. Throw an exception object when an application error occurs (e.g., when an invalid piece of data is

entered)

b. Use “try/catch/finally” or “try/catch” block to handle the exception

6) Use Java Swing to implement your GUI

4. Other Specifications

You must follow the next three specifications when completing this assignment:

1) Place appropriate comments in your program—e.g.:

/** explain what the program file is doing . . . */

// explain what a part/method of the program is doing…

2) DO NOT add any file path for ‘computers.txt’ (put it directly in your project folder when you test your

code)

3) DO NOT add your own package name(s) to the beginning of your .java files (this requirement is only

for marking purpose)

5. Submission Requirements:

1) Your storyboard as a PDF file

2) All your .java files (source codes)

3) Any image file(s) you may have used in your program (put the image file(s) directly in your project

folder when you test your code - this requirement is only for marking purposes).

4) Zip all your files from 1), 2), and 3) together and submit as a single file to Stream

6. You MUST use the following test data in your assignment:

1) Staff details

Usernames Passwords

Staff 1 – Salesperson p1 p1

Staff 2 – Salesperson p2 p2

Staff 3 – Salesperson p3 p3

Staff 4 – Manager m1 m1

Staff 5 – Manager m2 m2

159.234 OBJECT-ORIENTED PROGRAMMING S1, 2024

2) Input file computers.txt to download

3) Example GUI and functions narrations:

Note: this is just a sample GUI design; you are free to design your own GUI and function flow as long

as they are reasonable and complete the tasks listed in item “2.” above

When the program runs:  

Record of Desktop

PC:

Category,

Type,

ID,

Brand,

CPU Family,

Memory Size (GB),

SSD Capacity (GB),

Price ($)

Record of Laptop:

Category,

Type,

ID,

Brand,

CPU Family,

Memory Size (GB),

SSD Capacity (GB),

Screen Size (Inches),

Price ($)

Record of Tablet:

Category,

Type,

ID,

Brand,

CPU Family,

Screen Size (Inches),

Price ($)

Click “login” icon button

Log in as a salesperson  

4

159.234 OBJECT-ORIENTED PROGRAMMING S1, 2024

Can select and display

computers from any

Category (No specific

order required)

List of all computers

(No specific order required)

 

5

159.234 OBJECT-ORIENTED PROGRAMMING S1, 2024

Can select and display

computers from any

Category and its sub type

Can click any selected

computer to check its

details

Note that all editing

functions are disabled

for a salesperson

Click to log out prelogin

screen is

displayed  

6

159.234 OBJECT-ORIENTED PROGRAMMING S1, 2024

 

This time, log in as a

manager (note that both

“Browse” and

“Check/Update” tabs

are enabled this time)

A manager can use all

the search functions

that a salesperson can  

7

159.234 OBJECT-ORIENTED PROGRAMMING S1, 2024

A manager can click

“Add” to add a new

computer (‘Model ID’

is unique, so a new

computer can’t use an

existing ‘Model ID’)

Pop-up window to

confirm success of

adding  

8

159.234 OBJECT-ORIENTED PROGRAMMING S1, 2024

New computer’s

details reflected

in list

A manager can click

‘Update’ to update a

computer’s details;

any data can be

modified except

‘Model ID’

Pop-up window to

confirm success of

update  

9

159.234 OBJECT-ORIENTED PROGRAMMING S1, 2024

Update reflected in

this list

A manager can click

‘Delete’ to delete a

computer from the

system

Clicking ‘Clear’ will clear

all text fields’ values on

this tab too (but does not

actually change or delete a

computer’s data )  

10

159.234 OBJECT-ORIENTED PROGRAMMING S1, 2024

List also reflects

deletions

Click “Log out” to

go back to pre-login

screen


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp