The objective of this phase is to obtain a system definition which will than be
implemented if accepted in the subsequent analysis and design phases.
6. Documenting.
7. Periodic evaluating.
8. Contingency planning.
SYSTEM STUDY
The term system refers to the concept by which we can able to understand the
It is derived from the Greek word System which means an organized relationship
It is designed to achieve more than one objective. The study of system has three
basic implications:
category of persons to collect the facts about the business process and their
opinion of why things happen as they do and their views for changing the existing
process. During analysis data are collected on the available files, decision points
requirements into design specification. Design goes through logical and physical
stages of development.
input and output specifications, makes edit, security and Control specification,
physical design maps out the details of the physical system, plans the systematic
implementation, devises a test and implementation plan, and specifies any new
The objective of testing is to verify that the program function as it should, that it
confirms with its specification and solves the right problem in the real world.
The aim of debugging on the other hand is to remove program errors and does
not necessarily have the same result as testing. Testing may through errors
which have to be corrected; debugging in the sense of dealing with errors as they
become evident but otherwise “leaving well alone” , may leave at any stage some
and its output for each case checked against pre calculated correct results.
Testing must be focused on the validation of small, separate parts of the program
which do have general. The testing, takes overall constructions, proceeds from
the top to the downwards. Testing of a modular program starts with the main
As each module is validated it can be added to the structure and its subordinate
modules can be investigated. After the test short, the program output must be
compared with the pre calculated results, and if the program is at fault then the
error must be found and tested. Program testing ends when the program has
Operational systems are quickly taken for granted. Every system requires
Unlike system testing, which determine where the system fails so that the
how well the system continues to meet performance specification. It is after the
1) HARDWARE:
Processor : Pentium IV
RAM : 128 MB
2) SOFTWARE:
Turbo C++
BIBLIOGRAPHY
A system study is conducted to learn the details of the current business situation
information gathered through the system study forms the basis for creating
Technical study
Operational study
Economic study
TECHNICAL STUDY:
Technical study determines whether the organization has the technology and the
skills necessary to carry out the project, and if not how they should be obtained.
In the proposed system, the existing technology satisfies the need for the system
OPERATIONAL STUDY:
Operational study determines if the proposed system satisfies the user objectives
and can be fitted into the current system operation. Our proposed system will
certainly satisfy the objectives and it will enhance their capability. The proposed
system can be best fitted instead of the current system operation. Therefore, the
ECONOMIC STUDY:
Economic study determines whether the project goal can be achieved within the
proceed with the project at all or whether the benefits obtained from the new
system does not require much extra workforce. Labour cost is almost nil.
represents the
fundamentals define the overriding objectives for software testing. Test case
design focuses on a set of objectives. Here we discuss the testing technique that
has been applied on our project. Basically there are two testing strategies. Code
testing where the strategy examines the logic of the program. Specification
testing where the program is treated the the black box, here the instruction path
is not considered.
Apart from the above there are also some levels of test
1) Unit testing
2) System testing
4) Performance testing
5) Recovery testing
6) Procedure testing
In that case code-testing strategy is adapted where the entire logic of the
The first level of testing is called unit testing. In that, different modules are tested
against the specifications produced during design for the modules. Unit testing
essentially for verification of the code produced during the coding phase, and
The modules interface is tested to ensure that information properly flows into and
out of the program unit under test. The local data structure is examined to ensure
that data stored temporarily maintains its integrity during the steps in an
algorithm’s execution.
SYSTEM TESTING:
The next levels are system testing and acceptance testing. Here the entire
software system is tested. The reference document for those process is the
requirements document, and the goal to see if the software meets its
external behavior of the system. The internal logic of the program is not
emphasized.
fully exercise the computer-based system. Although each testing has a different
purpose, all work to very that all the system elements have been properly
that the software is worked satisfactorily. The testing will be done at the client’s
The design of tests for software and other engineered products can be the
challenging as the initial design of the product itself. Yet for reasons that we have
developing test case that may” fees right” but have recalling the objectives of
testing.
RECOVERY TESTING:
The first level of testing is called unit testing. The unit testing method where unit
error.
INTEGRATION TESTING:
The next level of testing is integrated testing. Many test modules are combined in
to sub systems, which are tested, are known the integration testing. In that, the
system is tested at the inter face between sub systems the explained in the
design process.
VALIDATION :
The system has been tested and implemented successfully and thus ensures
that the entire requirement the listed in a software requirement specifications are
displayed.
For example, if the user enters a password, the system automatically prompts for
the error checking. Such validation checks will hold good to all the forms.
APPENDIX
IN-BUILT FUNCTIONS
different header files.We can use these functions for our specific use only.These
are:
. Clrscr ().clrscr clears the current text window and places the cursor in the upper
.fopen ().fopen opens a file and associate a stream with it. Both functions return a
.fread ().fread reads a specified number of equal-sized data items from an input
output file.
.getch ().getch reads a single character directly from the keyboard, without
.getche ().getche reads a single character from the keyboard and echoes it to the
current graphics
.getmaxcolor ().getmaxcolor returns the highest valid color value that can be
passed to set color for the current graphics driver and mode.
is copied into s.
.gotoxy ().gotoxy moves the cursor to the given position in the text current text
.graphresult ().graphresult returns the error code for the last graphics operation
.initgraph().To start the graphics system, you must first call initgraph.Initgraph
initializes the graphics system by loading a graphics driver from disk(or validating
.malloc ().malloc allocates a block of size bytes from the memory heap. It allows
a program to allocate memory explicitly the it’sneeded, and in the exact amounts
needed.
.outtext ().outtext displays a text string, using the current justification settings and
the current font, direction, and size, outtext outputs text string at the current
position(cp).
.putc ().putc outputs the character given by c to the stream given by stream.
Putchar ().putchar is a macro defined the putc(c, stdout) putchar puts the
.puts ().puts copies the null-terminated strings to the standard output stream
.setbkcolor ().setbkcolor sets the current background color using the palette
.set color ().set color sets the current drawing color to color, which can range
from 0 to getmaxcolor.
.setfillstyle ().setfillstyle sets the current fill pattern and fill color.
.setline style ().setline style sets the style for all lines drawn by line, lineto,
Settextstyle ().settextstyle sets the text font, the direction in which text is
written with outtext and can’t be used with text-mode and stream functions.
.setwritemode ().sets the writing mode for line drawing in graphics mode.
.strcat ().strcat () appends a copy of src to the end of dest.The length of the
.strcpy ().copies string scr to dest, stopping after the terminating null character
Strncpy ().copies at most maxlen character of src to dest. The target string, dest,
.textwidth.textwidth takes the string length, current font size, and multiplication
factor, and determinnes the width of textstring in pixels. These functions are
useful for adjusting the spacing between lines, computing viewport heights, sizing
Textmode (). Changes screen mode (in text mode). When text mode is called,
the current window is rest to the entire screen, and the current text attributes are
.void ().Empty data type.When used the a function return type, void means that
#include<fstream.h>
#include<dos.h>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<iomanip.h>
#include<graphics.h>
class group
private:
struct person
char flag;
char empcode[5];
char name[40];
int age;
float sal;
int day;
int month;
int year;
}p;
fstream file;
public:
group();
void addrec();
void listrec();
void modirec();
void delrec();
void recallrec();
void packrec();
void exit();
};
void main()
char choice,v;
group g;
do
{
clrscr();
struct dosdate_t d;
_dos_getdate(&d);
// p.day=d.day;
// p.month=d.month;
// p.year=d.year;
// _dos_getdate(&d);
gotoxy(12,5);
textcolor(6);
cprintf("Todays date:");
printf("%d",d.day);
cout<<"/";
printf("%d",d.month);
cout<<"/";
cout<<d.year;
gotoxy(12,9);
cout<<"MICROTEK.Corporation Pvt.Ltd";
gotoxy(12,12);
cout<<"1.Add record";
gotoxy(12,15);
cout<<"2.List Record";
gotoxy(12,17);
cout<<"3.Modify record";
gotoxy(12,19);
cout<<"4.Delete record";
gotoxy(12,21);
cout<<"5.Recall record";
gotoxy(12,23);
cout<<"6.Pack record";
gotoxy(12,25);
cout<<"0.Exit";
gotoxy(12,28);
cin>>choice;
clrscr();
switch(choice)
case '1':
g.addrec();
break;
case'2':
g.listrec();
break;
case'3':
g.modirec();
break;
case'4':
g.delrec();
break;
case'5':
g.recallrec();
break;
case'6':
g.packrec();
break;
case'0':
g.exit();
exit(1);
while(choice!=0);
}
void group::group()
file.open("Emp.dat",ios::binary|ios::in|ios::out);
p.flag=' ';
if(!file)
exit();
void group::addrec()
char ch;
file.seekp(0L,ios::end);
struct dosdate_t d;
_dos_getdate(&d);
p.day=d.day;
p.month=d.month;
p.year=d.year;
cout<<"Make shure that no employee has the same code"<<endl;
do
cout<<"OR"<<endl<<endl;
cin>>ch;
if(ch=='m'||ch=='M')
main();
cin>>p.empcode>>p.name>>p.age>>p.sal;
p.flag=' ';
file.write((char*)&p,sizeof(p));
cin>>ch;
while(ch=='y'||ch=='Y');
void group::listrec()
int j=0,a;
file.seekg(0L,ios::beg);
cout<<"List of records present are as under>>>"<<endl<<endl;
"<<"|SALARY|"<<" "<<"|DATED|"<<endl;
//Donot touch Above Line Any Way it is set to give Some Nice
Look
while(file.read((char*)&p,sizeof(p)))
if(p.flag!='*')
cout<<endl<<"Record#"<<""<<j+
+<<setw(6)<<p.empcode<<setw(20)<<p.name<<setw(4)<<p.age<<setw(9)<<p.s
al<<" "<<p.day<<"/"<<p.month<<"/"<<p.year<<endl;
file.clear();
if(j==0)
gotoxy(10,10);
gotoxy(10,11);
getch();
}
else
getch();
void group::modirec()
char code[5];
int count=0;
cin>>code;
file.seekg(0L,ios::beg);
while(file.read((char*)&p,sizeof(p)))
if(strcmp(p.empcode,code)==0)
cin>>p.name>>p.age>>p.sal;
struct dosdate_t d;
_dos_getdate(&d);
p.day=d.day;
p.month=d.month;
p.year=d.year;
p.flag=' ';
pos=count*sizeof(p);
file.seekp(pos,ios::beg);
file.write((char*)&p,sizeof(p));
return;
count++;
getch();
file.clear();
void group::delrec()
char code[5];
int count=0;
cin>>code;
file.seekg(0L,ios::beg);
while(file.read((char*)&p,sizeof(p)))
if (strcmp(p.empcode,code)==0)
p.flag='*';
pos=count*sizeof(p);
file.seekp(pos,ios::beg);
file.write((char*)&p,sizeof(p));
return;
count++;
getch();
file.clear();
void group::recallrec()
char code[5];
int count=0;
cout<<"Enter employee code to be recalled :";
cin>>code;
file.seekg(0L,ios::beg);
while(file.read((char*)&p,sizeof(p)))
if(strcmp(p.empcode,code)==0)
p.flag=' ';
pos=count*sizeof(p);
file.seekp(pos,ios::beg);
file.write((char*)&p,sizeof(p));
return;
count++;
getch();
file.clear();
}
void group::packrec()
ofstream outfile;
outfile.open("TEMP",ios::out);
file.seekg(0,ios::beg);
while(file.read((char*)&p,sizeof(p)))
if(p.flag!='*')
outfile.write((char*)&p,sizeof(p));
outfile.close();
file.close();
remove("Emp.DAT");
rename("TEMP","EMP.DAT");
file.open("EMP.DAT",ios::binary|ios::in|ios::out|ios::nocreate);
gotoxy(10,10);
gotoxy(10,11);
getch();
}
void group::exit()
file.close();
}
SYSTEM ANALYSIS
facets of the area under investigation, (for this reason, the process of acquiring
with the employees and the management and they had understood the business
the business process and their opinions of why things happen as they do and
SECONDARY DATA
Before starting on the development of new system I had to look for the old records in the books
previously it was done manually and their records are maintained on register and account books.
LIVE DEMONSTRATION
It’s pleasure and luck of me that Water Department has given me chance to see the actual
process. All these processes are somehow related to each other and each activity has its own
specialty. And keeping track of those records were not easy. So it had given actual idea of what
will the inputs and the outputs.
As the details are gathered the I study the data requirements to identify features the new system
should have, including both the information the system should produce and operational features
such as processing controls, response times, and input and output methods.
EXISTING SYSTEM AND PROPOSED SYSTEM
EMPLOYEE MANAGEMENT SYSTEM of Water Department is a Government
System of Management Information System (MIS). Existing system is manual,
which is creating a lot of problems for PHE. The system in its usual form takes a
lot of time and doesn’t support the choice of the customers. Water Billing is
taking a lot of time, which is decreasing the efficiency of the work & other
activities. Inventory are not maintained properly in the record books.
• User Friendliness
The system is easy to learn and understand. A naïve user can also use the
system effectively, without any difficulty.
• User Satisfaction
The system is such that it stands up to the users expectations.
• Response Time
The response time of all the operations is very low. This has been made possible
by careful programming.
• Error Handling
Response to User Errors and undesired situations have been taken care of to
ensure that the system operates without halting in case of such situation and
proper error messages are given to user.
• Robustness
• Security
• Accuracy
• Portability
The system can be moved to a new hardware / operating system after making
minor modification to it.
ACCEPTANCE CRITERIA OF THE PROPOSED SYSTEM
The following acceptance criteria were established for the evaluation of the new
system
1. The system developed should be accurate and hence reliable i.e. the error
rate should be minimized and the outputs should be consistent and correct.
2. The developed software should provide all the required functions. Further,
both the execution time and the response time should negligibly low. It should
also satisfy the criteria specified in functional and performance requirements.
3. The system should be efficient i.e. the resource utilization should be
optional.
5.1 User Friendliness : The system should meet user needs and should be
easy to use.
5.2 Modularity : The system should have relative independent and single-
function parts that can be put together to make the complete system.
5.3 Maintainability : The system should be such that future maintenance and
enhancement times and efforts are reduced.
5.4 Timeliness : The system should operate well under normal, peak and
recovery conditions.
COMPUTER BASED SYSTEM
The elements of a computer based System will be having following features
. Software
Computer programs and related documentation that serve to affect the logical
method; procedure or control are required.
. Hardware
Electronic devices (CPU etc.) that provide computing capability and scanners
etc., that provides external world function.
. People
Users and operators of the Hardware and Software.
. Database
A large, organizes collection of information that is accessed by the software and
is an integral part of the system function.
. Documentation
Manuals, forms and other descriptive information that portrays the use and/or
operation of the system.
SYSTEM CONCEPT
Before going to design a system one should know what system means to be
Basically system is an integrated collection of components which satisfy
functions necessary to achieve the system’s goals and which have relationships
to one another that give cohesion to the system and define its structure. Basically
systems consists of three processes
Input
Processor
Output
All these processes are done by me, where I had collected the input
requirements from the user, I had designed the input structure, and for obtaining
output, user don’t know the type of process which had gone through in the
software. Conversion of input into output is called as processor. Only
programmer, I only had gone through the process between the process between
the input and output, knows processing process.
A system concept is obtained as per the need of the user. The system concept
comes in business information concept or simply information concept for the
user.
To approach towards the development of information system, knowledge
of software engineering is necessary.
SOFTWARE ENGINEERING
With the advent of software with such a force it has, become necessary for me to
become acquainted with the rules and regulations laid down during the making of
a project. In other words it has become essential for me to know the concepts of
software engineering.
The steps of software engineering will be dealt with as per the following
categories:
1. Characteristics of software
2. Problems faced by software developers
3. Project process management
4. Estimation
5. Risk analysis
During the time when computer was introduced the main point of focus was the
hardware. There was a need to develop computers with fast processing speed.
But reduced cost as the advancements kept taking place in the field of hardware;
there was a need to develop better software.
Software became more important due to following reasons:
Software characteristics
Build/Revise
Mock-up
Listen to
customer
Customer
Test drive
mockup
It is true that customer and developer like the prototyping paradigm. User gets a
feel of the actual system and developer gets to build something immediately.
Since project duration is of short period, so quick action has to be taken to build a
system. Best source is the Rapid Application Development.
In the system design phase, one of the challenging tasks is the database design,
because the whole valuable data of any Organisation is stored in the database.
Thus while designing the new system; I had first designed database using the
back-end Notepad consisting of all the tables required for the system. The
database is so designed as to minimize redundancy and is designed after
performing various forms of normalization on the preliminary designed tables.
• Identifying the entities: All the entities related to the module were identified,
checked and consolidated.
• Attributes definition: The pertaining to the entities were identified and their
field characteristics were specified.
• Interface: Interfacing with other systems was done and attributes related to
external entities were identified.
Tables were created for the system using fast path table mapping. This has
provision to map the entities and attributes into tables. The name of the entity is
taken as the table name.
• Default Database Design
This utility creates column and constraint definitions from the entity model and
the table/entity mapping entered in CASE* Dictionary. This database design
can be
refined according to your application regarding using the tables, columns and
key constraint definition screens to make amendments.
2. Check constraints.
3. Primary keys
4. Unique keys
5. Foreign keys
• Program Specifications
The program specifications were written for the masters, transactions, reports
and queries. The logic for each field, block and form were written so that
anyone who doesn’t know the system will be able to code the logic. Field
Validations and user-friendly error messages were written as a part of the
program specifications.
This is done mainly for two reasons:
Software developers may install purchased software or they may write new
custom- designed program. Choice depends on the cost of each option, time
explanation of how and why certain procedures are coded in specific ways.
Dictionary. Once the problem was well though off, and ideas were
shared/discussed among other team members about how exactly the user
interface should be and what is the best way to deduce the logic of the
application.
PROCESS LOGIC
Process logic of the software is very simple and lengthy. It requires an information
transfer. In material management section, we are using raw materials and other spares
for the production process. When it is required for production, inventory of the raw
material is updated in the database. Stock of the finished goods is also maintained
separately in the database which is used while selling, distributing and exporting
The stores department does dispatching and issuing, which is also stored in the
database. Receipt in and issuance from stores leads to proper entries in stores inventory.
All the financial process starts with the preliminary step of the accounting i.e.
from the journal entries. After submitting journal entries all the financial reports
During systems testing, the system is used experimentally to ensure that the
software doesn’t fail i.e., that it will run according to its specification and in the
way user expect. Special test data are input for processing, and the results
examined. A limited number of users may be allowed to use the system so
analysts can see whether they try to use it in unforeseen ways. It is preferable to
discover any surprise before the organization implements the system and
depends on it.
The norms that were followed during the phase were that after the developer the
software has satisfied himself regarding every aspect of the software under
consideration, he is required to ‘Release’ the program source code. A shell script
name Release used to copy the named file (s) from developer’s user area to a
project coordinator area, in the directory name with developer user name. Here
all the final testing used to be done by persons other than developers himself. If
some changes were desired in the program, the developer is required to use
another script named ‘Retrieve’, which copied back the latest version of the
program to developer’s area.
Since the users are not familiar to the new system, the data screens were
designed in such a way that they were:
• Consistent
• Easy to use
Quality assurance also includes testing to ensure that the system performs
properly and meets the requirements. Special cases of testing are validation,
verification and certification.
The purpose of testing is to find errors and not to prove correctness. The
software processes test cases, Using life or artificial data, and errors are
reported.
UNIT TESTING
INTEGRATION TESTING
SYSTEM TESTING
System testing is the testing of the system against its initial objectives. It is done
either in a simulated environment or in a live environment.
STRESS TEST
Applying Stress to a program means that a large amount of data is fed for
processing in a short period of time. In other words, consumption of computer
resource is drastically raised in that time frame with the intention to ensure that
the system will still perform effectively if the same condition occurs in the future.
TEST REVIEW
Test Review is the process which ensure that testing is carried out as planned.
Test Review decides whether or not the program is ready to be shipped out for
implementation.
For each data entry screen, I prepared test data with extreme values and tested
under all relevant test condition. It was extensively tested that all shell scripts,
package, database functions are behaving in the manner as expected of them
and giving accurate results. After my own satisfaction, I invited the concerned
users to test the relevant data-entry screens against real data. This process
helped in rectifying/modifying the modules time and again.
IMPLEMENTATION AND EVALUATION
Implementing a system, whether a new one or an existing one that has been
modified, consists of three primary activities:
1) Training
2) Conversion
3) Post implementation Review (Evaluation)
1) Training
Most user training deals with the operation of the system itself, with the most
attention given to data-handling procedures. It is imperative that users be
properly trained in methods of entering transactions, editing data, formulating
inquiries, and deleting records.
We had given on-site training to the owner and employees of the firm.
2) Conversion
It is the process of changing from old system to a new one. It must be carefully
planned and executed. There are mainly four methods present:
i) Parallel system
ii) Direct cutover
iii) Pilot approach
iv) Systems phase-in
We had planned the parallel System approach, in which records are stored
parallel in the system and also manually.
By this method we can achieve greatest security in the Installation.
Post-Implementation Review (Evaluation)
When our system was implemented and conversion was complete, we allowed
the user to use the system for one week and he gave us the following feedback.
There should be flexibility in Report generation i.e. reports should be available for
daily, weekly, monthly, quarterly and yearly basis.
OPERATIONAL EVALUATION
In this, assessment of the manner in which the system functions, including ease
of use, response time suitability of information’s formats, overall reliability, and
level of utilization is undertaken.
All the above aspects were very well taken into considerations from the very
beginning. In fact one of the user felt that they were reduced to nothing because
of the ease with which system runs, all they have to do is select from the list of
values available at every possible field in screen and press return. They don’t
have to keep checking the status of the job they are doing, since every job is on-
line and all information and messages flash at screen.
The reliability is very high and till the writing of this document, the system have
not ever failed. All the recovery methods are well written, even if something
exceptional offers it sees to it that user has a way to come out of the undesirable
situation and carry on with the work. The committing takes place when everything
goes normal.
As for as the level of utilization is concerned, is one of the busiest activity with the
orders pouring in round the clock, so the system has been utilized heavily and it
has responded favorably to the users expectations.
ORGANIZATION IMPACT
company. Especially with the increase in the ease in processing it can schedule
their manpower accordingly rather than tying up personnel for specific
application. This will rejuvenate and boost the morale of the users. This system
will go on to strengthen its leadership in the market.
DEVELOPMENT PERFORMANCE
By all means our development performance was fairly good as the project was
completed within budgets and there was no schedule slippage, target dates were
met, all along the standards that were followed were consistent.
SOFTWARE MAINTENANANCE
Once a system has been installed and is fully operational, the systems
maintenance task looms large. It is generally assigned to a systems and
programming group consisting of maintenance programmers. Thus the
responsibility gets transferred from a systems development team to a
maintenance programming team.
Systems maintenance that are considered during the development of the system
1. Adaptive Maintenance
2. Corrective Maintenance
3. Perfective Maintenance
ADAPTIVE MAINTENANCE
The adaptive maintenance begins with a request for service from the user. This may be
assessed by the committee. Once approved, it goes to the maintenance programmers
who treat it as mini systems development assignment. The maintenance programmer
must define system modification requirements, after the logical design and technical
design and revise the data dictionary to record modifications to terms used in
constructing system diagrams and Input/Output formats
In addition, adaptive maintenance also includes other housekeeping tasks
CORRECTIVE MAINTENANCE
This is performed in response to software failure. The errors that occur can be
classified as:
A solution to this is in the form of module repairing which is the redesign of error
prone modules in an implemented software system.
PERFECTIVE MAINTENANCE
Physical Security
Computer equipment and files are valuable physical assets that should be
4. Buying insurance.
Physical dangers include fire, flood, tidal wave, earthquakes and tornadoes. They
also include man-made riots, strikes, industrial accidents, loss of power etc. the
computers must be located away from the boilers, furnaces, fuel storage, heavy
engineering centres etc. for extinguishing fire, it is better to provide insert-gas fire
extinguishing as it avoids soaking computer equipment and files in water.
Limiting Protection
Limiting logical computer access is even more difficult than controlling physical
access. The businesses with remote dial up systems cannot rely only on physical
controls for computer security. Also the proliferation of person computer and its
possibility to connect to company mainframes has increased the chances of
1) Identification: There are ways to identify persons who have accessed the
computer.
(ii) Audit controls: they protect a system from external security breaches and
internal frauds. In the MIS department, the programmer can pirate, modify and
even sell software. To control this, an audit trail is a must. The best control is
through self-regulating systems. Here the controls are built in each stage and
any violation is brought to notice immediately.
As the software are available with me and I don’t have to spend it on them.
Approximate cost of the project including learning tools and software will be
around 5,000.
SOFTWARE CONCLUSIONS
Reports generated by the system will drive the management towards its
goal.
Suddenly with the advent of this system the lead-time has reduced to
some extent.
The computer based information system continues to evolve throughout its life
cycle, even if it is successful. The present system will save user time and extra
labour that is spend on maintaining all the production process, stores and
accounting records.
Because of creative nature of the design, there remain some lapses in accurate
communication between the user and the developers. So, some aspects of the
uses the system they may develop an idea for change or enhancement .
INTRODUCTION TO C++
C++ enjoys wide use in the software industry. Some of its application domains
include systems software, device drivers, embedded software, high-performance
server and client applications, and entertainment software such as video games.
Several groups provide both free and commercial C++ compiler software,
including the GNU Project, Microsoft, Intel, Borland and others.
The 1998 ANSI/ISO C++ standard consists of two parts: the core language and
the C++ standard library; the latter includes most of the Standard Template
Library (STL) and a slightly modified version of the C standard library. Many C++
libraries exist which are not part of the standard, and, using linkage specification,
libraries can even be written in languages such as C, Fortran, Pascal, or BASIC.
Which of these are supported is compiler dependent.
The C++ standard library incorporates the C standard library with some small
modifications to make it work better with the C++ language. Another large part of
the C++ library is based on the STL. This provides such useful tools as
containers (for example vectors and lists), iterators to provide these containers
with array-like access and algorithms to perform operations such as searching
and sorting. Furthermore (multi)maps (associative arrays) and (multi)sets are
provided, all of which export compatible interfaces. Therefore it is possible, using
templates, to write generic algorithms that work with any container or on any
sequence defined by iterators. As in C, the features of the library are accessed
by using the #include directive to include a standard header. C++ provides 69
standard headers, of which 19 are deprecated.
The STL was originally a third-party library from HP and later SGI, before its
incorporation into the C++ standard. The standard does not refer to it as "STL",
as it is merely a part of the standard library, but many people still use that term to
distinguish it from the rest of the library (input/output streams,
internationalization, diagnostics, the C library subset, etc.).
C++ inherits most of C's syntax and the C preprocessor. The following is a Hello
world program which uses the C++ standard library stream facility to write a
message to standard output:[5][6]
int main()
{
std::cout << "Hello, world!\n";
}
OPERATORS AND OPERATOR OVERLOADING
Templates
C++ templates enable generic programming. C++ supports both function and
class templates. Templates may be parameterized by types, compile-time
constants, and other templates. C++ templates are implemented by instantiation
at compile-time. To instantiate a template, compilers substitute specific
arguments for a template's parameters to generate a concrete function or class
instance. Templates are a powerful tool that can be used for generic
programming, template metaprogramming, and code optimization, but this power
implies a cost. Template use may increase code size, since each template
instantiation produces a copy of the template code: one for each set of template
arguments. This is in contrast to run-time generics seen in other languages (e.g.
Java) where at compile-time the type is erased and a single template body is
preserved.
Templates are different from macros: while both of these compile-time language
features enable conditional compilation, templates are not restricted to lexical
substitution. Templates are aware of the semantics and type system of their
companion language, as well as all compile-time type definitions, and can
perform high-level operations including programmatic flow control based on
evaluation of strictly type-checked parameters. Macros are capable of conditional
control over compilation based on predetermined criteria, but cannot instantiate
new types, recurse, or perform type evaluation and in effect are limited to pre-
compilation text-substitution and text-inclusion/exclusion. In other words, macros
can control compilation flow based on pre-defined symbols but cannot, unlike
templates, independently instantiate new symbols. Templates are a tool for static
polymorphism (see below) and generic programming.
Objects
The OO principle is that all of the functions (and only the functions) that access
the internal representation of a type should be encapsulated within the type
definition. C++ supports this (via member functions and friend functions), but
does not enforce it: the programmer can declare parts or all of the representation
of a type to be public, and is allowed to make public entities that are not part of
the representation of the type. Because of this, C++ supports not just OO
programming, but other weaker decomposition paradigms, like modular
programming.
It is generally considered good practice to make all data private or protected, and
to make public only those functions that are part of a minimal interface for users
of the class. This hides all the details of data implementation, allowing the
designer to later fundamentally change the implementation without changing the
interface in any way.
Inheritance
Inheritance allows one data type to acquire properties of other data types.
Inheritance from a base class may be declared as public, protected, or private.
This access specifier determines whether unrelated and derived classes can
access the inherited public and protected members of the base class. Only public
inheritance corresponds to what is usually meant by "inheritance". The other two
forms are much less frequently used. If the access specifier is omitted, a "class"
inherits privately, while a "struct" inherits publicly. Base classes may be declared
as virtual; this is called virtual inheritance. Virtual inheritance ensures that only
one instance of a base class exists in the inheritance graph, avoiding some of the
ambiguity problems of multiple inheritance.
Polymorphism
Polymorphism enables one common interface for many implementations, and for
objects to act differently under different circumstances.
Static polymorphism
When declaring a function, a programmer can specify default arguments for one
or more parameters. Doing so allows the parameters with defaults to optionally
be omitted when the function is called, in which case the default arguments will
be used. When a function is called with fewer arguments than there are declared
parameters, explicit arguments are matched to parameters in left-to-right order,
with any unmatched parameters at the end of the parameter list being assigned
their default arguments. In many cases, specifying default arguments in a single
function declaration is preferable to providing overloaded function definitions with
different numbers of parameters.
Like most imperative languages in the ALGOL tradition, C has facilities for
structured programming and allows lexical variable scope and recursion, while a
static type system prevents many unintended operations. In C, all executable
code is contained within functions. Function parameters are always passed by
value. Pass-by-reference is achieved in C by explicitly passing pointer values.
Heterogeneous aggregate data types (struct) allow related data elements to be
combined and manipulated as a unit. C program source text is free-format, using
the semicolon as a statement terminator (not a delimiter).
C also exhibits the following more specific characteristics:
This is a list of operators in the C++ and C programming languages. All the
operators listed exist in C++; the third column indicates whether an operator is
also present in C. It should also be noted that C does not support operator
overloading.
The following operators are sequence points in both languages (when not
overloaded): &&, ||, ?:, and , (the comma operator).
Those operators that are in C, with the exception of the comma operator and the
arrow operator, are also in Java, Perl, C#, and PHP with the same precedence,
associativity, and semantics, with one exception: ternary operator associativity in
PHP is left-to-right.
Arithmetic operators
Operator Name Syntax Overloadable Included in C
Unary Plus +a Yes Yes
Addition (Sum) a + b Yes Yes
Prefix Increment ++a Yes Yes
Postfix Increment a++ Yes Yes
Assignment by Addition a += b Yes Yes
Unary Minus (Negation) -a Yes Yes
Subtraction (Difference) a - b Yes Yes
Prefix Decrement --a Yes Yes
Postfix Decrement a-- Yes Yes
Assignment by Subtraction a -= b Yes Yes
Multiplication (Product) a * b Yes Yes
Assignment by Multiplication a *= b Yes Yes
Division (Quotient) a / b Yes Yes
Assignment by Division a /= b Yes Yes
Modulus (Remainder) a % b Yes Yes
Assignment by Modulus a %= b Yes Yes
Comparison operators
Operator Name Syntax Overloadable Included in C
Less Than a < b Yes Yes
Less Than or Equal To a <= b Yes Yes
Greater Than a > b Yes Yes
Greater Than or Equal To a >= b Yes Yes
Not Equal To a != b Yes Yes
Equal To a == b Yes Yes
Logical operators
Operator Name Syntax Overloadable Included in C
Logical Negation !a Yes Yes
Logical AND a && b Yes Yes
Logical OR a || b Yes Yes
Bitwise operators
Operator Name Syntax Overloadable Included in C
Bitwise Left Shift a << b Yes Yes
Assignment by Bitwise Left Shift a <<= b Yes Yes
Bitwise Right Shift a >> b Yes Yes
Assignment by Bitwise Right Shift a >>= b Yes Yes
Bitwise One's Complement ~a Yes Yes
Bitwise AND a & b Yes Yes
Assignment by Bitwise AND a &= b Yes Yes
Bitwise OR a | b Yes Yes
Assignment by Bitwise OR a |= b Yes Yes
Bitwise XOR a ^ b Yes Yes
Assignment by Bitwise XOR a ^= b Yes Yes
Other operators
Operator Name Syntax Overloadable Included in C
Basic Assignment a = b Yes Yes
Function, Call a() Yes Yes
Array Subscript a[b] Yes Yes
Indirection (Dereference) *a Yes Yes
Address-of (Reference) &a Yes Yes
Member by Pointer a->b Yes Yes
Member a.b No Yes
Member by Pointer Function Pointer Indirection a->*b Yes No
Member Function Pointer Indirection a.*b No No
Cast (type) a Yes Yes
Comma a , b Yes Yes
Ternary Conditional a ? b : c No Yes
Scope Resolution a::b No No
Member Function Pointer a::*b No No
sizeof a
Size-of sizeof(type) No Yes
typeid(a)
Type Identification typeid(type) No No
Allocate Storage new type Yes No
Allocate Storage (Array) new type[n] Yes No
Deallocate Storage delete a Yes No
Deallocate Storage (Array) delete[] a Yes No
OPERATOR PRECEDENCE
The following is a table that lists the precedence and associativity of all the
operators in the C++ and C programming languages (when the
operators also exist in Java, Perl, PHP and many other recent
languages the precedence is the same as that given). Operators are
listed top to bottom in descending precedence and operators that
are in the same cell (there may be several rows of operators listed in
a cell) are evaluated with the same precedence, in the given
direction. An operator's precedence is unaffected by overloading.