Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due
ENGR 5200G Programming Methodology and Abstraction for Engineers
Programming Assignment#2
Due by 11:59pm on Thursday, Oct 24
The objective of this assignment is to design and develop more involved C++ programs with file I/O. Your programs must be well organized and documented, compile error-free, pass cpplint, produce the correct results in a nicely formatted output. The assignment consists of two parts: Part (A) to be completed on Linux worth 50%, and Part (B) on zyBooks worth 50%.
Part (A) Choose one of the following two tasks. You are only required to provide a solution to one of the two tasks, however if you submit solutions to both tasks then only one task will be graded – randomly selected. Please accept the assignment on Github before you start writing code…you must use the starter code provided. Each task solution must consist of: a header file, an implementation file, and an application file. The header file provides the minimum functions to be implemented. Please do not create folders or subdirectories on Github for this assignment, and please remove the source code files you do not implement – for example if you implement the hotel application then remove files for the library application and vice versa. No command line arguments in this assignment.
Task#1: Hotel booking system
It is up to you if you want to have one booking_transactions.log for all accounts, or one per account.
Sample menu:
2. Check availability
3. Book room
4. Cancel booking
5. Show all transactions
6. Exit
Task#2: Library information system
Design and develop a C++ application for managing a digital library system. The application should include functionalities for adding new books, deleting books, searching for books by various criteria (title, author, genre), and checking out and returning books.
Your solution should utilize the following files from GitHub (library.h, library.cpp, libraryapp.cpp) – note you need create the books.db file referenced in libraryapp.cpp. This application will interact with users through a textual menu, allowing them to perform the listed operations. The application should keep running, displaying the menu after each operation until the user decides to exit.
Sample menu:
Part (B) Complete the following three labs in zyBook: 6.22 Word frequencies; 7.25 Word frequencies - functions; and 7.23 Flip a coin.
Submission Guidelines
If you do not have a Github account, please create one using your @ontariotechu.net email address. Once you have your Github account ready, and if you have not used Git or Github before, please go to the following Github Classroom link for a quick hands-on tutorial – Fundamentals of Git and Github: https://classroom.github.com/a/8HiEET_o
For this course you can use the web interface, vscode, or the git command line – your choice. Just make sure you test all of your programs on Linux and once submitted, download your repo and test it.
Once you have completed a Github tutorial, now for Assignment#2 please accept the invite for the assignment link – ensure you select the correct name before you proceed: https://classroom.github.com/a/-SkxRaoy
Grading Rubrics
|
Item (%) |
Excellent (full mark)
|
Good (75%)
|
Satisfactory (50%)
|
Unsatisfactory (25%)
|
Zero (zero) |
|
Functionality and Readme file
(50)
|
Fully functional, output is nicely formatted, with no errors or warning
|
Functional but output is poorly organized, & readme file lacks details.
|
Basic functionality. Readme file does not follow guidelines.
|
Error messages during run. Readme file not helpful
|
Doesn’t compile or run, no readme file.
|
|
Source code (20)
|
Follows coding standards (name, date, title, meaningful variable names, whitespaces, etc.).
|
Readable source code. Doesn’t follow coding standards.
|
Spaghetti code.
|
Code provided is incomplete or does not make sense.
|
No source code provided or the source code is not accessible.
|
|
Documentation
(15)
|
Fully documented, including purpose of program.
|
Good but not everything is documented.
|
Basic minimal documentation.
|
Documentation does not help understand the code.
|
No documentation.
|
|
Linter - cpplint (15)
|
No errors. |
One error. |
Two errors. |
Three errors. |
Four or more errors.
|