Recent Question/Assignment
Task
Dr Ho Coaching Centre gives lessons on three programming languages: Python, Java and C++. They have divided each programming language into a number of topics such as if-statement, while-loop, and for-loop. They teach each topic through a standard one-hour long lesson.
Students can request any number of additional hours on the topics that they have already studied. They can also request for any number of practice tests at the centre.
The centre charges for each standard lesson, additional hour and test according to the table below.
Language Fee for each Lesson Fee for an additional hour Fee for each test
Python $300 $200 $250
Java $200 $150 $150
C++ $175 $175 $170
For example, if a student studying Python requests 20 topics, 10 additional hours and 5 tests the total tuition fee for him/her will be ($6,000 + $2,000 + $1,250) = $9,250.
The Principal of Dr Ho Coaching Centre (Dr Wise Ho) contracts you to build a computer system, Power of Knowledge (PK), for them in Python.
PK will ask them to input, for a student, the name of the programming language that the student wants to study, the number of topics/lessons that he/she wants to study, the number of additional hours that he/she wants to study, and the number of tests that he/she wants to sit for. Based on the inputs the program will compute and display the tuition fee for the lessons, additional hours and tests. It will also display the total tuition fee.
PK will then ask Dr Ho “Do you want to compute the tuition fee for another student?”
If Dr Ho wants to compute the tuition fee for another student (i.e. enters “Y” or -y- to the question above), PK will ask for all these inputs again for the new student, and compute and display the total tuition fee for the new student. The program will then again ask Dr Ho “Do you want to compute the tuition fee for another student?”
The above process will continue as long as they want to compute the tuition fee for another student. However, if Dr Ho does not want to compute the tuition fee for another student (i.e. he enters anything other than -Y- or -y-) then the program will exit.
Dr Ho also imposes the minimum number of lessons, additional hours and tests, that a student must enrol for, as follows.
Language Minimum number of Lessons Minimum additional hours Minimum number of tests
Python 5 5 5
Java 4 10 2
C++ 6 7 2
If a student wants to take an invalid number of lessons, additional hours and/or tests, PK will ask to enter them again. For example, when PK prints “Enter the number of lessons:” if a student studying Python wants to enter 4 then PK will again print “Enter the number of lessons:” until a valid number of lessons is entered.
A typical example of the display of your program can be as follows. Your program MUST follow the same display style.
----------------------------------------------------------------------------------------------
Welcome to Dr Ho Coaching Centre
-----------------------------------------------------------------------------------------------
Enter the name of the programming language: Python
Enter the number of lessons: 4
Enter the number of lessons: 20
Enter the additional hours: 10
Enter the number of tests: 5
Tuition fee for the lessons (in dollars): 6000
Tuition fee for additional hours (in dollars): 2000
Tuition fee for the tests (in dollars): 1250
Total tuition fee (in dollars): 9250
Do you want to compute the tuition fee for another student? Y
Enter the name of the programming language: Java
Enter the number of lessons: 25
Enter the additional hours: 10
Enter the number of tests: 10
Tuition fee for the lessons (in dollars): 5000
Tuition fee for additional hours (in dollars): 1500
Tuition fee for the tests (in dollars): 1500
Total tuition fee (in dollars): 8000
Do you want to compute the tuition fee for another student? N
Good Bye.
Write an algorithm in structured English (pseudocode) that describes the steps required to perform the task specified. Some examples of pseudocode can be found athttp://www.unf.edu/~broggio/cop2221/2221pseu.htm
Select 3 sets of test data that will demonstrate the correct ‘normal’ operation of your program. Select another 2 sets of test data that will demonstrate the “abnormal” operation of your program. Set these out in the same format as in Assignment 1.
Implement your algorithm in Python.
Avoid duplicate code. For example, DO NOT calculate the tuition fee in multiple places in your code.
Comment your code as necessary to explain it clearly.
Run your program using the test data you have selected and save the output it produces in a text file.
Submit:
1. Your algorithm.
2. The table recording your chosen test data.
3. Source code for your Python implementation.
4. Output listings demonstrating the results of using the test data.
It is important that the output listings are not edited in any way.