Python Programming: An Introduction to Computer Science
Python Programming: An Introduction to Computer Science
3rd Edition
ISBN: 9781590282779
Author: John Zelle
Publisher: Franklin Beedle & Associates
bartleby

Concept explainers

bartleby

Videos

Question
Book Icon
Chapter 11, Problem 2PE
Program Plan Intro

Modified gpasort program

Program plan:

  • Import the necessary modules in “grade_sort.py” file.
  • Define the “make_Student()” function,
    • Returns student record values to the caller.
  • Define the “read_Students()” function,
    • Returns the list of student record to the caller.
  • Define the “write_Students()” function,
    • Write the student record.
  • Define the “main()” function,
    • Get the input file.
    • Read the students record for the input file.
    • Make a “while” loop for “True”.
      • Get the type of input to sort.
        • Check whether the type is “GPA” using “if”.
          • If it is true, sort the data based on the “GPA”.
          • Use “break” to exit.
        • Check whether the type is “name” using “elif”.
          • If it is true, sort the data based on the “name”.
          • Use “break” to exit.
        • Check whether the type is “credits” using “if”.
          • If it is true, sort the data based on the “credits”.
          • Use “break” to exit.
            • Write the data into the output file.
  • Create a class Student in “gpa.py” file,
    • Define the “_init_()” method.
      • Assign name hours and GPoints.
            • Define the “get_Name()” method.
              • Return the name.
            • Define the “get_Hours()” method.
              • Return hours.
            • Define the “getQ_Points()” method.
              • Return GPoints.
            • Define the “gpa()” method.
              • Return gpa
            • Define the “make_Student()” method.
              • Return name, hours, and grade points.
            • Define the main() function.
  • Call the “main()” function.

Expert Solution & Answer
Check Mark

Explanation of Solution

Program:

File name: “gpasort.py

#Import required module

from gpa import Student

#Deine the function make_Student()

def make_Student(info_Str):

    #Make multiple assignment

    Name, Hours, Gpoints = info_Str.split("\t")

    #Return constructor

    return Student(Name, Hours, Gpoints)

#Define the function read_Students()

def read_Students(file_name):

    #Openthe input file for reading

    in_file = open(file_name, 'r')

    #Create an empty list

    Students = []

    #Create ffor loop to iterate over all lines in a file

    for line in in_file:

        #Append the line in a list

        Students.append(make_Student(line))

    #Close the input file

    in_file.close()

    #Return the list

    return Students

#Define the function write_Students()

def write_Students(Students, file_name):

    #Open output file to write

    out_file = open(file_name, 'w')

    #Create a for loop to iterate over list

    for s in Students:

        #Print output

        print("{0}\t{1}\t{2}".format(s.get_Name(), s.get_Hours(), s.getQ_Points()), file = out_file)

    #Close the output file

    out_file.close()

#Define the main() function

def main():

    #Print the string

    print("This program sorts student grade information by GPA, name, or credits.")

    #Get the input file

    file_name = 'gpa1.txt'

    #Assign the data return from read_Students()

    data = read_Students(file_name)

    #Create "while" loop

    while True:

        #Get the type

        x = (input('Type "GPA", "name", or "credits" >>>  '))

        #Check whether the type is "GPA"

        if x == 'GPA':

            #Sort the data based on the gpa

            data.sort(key=Student.gpa)

            s = "_(GPA)"

            #Use break to exit

            break

        #Check whether the type is "name"

        elif x == 'name':

            #Sort the data based on the name

            data.sort(key=Student.get_Name)

            s = "_(name)"

            #Use break to exit

            break

        #Check whether the type is "credits"

        elif x == 'credits':

            #Sort the data based on the credit points

            data.sort(key=Student.getQ_Points)

            s = "_(credits)"

            #Use break to exit

            break

        #Otherwise

        else:

            #Print the string

  print("Please try again.")

    #Assign the output file

    file_name = "GPA2" + s + ".py"

    #Writ the data into output file

    write_Students(data, file_name)

    #Print the output file

    print("The data has been written to", file_name)

#Call main() function

if __name__ == '__main__': main()

File name: “gpa.py”

#Create a class Student

class Student:

    #Define _init_() method

    def __init__(self, Name, Hours, Gpoints):

        self.Name = Name

        self.Hours = float(Hours)

        self.Gpoints = float(Gpoints)

    #Define get_Name() method

    def get_Name(self):

        #Return the name

        return self.Name

    #Define get_Hours()

    def get_Hours(self):

        #return hours

        return self.Hours

    #Define getQ_Points()

    def getQ_Points(self):

        #return grade points

        return self.Gpoints

    #Define the function gpa()

    def gpa(self):

        #return the value

        return self.Gpoints / self.Hours

