Documente Academic
Documente Profesional
Documente Cultură
BANGLORE EAST
1
2
ACKNOWLEDGEMENT
In the completion of this project, many have bestowed upon me their heart pledged support. I would like
to thank all the people who have helped me in completing this project.
I would like to thank our Principal Mr. G Thangadurai for giving me this opportunity and all necessary
resources for the completion of this project.
I would like to thank my computer science teacher, Mrs. Sathya P whose guidance and valuable inputs
helped me complete this project.
I would like to extend my sincere gratitude to my friends and family who have helped in this project.
Signature of Candidate
Angela Mariam Nelson
3
CONTENTS
1 Objective
2 Different Modules
3 Files Used
4 Data Design
5 Hardware Requirement
6 Software Components
7 C++ Overview
8 Features of C++
10 Source code
11 Output
12 Future Enhancements
13 Bibliography
4
OBJECTIVE
The objective of the project is to computerize the working of a school library. We analyze the various
functions involved in such a system, which comprises mainly of issuing a book and manipulation of
members details. The various options available on the main menu are:
Administrator
Issuing a book
Depositing a book
5
DIFFERENT MODULES
1. Input Module: All inputs to programs are made in this module. This module consists of the following
functionality:
Input details of a new book like book no.,name, authors name and student details like admission no
and name.
Input details of books that are available and details of new members.
Input of the number of books/students whose record is to be modified. The details of book/student
whose record has to me modified is also input.
Book/student number of the corresponding record to be deleted or is also included in this module.
2. Display Module : All outputs in the program are made in this module. This module consists of the
following functionality:
Display of lists of books/students and details like book no, name, authors name/admission no.,
Name,no. of books issued.
The function involved are show_book() used in display_spb()/ show_student() used in display_sps().
3.Update module : All changes regarding the products and their purchase are made in this module.
6
FILES USED
The program consists of two files -
DATA DESIGN
1.Class book
2. Class student
2.1 Data members
7
2.1.1. char admno: stores admission no.
2.1.2. char name: stores student name
2.1.3. char stbno: stores book no. issued by student
2.1.4. int token : flag variable
8
HARDWARE REQUIREMENTS
SOFTWARE COMPONENTS
9
C++ OVERVIEW
HISTORY OF C++
C++ Programming Language was developed by Bjarne Stroustrup in 1979. Initially the C++ language was
named as "C with classes". "C with classes" was renamed to C++ in 1983. The "++" is increment operator in
C++. It increments the variable by one value. This name demonstrates the fact that C++ is an extension of a
C language.
C++ is used in different sectors of the software industry. For example Apple OS is written in C++. Windows
95, 98, Me, 200 and XP are also written in C++. Microsoft Office, Internet Explorer and Visual Studio are
written in Visual C++. All the major applications of Adobe Systems (Acrobat, Photoshop, Flash,
ImageReady, Illustrator etc.) are developed using C++. Amazon.com is developing software for large scale
e-commerce using C++. Google search engine, Chromium Web Browser and some other software is written
in C++ too. The is a huge list of companies that are using C++.
C++ is always used when there is a need in high performance and efficient applications. It's an
efficient and flexible language. The philosophy of C++ is "Any features that you do not use, you do not pay
for (e.g. in performance)". Thats why C++ is chosen when the task is to build big applications which should
use less resources.
C++ supports the Object-Oriented Programming (OOP) Paradigm. It means that all the concepts of the OOP
such as Encapsulation, Polymorphism and Inheritance are supported by C++. These topics are discussed in
C++ Object Oriented section of this tutorial.
The Standard C++ consists of two parts: the core language and the Standard Library. The Standard Library
mainly is based on the Standard Template Library (STL). The STL provides a large number of useful tools. It
makes application development more efficient. The capabilities provided by STL are described in C++ STL
tutorial.
10
C++ FEATURES
Objects
C++, introduces object-oriented programming (OOP) C features to C. It offers classes which provide the
four distinguishing feature of C++ classes compared to classes in features commonly present in OOP
(and some non-OOP) languages: abstraction, encapsulation, inheritance, and polymorphism. One other
programming languages is support for deterministic destructors,
Encapsulation
Encapsulation is the hiding of information to ensure that data structures and operators are used as
intended and to make the usage model more obvious to the developer. C++ provides the ability to
define classes and functions as its primary encapsulation mechanisms. Within a class, members can be
declared as either public, protected, or private to explicitly enforce encapsulation. A public member of
the class is accessible to any function.
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.
C++ provides more than 35 operators, covering basic arithmetic, bit manipulation, indirection,
comparisons, logical operations and others. Almost all operators can be overloaded for user-defined
types, with a few notable exceptions such as member access ( . and .* ) as well as the conditional
operator. The rich set of overloadable operators is central to making user-defined types in C++ seem
like built-in types.
11
THE STRUCTURE OF C++ PROGRAM
Comments
A comment is text that is ignored by the computer but which nonetheless conveys information to other
programmers.
Library inclusions
The inclusion of a header file indicates that the program uses facilities from a library , which is a
collection of prewritten functions that perform a set of useful operations,
Function prototypes
Computation in a C++ program is carried out in the context of functions. A function is a unit of code
that (1) performs a specific operation and (2) is identified by name.
Function Definitions
Because large programs are difficult to understand in their entirety, most programs are broken down
into several smaller functions, each of which is easier to understand.
Variables
Data values in a program are usually stored in variables. You must declare that variable before you
use it. Declaring a variable establishes the properties.
Name
Every variable has a name, which is formed according to a certain set of rules.
Type
Each variable in a C++ program is constrained to hold values of a particular data type.
Lifetime
Depending on how they are declared , some variables persist throughout the entire program, while
others are created and destroyed dynamically as the program moves through various levels of function
call.
12
Scope
The declaration of a variable also controls what parts of the program have access to the variable, which
is called its scope.
One of the reason C++ requires all variables to be declared is that doing so constraints their
contents to values of a particular data type. Integer types
Type int corresponds to the standard representations of an integer on the computer system. Values
of type int are stored internally in storage units that have a limited capacity. To overcome this, C++
defines three integer types--- int , short and long---distinguished from each other by the size of
their domains.
Floating-point types
Numbers that include a decimal fraction are called floating-point numbers, which are used to
approximate real numbers in mathematics. C++ defines three different floating-point types: float,
double, and long double.
Text type
In most implementations of C++, the coding system used to represent characters in called ASCII.
Characters are most useful when they are collected together into sequential units called strings.
Strings make it possible to display informational messages on the screen. Strings are data and that
they can be manipulated and stored in much the same way that number can.
13
SOURCE CODE
#include<conio.h>
#include<stdio.h>
#include<process.h>
#include<string.h>
#include<iomanip.h>
#include<fstream.h>
class book
{
char bno[6];
char bname[50];
char aname[20];
public:
void create_book()
{
cout<<"\nNEW BOOK ENTRY...\n";
cout<<"\nEnter The book no.";
cin>>bno;
cout<<"\n\nEnter The Name of The Book ";
gets(bname);
cout<<"\n\nEnter The Author's Name ";
gets(aname);
cout<<"\n\n\nBook Created..";
}
void show_book()
{
cout<<"\nBook no. : "<<bno;
cout<<"\nBook Name : ";
puts(bname);
cout<<"Author Name : ";
puts(aname);
}
void modify_book()
{
cout<<"\nBook no. : "<<bno;
cout<<"\nModify Book Name : ";
gets(bname);
cout<<"\nModify Author's Name of Book : ";
gets(aname);
}
14
char* retbno()
{
return bno;
}
void report()
{cout<<bno<<setw(30)<<bname<<setw(30)<<aname<<endl;}
class student
{
char admno[6];
char name[20];
char stbno[6];
int token;
public:
void create_student()
{
clrscr();
cout<<"\nNEW STUDENT ENTRY...\n";
cout<<"\nEnter The admission no. ";
cin>>admno;
cout<<"\n\nEnter The Name of The Student ";
gets(name);
token=0;
stbno[0]='/0';
cout<<"\n\nStudent Record Created..";
}
void show_student()
{
cout<<"\nAdmission no. : "<<admno;
cout<<"\nStudent Name : ";
puts(name);
cout<<"\nNo of Book issued : "<<token;
if(token==1)
cout<<"\nBook No "<<stbno;
}
15
void modify_student()
{
cout<<"\nAdmission no. : "<<admno;
cout<<"\nModify Student Name : ";
gets(name);
}
char* retadmno()
{
return admno;
}
char* retstbno()
{
return stbno;
}
int rettoken()
{
return token;
}
void addtoken()
{token=1;}
void resettoken()
{token=0;}
void report()
{cout<<"\t"<<admno<<setw(20)<<name<<setw(10)<<token<<endl;}
//***************************************************************
16
// global declaration for stream object, object
//****************************************************************
fstream fp,fp1;
book bk;
student st;
//***************************************************************
// function to write in file
//****************************************************************
void write_book()
{
char ch;
fp.open("book.dat",ios::out|ios::app);
do
{
clrscr();
bk.create_book();
fp.write((char*)&bk,sizeof(book));
cout<<"\n\nDo you want to add more record..(y/n?)";
cin>>ch;
}while(ch=='y'||ch=='Y');
fp.close();
}
void write_student()
{
char ch;
fp.open("student.dat",ios::out|ios::app);
do
{
st.create_student();
fp.write((char*)&st,sizeof(student));
cout<<"\n\ndo you want to add more record..(y/n?)";
cin>>ch;
}while(ch=='y'||ch=='Y');
fp.close();
}
//***************************************************************
17
// function to read specific record from file
//****************************************************************
fp.close();
if(flag==0)
cout<<"\n\nBook does not exist";
getch();
}
fp.close();
if(flag==0)
cout<<"\n\nStudent does not exist";
getch();
}
18
//***************************************************************
// function to modify record of file
//****************************************************************
void modify_book()
{
char n[6];
int found=0;
clrscr();
cout<<"\n\n\tMODIFY BOOK REOCORD.... ";
cout<<"\n\n\tEnter The book no. of The book";
cin>>n;
fp.open("book.dat",ios::in|ios::out);
while(fp.read((char*)&bk,sizeof(book)) && found==0)
{
if(strcmpi(bk.retbno(),n)==0)
{
bk.show_book();
cout<<"\nEnter The New Details of book"<<endl;
bk.modify_book();
int pos=-1*sizeof(bk);
fp.seekp(pos,ios::cur);
fp.write((char*)&bk,sizeof(book));
cout<<"\n\n\t Record Updated";
found=1;
}
}
fp.close();
if(found==0)
cout<<"\n\n Record Not Found ";
getch();
}
void modify_student()
{
char n[6];
int found=0;
clrscr();
19
cout<<"\n\n\tMODIFY STUDENT RECORD... ";
cout<<"\n\n\tEnter The admission no. of The student";
cin>>n;
fp.open("student.dat",ios::in|ios::out);
while(fp.read((char*)&st,sizeof(student)) && found==0)
{
if(strcmpi(st.retadmno(),n)==0)
{
st.show_student();
cout<<"\nEnter The New Details of student"<<endl;
st.modify_student();
int pos=-1*sizeof(st);
fp.seekp(pos,ios::cur);
fp.write((char*)&st,sizeof(student));
cout<<"\n\n\t Record Updated";
found=1;
}
}
fp.close();
if(found==0)
cout<<"\n\n Record Not Found ";
getch();
}
//***************************************************************
// function to delete record of file
//****************************************************************
void delete_student()
{
char n[6];
int flag=0;
clrscr();
cout<<"\n\n\n\tDELETE STUDENT...";
cout<<"\n\nEnter The admission no. of the Student You Want To Delete : ";
cin>>n;
fp.open("student.dat",ios::in|ios::out);
fstream fp2;
fp2.open("Temp.dat",ios::out);
fp.seekg(0,ios::beg);
while(fp.read((char*)&st,sizeof(student)))
20
{
if(strcmpi(st.retadmno(),n)!=0)
fp2.write((char*)&st,sizeof(student));
else
flag=1;
}
fp2.close();
fp.close();
remove("student.dat");
rename("Temp.dat","student.dat");
if(flag==1)
cout<<"\n\n\tRecord Deleted ..";
else
cout<<"\n\nRecord not found";
getch();
}
void delete_book()
{
char n[6];
clrscr();
cout<<"\n\n\n\tDELETE BOOK ...";
cout<<"\n\nEnter The Book no. of the Book You Want To Delete : ";
cin>>n;
fp.open("book.dat",ios::in|ios::out);
fstream fp2;
fp2.open("Temp.dat",ios::out);
fp.seekg(0,ios::beg);
while(fp.read((char*)&bk,sizeof(book)))
{
if(strcmpi(bk.retbno(),n)!=0)
{
fp2.write((char*)&bk,sizeof(book));
}
}
fp2.close();
fp.close();
remove("book.dat");
rename("Temp.dat","book.dat");
cout<<"\n\n\tRecord Deleted ..";
21
getch();
}
//***************************************************************
// function to display all students list
//****************************************************************
void display_alls()
{
clrscr();
fp.open("student.dat",ios::in);
if(!fp)
{
cout<<"ERROR!!! FILE COULD NOT BE OPEN ";
getch();
return;
}
cout<<"\n\n\t\tSTUDENT LIST\n\n";
cout<<"==================================================================\n";
cout<<"\tAdmission No."<<setw(10)<<"Name"<<setw(20)<<"Book Issued\n";
cout<<"==================================================================\n";
while(fp.read((char*)&st,sizeof(student)))
{
st.report();
}
fp.close();
getch();
}
//***************************************************************
// function to display Books list
//****************************************************************
void display_allb()
{
clrscr();
fp.open("book.dat",ios::in);
22
if(!fp)
{
cout<<"ERROR!!! FILE COULD NOT BE OPEN ";
getch();
return;
}
cout<<"\n\n\t\tBook LIST\n\n";
cout<<"======================================================================
===\n";
cout<<"Book Number"<<setw(20)<<"Book Name"<<setw(25)<<"Author\n";
cout<<"======================================================================
===\n";
while(fp.read((char*)&bk,sizeof(book)))
{
bk.report();
}
fp.close();
getch();
}
//***************************************************************
// function to issue book
//****************************************************************
void book_issue()
{
char sn[6],bn[6];
int found=0,flag=0;
clrscr();
cout<<"\n\nBOOK ISSUE ...";
cout<<"\n\n\tEnter The student's admission no.";
cin>>sn;
fp.open("student.dat",ios::in|ios::out);
fp1.open("book.dat",ios::in|ios::out);
while(fp.read((char*)&st,sizeof(student)) && found==0)
{
if(strcmpi(st.retadmno(),sn)==0)
{
found=1;
23
if(st.rettoken()==0)
{
cout<<"\n\n\tEnter the book no. ";
cin>>bn;
while(fp1.read((char*)&bk,sizeof(book))&& flag==0)
{
if(strcmpi(bk.retbno(),bn)==0)
{
bk.show_book();
flag=1;
st.addtoken();
st.getstbno(bk.retbno());
int pos=-1*sizeof(st);
fp.seekp(pos,ios::cur);
fp.write((char*)&st,sizeof(student));
cout<<"\n\n\t Book issued successfully\n\nPlease Note :";
cout<<" Write current datein backside of book and submit within 15 days fine Rs. 1 for each
day after 15 days period";
}
}
if(flag==0)
cout<<"Book no does not exist";
}
else
cout<<"You have not returned the last book ";
}
}
if(found==0)
cout<<"Student record not exist...";
getch();
fp.close();
fp1.close();
}
//***************************************************************
// function to deposit book
//****************************************************************
void book_deposit()
{
char sn[6],bn[6];
int found=0,flag=0,day,fine;
24
clrscr();
cout<<"\n\nBOOK DEPOSIT ...";
cout<<"\n\n\tEnter The student's admission no.";
cin>>sn;
fp.open("student.dat",ios::in|ios::out);
fp1.open("book.dat",ios::in|ios::out);
while(fp.read((char*)&st,sizeof(student)) && found==0)
{
if(strcmpi(st.retadmno(),sn)==0)
{
found=1;
if(st.rettoken()==1)
{
while(fp1.read((char*)&bk,sizeof(book))&& flag==0)
{
if(strcmpi(bk.retbno(),st.retstbno())==0)
{
bk.show_book();
flag=1;
cout<<"\n\nBook deposited in no. of days";
cin>>day;
if(day>15)
{
fine=(day-15)*1;
cout<<"\n\nFine has to deposited Rs. "<<fine;
}
st.resettoken();
int pos=-1*sizeof(st);
fp.seekp(pos,ios::cur);
fp.write((char*)&st,sizeof(student));
cout<<"\n\n\t Book deposited successfully";
}
}
if(flag==0)
cout<<"Book no does not exist";
}
else
cout<<"No book is issued..please check!!";
}
}
if(found==0)
cout<<"Student record not exist...";
getch();
25
fp.close();
fp1.close();
}
//***************************************************************
// INTRODUCTION FUNCTION
//****************************************************************
void intro()
{
clrscr();
gotoxy(35,11);
cout<<"LIBRARY";
gotoxy(35,14);
cout<<"MANAGEMENT";
gotoxy(35,17);
cout<<"SYSTEM";
cout<<"\n\nMADE BY :Angela";
cout<<"\n\nSCHOOL : Presidency school ";
getch();
}
//***************************************************************
// ADMINISTRATOR MENU FUNCTION
//****************************************************************
void admin_menu()
{
clrscr();
int ch2;
cout<<"\n\n\n\tADMINISTRATOR MENU";
cout<<"\n\n\t1.CREATE STUDENT RECORD";
cout<<"\n\n\t2.DISPLAY ALL STUDENTS RECORD";
cout<<"\n\n\t3.DISPLAY SPECIFIC STUDENT RECORD ";
cout<<"\n\n\t4.MODIFY STUDENT RECORD";
cout<<"\n\n\t5.DELETE STUDENT RECORD";
cout<<"\n\n\t6.CREATE BOOK ";
cout<<"\n\n\t7.DISPLAY ALL BOOKS ";
26
cout<<"\n\n\t8.DISPLAY SPECIFIC BOOK ";
cout<<"\n\n\t9.MODIFY BOOK ";
cout<<"\n\n\t10.DELETE BOOK ";
cout<<"\n\n\t11.BACK TO MAIN MENU";
cout<<"\n\n\tPlease Enter Your Choice (1-11) ";
cin>>ch2;
switch(ch2)
{
case 1: clrscr();
write_student();break;
case 2: display_alls();break;
case 3:
char num[6];
clrscr();
cout<<"\n\n\tPlease Enter The Admission No. ";
cin>>num;
display_sps(num);
break;
case 4: modify_student();break;
case 5: delete_student();break;
case 6: clrscr();
write_book();break;
case 7: display_allb();break;
case 8: {
char num[6];
clrscr();
cout<<"\n\n\tPlease Enter The book No. ";
cin>>num;
display_spb(num);
break;
}
case 9: modify_book();break;
case 10: delete_book();break;
case 11: return;
default:cout<<"\a";
}
admin_menu();
}
//***************************************************************
// THE MAIN FUNCTION OF PROGRAM
//****************************************************************
27
void main()
{
char ch;
intro();
do
{
clrscr();
cout<<"\n\n\n\tMAIN MENU";
cout<<"\n\n\t01. BOOK ISSUE";
cout<<"\n\n\t02. BOOK DEPOSIT";
cout<<"\n\n\t03. ADMINISTRATOR MENU";
cout<<"\n\n\t04. EXIT";
cout<<"\n\n\tPlease Select Your Option (1-4) ";
ch=getche();
switch(ch)
{
case '1':clrscr();
book_issue();
break;
case '2':book_deposit();
break;
case '3':admin_menu();
break;
case '4':exit(0);
default :cout<<"\a";
}
}while(ch!='4');
}
28
Output
Main menu
29
Option 3
Administrator Menu
30
Option 1
Option 2
31
Option 3
Option 4
32
Option 5
Option 6
33
Option 7
Option 8
34
Option 9
Option 10
35
Option 11
Main Menu
Option 1
36
Option 2
37
FUTURE ENHANCEMENTS
Graphics could be included to make the software more interacting.
Options to purchase products on loan could be included.
Time and date for purchase could be included.
38
BIBLIOGRAPHY
Text books:
Computer science with c++ (sumita arora), publication and year of publication
Websites:
www.cppforschool.com
www.cbseportal.com
39