C語言代寫 | Programming Project - Coursework 1
Programming Project - Coursework 1
- Course Specification
Create a software program in C for the management of a library, according to the specification below.
Use a git repository host like GitHub or Gitlab for version control throughout the project.
1.1 Functionalities [15 marks]:
Your program should offer the following functionalities:
- Allow new users to register with the system. To register, the user should supply his/her name, a
username and password to login into the system.
- Allow a registered user to login into the system using his/her registered credential (username and
[2 marks ]
- Allow authentic users to search for books by title, author or year of publication
- Allow users to borrow and return books
- The system should provide a special user account, the librarian, to add and remove books to the
library; You only need to support one librarian account.
- Persistence: The state of the library (books, users, and loans) is saved to a text or binary file (no
databases is required) and restored at a new execution. Your submission can contain a data file to
use as a starting point for the demo.
? Your program must have more than one module (C file). One of the modules must implement
the provided interface book_management.h.
? You can add new data fields to the existing data structures (i.e., Book and BookArray) and
create new data structures within book_management.h. However, you may not change the
function prototype provided by book_management.h.
? Your program should make use of the functions defined in book_management.h, but you are
free to create additional head files, data structures and functions to use by your program.
? The program should provide adequate error handling, .i.e., display meaningful messages if an
? You also do NOT need to implement a graphical user interface for this task. A neat text-based
interface working in the CLI (command-line interface) is sufficient for this task.
? An FAQ for CW1 is also available on Minerva. A demo video for an example implementation is
also available on Minerva. This demo video is for illustration only, and your solution does not
need to be exactly the same as the demo video (but should follow the coursework spec).
1.2 Good Programming Practice [12 marks]:
You should follow good software development practices. For this exercise, you are specifically asked to:
? Follow modular development by making sure the code is modular and well structured; code with
? Use make (Makefile) or Cmake for code compilation
? Use a git repository for version control
1.3 Reflection [3 marks]:
During marking, you will be asked to look back and reflect on your project development. Specifically, we
will ask you to reflect on:
- What went well with this project? Include specific areas of the work, programming,
- What was the hardest part of this work? Why, and what will you do to address this for
Please avoid generic statements about time-management. Focus on your C coding, design, and testing
[Total: 30 marks]