#Define the function make_Student()

def make_Student(info_Str):

    #Make multiple assignment

    Name, Hours, Gpoints = info_Str.split("\t")

   #Return the constructor

    return Student(Name, Hours, Gpoints)

#Define the main() function

def main():

    #Open the input file for reading

    file_name = input("Enter the name of the grade file: ")

    in_file = open(file_name, 'r')

    #Set best to the record for the first student in the file

    best = make_Student(in_file.readline())

    #Process lines of the file using "for" loop

    for line in in_file:

        #Make the line of file into a student record

        s = make_Student(line)

        #Check whether the student is best so far

        if s.gpa() > best.gpa():

            #Assign the best student record

            best = s

    #Close the input file

    in_file.close()

    #Print information about the best student

    print("The best student is:", best.get_Name())

    print("Hours:", best.get_Hours())

    print("GPA:", best.gpa())

if __name__ == '__main__':

    #Call the main() function

    main()

Sample Output

Contents of “gpa1.txt”

Adams, Henry    127    228

Computewell, Susan    100    400

DibbleBit, Denny    18    41.5

Jones, Jim    48.5    155

Smith, Frank    37    125.33

Screenshot of output file “GPA2.py” before execution:

Python Programming: An Introduction to Computer Science, Chapter 11, Problem 2PE , additional homework tip  1

Output:

This program sorts student grade information by GPA, name, or credits.

Type "GPA", "name", or "credits" >>>  name

The data has been written to GPA2_(name).py

>>>

Screenshot of output file “GPA2_(name).py after execution:

Python Programming: An Introduction to Computer Science, Chapter 11, Problem 2PE , additional homework tip  2

Additional output:

This program sorts student grade information by GPA, name, or credits.

Type "GPA", "name", or "credits" >>>  GPA

The data has been written to GPA2_(GPA).py

>>>

Screenshot of output file “GPA2_(gpa).py after execution:

Python Programming: An Introduction to Computer Science, Chapter 11, Problem 2PE , additional homework tip  3   

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
Python - Next Birthdate In this task, we will write a program that reads birthdate data from a given CSV file, and given the current date, determines which person's birthday will be celebrated next. Create a function with the following signature: nextBirthdate(filename, date) filename: parameter, which represents the CSV filename. date: parameter, which represents the current date. The function should open the CSV file, read the birthdate data, and determine which person's birthday will be celebrated next, given the current date. The name of the person should be returned. In other words, given a date, find the person whose birthday is next. Sample Run birthdates.csv Draven Brock, 01/21/1952 Easton Mclean, 09/02/1954 Destiny Pacheco, 10/10/1958 Ariella Wood, 12/20/1961 Keely Sanders, 08/03/1985 Bryan Sloan,04/06/1986 Shannon Brewer, 05/11/1986 Julianne Farrell,01/29/2000 Makhi Weeks, 03/20/2000 Lucian Fields, 08/02/2018 Function Call nextBirthdate("birthdates.csv", "01/01/2022") Output…
Computer Science Write a program that uses 3 command line arguments to search a list of float numbers in a file and prints out the result of whether the number was found or not on the console. Also, it prints the array in the reverse order (not sorted but reverse order of how the numbers were read in). The first argument is the name of the input file which has the numbers to be searched, the second is an integer specifying how many numbers are in the input file and the third argument is the float number being searched for. Use dynamic memory allocation for the array and use a function (that returns a boolean value) to do the searching. Also make sure in the beginning of your program, that the program will execute only if exactly three arguments (other than executable name itself) are specified. at the command line.
In C++ Write a program that simulates a Magic 8-Ball. Prompt the user for a question, and randomly select a response from a vector. The attached Responses file is available if you want to use it, OR you may create your own response file, OR you can add/modify/remove the responses in the attached file. Continue to prompt for questions until the user wants to exit the program (Pick your own exit condition, but the program must loop until the condition is met!). Additional requirements: Header comments must be present Prototypes must be present if functions are used Hello and goodbye messages must be shown Use vector(s) for implementation Use comments and good style practices HINT: Read the contents of the response file into an a vector. When the user enters a question, generate a random index and display the response from the vector with that index. Make sure to check for the exit condition. To generate the random index, use the following in main() - this should be familiar by…
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Programming Logic & Design Comprehensive
Computer Science
ISBN:9781337669405
Author:FARRELL
Publisher:Cengage
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Constants, Variables, Data types, Keywords in C Programming Language Tutorial; Author: LearningLad;https://www.youtube.com/watch?v=d7tdL-ZEWdE;License: Standard YouTube License, CC-BY