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

Need Help with Python program! This is what I need to do: I have some but its no

ID: 3693813 • Letter: N

Question

Need Help with Python program! This is what I need to do: I have some but its not working all the way:

Define Classes and Create Objects
For this portion of the lab, you will create a new program
Create a class named Student that holds the following data about a student:
1. Name
2. Student ID number
3. GPA
4. Expected grade in this course
5. Full time or part time
Create five student objects from this class and pass data to fill in the class data above.

Besides creating the objects, you will write a menu-driven program that performs the
following tasks:
1. Look up and print the student GPA
2. Add a new student to the class
3. Change the GPA of a student
4. Change the expected grade of a student
5. Print the data of all the students in a tabular format
6. Quit the program

#######################################################################################

Some of my choices are not working after entering all the info it will not work when I select choices then program ends. It should continue until user chooses to quit. Also I need to send the data entered to a file.

#########################################################################################

class Student:

# Initializer for Student Class
def __init__(self):
self.name = str(input("What is the name of the student? "))
self.id_number = int(input("What is the i.d. number of " + self.name + "? "))
self.gpa = float(input("What is " + self.name + "'s GPA? "))
self.expected_grade = int(input("What is the expected grade of " + self.name + "? "))
self.work_status = str(input("Does " + self.name + " work full-time or part-time? "))

menu = str("1. Look up and print the student GPA." + ' ' +
"2. Add a new student to the class." + ' ' +
"3. Change the GPA of a student." + ' ' +
"4. Change the expected grade of a student." + ' ' +
"5. Print the data of all the students in a tabular format." + ' ' +
"6. Quit the program. ")

# Student list
student_list = []

# Print a list of the instances of Student in alphabetical order
def display_students(self):
Student.student_list.sort()
print("")
for n in Student.student_list:
print(n)
print("")

# Print tabulated format of all instances of Student and attributes
def display_student_info(self):
Student.student_list.sort()
print("Name I.D. # GPA Expected Grade Employment")
print("----------------------------------------------------------")
for name in Student.student_list:
print(name, ' ', getattr(name, "id_number"),
' ', getattr(name, "gpa"), ' ', getattr(name, "expected_grade"), ' ', getattr(name, "work_status"))

# Menu selection for user
def menu_selection(self):
valid_input = False
user_input = int(input())
while valid_input == False:
try:
if int(user_input) not in range(1, 6):
raise ValueError
else:
valid_input = True
except ValueError:
print("You have entered an invalid selection for the menu. Please enter a number from 1 to 6. ")
user_input = int(input(str()))
# Look up and print student GPA
if user_input == 1:
Student.display_students(self)
name = str(input("Which student would you like to look up the GPA for? "))
print(name + ": " + getattr(Student.name, "gpa"))
# Add a new student to the class
if user_input == 2:
print("")
print("Okay. Let's add a new student to the class. ")
Student.__init__(self)
Student.student_list.append(Student.name)
# Change the GPA of a student
if user_input == 3:
print("")
print("Okay. Let's change the GPA of a student in the class.")
self.display_students(Student)
name = str(input("Which student's GPA would you like to change? "))
new_gpa = str(input("What would you like " + name + "'s new GPA to be? "))
setattr(Student.name, Student.gpa, new_gpa)
# Change the expected grade of a student
if user_input == 4:
print("")
print("Okay. Let's change the expected grade of a student.")
print("Which student's expected grade would you like to change? ")
self.display_students()
name = str(input("Which student's expected grade would you like to change? "))
new_expected_grade = float(input("What would you like " + name + "'s new expected grade to be? "))
setattr(Student, str(Student.expected_grade), new_expected_grade)
# Print the data of all the students in a tabular format
if user_input == 5:
print("")
print("Okay, here is all the data for the currently entered students: ", ' ')
Student.display_student_info(self)
# Quit the program
if user_input == 6:
print("")
print("Okay. Now quitting the program.")
quit()


def main():

count = 0
while count < 5:
Student.__init__(Student)
Student.student_list.append(Student.name)
print("")
count += 1

print("Now that the students information has been entered, you can select from the menu below to alter student data or quit the program."
+ ' ' + "Please make a selection: " + ' ')
print(Student.menu)
Student.menu_selection(Student)

main()

Explanation / Answer

Hi,..

I have edited it, and now its working fine. You wrote a perfect code by the way. Just a little corrections were needed :)

class Student:

def __init__(self):
self.name = str(raw_input("What is the name of the student? "))
self.id_number = int(raw_input("What is the i.d. number of " + self.name + "? "))
self.gpa = float(raw_input("What is " + self.name + "'s GPA? "))
self.expected_grade = int(raw_input("What is the expected grade of " + self.name + "? "))
self.work_status = str(raw_input("Does " + self.name + " work full-time or part-time? "))
menu = str("1. Look up and print the student GPA." + ' ' +
"2. Add a new student to the class." + ' ' +
"3. Change the GPA of a student." + ' ' +
"4. Change the expected grade of a student." + ' ' +
"5. Print the data of all the students in a tabular format." + ' ' +
"6. Quit the program. ")

student_list = []

def display_students(self):
Student.student_list.sort()
print("")
for n in Student.student_list:
print(n)
print("")

def display_student_info(self):
Student.student_list.sort()
print("Name I.D. # GPA Expected Grade Employment")
print("----------------------------------------------------------")
for name in Student.student_list:
print(name, ' ', getattr(name, "id_number"),
' ', getattr(name, "gpa"), ' ', getattr(name, "expected_grade"), ' ', getattr(name, "work_status"))

def menu_selection(self):
valid_input = False
user_input = int(input())
while valid_input == False:
try:
if int(user_input) not in range(1, 6):
raise ValueError
else:
valid_input = True
except ValueError:
print("You have entered an invalid selection for the menu. Please enter a number from 1 to 6. ")
user_input = int(input(str()))
# Look up and print student GPA
if user_input == 1:
Student.display_students(self)
name = str(raw_input("Which student would you like to look up the GPA for? "))
print(name + ": " + getattr(self.name,"gpa"))
# Add a new student to the class
if user_input == 2:
print("")
print("Okay. Let's add a new student to the class. ")
Student.__init__(self)
Student.student_list.append(self.name)
# Change the GPA of a student
if user_input == 3:
print("")
print("Okay. Let's change the GPA of a student in the class.")
self.display_students()
name = str(raw_input("Which student's GPA would you like to change? "))
new_gpa = str(raw_input("What would you like " + name + "'s new GPA to be? "))
setattr(self.name, self.gpa, new_gpa)
# Change the expected grade of a student
if user_input == 4:
print("")
print("Okay. Let's change the expected grade of a student.")
print("Which student's expected grade would you like to change? ")
self.display_students()
name = str(raw_input("Which student's expected grade would you like to change? "))
new_expected_grade = float(raw_input("What would you like " + name + "'s new expected grade to be? "))
setattr(Student, str(slef.expected_grade), new_expected_grade)
# Print the data of all the students in a tabular format
if user_input == 5:
print("")
print("Okay, here is all the data for the currently entered students: ", ' ')
Student.display_student_info(self)
# Quit the program
if user_input == 6:
print("")
print("Okay. Now quitting the program.")
quit()

def main():
count = 0
while count < 5:
count += 1
print("Now that the students information has been entered, you can select from the menu below to alter student data or quit the program."
+ ' ' + "Please make a selection: " + ' ')
s= Student()
print(s.menu)
s.menu_selection()

main()

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote