Uploaded by Jeffrey Mak

INF1002 Group Project Assignment

advertisement
INF1002 Programming Fundamentals
Team Project Specification
1. Introduction
A database is a structured collection of data organized in a way that allows for efficient storage, retrieval,
and manipulation of that data. A database normally has many data tables and each data table includes
data for a group of similar records. For example, one data table could be used to store the prices of fruits.
Another data table could be used to store the names of students. Each data table can have multiple
records and each record will have two parts: Key and Value. The Key is the field that is used to uniquely
identify and retrieve records from the data table. The Value is the content associated with the Key.
For example:
Data Table: FruitPrice
Key
Apple
Orange
Watermelon
Value
2.3
2.5
5.6
Data Table: StudentName
Key
2301234
2201234
2304567
Value
Frank
Daniel
John
A Database Management System (DBMS) is software that provides an interface for users’ interacting
with databases. It is a crucial component in modern information systems and plays a central role in
storing, retrieving, and managing data. DBMS provides several fundamental operations for interacting
with data stored in a database. These operations typically include: Insert (Add), Query, Update (Edit),
and Delete.
2. Detailed Requirements
Your team is required to implement EzDB, a simple database management system in C with the
requirements described as below. The programme will be using a command-line-like interface; no
graphical UI is required.
2. 1. File Database
A file will be used as the database to store all the data records. Only ONE data table needs be
implemented in your file database and the data types for the Value of all records should be the same.
For example, you may choose your own database with:
•
•
•
a FruitPrice data table (the Key is the FruitName and the Value is the Price), or;
a StudentName data table (the Key is the StudentID and the Value is the StudentName), or;
an InternationalCallingCode data table (the Key is the CountryName and the Value is the
CountryCode), etc.
Please name your database file in the following convention:
•
DataTableName.txt. For example: FruitPrice.txt
Your programme should accept the following command inputs from the user:
• “OPEN FruitPrice.txt”: to open an existing database file and read all the records into memory
ready for operations (Section 2.2).
• “SAVE FruitPrice.txt”: to save all the latest records in memory into the database file.
Please choose a different data table other than the abovementioned 3 sample data tables.
2.2. Operations
Your programme should allow the users to conduct the following operations on the data records read
from the file database.
•
•
•
•
•
SHOW ALL: to show all the current records.
INSERT: to add a new record to the database.
QUERY: to search for a record in the database.
UPDATE: to update the value for a given record.
DELETE: to delete a record from the database.
Below describes how each operation works for EzDB (assume that you choose the FruitPrice data table).
Operation
SHOW ALL
Key
Value
COMMAND
SHOW ALL
Description
To display all the current records in the following format:
e.g.
“
There are in total 3 records found:
Mango 6.5
Apple 3.2
Watermelon 5.1
“
INSERT
Mango
6.5
INSERT Mango 6.5
If there is no existing record with Key=Mango found in
the database, a new record with Key=Mango and
Value=6.5 will be inserted into the present records. Upon
success, EzDB will prompt:
•
“A new record of Key=Mango, Value=6.5 is
successfully inserted.”
If the record with Key=Mango exists in the original data
table, it will simply prompt:
•
“The record with Key=Mango already exists in
the database.”
QUERY
Mango
QUERY Mango
To search if there is any existing record with the
Key=Mango.
If the record exists, EzDB will prompt:
•
“A record of Key=Mango, Value=6.5 is found
in the database.”
If there is no record found, EzDB will prompt:
•
“There is no record with Key=Mango found in
the database.”
UPDATE
Mango
5.0
UPDATE Mango 5.0
If the record with Key=Mango is found, then update the
Value of the record with Key=Mango from 6.5 to 5.0 and
prompt:
•
“The value for the record of Key=Mango is
successfully updated.”
If there is no record with Key=Mango found, EzDB will
prompt:
•
“There is no record with Key=Mango found in
the database.”
DELETE
Mango
DELETE Mango
If the record with Key=Mango is found, delete the record
and prompt:
•
“The record of Key=Mango is successfully
deleted.”
If there is no record with Key=Mango found, prompt to
the user:
•
“There is no record with Key=Mango found in
the database.”
2.3. Declaration of non-plagiarism
It is required that the EzDB programme will output the following content when it is started:
“
Declaration
SIT’s policy on copying does not allow the students to copy source code as well as assessment solutions
from another person or other places. It is the students’ responsibility to guarantee that their assessment
solutions are their own work. Meanwhile, the students must also ensure that their work is not accessible
by others. Where such plagiarism is detected, both of the assessments involved will receive ZERO mark.
We hereby declare that:
• We fully understand and agree to the abovementioned plagiarism policy.
• We did not copy any code from others or from other places.
• We did not share our codes with others or upload to any other places for public access.
• We agree that our project will receive Zero mark if there is any plagiarism detected.
Declared by: Group Name: (please insert your group name)
Team members:
1. XXX
2. XXX
3. XXX
4. XXX
5. XXX
6. XXX
Date: (please insert the date when you submit your group project).
“
3. Report
In addition to your code, you must also submit a brief technical report that describes how the program
works and how you went about constructing it. In particular, it should contain:
• a technical description of how the programme is structured.
• a breakdown of the contribution made by each team member to the project.
• Technical descriptions explaining what data structures (if any) were used and why these were
chosen.
There should be of sufficient detail in your report that someone else who has also studied INF1002
would be able to implement a similar program without needing to refer to your code.
The report does not need to contain a user guide for the program.
4. Timeline and Deliverables
By 11:30pm, 23 Nov 2023, Final Submission
Thursday
Submit a zip file to your group’s xSiTe
Dropbox, including:
• All C source code
• The compiled and runnable .exe file
• Report
The zip file should be named in format of:
“INF1002C-TeamX”.zip.
For
example:
“INF1002C-P1-1.zip”.
By 11:30pm, 24 Nov 2023, Peer Evaluation
Friday
Complete your
TEAMMATES.
peer
evaluation
on
Otherwise,
• There will be a 10% penalty for your
own peer evaluation mark.
• The contribution credits will be
evenly distributed among the other
team members.
5. Late Submission
A penalty of 20% per day for each deliverable will be imposed for late submission unless extension has
been granted prior to the submission date. Request for extension will be granted on a case-by-case basis.
Any work submitted more than 4 days after the submission date will not be accepted and no mark will
be awarded.
6. Assessment criteria
Your assignment will be assessed according to the criteria listed in the mark scheme in Table 1.
Table 1 Assessment Criteria
Each requirement/function will be evaluated based on the following criteria:
Weight
Code
•
50%
•
Code completeness and correctness: implement all required features
correctly and efficiently.
Code clarity: easy to read and understand with comments and good
modularity.
Code reliability: good data validation, no bugs or errors.
•
Report
• Your report should include all required information.
• Your report should be well-organised and easy to read, without errors.
Project presentation and demonstration
• Your team should briefly present key functions and data structures
implemented (max 5 minutes);
• Your team should make a live demo of the key functions of your developed
EzDB (5-7 minutes).
• Be prepared for Q&A (max 3 minutes).
15%
15%
15%
5%
The grade for each individual member will be weighted based on the contribution and peer evaluation.
Download