Aim
The objectives of this assignment includes:
- Learning about shell filters, commands and shell scripting language
- Apply the concepts learnt by developing a simple (book) inventory shell program
Background
This assignment requires you to write a standalone Book Inventory (Shell) program. The Inventory program is normally used by the Book Store owner to keep track of book information and available quantity. It should be an interactive menu-based program allowing the owner to:
- Add new book
- Remove existing book info
- Update book info and quantity
- Search for book by title/author
- Process a book sold
- Inventory summary report
- Quit
The system allows book details to be individually entered/updated and then stored in a text file (called BookDB.txt) in the following format:
[ Title ]:[ Author ]:[ Price ]:[ Qty Available ]:[ Qty Sold ]
eg: Windows Vista in 21 days:John Goodman:33.68:100:48
MacOS X for dummies:Mary Abraham:53.48:88:38
etc
The colon (:) character is used to separate each piece of information.
Task Requirements
- Instead of specifying exactly what each function (in the above menu) is supposed to do, the bookstore owner has painstakingly documented his desired output in the following Appendices A F.
- Before you start developing your program, you should take some time to review the output, and analyze the requirements of the inventory application.
- It is recommended that you come up with some basic table of technical requirements to document what you interpret to be desired functionalities of the program, before you proceed with program development.
- Once the program is completed and tested to be working successfully, you are highly encouraged to add on new features to the program that you feel are relevant to the tasks of book inventory tracking. Additional marks may be awarded subject to the relevancy and correctness of the new functionalities.
- You are not allowed to use Java, C++ or any other languages to form the whole, or even part of your book inventory application. You have to use Shell syntax and commands for your entire program.
- However, you are not limited to using the shell commands that you have been taught. In fact, you are highly encouraged to do additional research and learn in depth about any other commands necessary to do the task efficiently and effectively.
Deliverables
- The deliverables include the following:
- The actual working shell program (hard+soft copies), with comments on each file, function or block of code to help the tutor understand its purpose.
- A word document (hard+soft copies) that elaborates on:
- (Interpreted) requirements of the inventory program
- Diagram / Illustrations of program design
- Summary of implementation of each module in your program
- Reflections on program development (e.g. assumptions made, difficulties faced, what could have been done better, possible enhancements in future, what have you learnt, etc)
- A program demo/evaluation during lab session. You must be prepared to perform certain tasks / answer any questions posed by the tutor.
- IMPT: Please follow closely, to the submission instructions in Appendix G, which contains details about what to submit, file naming conventions, when to submit, where to submit, etc.
- The evaluation will be held during lab session where you are supposed to submit your assignment. Some time will be allocated for you to present / demonstrate your program during the session.
Grading
Students deliverable will be graded according to the following criteria:
- Program fulfills all the basic requirements stipulated by the assignment
- Successful demonstration of a working program, clarity of presentation and satisfactory answers provided during Q & A session.
- Additional effort (e.g. enhancing the program with relevant features over and above task requirements, impressive, killer presentation)
- After the submission of deliverables, students will be required undergo an evaluation process (to determine fulfillment of task requirements.) Further instructions will be given by the Tutor during the subsequent respective labs. Please pay attention as failure to adhere to instructions may result in deduction of marks.
Tutors note:
In the real working world, satisfactory completion of your tasks is no longer enough. The ability to add value, communicate and/or demonstrate your ideas with clarity is just as important as correct functioning of your program. The grading criteria is set to imitate such requirements on a smaller scale.
APPENDIX A
(Sample output for function : Add New Book)
Note : Users input is underlined, to differentiate it against programs output (e.g. prompt for info)
- Add new book
- Remove existing book info
- Update book info and quantity
- Search for book by title/author
- Process a book sold
- Inventory summary report
- Quit
Please enter your option: 1
Title : Windows Vista in 21 days
Author : John Goodman
Error! Book already exists!
- Add new book
- Remove existing book info
- Update book info and quantity
- Search for book by title/author
- Process a book sold
- Inventory summary report
- Quit
Please enter your option: 1
Title : C++ for dummies
Author : Edward Scissorhands
Price : 15.01
Qty Available : 10
Qty Sold : 5
New book title C++ for dummies added successfully!
<Displays main menu again >
APPENDIX B
(Sample output for function : Remove Existing Book Info)
Note : Users input is underlined, to differentiate it against programs output (e.g. prompt for info)
- Add new book
- Remove existing book info
- Update book info and quantity
- Search for book by title/author
- Process a book sold
- Inventory summary report
- Quit
Please enter your option: 2
Title : Biography of Crocodile Dundee
Author : Crox Swamplund
Error! Book does not exists!
- Add new book
- Remove existing book info
- Update book info and quantity
- Search for book by title/author
- Process a book sold
- Inventory summary report
- Quit
Please enter your option: 2
Title : C++ for dummies
Author : Edward Scissorhands
Book Title C++ for dummies removed successfully!
<Displays main menu again >
APPENDIX C
(Sample output for function : Update Existing Book Info)
Note : Users input is underlined, to differentiate it against programs output (e.g. prompt for info)
- Add new book
- Remove existing book info
- Update book info and quantity
- Search for book by title/author
- Process a book sold
- Inventory summary report
- Quit
Please enter your option: 3
Title : Star Wars VI Return of the Jedi
Author : Obi-Wan Kenobi
Error! Book does not exists!
- Add new book
- Remove existing book info
- Update book info and quantity
- Search for book by title/author
- Process a book sold
- Inventory summary report
- Quit
Please enter your option: 3
Title : C++ for dummies
Author : Edward Scissorhands
Book found!
- Update Title
- Update Author
- Update Price
- Update Qty Available
- Update Qty Sold
- Back to main menu
Please enter your choice: a
NewTitle : C++ for Experts
Books Title has been updated successfully!
- Update Title
- Update Author
- Update Price
- Update Qty Available
- Update Qty Sold
- Back to main menu
Please enter your choice: e
New Qty Sold : 38
Books Qty Sold has been updated successfully!
- Update Title
- Update Author
- Update Price
- Update Qty Available
- Update Qty Sold
- Back to main menu
Please enter your choice: f
<Displays main menu again >
APPENDIX D
(Sample output for function : Search for Book by title/author)
Note : Users input is underlined, to differentiate it against programs output (e.g. prompt for info)
- Add new book
- Remove existing book info
- Update book info and quantity
- Search for book by title/author
- Process a book sold
- Inventory summary report
- Quit
Please enter your option: 4
Title : Star Wars VI
Author : <enter>
Found 2 records :
Star Wars VI Return of the Jedi, Obi-Wan Kenobi, $15.98, 20, 15
Star Wars VI Return of the Jedi, Darth Vader, $8.05, 30, 20
- Add new book
- Remove existing book info
- Update book info and quantity
- Search for book by title/author
- Process a book sold
- Inventory summary report
- Quit
Please enter your option: 4
Title : <enter>
Author : Scissorhands
Found 3 records :
C++ for dummies, John Scissorhands, $15.01, 10, 5
Java for dummies, Mary Scissorhands, $16.02, 20, 15
VB.NET for dummies, Edward Scissorhands, $17.03, 30, 25
- Add new book
- Remove existing book info
- Update book info and quantity
- Search for book by title/author
- Process a book sold
- Inventory summary report
- Quit
Please enter your option: 4
Title : Java for dummies
Author : Edward Scissorhands
Found 1 record :
Java for dummies, Edward Scissorhands, $16.02, 20, 15
- Add new book
- Remove existing book info
- Update book info and quantity
- Search for book by title/author
- Process a book sold
- Inventory summary report
- Quit
Please enter your option: 4
Title : The Never-ending story
Author : Kelly Longbreath
Book not found!
<Displays main menu again >
APPENDIX E
(Sample output for function : Process a book sold)
Note : Users input is underlined, to differentiate it against programs output (e.g. prompt for info)
- Add new book
- Remove existing book info
- Update book info and quantity
- Search for book by title/author
- Process a book sold
- Inventory summary report
- Quit
Please enter your option: 5
Title : Star Wars VI Return of the Jedi
Author : Darth Vader
No. of copies sold : 3
Current book info :
Star Wars VI Return of the Jedi, Darth Vader, $8.05, 30, 20
New book info :
Star Wars VI Return of the Jedi, Darth Vader, $8.05, 27, 23
- Add new book
- Remove existing book info
- Update book info and quantity
- Search for book by title/author
- Process a book sold
- Inventory summary report
- Quit
Please enter your option: 5
Title : Star Wars VII Return of the Frodo
Author : Bilbo Baggins
Error! Book does not exists!
<Displays main menu again >
APPENDIX F
|
APPENDIX G
Submission Instructions (V. IMPT!!)
- Deliverables
- All submissions should be in softcopy, unless otherwise instructed
- For the actual files to be submitted, you typically need to include the following:
- word document report (e.g. *.doc), save as MS Word 97-2003 format
- the source file(s), (e.g. *.sh, *.c, *.h, *.o, or *.cpp files)
- the executable file, compile into an executable file with *.exe
(e.g. Assn1.exe). Note: this only applies to non-shell script assignments!
- How to package
Compress all your assignment files into a single zip file. Please use the following naming format :
<FT/PT>_Assn1_<Stud. No.>_<Name>.zip
Example : FT_Assn1_1234567_JohnDoeAnderson. zip
- <FT/PT> Use FT for Full-Time student, PT if you are Part-Time student
- Assn1 if you are submitting assignment 1, Assn2 if submitting assignment 2
- <Stud. No.> refers to your UOW student number (e.g. 1234567)
- <Name> refers to your UOW registered name (e.g. JohnDoeAnderson)
- Where to submit
Please submit your assignment via Moodle eLearning site.
In the event of UNFORSEEN SITUATIONS :
( E.g. Students moodle account not ready, cannot login to moodle, eLearning site down on submission day, unable to upload assignment, etc )
Please email your single zip file to your tutor at :
[email protected] for FULL TIME students
(To be announced) for PART TIME students
In your email subject line, type in the following information :
<FT/PT> <assignment info> <student number> and <name>
Example:
To : tutors email (see above)
Subject : FT Assn1 1234567 JohnDoeAnderson
Note 1 : The timestamp shown on tutors email Inbox will be used to determine if the assignment is late or not.
Note 2 : After email submission, your mailboxs sent folder would have a copy (record) of your sent email, please do not delete that copy !! It could be used to prove your timely submission, in case the Tutor did not receive your email!
- When to submit
- Depending on the time-table, a demo / evaluation for your assignment may be scheduled during the 3rd 5th lab session for the semester (i.e. lab 3 5).
Please consult your tutor for further details. Some time may be allocated for each student to present / explain your system design during the session.
Please submit your files 1 day before the start of your demo / evaluation lab session.
- To illustrate, please refer to the following table on the different submission events and deadlines
Assignment | Submission Deadline | Assignment Evaluation (Tasks) | Email Evaluation files by : |
1 | Night before Lab 2(PT), 3(FT) | Lab 2(PT), 3(FT) | End of Lab 2(PT), 3(FT) |
2 | Night before Lab 3(PT), 4(FT) | Lab 3(PT), 4(FT) | End of Lab 3(PT), 4(FT) |
3 | Night before Lab 4(PT), 5(FT) | Lab 4(PT), 5(FT) | End of Lab 4(PT), 5(FT) |
Reviews
There are no reviews yet.