Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

You are to create an application that will read data from a file and store it in a collection of objects. You will create a

You are to create an application that will read data from a file and store it in a collection of objects.
You will create a class called Bookstore which will maintain a list of Book objects (the second class you will create).
Methods of Bookstore:
load - takes a string representing a filename, opens the file, reads the data, splits it into components, trims any extra whitespace and converts the data where necessary, and adds Book objects to the list accordingly. Don't forget to close the file when done.
add - takes the following parameters: title, subtitle, edition, authors (edition is always an integer, everything else is a string), creates a Book from it, and then adds that book to the list.
remove - takes a title and edition, finds the first book in the list that matches the criteria, and removes it from the list, returning True. If it cannot find the book, it returns False (Hint: you can assume that you won't find the item - that is, set a local variable to False - then, if you find it, set that same variable to True. Regardless, at the end of the problem, you return the status, which will be False unless you found a match.)
__str__- returns a string which is a formatted list of books, looking like the following:
Of course, it's obvious there are more than two books. Note that if the subtitle is blank, it is NOT printed.
You ask a Bookstore to stringify itself with the str function, which you have used on things like integers when printing. This method works by asking each Book object to stringify itself (using the str function). After each book, a newline is printed (to separate the books).
The constructor of Bookstore sets up the empty list as an instance variable and calls the load method on a supplied filename.
===
Methods of Book:
Book requires:
its constructor, which takes the title, subtitle, edition, and author (remember, the edition is an integer), and stores them in instance variables.
its __str__ method, which returns the Book in string form
accessors (getters) for each of the instance variables (for example, get_title would get the title)
This string form is defined as follows:
The title is printed at the left margin, then a newline is started.
The subtitle, if present, is printed one tab stop in (\t), and a newline.
Everything else is printed one tab stop in, followed by a newline.
You can see this format shown in the example above.
Your main program will simply create a Bookstore object and assign it to the variable store - you must use the filename specified below, and print the stringified Bookstore object. The data for the bookstore is stored in a file called Books.txt
This datafile has lines that look like:
Title Information, Subtitle Information, Edition, Authors
However, sometimes the subtitle information is not specified.
So, you could have:
The Essentials of Computer Organization and Architecture, ,5, Null & Lobur
You don't know how many lines are in the file. All you know is that the data is separated by commas.
IN YOUR MAIN PROGRAM, YOU MUST CALL YOUR BOOKSTORE INSTANCE store OTHERWISE THE TEST CODE WILL NOT BE ABLE TO TEST IT PROPERLY
(Note: CodeRunner in Moodle won't show the tab stops like the output we showed you - it will show it as \t characters, which is fine - but on a real console, things would be tabbed in. You still need to add the tabs.)

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Data Management Databases And Organizations

Authors: Richard T. Watson

3rd Edition

0471418455, 978-0471418450

More Books

Students also viewed these Databases questions