Question
Example Looking for help strengthening the following below: Problem Description: A college realizes that it is investing too much time and manpower to maintain the
Example
Looking for help strengthening the following below:
Problem Description:
A college realizes that it is investing too much time and manpower to maintain the student records and it needs an automated student performance record system that allows students and the faculty to access the students' record database anywhere anytime. This will save the paperwork needed to maintain the records and will also save the time to find records in the handwritten record-books. The project will have 2 types of accounts - student and faculty. Both the users (student and faculty) will have login credentials - email and password. The faculty is able to access all students data and the student is only allowed to access his data.
A student record will have the marks he has obtained in the subjects in all the semesters/years. A student will also have the aggregate of marks he has got.
Interpretation:
This Student Record Management System allows checking the marks students have got in all the subjects and in all semesters. This can further improve to get the list of toppers in a subject/semester/year. This can also have the attendance and other activities maintained. This can also help in data analytics like in which subjects students score more and in which subjects they are struggling so that we can offer them proper training if required.
Classes:
UserType
Year
Semester
Subject
Student
Faculty
ClassRoom
MarksObtained
Class methods:
UserType enum:
- UserType.STUDENT
- UserType.FACULTY
getUserType - to get the type of user this is (student or a faculty)
Year:
YearNumber enum:
- YearNumber.FIRST
- YearNumber.SECOND
- YearNumber.THIRD
- YearNumber.FOURTH
getYearNumber - to get the required year from YearNumber enum
getSemestersInYear - to get the List of the semester in a year (for the e.g. first and second semester for the first year)
Semester:
SemesterNumber enum:
- SemesterNumber.FIRST
- SemesterNumber.SECOND
- SemesterNumber.THIRD
- SemesterNumber.FOUR
- SemesterNumber.FIVE
- SemesterNumber.SIX
- SemesterNumber.SEVEN
- SemesterNumber.EIGHT
getSemesterNumber: to get the required semester from Semester enum
GetAllTheSubjectsInSemester: to get the list of all the subjects in a particular semester.
Subject:
getSubjectName: to get the name of the subject
getTotalMarks: to get the total marks this subject has
Student:
getId: to get the student Id
getName: to get the student name
getCurrentYear: to get the current year the student is studying
getCurrentSemester: to get the current semester the student is studying in
getEnrolledSubjects: to get the list of all the subjects student is enrolled in
getCGPA: to get the current cumulative grade points
Faculty:
getId: to get the student Id
getName: to get the student name
getListOfSubject: to get the list of subjects the faculty teaches
ClassRoom:
getStudentList: to get all the students to list the classroom has
MarksObtained:
getSubjectName - to get the name of the subject
getMarksObtained - to get the marks obtained in this subject
Summary:
The class UserType tells what type of the logged-in user is. The class Year tells of what year the information needs to be accessed. The Year class has a list of semesters. The Semester class has all the list of Subjects. The Subject has information about the subject like the subject name, total marks. MarksObtained class tells how many marks the student has got in a particular subject. The Student, Faculty, ClassRoom has the self-explanatory basic details.
This design in a whole allows students to see their records and the faculty to see the records of all the students in a classroom.
Prepare a design for a Java program that would solve a significant business problem. Four business case examples are provided with the assignment (See Page 3), but you are strongly encouraged to use your own real-world business case. If you use one of the provided examples, you will need to create your own problem description and enhance the case. It is not accepted to copy and paste the description given in the assignment. To limit the problem to a reasonable scope, assume the system will be used in a small business environment. Note also that, this assignment does not require you to write/submit a java program. 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. Your design report should be at least three pages and at most four pages. For full points, your solution must include all five of these sections. Please clearly identify the sections in your document: (1) 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. (2) 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? (3) 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. (4) 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. (5) Summary: Explain why your classes and methods completely solve the business problem outlined in Section 1 and discuss whether your assumptions and alternatives are suitable, appropriate and completely solve the problem. Sample Requirements and 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 Bank Teller - 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. addAccount - 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. FindBy CustomerName - 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 Bank Teller'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. Prepare a design for a Java program that would solve a significant business problem. Four business case examples are provided with the assignment (See Page 3), but you are strongly encouraged to use your own real-world business case. If you use one of the provided examples, you will need to create your own problem description and enhance the case. It is not accepted to copy and paste the description given in the assignment. To limit the problem to a reasonable scope, assume the system will be used in a small business environment. Note also that, this assignment does not require you to write/submit a java program. 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. Your design report should be at least three pages and at most four pages. For full points, your solution must include all five of these sections. Please clearly identify the sections in your document: (1) 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. (2) 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? (3) 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. (4) 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. (5) Summary: Explain why your classes and methods completely solve the business problem outlined in Section 1 and discuss whether your assumptions and alternatives are suitable, appropriate and completely solve the problem. Sample Requirements and 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 Bank Teller - 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. addAccount - 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. FindBy CustomerName - 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 Bank Teller'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
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started