This assignment focuses on the design, implementation and testing of a Python program to compute tuition charges at MSU (see below).
The deliverable for this assignment is the following file: proj03.py – the source code for your Python program
Be sure to use the specified file name and to submit it for grading via the handin system before the project deadline.
MSU has an on-line tuition calculator: http://ctlr.msu.edu/costudentaccounts/TuitionCalculatorFall.aspx
That calculator is based on information such as that posted at: http://ctlr.msu.edu/costudentaccounts/Tuition_FeesResident_Undergraduate.aspx
1. You will develop a Python program which calculates the tuition for an MSU student during Fall Semester 2016, based on parameters supplied by the user (such as the student’s residency status and class level).
2. Your program will permit mixed-case input strings. For example, the strings “yes”, “Yes”, “YES” and “yES” will all be processed by your program as equivalent user inputs.
3. The calculated tuition will be displayed with a dollar sign ($) and commas for the thousands. That is, a value of 12345.67 will be displayed as $12,345.67 by your program. Also, even dollar amounts will have zeros for cents (for example, a value of 12 will be displayed as $12.00).
4. The following tables provide the necessary values.
Tuition (per credit-hour basis)
Lower (freshman, sophomore) 468.75 1,263.00
Upper (junior, senior) 523.25 1,302.75
Graduate 698.50 1,372.00
Special Fees (per semester)
Part-Time (4 credits or fewer) Full-Time
Business – juniors and seniors 109.00 218.00
Engineering – jr., sr., graduate 387.00 645.00
Health – juniors and seniors 50.00 100.00
Sciences – juniors and seniors 50.00 100.00
Graduate – graduate1 37.50 75.00
Student-Voted Taxes (per semester)
ASMSU Tax – all undergraduate students 18.00
COGS Tax – all graduate students 11.00
FM Radio Tax – all students 3.00
State News Tax – all students with 6 or more credits 5.00
1Note that graduate engineering students pay both the Engineering Fee and the Graduate Fee.
5. Input Specification and Ordering: To facilitate grading the input must be in the following order:
a) Resident (yes/no):
b) Level—freshman, sophomore, junior, senior, graduate:
c) If level is junior, senior or graduate, ask for College. College—business, engineering, health, sciences, none:
e) Ask if the user wants to do another calculation.
6. You will be responsible for adhering to items 1-6 of the Coding Standard
1. To clarify the project specifications, sample output is provided at the end of this document.
2. Your program must accept user inputs in the order specified.
3. Python 3 provides formatting for the specified dollar output. The pound sign (#) forces the
zeros to be printed and a comma (,) causes commas to be properly placed in numbers. Note that
the ordering matters so that pound comes before comma, and they are placed immediately after
the colon and before other formatting marks, e.g. :#, Experiment in the shell.
4. The string method lower() can be used to convert all letters in a string to lower case.
5. Remember to answer the Educational Research questions at the end of this document.
When you have completed the project insert the 5-line comment specified below.
For each of the following statements, please respond with how much they apply to your
experience completing the programming project, on the following scale:
1 = Strongly disagree / Not true of me at all
4 = Neither agree nor disagree / Somewhat true of me
7 = Strongly agree / Extremely true of me
***Please note that your responses to these questions will not affect your project grade, so
please answer as honestly as possible.***
Q1: Upon completing the project, I felt proud/accomplished
Q2: While working on the project, I often felt frustrated/annoyed
Q3: While working on the project, I felt inadequate/stupid
Q4: Considering the difficulty of this course, the teacher, and my skills, I think I will do
well in this course.
Please insert your answers into the bottom of your project program as a comment, formatted
exactly as follows (so we can write a program to extract them).
# Q1: 5
# Q2: 3
# Q3: 4
# Q4: 6