Your Code Demonstration will be to the tutor during the demonstration session on Monday 5th June/Tuesday 6th June. Each student will be given a 20 minute time slot on one of these days. The schedule for demonstration by each student will be announced on BB well before the due date.
Note: You are advised to use only the C# concepts taught in this Unit through Lectures and Practical Exercises. You may be asked to explain any new concepts or advanced features used during the code demonstration.
Problem Specification:
David Jones, a department store, hired you as a Software Engineer to design and develop a C# object-oriented solution to determine:
· The customers who have exceeded the limit of $400.00 on their accounts, and
· The suppliers to whom David Jones owes more than $500.00
The David Jones store keeps the following information for each customer:
a) Customer name (must be between 6 and 15 characters)
b) Account number (must be 6 digits and start with digit ‘1’)
c) Amount owing by the customer to David Jones ($) at the beginning of a particular month (= 0)
d) Total of all purchases ($) from David Jones by this customer for the month
e) Total of all payments ($) made by this customer to David Jones in this month; no overpayments are to be made by the customer
f) Amount owing to David Jones ($) at the end of the month
The David Jones store keeps the following information for each of its supplier:
a) Supplier name (must be between 5 and 16 characters)
b) Account number (must be 6 digits and start with digit ‘2’)
c) Account balance ($) at the beginning of a particular month, that is, amount owing by David Jones to this supplier ( = 0 )
d) Total of all purchases ($) by David Jones from this supplier this month
e) Total of all payments ($) made by David Jones to this supplier this month; no overpayments are to be made by David Jones
f) Amount owing ($) at the end of the month by David Jones to this supplier
Program input:
The program should take the following input in the order given, and by using the appropriate prompts:
1. Check if the user wishes to track any customer’s status, and if so:
1.1. the number of customers whose details are required (the program must allow for any number of customers)
1.2. the details of customers (items (a) - (e) specified on page 1 for customers), customer by customer, using an appropriate data structure to store information for different customers.
2. Check if the user wishes to track any supplier’s status, and if so:
2.1. the number of suppliers whose details are required (the program must allow for any number of suppliers)
2.2. the details of suppliers (items (a)-(e) specified on page 1 for suppliers), supplier by supplier, using an appropriate data structure to store information for different suppliers.
Note:
1. You are required to create three classes - one for customer, one for supplier, and one application class for creating the necessary objects.
2. Your program must generate an appropriate error message if any input does not follow the required criteria and then request the user to re-enter the input.
Program output:
The program should display all the account numbers with the corresponding account balances at the end of the month for all customers and suppliers, and
· For any customer whose balance at the end of the month exceeds that customer's credit limit of $400.00, the program should display the message: "Credit limit exceeded."
· For any supplier to whom David Jones owes more than $500.00 at the end of the month, the program should display the message: “Payment of this account is due now."
Note:
1. The output must be displayed in a readable format.
2. Test your code using your own appropriate test data to cover all possible scenarios.
Project Deliverables:
1) Program Code and Code Documentation (20%)
Soft copy of the code and the documentation (using Word) to be submitted online via Blackboard by 2nd June.
· The code documentation must include the following:
a) Problem analysis
b) Data/Variables
i. Instance variables for class(es) ii. Local variables for class(es)
c) Constants
d) Class diagrams
e) Properties for class(es)
f) A sample of your test data covering all the possible scenarios with the corresponding outputs (screenshots)
· Your program code will be evaluated by:
a) Assessing the conformance of the submitted program to the functional requirements outlined above. Does the program meet all these requirements, and how well?
b) Assessing the "means" of accomplishing the task by examining the program structure, style, clarity and conciseness, and if your code is written in a way that is clear and maintainable.
2) Code Demonstration (10%)
a) You will be asked to execute your code by inputting data provided by us.
b) You will be asked to do a simple modification to your original code to perform the same functionality.
Note:
1. You are allowed to bring only the softcopy of the code you submitted online to the practical session; no notes are allowed.