Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Prepare a design for a Java program that would solve a significant business prob

ID: 3788275 • Letter: P

Question

Prepare a design for a Java program that would solve a significant business problem. To limit the problem to a reasonable scope, assume the system will be used in a small business environment (less than 50 employees). I have provided simple business case examples but you are welcome to use a real-world business case as a basis for your evaluation.

Research and evaluate the essential requirements and usage of such a system, and create a design for a Java program that would solve the problem. Roughly three or four pages are common for this design document.

For full points, your solution must include all five of these sections. Please clearly identify the sections in your document:

Problem Description: Describe the salient features and main components of the business problem. Document the sources you used to obtain the problem examples or business case information.

Interpretation: Does the business problem make sense? Did you notice any unmentioned requirements that should be addressed by a solution? If you have experience relating to the business problem, can you identify anything that should be resolved differently than stated in the business case?

Classes: Detail the specific classes that would be required for the problem solution. Use the concepts from Chapter 8’s first two sections to determine what classes are best suited to the problem – as noted in Chapter 8, classes typically are related to specific “nouns” in the problem description. For example, our accounts receivable programs used in homeworks have a CustomerAccount class, which is an obvious noun relating to a customer account in accounts receivable.

Class Methods: For each of the classes from section (2), describe in detail (but do not implement) the methods that would be required in each class. Explain the purpose and the action for each method. Remember that methods are typically “verbs” or “actions” related to the problem and its solution. For example, our CustomerAccount class contains the methods “purchase”, “payment”, and “getAccountBalance”.

Summary: Explain why your classes and methods completely solve the business problem outlined in step 1, and discuss whether your assumptions and alternatives are suitable, appropriate and completely solve the problem.

Your assignment will be graded using the College of Business’s Critical Thinking Rubric involving these four aspects:

1. Problem Identification: Correctness of description of problem & completeness of context surrounding the problem

2. Information Collection and Interpretation: Completeness of relevant information & credibility of information

3. Solution Development: Information is correctly interpreted & analyzed, assumptions are stated, and alternative solutions are discussed

4. Recommendation: The recommendation, justification, and limitations are clearly discussed and summarized.

Here's the business case sample:

Hotel Management Hotel is a small hotel that needs to replace their paper property management record keeping system and track their occupancy rate. In the past, their paper-based system has proven unsatisfactory due to its failure to track reservations, and it has been difficult for staff to correctly monitor occupancy and prepare rooms for incoming customers. The hotel has four types of rooms: 20 double queen-bed rooms at $129.99/night, 20 single king-bed rooms at $139.99/night, and 10 kitchenette suite rooms at $159.99/night, and 2 luxury suite rooms at $199.99/night. Customers can reserve rooms for one or more night’s stays. The system should be able to find whether a required type of room is available for all the required nights, and if so, reserve the room for the customer for the requested period of time. When a customer checks out of his/her room, the system must add any incidental charges (such as guest bar charges or pay-per-view video charges) and provide a bill showing the nights stayed, incidental charges, sales & lodging taxes, and the total cost. The system needs to provide a daily report showing the occupancy rate (percentage of number of rooms occupied), the amount earned for that day, and the rooms that need to be made ready for occupancy the next day.

Sample Design:

(Please note: This is intended to an example of the format that is useful for this document. The problem description, description of each class, and method descriptions are terse – your paper should more fully describe each section.)

Problem Statement
A small bank has been chartered and needs a system to maintain its list of around 100 customers and the customer’s bank accounts (each customer typically has a checking account and a savings account, but can have additional checking and/or savings accounts). Accounts can be checking (no interest is paid), or savings (interest is paid monthly). The bank’s tellers need to be able to access a customer’s list of accounts, and then do operations including deposit, withdraw, and check balances. The bank’s manager needs to be able to apply interest monthly to each savings account. The bank’s manager also needs to be able to get the total balance of the accounts, to find the customers whose accounts have the highest balances to be able to send the customer special offers to thank them for their business, and find accounts with balances under $100 to apply a monthly service charge.

Interpretation
The bank’s business case apparently addresses only deposit accounts (checking and savings). Banks also make loans, and a full solution would address making loans and tracking loan payments. However, that would significantly expand the scope of the problem and is not addressed in this design.

Classes
Likely classes needed to implement this solution:
BankAccount - stuff about an account (more details required)
BankAccounts – maintain a collection (probably an ArrayList) of accounts
Bank – to contain information about all the accounts and customers Customer – stuff about a customer (more details required)
Customers – maintain a collection (probably an ArrayLists) of customers
BankTeller – user interface for the bank tellers (access customer’s accounts, deposit and withdraw funds).
BankManager – user interface for the bank manager – find accounts with large balances, apply interest to savings accounts, and apply monthly service charge to accounts under the $100 minimum balance.
BankProgram – main method – allows a teller or manager to login and use the program
InsufficientFundsException – to report an attempt to withdraw too much money from an account

Class Methods:

