Gym Management System
Gym Management System
Gym Management System
GYM MANAGEMENT
SYSTEM
TABLE OF CONTENTS
1. Introduction.
1.1 Introduction of the Project.
1.2 Objectives Of The Project.
2. System Analysis
2.1. Identification Of The Need
2.2. Preliminary Investigation
2.3. Feasibility Study
2.3.1. Technical Feasibility
2.3.2. Economical Feasibility
2.3.3. Operational Feasibility
2.4. Proposed System Functionality
5. Design
5.1. Data Flow Diagram (DFD)
5.2. Database Design
5.3. Entity Relationship Diagram
6. Source Code
7. Screen Layouts
8. Testing
9. Implementation
10. Maintenance
11. Conclusion
12. Bibliography
2
SECTION 1
INTRODUCTION
3
INTRODUCTION TO THE PROJECT
4
OBJECTIVES OF THE PROJECT
5
What the Software Provides in this Regard?
The software is capable enough to allow the concerned person to
store and retrieve any type of record with just a single click of
mouse.The software allows Interactive ,Self decribing Graphic User
Interface environment where even standalone users can work very
comfortably and easily.
6
SECTION 2
SYSTEM ANALYSIS
7
System Analysis
refers into the process of examining a situation with the intent of
improving it through better procedures and methods. System Analysis
is the process of planning a new System to either replace or
complement an existing system. But before any planning is done the
old system must be thoroughly understood and the requirements
determined. System Analysis, is therefore, the process of gathering and
interpreting facts, diagnosing problems and using the information to re-
comment improvements in the System. Or in other words, System
Analysis means a detailed explanation or description. Before
computerized a system under consideration, it has to be analyzed. We
need to study how it functions currently, what are the problems, and
what are the requirements that the proposed system should meet.
System Analysis is conducted with the following objectives in mind:
6. Create a system definition that forms the foundation for all the
subsequent engineering work.
8
2.2 Preliminary Investigation
The client set is just a worker(s),who is regularly indulged in
manual maintainence transactions,keeping regular
records,maintaining the records of fine details of members.
Following manual registers are maintained:
Inventory Register:
The register is used to record the details of the
products(supplements,beverages and apparels supplied and
required) such as its ID,Description,Quantity,Price,service date,time
period for which it is under maintainence etc.
9
3. Details of findings :
An outline of the methods and procedures under-taken
by the existing system, followed by coverage of the
objectives and procedures of the candidate system.
Included are also discussions of output reports, file
structures, and costs and benefits of the candidate
system.
10
iv. The cost if nothing changes (i.e. The proposed system
is not developed).
11
2.4 Proposed System Functionality
The proposed system provides the facility to pull the data from
the server using a key (such as id) and get the desired report.
12
SECTION 3
13
Software Engineering
The basic objective of software engineering is to: develop methods
and procedures for software development that can scale up for large
systems and that can be used to consistently produce high quality
software at low cost and with a small cycle time. That is, the key
objectives are consistency, low cost, high quality, small cycle time,
and scalability.
1) Requirement Analysis
Requirement analysis is done in order to understand the problem the
software system is to solve. The problem could be automating an
existing manual process, developing a new automated system, or a
combination of the two. The amphasis in requirements analysis is on
identifying what is needed from the system, not how the system will
achieve its goals. There are atleast two parties involved in the
software development-a client and a developer. The developer has
to develop the system to satisfy the client’s needs. The developer
does not understand the client’s problem domain, and the client
does not understand the issues involved in the software systems.
This causes a communication gap, which has to be adequately
bridged during requirements analysis.
2) Software Design
The purpose of the design phase is to plan a solution of the problem
specified by the requirements documents. This phase is the first step
in moving from the problem domain to the solution domain. Starting
with what is needed, design takes us toward how to satisfy the
needs. The design of a system is perhaps the most critical factor
affecting the quality of the software. It has a major impact on the
later phases, particularly testing and maintenance.
14
The design activity is divided into two phases: System Design and
Detailed Design. In system design the focus is on identifying the
modules, whereas during detailed design the focus is on designing
the logic for each of the modules.
3) Coding
The goal of the coding phase is to translate the design of the system
into code in a given programming language. Hence during coding,
the focus should be on developing programs that are easy to read
and understand, and not simply on developing programs that are
easy to write.
4) Testing
Testing is the major quality control measure used during software
development. Its basic function is to detect errors in the software.
Testing not only uncover errors introduced during coding, but also
errors introduced during the previous phases. Thus, the goal of the
testing is to uncover requirement, design and coding errors in the
programs. Therefore, different levels of testing are used. Testing is
an extremely critical and time consuming activity. It requires proper
planning of the overall testing process. The output of the testing
phase is the test report and the error report. Test report contains
the set of test cases and the result of executing the code with these
test cases. The error report describes the errors encountered and
the action taken to remove the errors.
5) Implementation
It is the process of having systems personnel check out and put new
equipment into use, train users, install the new application and
construct any files of data needed to use it. This phase is less
creative than system design. Depending on the size of the
organization that will be involved in using the application and the
risk involved in its use, systems developers may choose to test the
operation in only one area of the firm with only one or two persons.
Sometimes, they will run both old and new system in parallel way to
compares the results.
Paradigm Applied
In this project,The Spiral Model is applied in order to provide rigid
efficiency and functionality in the overall working style of the
project.Moreover, In order to cater to new or modified requirements
of the user, Spiral model is very effective .I used “The Spiral model”
as it is best suited to those development environments where
probability of uncertainity is very high and chances of mistakes are
uncontrollable.
15
What about Spiral Model?
The spiral model is a software development process combining
elements of both design and prototyping-in-stages, in an effort to
combine advantages of top-down and bottom-up concepts. Also
known as the spiral lifecycle model, it is a systems development
method (SDM) used in information technology (IT). This model of
development combines the features of the prototyping model and the
waterfall model. The spiral model is intended for large, expensive
and complicated projects.
16
1. Evaluating the first prototype in terms of its strengths,
weaknesses, and risks;
Advantages
17
SECTION 4
18
The Methodology:
I was assigned the duty for developing a computerized system for a
fitness center. The project time and resources were very limited .
The optimum use of practical time neccessiates that every session
and every activity is planned. For effective Planning ,Efficient Project
Managerial skils are required,Efficiant skills then trace out best
methodology to be used.
The methodology used by me includes the following things:
Topic Understanding:
It is vital that the field of application as introduced in the project
may be totally a new field. So as soon as the project was allocated
to me, I carefully went through the project requirements to identify
the requirements of the project.
MEMBER DETAILS
i. Member id
ii. Name
iii. Gender
MEMBERSHIP DETAILS
i. Membership type
ii. Expiration date
MEMBERSHIP DETAILS
i. Address
ii. Date of birth
iii. Phone number
ACCOUNT INFORMATION
19
i. Due date
ii. Amount Due
iii. Amount Paid
iv. Days late
v. Balance
After processing all this information records are saved and in this
module itself there is a provision for report generation for viewing
details of all the members.
There is also a provision for generating a receipt for an individual
member thus agin giving some of his relevant details.
20
It facilitates the owner to place an order and based on the
category of the product(apparels,beverages,supplements)
following information is displayed along includin the
provision for order placement:
a.Category
b.Id
c.Description
d.Brand
e.Supplier
f.Number of cases
g.Quantity in each case
h.Case Price
i.Sales Price
j.Order Date
3. PRODUCTS
Generates an inventory record of the product based on the
product category selected and displays the following
information:
a.Category
b.Id
c.Description
d.Brand
e.Supplier
f.Number of cases
g.Quantity in each case
h.Quantity ordered
i.Case Price
j.Sales Price
k.Order Date
l.Last ordered
m.Last inventory
It also provides the facility of generating reports of all the
products of a paticular category.
21
Principal Design Features
INTRODUCTION OF VISUAL BASIC
Visual Basic has the following traits which differ from C-derived
languages:
Logical and bitwise operators are unified. This is unlike all the C-
derived languages (such as Java or Perl), which have separate
22
logical and bitwise operators. This again is a traditional feature of
BASIC.
23
may be overridden for a specific declaration by using a special
suffix character on the variable name (# for Double, ! for Single,
& for Long, % for Integer, $ for String, and @ for Currency) or
using the key phrase As (type). VB can also be set in a mode that
only explicitly declared variables can be used with the command
Option Explicit.
24
The MS Access has a good & Highly Interactive Graphic User
Interface.
MS Access is less costlier than other RDBMSs’ for small scale use.
SECTION 5
DESIGN
25
5.1 DATA FLOW DIAGRAM (DFD)
DFD is a model, which gives the insight into the information domain
and functional domain at the same time. DFD is refined into
different levels. The more refined DFD is, more details of the
system are incorporated. In the process of creating a DFD, we
decompose the system into different functional subsystems. The
DFD refinement results in a corresponding refinement of data.
Following is the DFD of the “Proposed System”. We have refined the
system up to two levels. Each break-up has been numbered as per
the rule of DFD. We have tried to incorporate all the details of the
system but there is some chance of further improvisation because of
the study that is still going on for the project development.
Member details
Database Operations on
MEMBERS record
Member list
Database Operations on
Reciept
GYM EMPLOYEES record
CENTER’S Member’s Record
RECORD
MANAGEMEN Database Operations on
Employee details
-T SYSTEM INVENTIRY record
Employee schedule
IInventory(orders
and products)
26
5.2 DATABASE DESIGN
Introduction
Database
A Database is the systematic collection of logically related Data
with some inherent purpose to access and operate on various
different data stored in the form of records so as to raise the ease
and esfficiancy in data Handelling.
Relational database
Database Tables
27
5.3 ENTITY-RELATIONSHIP DIAGRAM
28
SECTION 6
SOURCE CODE
29
{
cout<<"login succesful"<<endl;
return 1;
}
}
else{
cout<<"user name not found"<<endl;
adlogin();
cout<<"login failed"<<endl;
return 0;
}
}
int getadpassword();
};
int alogin::getadpassword()
{
string pw;
cout<<"enter the password"<<endl;
cin>>pw;
if(pw=="learnprogramo")
{
cout<<"WELCOME!!"<<endl;
return 1;
}
else{
cout<<"entered password is incorrect"<<endl;
getadpassword();
return 0;
}
}
void allotment_gold(int gc,int sc)
{
if(gc!=0)
{
cout<<gc<<endl;
cout<<"trainer alloted\n";
}
else
{
cout<<"no trainer available\n";
}
}
void allotment_silver(int gc,int sc)
30
{
if(sc!=0)
{
cout<<sc<<endl;
cout<<"trainer alloted\n";
}
else
{
cout<<"\nno trainer available\n";
if(gc!=0)
{
cout<<"enter another class\n";
allotment_gold(gc,sc);
}
}
}
int trainee_allotment(char* c)
{ char class_type[10];
int i,gold_class=3,silver_class=5;
strcpy(class_type,c);
if((gold_class!=0) || (silver_class)!=0)
{
if(strcmp(class_type,"gold")==0)
{
gold_class--;
allotment_gold(gold_class,silver_class);
}
else if(strcmp(class_type,"silver")==0)
{
silver_class--;
allotment_silver(gold_class,silver_class);
}
}
else
{
cout<<"no traianer availbale\n";
return 1;
}
}
class member
{
int member_number,j;
char mem_name[50], classs[50],timings[50];
31
float fee;
32
fee=2000;
cout<<"your monthly fee would be: "<<fee<<endl;
l=trainee_allotment(classs);
}
break;
}
time_slots();
}
void show_mem()
{
cout<<endl<<"member code: "<<member_number;
cout<<endl<<"Name: "<<mem_name;
cout<<endl<<"category: "<<classs;
cout<<endl<<"fee: "<<fee;
cout<<endl<<"contact: "<<contact;
cout<<endl<<"timings: "<<timings<<endl;
}
int getmem()
{
return member_number;
}
float getfee()
{
return fee;
}
char* getName()
{
return mem_name;
}
float getcontact()
{
return contact;
}
};
fstream fp;
member m1;
void save_member()
{
fp.open("newdata2.dat",ios::out|ios::app);
m1.create_mem();
fp.write((char*)&m1,sizeof(m1));
fp.close();
cout<<endl<<endl<<"the member has been succesfully added...";
33
getchar();
}
void show_all()
{
system("cls");
cout<<endl<<"\t\tRECORDS...";
fp.open("newdata2.dat",ios::in);
while(fp.read((char*)&m1,sizeof(m1)))
{
m1.show_mem();
getchar();
}
fp.close();
}
void display_record(int num)
{
bool found=false;
fp.open("newdata2.dat",ios::in);
while(fp.read((char*)&m1,sizeof(m1)))
{
if(m1.getmem()==num)
{
system("cls");
m1.show_mem();
found=true;
}
}
fp.close();
if(found == true)
cout<<"\n\nNo record found";
getchar();
}
void edit_member()
{
int num;
bool found=false;
system("cls");
cout<<endl<<endl<<"\tPlease Enter The member number: ";
cin>>num;
fp.open("newdata2.dat",ios::in|ios::out);
while(fp.read((char*)&m1,sizeof(m1)) && found==false)
{
34
if(m1.getmem()==num)
{
m1.show_mem();
cout<<"\nPlease Enter The New details of the member:
"<<endl;
m1 .create_mem();
int pos=1*sizeof(m1);
fp.seekp(pos,ios::cur);
fp.write((char*)&m1,sizeof(m1));
cout<<endl<<endl<<"\t Record Successfully Updated...";
found=true;
}
}
fp.close();
if(found==false)
cout<<endl<<endl<<"Record Not Found...";
getchar();
}
void delete_member()
{
int num;
system("cls");
cout<<endl<<endl<<"Please Enter The member number: ";
cin>>num;
fp.open("newdata2.dat",ios::in|ios::out);
fstream fp2;
fp2.open("Temp2.dat",ios::out);
fp.seekg(0,ios::beg);
while(fp.read((char*)&m1,sizeof(m1)))
{
if(m1.getmem()!=num)
{
fp2.write((char*)&m1,sizeof(m1));
}
}
fp2.close();
fp.close();
remove("newdata2.dat");
rename("Temp2.dat","newdata2.dat");
cout<<endl<<endl<<"\tRecord Deleted...";
getchar();
}
void fnmanage()
35
{
for(;;)
{
system("cls");
int option;
cout<<"\t***********************************************";
cout<<"\n\tPress 1 to CREATE MEMBER";
cout<<"\n\tPress 2 to DISPLAY ALL RECORDS";
cout<<"\n\tPress 3 to SEARCH FOR A PARTICULAR RECORD ";
cout<<"\n\tPress 4 to EDIT MEMBER DETAILS";
cout<<"\n\tPress 5 to DELETE MEMBER";
cout<<"\n\tPress 6 to GO BACK TO MAIN MENU";
cout<<"\n\t**********************************************";
cout<<"\n\n\tOption: ";
cin>>option;
switch(option)
{
case 1: system("cls");
save_member();
break;
case 2: show_all();
break;
case 3:
int num;
system("cls");
cout<<"\n\n\tPlease Enter The member Number: ";
cin>>num;
display_record(num);
break;
case 4: edit_member();
break;
case 5: delete_member();
break;
case 6: system("cls");
break;
default:fnmanage();
}
36
}
}
void fitness()
{
{cout<<"displaying fitness tips..."<<endl;
std::ifstream f("tips.txt");
if (f.is_open())
{
std::cout << f.rdbuf();
}}
}
void fnuser()
{
for(;;){
int m;
cout<<"1.join gym\n2.quit gym\n3.edit your profile\n";
cout<<endl<<"enter your choice"<<endl;
cin>>m;
switch(m)
{
case 1:system("cls");
save_member();
break;
case 2:delete_member();
break;
//case 3:fitness();
// break;
case 3:edit_member();
break;
}
}
}
int main()
{
int i,k;
string name,code;
cout<<"Gym Management System Project in C++"<<endl;
cout<<endl<<"SELECT
MODE"<<endl<<"1.User"<<endl<<"2.Admin"<<endl;
cin>>i;
if(i==1){cout<<endl<<"you're in user mode"<<endl;
fnuser();
37
}
if(i==2){cout<<endl<<"you're in admin mode"<<endl;
alogin ad;
k=ad.adlogin();
if(k==1)
{
fnmanage();
}
else
{
cout<<"you cannot access manageral
details!";
}
}
return 0;
}
38
SECTION 7
SCREEN LAYOUTS
39
SECTION 8
TESTING
40
Levels of Testing:
Systems are not designed as entire systems nor are they tested as
single systems. The analyst must perform both unit and system testing.
Unit Testing:
In unit testing the analyst tests the programs making up a
system. For this reason, unit testing is sometimes called program
testing. Unit testing gives stress on the modules independently of
one another, to find errors. This helps the tester in detecting
errors in coding and logic that are contained within that module
alone. The errors resulting from the interaction between modules
are initially avoided. The test cases needed for unit testing should
exercise each condition and option.
Unit testing can be performed from the bottom up, starting with
smallest and lowest-level modules and proceeding one at a time.
For each module in bottom-up testing a short program is used to
execute the module and provides the needed data, so that the
module is asked to perform the way it will when embedded within
the larger system.
System Testing:
The important and essential part of the system development
phase, after designing and developing the software is system
testing. We cannot say that every program or system design is
perfect and because of lack of communication between the user
and the designer, some error is there in the software
development. The number and nature of errors in a newly
designed system depend on some usual factors like
communication between the user and the designer; the
programmer's ability to generate a code that reflects exactly the
systems specifications and the time frame for the design.
41
Another reason for system testing is its utility as a user-oriented
vehicle before implementation.
1) Program Testing
A program represents the logical elements of a system. For a
program to run satisfactorily, it must compile and test data
correctly and tie in properly with other programs. it is the
responsibility of a programmer to have an error free program. At
the time of testing the system, there exists two types of errors
that should be checked. These errors are syntax and logic. A
syntax error is a program statement that violates one or more
rules of the language in which it is written. An improperly defined
field dimension or omitted key words are common syntax errors.
These errors are shown through error messages generated by the
computer. A logic error, on the other hand, deals with incorrect
data fields out of range items, and invalid combinations. Since
the logical errors are not detected by compiler, the programmer
must examine the output carefully to detect them.
When a program is tested, the actual output is compared with the
expected output. When there is a discrepancy, the sequence of
the instructions, must be traced to determine the problem. The
process is facilitated by breaking the program down into self-
contained portions, each of which can be checked at certain key
points.
2) String Testing
Programs are invariably related to one another and interact in a
total system. Each program is tested to see whether it conforms
to related programs in the system. Each part of the system is
tested against the entire module with both test and live data
before the whole system is ready to be tested.
3) System Testing
System testing is designed to uncover weaknesses that were not
found in earlier tests. This includes forced system failure and
validation of total system as it will be implemented by its user in
the operational environment. Under this testing, generally we
take low volumes of transactions based on live data. This volume
is increased until the maximum level for each transaction type is
reached. The total system is also tested for recovery and fallback
after various major failures to ensure that no data are lost during
the emergency. All this is done with the old system still in
operation. When we see that the proposed system is successful in
the test, the old system is discontinued.
42
4) System Documentation
All design and test documentation should be well prepared and
kept in the library for future reference. The library is the central
location for maintenance of the new system.
43
SECTION 9
IMPLEMENTATION
44
After completing the packaging process and produced distribution
media for the application, The application requires perfectly working
Microsoft Visual Studio 6.0 installed on the client system along with Ms
Offfice Access. It can run on all applicable operating systems.
45
IMPLEMENTATION
Conversion
Direct Implementation
46
SECTION 10
MAINTAINENCE
47
MAINTENANCE
48
SECTION 11
CONCLUSION
49
The objective of this project was to build a program for maintaining the
details of all the members,employees and inventory .The system
developed is able to meet all the basic requirements. The management
of the records (both members and employees)will be also benefited by
the proposed system, as it will automate the whole procedure, which
will reduce the workload. The security of the system is also one of the
prime concerns.
50