Santa Claus needs to automate the compiling of the naughty and nice lists. Your program will read in each child’s name and their count of major and minor good deeds and their major and minor bad deeds. With that information, compute an overall score and determine if they go on the naughty or nice list.
Major good deeds might be something like shoveling the walk and driveway for the chronologically challenged lady down the street, a minor good deed would be bringing her newspaper up from the drive to the porch on a rainy day. Bad deeds, well, you get the point.
Save the kids_list.txt file to your working folder.
The scoring
In the data file, each child’s name is followed by 4 integers:
Joe Smith 5 12 4 7
where the numbers are, in order: major good deeds, minor good deeds, major bad deeds, minor bad deeds.
Overall score is calculated as follows:
score = 5 * major good + minor good – 10 * major bad – 0.5 * minor bad
If the resulting value is positive, the child will go on the nice list. If negative, on the naughty list. If exactly 0, randomly choose which list (flip of a coin, see below)
Functions
Your program must have the following functions:
read_data( ) given the file name, opens and checks the file, reads each line of the file, consisting of first and last names followed by four numbers, into a list, converts the four number to integer values, adds to overall list of children. Returns the list, empty list if file was empty, or -1 if the file fails to open
naughty_nice( ) given a list with four integers, computes the total score using formula above. Returns True if positive, False if negative, randomly True or False if 0
write_lists( ) given a list containing lists with children’s’ names and True or False to indicate nice or naughty, as well as the names of the nice and naughty files, opens and checks the files, writes each child’s name to the appropriate file. Returns -1 if a file fails to open, total count of records written otherwise.
main( ) may do all the remaining program actions: call read_data, iterate through the chidlrens’ records, passing only the scores to the naughty_nice function. As each child is scored, built list with only names and True or False. Pass score list and output file names to write_lists. Compare return value with count of children to ensure all records written
Error conditions
You must check the return values from read_data and write_lists. A return of -1 indicates the respective file did not open, thus there is no data to process. Display an error message and return at that point.
Also test that the list returned from read_data actually has content, it’s possible the file existed but was empty. If the length of the list is 0, display a message and return at that point.
Test that the number of records written by write_lists matches the number of records in the actual data list.
Files
The kids_list.txt file is formatted as:
Sally Jones 10 15 2 6
Bob Smith 7 22 3 9
Ed Martin 12 20 2 8
good_kids.txt should have the following:
Sally Jones
Bob Smith
Ed Martin
Marty Miller
Martha Raye
Billy Martin
Jane Walters
bad_kids.txt should have the following:
Alan Gollum
Sam Johnson (Sam could be on either list, his score is 0)
John Robertson
Johnny Eller
Rhonda Flack (Rhonda could be on either list, her score is 0)
Kathy Jackson
The lists
The main data list will look like:
[['Sally', 'Jones', 10, 15, 2, 6], ['Bob', 'Smith', 7, 22, 3, 9], ...
A list that is sent to the naughty_nice function will look like:
[10, 15, 2, 6]
The list that is sent to the write_lists function will look like:
[['Sally', 'Jones', True], ['Bob', 'Smith', False]
I'm writing this in Python Geany
import random
def read_data(filename):
# Open file inside try, except in case file could not be opened
try:
file_read = open(filename, 'r')
kids_list = []
# Iterate over file line by line
for line in file_read.readlines():
data = line.strip().split() # split line. strip is use to remove trailing spaces
# for values in data from index 2 (means when the score starts) convert each to int
for i in range(2, len(data)):
data[i] = int(data[i])
# append this list data to kids_list
kids_list.append(data)
file_read.close() # close the file
return kids_list # return kids list
except IOError:
return -1 # return -1
def naughty_nice(score_list):
# Calculate score and return True, False, random accordingly
score = 5 * score_list[0] + score_list[1] - 10 * score_list[2] - 0.5 * score_list[3]
if score > 0:
return True
elif score < 0:
return False
else:
return random.choice([True, False])
def write_lists(kids_new_list, nice_file, naughty_file):
# Open files inside try,except
try:
total_records = 0
file_nice = open(nice_file, 'w')
file_naughty = open(naughty_file, 'w')
# Iterate over kids in list, If true write the record in nice file else naughty file
for kids in kids_new_list:
if kids[2] is True:
file_nice.write(kids[0] + ' ' + kids[1] + '\n')
else:
file_naughty.write(kids[0] + ' ' + kids[1] + '\n')
total_records += 1 # Add 1 to total_records
# close files
file_nice.close()
file_naughty.close()
# return total_records
return total_records
except IOError:
return -1 # return -1
def main():
kids_list = read_data('kids_list.txt') # call function to create list
if kids_list == -1: # If its -1, print error message and exit
print("Could not open file!")
exit(0)
elif len(kids_list) == 0: # If list is empty, print message and return
print('File is empty')
exit(0)
else: # Else, call naughty_nice to get score and built list with only names and True or False
kids_new_list = []
for kids in kids_list:
result = naughty_nice(kids[2:])
kids_new_list.append([kids[0], kids[1], result])
# call function to write records
total = write_lists(kids_new_list, 'good_kids.txt', 'bad_kids.txt')
if total == -1: # If -1 , print message and exit
print('File cannot be opened')
exit(0)
else:
if total == len(kids_list):
print('All records are written')
print('Total records:', total)
main()
SCREENSHOT



INPUT FILE - kids_list.txt

OUTPUT

OUTPUT FILE -
good_kids.txt and bad_kids.txt


Santa Claus needs to automate the compiling of the naughty and nice lists. Your program will...
Santa Claus allegedly keeps lists of those who are naughty and those who are nice. On the naughty list are the names of those who will get coal in their stockings and therefore no gifts. On the nice list are those who will receive gifts. Each object in on the nice list contains child's name (string) and a list of that child's list of gifts (an instance of ADT list).Design an ADT for the objects in the nice list. Each...
Use the csv file on spotify from any date
Code from lab2
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Scanner;
public class SongsReport {
public static void main(String[] args) {
//loading name of file
File file = new File("songs.csv");
//reading data from this file
//scanner to read java file
Scanner reader;
//line to get current line from the
file
String line="";
...
CSC 142
Music Player
You will complete this project by implementing one class.
Afterwards, your program will play music from a text file.
Objectives
Working with lists
Background
This project addresses playing music. A song consists of notes,
each of which has a length (duration) and pitch. The pitch of a
note is described with a letter ranging from A to G. 7
notes is not enough to play very interesting music, so there are
multiple octaves; after we reach...
Please provide the full code...the skeleton is down below: Note: Each file must contain an int at the beginning, stating the number of records in the file. Afterwards, the number of records in the file will follow. Each record that follows will consist of a last name (String), and a gpa (double). However, to test the error handling of your program, the number of records will not always match the int value. All possible combinations should be tested. 1.) Prompt...
Using Merge Sort: (In Java) (Please screenshot or copy your output file in the answer) In this project, we combine the concepts of Recursion and Merge Sorting. Please note that the focus of this project is on Merging and don't forget the following constraint: Programming Steps: 1) Create a class called Art that implements Comparable interface. 2) Read part of the file and use Merge Sort to sort the array of Art and then write them to a file. 3)...
Write a C++ program named, gradeProcessor.cpp, that will do the following tasks: -Print welcome message -Generate the number of test scores the user enters; have scores fall into a normal distribution for grades -Display all of the generated scores - no more than 10 per line -Calculate and display the average of all scores -Find and display the number of scores above the overall average (previous output) -Find and display the letter grade that corresponds to the average above (overall...
The following are screen grabs of the provided files
Thanks so much for your help, and have a nice day!
My Java Programming Teacher Gave me this for practice before the exam, butI can't get it to work, and I need a working version to discuss with my teacher ASAP, and I would like to sleep at some point before the exam. Please Help TEST QUESTION 5: Tamagotchi For this question, you will write a number of classes that you...
python 3 question Project Description Electronic gradebooks are used by instructors to store grades on individual assignments and to calculate students’ overall grades. Perhaps your instructor uses gradebook software to keep track of your grades. Some instructors like to calculate grades based on what is sometimes called a “total points” system. This is the simplest way to calculate grades. A student’s grade is the sum of the points earned on all assignments divided by the sum of the points available...
Code is in C#
Your instructor would like to thank to Marty Stepp and Hélène Martin at the University of Washington, Seattle, who originally wrote this assignment (for their CSE 142, in Java) This program focuses on classes and objects. Turn in two files named Birthday.cs and Date.cs. You will also need the support file Date.dll; it is contained in the starter project for this assignment. The assignment has two parts: a client program that uses Date objects, and a...
Please read the article and answer about questions. You and the Law Business and law are inseparable. For B-Money, the two predictably merged when he was negotiat- ing a deal for his tracks. At other times, the merger is unpredictable, like when your business faces an unexpected auto accident, product recall, or government regulation change. In either type of situation, when business owners know the law, they can better protect themselves and sometimes even avoid the problems completely. This chapter...