Submitted by:
Enrollment No.
Name
Program
BCA
0531(D)
Markaz-E-Adab-O-Science
A Synopsis On
Student Management System
CIT, Ranchi.
INTRODUCTION
A STUDENT MANAGEMENT SYSTEM is a software application for
educational
establishments
to
manage
student
data.
STUDENT
EDUCATION DETAIL
Student
College
Management
System
JOB DETAIL
MISCELLENEOUS DETAIL
CENTRE DETAIL
Employer
GENERAL DETAIL
0-LEVEL DFD
Students Info
Centre Info
Valid User
User
Status Reports
College
Management
System
Staff Info
Activity
User Info
Students Info
1. Verify User
Centre Info
Valid User
Students
User
3. Staff
Processing
Status Reports
Staff Info
Activity
Development Environment
Student Management System has been coded in the C++. We use the Turboc
3.0 compiler under windows for the project development. However once the code
is successfully compiled under windows we tested on the same on linux platform
using the gcc editor. However since it has an interface in visual basic we
recommended running the software on windows.
One question, which is bound to arise why we have chosen C++ for
implementing the various algorithm when we have the option of going for the
Visual Basic a commonly used language for this type of software. Although many
more choices were available before us C++ seemed to be, the best choice for
implementing the algorithm for several decent reasons. Firstly in many respects
C++ is its class concepts and the lingua franca of programmers.
Also the fact that C++ compilers support computer ranging from a primitive 8051
micro controller to super computers capable of managing 100 million instruction
per seconds. Which means in most programmers around the globe would have a
C++ compiler, and most of them are exposed to C++ code.
The second reason for using C++ is simply its efficiency. C++ is often perceived
to be a high level language, since it allows programmers to get closed to the
hardware. Also the fact that C++ codes are easily portable is itself a huge bonus.
Lastly the most important reason behind selecting C++ is that, this is the
language we are most comfortable with.
HARDWARE REQUIREMENT
The following hardware requirements are needed : PENTIUM 4 PROCESSOR.
RAM 128 MB.
COLOR MONITOR.
And its PERIPHERALS.
Documentation
Word Processor : Microsoft Office
2000 Graphics Package : Microsoft Paint
Each phase of the Life Cycle has its own goals and outputs. The output of one phase
acts as the input for the another phase.
Nowadays a numbers of the software development is available in the market which are
used to prepare whole of the Life Cycle.
The design phase is usually divided into 2 stages : System Design ( Preliminary Design ), and
Detailed Design.
The System Design focuses on what components are required. It defines the general
structure of the software, the major modules, the functions provided by each module, the
interface between modules, major data structures and output formats of the system.
The detailed design focuses on how each component can be implemented. It specifies the
internal logic of each module specifying the algorithms and more detailed data structures.
3. Coding and Module Testing
The goal of the coding phase is to translate the design into machine readable form. The
system is divided into number of modules, developed separately, and each module is
tested to ensure that it performs as expected. Module testing is required to uncover the
errors in requirements, design or coding.
4. Integration and System Testing
All tested, workable modules of the system are put together according to the architecture
design and tested as a whole system. System testing is required check whether the
interconnection between the modules is o.k. or not. The system is tested against system
requirements to see if all requirements are specified in Requirement analysis and
Specification is met or not. Finally, acceptance test is performed with client, to
demonstrate the developed software, on real life data of the client, the operation of the
system.
5. Delivery and Maintenance
Once the system passes all the tests and client accepts it, it is delivered to the client,
installed on the system, and thus it becomes operational. Any modifications required by
the user during initial operating period are usually done during this period.
The Maintenance is provided by us to the clients for a limited period of time.
Computer languages have undergone dramatic evolution since the first electronic
computers were built to assist in telemetry calculations during World War II. Early on,
programmers worked with the most primitive computer instructions: machine language.
These instructions were represented by long strings of ones and zeroes. Soon, assemblers
were invented to map machine instructions to human-readable and -manageable
mnemonics, such as ADD and MOV.
In time, higher-level languages evolved, such as BASIC and COBOL. These languages
let people work with something approximating words and sentences, such as Let I =
100. These instructions were translated back into machine language by interpreters and
compilers. An interpreter translates a program as it reads it, turning the program
instructions, or code, directly into actions. A compiler translates the code into an
intermediary form. This step is called compiling, and produces an object file. The
compiler then invokes a linker, which turns the object file into an executable program.
Because interpreters read the code as it is written and execute the code on the spot,
interpreters are easy for the programmer to work with. Compilers, however, introduce the
extra steps of compiling and linking the code, which is inconvenient. Compilers produce
a program that is very fast each time it is run. However, the time-consuming task of
translating the source code into machine language has already been accomplished.
Another advantage of many compiled languages like C++ is that you can distribute the
executable program to people who don't have the compiler. With an interpretive language,
you must have the language to run the program.
For many years, the principle goal of computer programmers was to write short pieces of
code that would execute quickly. The program needed to be small, because memory was
expensive, and it needed to be fast, because processing power was also expensive. As
computers have become smaller, cheaper, and faster, and as the cost of memory has
fallen, these priorities have changed. Today the cost of a programmer's time far outweighs
the cost of most of the computers in use by businesses. Well-written, easy-to-maintain
code is at a premium. Easy- to-maintain means that as business requirements change, the
program can be extended and enhanced without great expense.
C++ and Object-Oriented Programming
C++ fully supports object-oriented programming, including the four pillars of objectoriented development: encapsulation, data hiding, inheritance, and polymorphism.
Encapsulation and Data Hiding When an engineer needs to add a resistor to the device
she is creating, she doesn't typically build a new one from scratch. She walks over to a
bin of resistors, examines the colored bands that indicate the properties, and picks the one
she needs. The resistor is a "black box" as far as the engineer is concerned--she doesn't
much care how it does its work as long as it conforms to her specifications; she doesn't
need to look inside the box to use it in her design.
The property of being a self-contained unit is called encapsulation. With encapsulation,
we can accomplish data hiding. Data hiding is the highly valued characteristic that an
object can be used without the user knowing or caring how it works internally. Just as
you can use a refrigerator without knowing how the compressor works, you can use a
well-designed object without knowing about its internal data members.
Similarly, when the engineer uses the resistor, she need not know anything about the
internal state of the resistor. All the properties of the resistor are encapsulated in the
resistor object; they are not spread out through the circuitry. It is not necessary to
understand how the resistor works in order to use it effectively. Its data is hidden inside
the resistor's casing.
C++ supports the properties of encapsulation and data hiding through the creation of
user-defined types, called classes. You'll see how to create classes on Day 6, "Basic
Classes." Once created, a well-defined class acts as a fully encapsulated entity--it is used
as a whole unit. The actual inner workings of the class should be hidden. Users of a welldefined class do not need to know how the class works; they just need to know how to
use it. Inheritance and Reuse When the engineers at Acme Motors want to build a new
car, they have two choices: They can start from scratch, or they can modify an existing
model. Perhaps their Star model is nearly perfect, but they'd like to add a turbocharger
and a six-speed transmission. The chief engineer would prefer not to start from the
ground up, but rather to say, "Let's build another Star, but let's add these additional
capabilities. We'll call the new model a Quasar." A Quasar is a kind of Star, but one with
new features.
How C++ Evolved
As object-oriented analysis, design, and programming began to catch on, Bjarne
Stroustrup took the most popular language for commercial software development, C, and
extended it to provide the features needed to facilitate object-oriented programming. He
created C++, and in less than a decade it has gone from being used by only a handful of
developers at AT&T to being the programming language of choice for an estimated one
million developers worldwide. It is expected that by the end of the decade, C++ will be
the predominant language for commercial software development.
While it is true that C++ is a superset of C, and that virtually any legal C program is a
legal C++ program, the leap from C to C++ is very significant. C++ benefited from its
relationship to C for many years, as C programmers could ease into their use of C++. To
really get the full benefit of C++, however, many programmers found they had to unlearn
much of what they knew and learn a whole new way of conceptualizing and solving
programming problems.
The ANSI Standard
The Accredited Standards Committee, operating under the procedures of the American
National Standards Institute (ANSI), is working to create an international standard for C+
+.
The ANSI standard is an attempt to ensure that C++ is portable--that code you write for
Microsoft's compiler will compile without errors, using a compiler from any other
vendor.
C++ Keywords
Keywords are reserved to the compiler for use by the language. You cannot
define classes, variables, or functions that have these keywords as their names.
The list is a bit arbitrary, as some of the keywords are specific to a given
compiler. Your mileage may vary slightly:
auto
break
case
catch
char
class
const
continue
default
delete
do
double
else
enum
extern
float
for
friend
goto
if
int
long
mutable
new
operator
private
protected
public
register
return
short
signed
sizeof
static
struct
switch
template
this
throw
typedef
union
unsigned
virtual
void
volatile
while
Operator Precedence
It is important to understand that operators have a precedence, but it is not
essential to memorize the precedence.
New Term: Precedence is the order in which a program performs the operations in a
formula. If one operator has precedence over another operator, it is evaluated first.
Higher precedence operators "bind tighter" than lower precedence operators; thus, higher
precedence operators are evaluated first. The lower the rank in the following chart, the
higher the precedence.
Table A.1. Operator Precedence.
Rank Name
Operator
scope resolution
::
. ->
()
and decrement
++ --
++ --
^ !
-+
&*
()
4
.* ->*
*/%
add, subtract
+-
shift
<< >>
inequality relational
equality, inequality
== !=
10
bitwise AND
&
11
bitwise exclusive OR
12
bitwise OR
13
logical AND
&&
14
logical OR
||
15
conditional
?:
16
assignment operators
= *= /= %=
+= -= <<= >>=
&= |= ^=
17
throw operator
Throw
18
comma
SYSTEM DESIGN
Problem Definition
Our objective in this project is to completely computerize the Hotel so that it performed any
transaction for the Customers. System should produce a flawless description.
We observed the following drawbacks in the present system.
Since the system is manual, the time involved in updating of the records in
considerably more.
Generation of reports is quite difficult compared to automated systems.
The amount of record tends to increase and this leads to difficulty in preservation of
records.
The maintenance of record becomes a difficult task and it tends to be inconsistent.
The modification of records is very difficult, which if not taken care, may lead to
problems such as data duplication and inconsistencies.
Error identification and rectification consumes a lot of time, since it involves
searching individual files for errors.
Hence, we decided to develop s/w for Capitol Hill Hotel MANAGEMENT SYSTEM,
which is easy to work, is efficient and economical.
Feasibility Study
A feasibility study was undertaken to decide whether to decide whether the project itself was
liable and pertinent to the user. The following questions are to be answered before embarking
upon the development of the views of our system.
Is there any efficiency involved in the implementation of this project as an end
user?
Is this project or the application developed during this project is cost efficient?
Will it lead to simplification f the managerial tasks?
Does it offer better performance than other application developed for the same
purpose?
Merits
Up till now the response received from the users, inspire us to improve our product
further. The benefits of our product (as listed by the users) till now are listed below:
The development of our application involves a set of design strategies and methodologies,
without which we will not be able to proceed with the development smoothly. In other words,
any project, which is implemented without design strategies, lead to inconsistency in the
development of the product and ultimately to the application failure, which renders the
application useless. Hence, we list the following design strategies.
We categorize the application development into a set of modules.
Each such module is assigned to a set of developers, who are, may be group of
individuals or a single developer
Regular meetings are held, so that there is no communication gap between the
developers and each of them can know individual progress made by other.
The modules developed by the individuals are tested repeatedly, so that the errors
can be eliminated at the development stage itself.
Finally all these modules are combined to form application software, which is ready
to be delivered to the user.
It is to be carefully observed that, the above listed design strategies is not a universal design
strategy, but is only one of the possible strategies that can be implemented in development of
any application in a project, and may be altered according to the development requirements.
Unit testing.
Integration testing.
Validation testing.
Output testing.
System testing.
Preparation of test data.