Programming with Python

  • May 15, 2020

ISGB 799O –Programming with Python Fall 2018Group Project Assignment – Student Query Tool (SQT)Due December 12, 2018Interim work due as described belowSUMMARYThe overall goal of your SQT program is to read student records from a file, and let the user enter queries in order to see a detail or summary report. The project uses many of the topics covered in class, including primitives, data structures, control statements, console input/output, exceptions, files, parsing, and formatting.INTERIM DELIVERABLESThere are two interim deliverables for the project. The first deliverable (Design) is a short description of the proposed data structures functions/methods. The second deliverable (Prototype) is Python code that implements some or all of the project’srequired functionality.TIMINGStepDateAssignment Published (this document)11/7Group Requests Due11/8Groups Published11/12Design Due11/28Prototype Due12/5Final Program Due12/12Groups will meet outside of class time. You should allow for adequate time to discuss, design, code, assemble, refine, and test your program.PROGRAM INPUTSThe student input file has the following fields: Student ID #Last name First nameGraduating year (e.g, 2019)Graduating term (Fall, Spring, Summer) Degree program (e.g., MSBA, MBA, etc.)This input file has a header record (a first line describing the fields in the file). Each field is separated by a tab. Example files to use (e.g, students.txt) will be posted on Blackboard.PROGRAM PROCESSINGYour program should read each record of the file once into a data structure (e.g., list, dictionary or class). The program should keep the instance of the data in memory for the duration of the program, i.e., it should not re-read the data from the file for each user query.Your program should allow queries to be entered, regarding the student list. Types of queries include:Display all student recordsDisplay students whose last name begins with a certain string (case insensitive) Display all records for students whose graduating year is a certain year Display a summary report of number and percent of students in each program,for students graduating on/after a certain yearThe exact way to get user input and display the results will be decided by the group. The user interface should be via the console (screen and keyboard).The program should anticipate and handle a number of potential errors related to user input or the file data.Optionally, an additional functionality that you choose can be added to the system. However, groups should aim for a basic working system before enhancing it.GROUPSEach student can optionally request (via a Qualtrics survey) a student that they would like to have in their group. Based on this feedback, the instructor will form groups of 3 people. Student requests will be considered when forming groups, however not all requests may be met.GRADINGAll group members of the group will receive the same grade, which will be based on:Quality of the designQuality of the code (including logic, error handling, commenting) Ability to meet the requirementsYour final .py file(s) for the program will be submitted to BlackBoard.