[SOLVED] CISC 121 - Introduction to Computer Science Assignment 2: Decomposing a Programming Problem

49.99 $

Category: Tags: , , , , , , , , , , , , ,
Click Category Button to View Your Next Assignment | Homework

You will receive the following solution file(s) instantly after successful payment:

zip file icon cisc121_ass2-wqypxb.zip (655.6 KB)
Assignment Instructions Updated Recently? Submit Below and we will provide new Solution!
Submit New Instructions
🔒 Securely Powered by:
Secure Checkout
5/5 - (1 vote)

Assignments Assignment 2: Decomposing a Programming Problem
Hide Assignment Information
Instructions
Decomposing a Programming Problem

In this assignment, you will gain experience planning the structure of your program solution given a real-world problem statement and application. For th part of this assignment, you will be planning, and then describing the structure of a program that solves the problem outlined below. At this stage, you w writing the code – just planning. In the second part of the assignment, you will write the code for your program based on the plan that you developed in t part.

Problem Statement: In this assignment, your task is to build a console version of a municipal call center records system. Each day, the City of Springfield hundreds of calls from customers – some are compliments and some are complaints. In the past, they’ve used paper to keep track of this information but skyrocketing prices of paper (not to mention the environmental costs!), the municipality has hired you to build them a computer system that will keep tra calls and retrieve information from the database.

Modular Design: In this assignment, you will be designing the structure of and writing your program by using modules to divide up the functionality of th program into separate units. A program that is not divided into modules will receive minimal marks.

The Data: You are provided with a data file which provides a log of some of the correspondence received by the City from the public. Each row of the dat correspondence artifact (i.e. email, phone call, social media message). The dataset is not an exhaustive list of all of the calls that they have received, but ra a generous sampling of a variety of their correspondence logs. The columns (or features) of the dataset are as follows:

Functionality of the Software: Your teammates consulted the City of Springfield to perform stakeholder analysis to determine what features and function each stakeholder would like to see included in the final product. Here are the notes of what they discovered:
1. Input of Data: Your program will initially read the data from the comma-separated (CSV) file into an appropriate data structure (maybe a list of lists of dictionaries? The choice is up to you as the programmer). The filename will always be the same. This means that the file name for the CSV file c hard-coded into your program. All updates are made to the data structure – not to the CSV file. Check out this resource for tips on reading a CSV f Python program.
2. Create New Record: Your program should allow the user to add a new call to the database. When a new call is added to the database, remember t adding it to the data structure (i.e. the list) that you chose to use to organize the information. The user should be prompted to input all required information: identification number, department, priority level, call type, resolution status and communication feed.
3. Retrieve and Display Records: The user should be able to search for records by the call identification number, department, priority level, call type ( complaint or compliment), or resolution status. Upon finding one or more matching records, all information for those record(s) should be printed to console. Here’s an overview of the required retrieval and display operations:
There should be an option to display all of the information for all calls in the system – no filtering based on the attributes.
There should be an option to list all calls by a given identification number, department, priority level, call type, resolution status, or commun method..
For example, if the user elects to search by “department” and enters “Roads”, all of the information (identification number, departmen priority, call type) for each of the calls associated with the roads department would be printed to the console.
4. Update Records: Your program should allow the user to make the following changes to the vehicle information. First, the user should be prompted unique identification number for the call that they would like to update. Then, the user is prompted to indicate which field (or attribute) they woul update by entering the new information.
update the department name associated with the call update the priority level.
update the call type. update the resolution type.
update the communication method.
Note: Your program should reflect any changes related to the call information directly within the data structure that you chos use. Your program is not required to re-write to the CSV after every update or addition to the data structure. You are welcom add this feature as an additional (and worthwhile!) practice exercise.
5. Remove Records: Given a unique call identification number, the program should remove the entire record from the data structure for the call assoc the identification number. The call would remain in the CSV file.
6. Output: The user should have a choice to write the call listings to a text file. If the user chooses to have the information written to a text file, your should prompt the user for the name of the file to which they wish to “write” the information. If the user requests to write the call listings to a text updates (edits, additions, or removals) that were made to the data structure since the program started and the data was initially read into the data will now be reflected in the text file.

Input Checking: When the user enters the information for a new record, your program should verify that the values are legal. If any user input is invalid, p print a meaningful error message and re-prompt the user for a valid entry.
The identification number is numeric (no other characters) and consists of only 5 digits.
The department type is one of: “ROADS”, “BYLAW”, “WASTE”, “UTILITIES”, “PARKING”, “RECREATION”, “FIRE”.
The priority level should be an integer between 1 and 5 (inclusive).
The call type is one of the following values: “COMPLAINT” or “COMPLIMENT”.
The communication channel should be one of the following values: “PHONE”, “EMAIL”, “SOCIALMEDIA” The resolution status is one of the following values: “RESOLVED” or “UNRESOLVED”.
Note that the information for department type, call type, resolution status or communication feed should be case inse the user should be able to enter “ROADS” or “roads” or “Roads”.
The identification number for the calls should be unique. When the user attempts to ad a new call to the database, your program should ensure th identification number that they entered does not already exist in the database. If it does, print a meaningful message to the user identifying the iss prompt the user for a new identification number.
The Requirements Process

For this assignment, the professor will be your stakeholder/customer. I have opened up a discussion forum called “Stakeholder Questions”. In this forum, ask me questions to clarify any of the requirements for the software.

Deliverables:
Task # 1 – Presentation: You are to create a presentation to explain the design/plan for this program. You should show the modules that you would create each module a name) and list the functions (or “tasks”) that would belong in each module. For each function, you will include the name of the function, pr brief comment for the function describing its purpose, show the parameters that the function will take and indicate what the function returns. There sho NO code in the presentation. You are to present only your design/plan.
Here is an example of what we are looking for (modeling an incomplete calculator application): Calculator Example

Task # 2 – Code: You are to write the code for the program that you planned out in the first part of the assignment.
You will notice that there are no names specified for the functions that you write. The TAs will run your program from the console when they are marki work — be sure that the user interface is user-friendly and intuitive for them to understand how to use your program.

What Do I Hand In? Please ensure that you submit two compressed folders (i.e. a “zip” folder) – each of the compressed folders should contain the files as with each part of the assignment (plan and code implementation):

Click here to access the “Stakeholder Questions” forum.
Attachments
CallLogs.csv (3.87 KB)
Download All Files
Hide Rubrics

Submit Assignment
Files to submit
(0) file(s) to submit
After uploading, you must click Submit to complete the submission.
Add a File Record Audio Record Video

Submit Cancel

  • cisc121_ass2-wqypxb.zip