TCP1101 Programming Fundamentals Basic Data Analysis Program (BDAP)
TCP1101 Programming Fundamentals Basic Data Analysis Program (BDAP)
Overview
Data Analysis Program (BDAP) is a software program to automatically enable users to analyze a data file
provided by the user. The program should enable users to analyze and generate reports. The program will
keep track (log) of the user and the operations performed until the user exits the system.
You may have a maximum of 4 people per group within the same tutorial section. It is the duty of each
group to split the work equally among team members. Any student found to have less than the expected
share of the work (coding) will be penalized.
Every group must prepare a short video of less than 10 minutes presenting their system and each member
briefly explains his contribution to the project. The video must include the group’s structured chart and an
explanation of their menu system.
Members of the group may be contacted to have a physical or video meeting with your lecturer to validate
your work. You might be asked to modify the existing code to change the implementation to prove that you
have wrote the sections that your name appears on.
All the programs will be checked for plagiarism, which can identify code copied from others outside your
team. If you copy code from anyone else, you will be given zero.
You are expected to write your own code. If you learn and use code snippets from the internet, you must
provide the reference(s).
You must use C++11 standard and only those concepts taught in the course.
Functional Requirements
Below are the main function requirements that this assignment should deliver.
This requirement focuses on operations related to user accounts. Users must have registered a user
account before using the system. The sub-requirements are shown below.
No Sub-Requirement User Description
1
F1.1 Create user account Admin Administrator is the only user who can create
users and deletes them
The user profile should contain at least the
following data items:
User name
Password (must start with letter, must
contain a digit and a capital letter)
User type (Administrator or Buyer)
status (active, deleted)
F1.2 Login to a user Admin Registered user login to the system by typing the
account User username and password
The login is successful when the typed username
and password matches the registered username
and password stored in its persistent storage.
Otherwise, the login is unsuccessful and the user
can login again
The login page must contain the user name placed
at the top of the page (centered).
F1.3 Logout from a user Admin Performed only by users who have logged in to the
account User system
When the user logout, it is directed to the login
screen
2
No Sub-Requirement User Description
F2.1 Load data file User The data is loaded to a proper data
structure (array, vector, list, …)
The loader should detect errors:
File exist error
Data format error
F2.2 Save as User Save the file with another name
F2.3 Save report User Saves reports into a text file based on the
option selected by the user:
F2.4 Save report HTML User Saves a fully generated report of the statistical
computations and tables in a single HTML
report to be displayed using a web browser.
F2.5 Log User Save all the transactions of the user from log
in to logout.
Your transactions should be stored each on a
single line
Each line will only name the operation done
and column titles selected for the operation
3
F3.7 Correlation between any User Compute the Pearson’s correlation between any
selected 2 columns two selected columns showing the table of
computation of the correlation (correlation
measures the strength of association between two
quantitative variables).
F3.8 Distinct data members User Display the distinct numbers (no repetition)
and a count of the occurrences of each number
(frequency) in a tabular form.
Your tabular form must include header titles
and must be displayed and formatted nicely.
F3.9 Plot A histogram (text mode) User For any selected column, plot a
histogram for the data column
Example Histogram
F4.1 Main page Admin, Program title, user name, and possible
User functions of a specific user.
Design your own style of menu to
cover all the functional requirements
F4.2 Statistical Analysis Menu User Contains all the statistical functionalities and
their required parameters input and menus.
F4.3 Reports menu User Generate reports for all the statistical
computations individually.
It should contain the column and the
statistical values computed.
4
F4.4 HTML generated Report User Same as F4.3 but stored as an HTML
document.
F4.5 Error Checking User Your menu should respond to wrong input
of selection with appropriate error
messages
Non-functional Requirements
The system will be evaluated with respect to its usability under the following point of view:
1. Modularity: Each function must have single responsibility and should never exceed 30 lines of code.
2. Programming Style: User proper indentation, appropriate identifier names, inline comments, and
each function must be preceded by a comment section explaining that function.
3. Efficiency of use: the average time it takes to accomplish a user’s goals, the number of operations
completed without errors, etc.
2. User friendly interface: how positive is the user experience when interacting with the system, how
simple it is to understand the interface, headings, etc.
3. Program errors: errors are identified to accomplish tasks
Persistent Storage
Persistent storage is defined as any data storage (e.g. file and database) that retains its data after power to
that device is shut off. This project requires persistent storage for the following data
Administrators
Users
Saved reports
5
Deliverables
C++ Source code for the entire program
Every function and class must be commented to show what the purpose of that class is and the
student who implemented it.
All the code must be properly indented.
Report containing
TCP1101 Assignment
Trimester 1, 20__/20__
by <<TEAM NAME>>
Team Leader: Name, phone number, email
Team members:
Name, phone number, email
Name, phone number, email
Name, phone number, email
Instructions how to compile & run your program and user documentation on how to use your
program. The lecturer marking might not have your IDE, or a different version of your IDE. You
are responsible for any loss of marks if the lecturer has trouble compiling and running your
code. (Especially be careful of capitalization of file names – Windows ignores the capitalization
of file names, but LINUX and Mac do not. Some of the lecturers might be marking on LINUX or
Mac.)
Structed chart – showing the organization of your functions and menu design.
Algorithms (pseudo code or flowchart) used in the solution with brief explanation of each one.
Zip up all the source code files together with the report (PDF) and submit to the MMLS Assignment
submission system by 6 pm of the due date. Each group submits one project, according to their MMLS
group.
Do not email us your project unless MMLS Assignment Submission is not working.
If you have submitted a version, but then change it, you can re-submit until the cut-off date for each of
these items, and the new version will replace the old version.
Report
Part 1:
● Problem statement
● Functional requirements
6
● Algorithms (flowcharts and pseudocode) and proper explanation for the computations used.
Part 2:
● Source code with inline documentation (each function must be explained)
● Video session where each student explains his contributions and a sample run of the program
● Students must reference their sources of information about major algorithms such as correlation,
and other algorithms used in their programs
● Conclusion