Answered step by step
Verified Expert Solution
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, gettitle 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, 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
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started