Question: Homework 3 System and Problem for a Library Management System Smallsville, USA Our public library in Smallsville is in need of a computer system to
Homework 3
System and Problem for a Library Management System Smallsville, USA Our public library in Smallsville is in need of a computer system to help keep track of who checks books in and out, as well as to keep track of fines and print reports for us. We have been making out fine for years recording the information by hand, but Sally and Mary just dont have the handwriting they used to, especially at 72 and 81, respectively.
Our new librarian, Marcus, is young and energetic, and just doesnt have the patience to keep handwritten records. As head librarian he wants to be able to do more for our community than just keep track of books, so he wants to be able to mail out notices of special events and the like. Therefore, he has made note of the items he thinks need to be included in this system. Keep in mind that he knows very little about computers, so he has probably left some things out. Please feel free to make any additions or corrections that you feel are absolutely necessary. Also bear in mind that we are a small town, and do not have an unlimited budget for such a system or the training required to use it. A single PC should suffice for our needs right now, but we might want to grow to two or three, connected together, in a couple of years.
Here are the main items that are needed: a. Add a new library patron and be able to edit their basic information b. Remove a patron. Ensure that the patron has no books borrowed and no unpaid fines before deleting them. Provide notice appropriately. c. Print a list of all patrons (in some sensible order). d. Print a list of all patrons with outstanding fines. e. Add a new book to the catalog. Be able to edit basic book info. f. Remove a book from the catalog. Ensure no one has it borrowed. Notify appropriately and do not delete if out. g. Record a book as lost. h. Record that a particular patron is borrowing a particular book. i. Record that someone has returned a particular book. Report any fines owing and update patron account. j. Record that a patron has paid some money toward his or her outstanding fines. k. Print all overdue books, and who has them. l. Print address mailing labels Do not attempt to provide card catalog services for allowing patrons to search for books, although we may want to expand the system later to include this capability with multiple stations.
You may assume each book has a unique acquisition number, and you may use these numbers to refer to books borrowed and returned. For each book, record acquisition number, title, author and any other information you need to process the above commands. For patrons include name, complete address, a unique ID number, phone number, email and any other info you need to complete the tasks In the future we may also engage in inter-library loans with neighboring cities, and would like to consider self-check stations in the future since we have a rather small staff. Please feel free to suggest other useful and innovative technologies for future expansion.
Some Business Rules: 1. A patron can have 5 books and 2 AV items checked out at any given time 2. Book check outs are for 2 weeks maximum with 1 renewal 3. AV items can be checked out for a maximum of 2 days with no renewal 4. Reference books like Encyclopeidias, etc cannot be checked out form the library 5. A patron with an overdue item is not allowed to check out any additiona litems until the overdue item is either returned or renewed 6. All outstanding fines must be paid before a patron can check out additional items 7. The library is not open on Sunday 8. The cost for any lost books must be paid before a patron can check out additional items 9. Multiple copies of the same item will have a copy number appended to the bookID (e.g. 311.02c2 would be copy 2 of the book with id 311.02) 10. This library does not implement any sort of reserve or holding policy for items
Homework 4
For this assignment we are going to implement the Smallsville Library Management System that we designed in Homework 3. Please note that neither your design or your implementation should incorporate the AV items discussed in the requirements document. These will be address in a future assignment.
For the purposes of this assignment you will need to create a user interface menu that matches your design as well as implement each of the entities as classes in C++. Not we will be using C++ and you will need to use the g++ version of the compiler.
You may not use any of the C++ STL at this time. You may NOT use Inheritance at this time. It is STRONGLY recommended, in fact it is required, that you use a pattern-based solution such as the transaction pattern we have discussed. Other methods or designs will significantly increase your development time, stress level, as well as the degree of difficulty for this assignment. And you will lose a portion of the points since it is required. Be sure that your implementation reflects the information in your updated UML design.
You may need to modify your design from Homework 3 based on grader comments and class discussion. You will need to turn this updated design in as well as use it for the basis of your program Be sure to attend class lectures, as we will discuss many of the topics you will need to complete the assignment! Program Requirements Your program will be written in C++ not any other computer language. You will include the steps in your algorithm in your code. You may, of course, paraphrase them if you like. Your program will be graded based largely upon whether it works correctly on a CSE Department Linux machine. Your program will also be graded upon your program style. At the very least your program should include: A consistent indentation style as recommended in the textbook and in class. It should also use meaningful variable names. A block header comment section that includes: Your Name and Email Address, and a brief description of the program. You must also submit your updated UML Design file, and a short report about your efforts. Each class should have its own header (.h) and code (.cpp) file as well as a .cpp for main and, if needed, a .h file for main if any other functions of constants are needed. This means you will be turning in 2 PDFs (updated UML document and report) , 7 cpp files (6 classes and 1 main) and at least 6 header files (1 for each class) if you create a .h for main then you will have 7 header files.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
