Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
46 views

TCP1101 Programming Fundamentals Basic Data Analysis Program (BDAP)

The document describes the functional requirements for a basic data analysis program (BDAP). It includes requirements for user registration and authentication (F1), loading and saving data files (F2), performing statistical computations on the data (F3), and developing a menu system (F4). Some key requirements include allowing user registration but only admin can create/delete users, loading a data file with a specified format, computing statistics like minimum, maximum, mean, and standard deviation on columns of data, and plotting a histogram for any selected column. Users will be logged and must complete the work equally for a group assignment.

Uploaded by

Nur Najwa Nazri
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views

TCP1101 Programming Fundamentals Basic Data Analysis Program (BDAP)

The document describes the functional requirements for a basic data analysis program (BDAP). It includes requirements for user registration and authentication (F1), loading and saving data files (F2), performing statistical computations on the data (F3), and developing a menu system (F4). Some key requirements include allowing user registration but only admin can create/delete users, loading a data file with a specified format, computing statistics like minimum, maximum, mean, and standard deviation on columns of data, and plotting a histogram for any selected column. Users will be logged and must complete the work equally for a group assignment.

Uploaded by

Nur Najwa Nazri
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

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.

F1. User Registration and Authentication

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

F1.4 Delete user account Admin  Administrator can delete accounts


 By deleting the account, the user can no longer
use the deleted account’s username and
password to enter the system
 The profile of the deleted user and his logs will
not be deleted from the system. Just set to
inactive or deleted.
F1.5 Change user password Admin  The registered user can change his or her password
User

F2. Data File Reader


This requirement focuses on operations related to the administrator.

The data file has the following format:

5 ---> number of columns


Id,Age,math,science,malay ---> column titles
100 ---> number of rows
11920100,19,93,92,87 ---> row 0 with data separated by ,
11920111,20,76,87,75 ---> row 1
: :

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

F3. Statistical Computation


This requirement focuses on operations related to the User.
No Sub-Requirement User Description

F3.1 Find Minimum User  Minimum of a specific column


 Minimum of a complete row (minimum of all
the columns)
F3.2 Find Maximum User  Maximum of a specific column
 Maximum of a complete row

F3.3 Median User  Median of a specific column


 Median of a complete row

F3.4 Mean User  Mean of a specific column


 Mean of a complete row

F3.5 Variance User  Variance of a specific column


 Variance of a complete row

F3.6 Standard Deviation User  STDV of a specific column


 STDV of a complete row

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. Menu System


This requirement focuses on operations related to the User.
No Sub-Requirement User Description

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

 A header like this:

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

● The menu system: design and motivation

● Structured chart for the system sub-components

6
● Algorithms (flowcharts and pseudocode) and proper explanation for the computations used.

Part 2:
● Source code with inline documentation (each function must be explained)

● Sample input file and output generated (screen shots)

● 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

You might also like