BankAccount
Deposit – add funds Withdraw – remove funds from the account, or throw an InsufficientFundsException if the account does not have enough money. getAccountNumber – get the account number.
getBalance – get the account’s balance.
getCustomer – get the customer to which the account belongs.
addInterest – for savings account, apply the specified interest rate.
applySeviceCharge – for accounts with balance under $100, apply a service charge.


BankAccounts
Find – find an account by account number.
ddAccount – add an account to the collection.
removeAccount – remove an account from the collection.
Bank findAccounts – find the accounts for a customer.
readAccounts – read the account information from a file and store in the BankAccounts collection.
readCustomers – read the customer information from a file and store in the Customers collection.
saveAccounts – save the account information to a file. |
saveCustomers – save the customer information to a file.

Customer
getName – get the customer’s name.
getAddress – get the customer’s address.
setName – set the customer’s name.
setAddress – set the customer’s address.

Customers
FindByCustomerNumber – find a customer by number.
FindByCustomerName – find a customer by name.
addCustomer – add an account to the collection.
removeCustomer – remove an account from the collection.

BankTeller
teller – menu for the teller to access a customer and the customer’s accounts. Provides access to create a new customer, create a new account for a customer, deposit or withdraw funds for an account, and get the customer’s account balances.


BankManager
manager – menu for the manager to find accounts with large balances, apply interest to savings accounts, and apply monthly service charge to accounts under the $100 minimum balance

BankProgram
main – login the user and, depending on the user’s type, run the BankTeller’s teller method for teller users, or the BankManager manager method for manager users.

InsufficientFundException
getMessage – to get the description for the exception.
printStackTrace – to print where the exception occurred in the program.

Summary
The Bank, Customer, Customers, BankAccount, and BankAccounts classes will provide the necessary functionality to operate the bank. The BankTeller and BankManager classes will provide the different functions needed for the two different types of users identified in the problem statement. The BankProgram class will provide a way to run the program and access the accounts depending on the type of user. This design does not keep a list of the transactions, though. That is something that would be necessary in an actual bank management program to enable auditing. Finally, as noted in the Interpretation section, a full bank management system would also manage loan accounts.

Explanation / Answer

Interpretaion

Hotel Management usecase only depicts the record keeping tasks and track the occupancy rate , apart from that they can also create a system to track the staff in the hotel, food provided to the customer

Classes

1. Manager : manages the staff, purchases the inventory and also record complaints of the customer

2. Receptionist: check room availability for the customer, book room, generate bill and accept customer feedback, attend customer call and provide them additional services with extra cost. tells customer about the different rooms available in the hotel ie. double queen-bed rooms, single king bed rooms and their price, calculate the total amount earned for that day and give details to the manager

3. Customer: is a user interface for customer. inquire about the room availability of the choice and their price, book the room , ask for additional services for additional price, pay bill, provide the check in and check out time, provide the feed back, pay the bill

4. HouseKeeping: is the user interface for the housekeeping employees clean the room, provide the customer with their order.

5. Room: is the interface which give details about the room . Room no, room type, booked for the number of days, floor, number of rooms avialble for the subtype eg how many rooms are vaccant of queen size bed

6. Chef: is the interface for the check take order and prepare the order

Class Methods

1. Manager

PurchaseInventory() - purchases inventory

RecordComplaints() - record complaint of the customer

ManageStaff() - function to manage staff

GetTotalAmountEarned() get the information about the total amount earned for that day

2. Receptionist

CheckRoomAvailability() check whether room is avialble

bookRoom() - book room for the customer based on their requirements

GenerateBill()- generate bill for the customer including their additional services

AcceptCustomerFeedback() - take feed back of the customer

TotalAmountEarned() calculate the total amount earned for that day and give details to the manager

3. Customer

InquireRoom() - ask for the room specificaiton price, typeof bed and other services

OrderFood() - order food, tea and snacks

PayBill() - pay the total bill

ProvideFeedback() - provide the feedback

Checkin-CheckOutTime() provide the checkin and chck out time

4. HouseKeeping

CleanRoom() clean the room for the customer

DeliverFood() delivers the food ordered by the customer

5. Room

RoomType() type of room queen size bed, ing size bed

FloorNo() on which floor the room is there

RoomNo()

Price() price for the room

NoOfAvailalableRoomForTypes() have a count for the number of rooms available of different type

6. Chef

TakeOrder() take the customer order

PrepareOrder() prepare the food

Summary

the customer class will run and will enquire about the rooms available and select the rooms based on availability and price book the room.Recepionist will book he room for the customer and takes customer details, and also asks for the check in and check out time. Housekeeing department will clean the other vacant rooms that are empty and prepare them for other customer.customer will order food and Check will take order and prepare order and housekeeping will deliver the food to the customer.customr checkout the room pay the bill and provide the feedback. At the end the day tommarow booking will be looked and room will be prepared and total money earned for that day will be calculated and whole information will be provided to the Manager