Starting from:
$28

$19.60

SOLVED COP3502C PROGRAMMING FUNDAMENTALS 1 Lab 7: The Cow Says

Overview This lab is designed to introduce students to the Bash Command Line Interface (CLI) and the concept of CLI arguments and give them practice writing classes. The cowsay utility is a popular Unix program from the 20th century (see https://en.wikipedia.org/wiki/Cowsay). You will write a slightly simplified cowsay program that takes in several arguments and prints out different text depending on the arguments. Tools Please note that you are strongly recommended to use a text editor and the terminal to edit and run your program and its directories. It is advised students learn/review basic Unix shell commands before beginning; a good run-through can be found here: https://linuxjourney.com/lesson/the-shell. You are also allowed to use PyCharm and its terminal to write and run your program. Follow these steps to get started on the lab: 1. Open a terminal and enter the pwd command to identify the path to the working (current) directory (folder) 2. Enter ls to list the contents of the current directory 3. Use the mkdir command to make a new directory called CowLab. 4. Use ls to see the change, then cd to change to the directory CowLab. 5. Do your lab work in that folder. Use your google skills to find more commands. You can read more information about some of these commands here: https://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/ https://pythonbasics.org/execute-python-scripts/ Specification Students will write two files: a driver file with a main() entry point (cowsay) and a data class (cow). Note that heifer_generator.py is provided for you; your code must use this class to create the cow objects. 2 PROGRAMMING FUNDAMENTALS 1 Lab 7: The Cow Says… Provided For Students - HeiferGenerator get_cows() Static method which returns a Python list of cow objects from the built-in data set. This will use the Cow constructor and image property of the cow class to properly initialize new cow objects uniquely for each data set. This means it is dependent on your Cow class, so you should write that before working on main! cowsay.py (Program Driver) Your program must accept command line arguments. Command line arguments are captured as part of the argv variable found in the sys module. This can be accessed with sys.argv after you import sys (Review lecture slides for examples!). The command line arguments that must be supported are as follows (use python command for Windows and python3 for mac): python cowsay.py -l Lists the available cows python cowsay.py MESSAGE Prints out the MESSAGE using the default COW python cowsay.py -n COW MESSAGE Prints out the MESSAGE using the specified COW If a user calls for a cow that does not exist, the program should print out “Could not find [COWNAME] cow!” Output Samples Suggested Functions The following functions are suggested to make development easier, but are not required: list_cows(cows) Displays the available cows from a Python list of Cow objects. find_cow(name, cows) Given a name and a Python list of Cow objects, return the Cow object with the specified name. If no such Cow object can be found, return None. 3 PROGRAMMING FUNDAMENTALS 1 Lab 7: The Cow Says… Cow Class The Cow class facilitates the creation and use of cow objects by providing the following methods (which students must implement): __init__(self, name) Initializes a cow object with name and image to be None get_name(self) Returns the name of the cow. Note: the name property should NOT have a setter. get_image(self) Returns the image used to display the cow (this should be called after the message has been displayed). set_image(self, image) Sets the image used to display the cow. Submissions NOTE: Your output must match the example output *exactly*. If it does not, you will not receive full credit for your submission! Files: cowsay.py, cow.py Sample Output >python3 cowsay.py Hello World! Hello World! \ \ \ ^__^ (oo)\_______ (__)\ )\/\ ||----w | || || >python3 cowsay.py -n kitteh Hello World! Hello World! \ \ \ ("`-' '-/") .___..--' ' "`-._ ` *_ * ) `-. ( ) .`-.__. `) (_Y_.) ' ._ ) `._` ; `` -. .-' _.. `--'_..-_/ /--' _ .' ,4 ( i l ),-'' ( l i),' ( ( ! .-' 4 PROGRAMMING FUNDAMENTALS 1 Lab 7: The Cow Says… >python3 cowsay.py -l Cows available: heifer kitteh >python3 cowsay.py -n ninja Hello world! Could not find ninja cow! >python3 cowsay.py Hello -n kitteh Hello -n kitteh \ \ \ ^__^ (oo)\_______ (__)\ )\/\ ||----w | || ||