PRESIDENCY SCHOOL BANGLORE EAST
ON
BY
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
SL.NO
TOPIC
1
Objective
2
Different Modules
3
Files Used
4
Data Design
5
Hardware Requirement
6
Software Components
7
C++ Overview
8
Features of C++
9
The structure of a C++ Program
10
Source code
11
Output
12
Future Enhancements
13
Bibliography
PAGE NO
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 details. The various options available on the main menu are:
Administrator
Issuing a book
Depositing a book
The various options available in the administrator menu are:
Create student record
Display all student records
Display specific student records
Modify student record
Delete student record
Create book
Display all books
Display specific book
Modify book
Delete 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, author’s name and st udent 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.
The
member
function
involved
are
create_book(),modify_book(),delete_book()
create_student(),modify_student,delete_student().
They
are
employed
in
write_book()
and and
write_student() respectively.
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, author’s name/admission no., Name,no. of books issued.
Displaying list of product with their prices.
The function function involved involved are are show_book() show_book()
used in display_spb()/ show_student() used in display_sps(). display_sps().
3.Update module : All changes regarding the products and their purchase are made in this module.
The member functions involved are book_issue(), book_deposit(). 6
FILES USED The program consists of two files 1.
2.
book.dat
-- This file contains the following fields
1.1.
Book no. - Stores identification number of books.
1.2.
Book name-- Stores name of book.
1.3
Author Name - Stores author’s name.
student.dat - This file contains the following fields 2.1
Admission no. - stores the admission number of student.
2.2
Name- Stores name of student.
DATA DESIGN 1.Class book 1.1. Data members(private if not mentioned otherwise 1.1.1. Char bno : stores book no. 1.1.2. Char bname : stores book name 1.1.3. Char aname : stores author’s name 1.2. Member functions(all public) 1.2.1. Void create_book(): inputs book details from user 1.2.2. Void show_book(): shows the input details 1.2.3. Void modify_book(): modifies book details 1.2.4. Char* retno(): returns book no. 1.2.5. Void report(): output for table
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 2.2 Member function 2.2.1. void create_student(): inputs student details 2.2.2. void show_student(): shows student details 2.2.3. void modify_student(): modifies student details 2.2.4. char* retadmno (): returns admission no. 2.2.5. char* retstbno (): returns book no. 2.2.6. int rettoken(): returns token 2.2.7. void addtoken(): adds token 2.2.8. void resettoken():resets token value to “0” 2.2.9. void getstbno(char t[]):copies book no. into another string 2.2.10.void report(): output to table
8
HARDWARE REQUIREMENTS
Processor: intel Pentium 4 CPU
CPU speed: 2.67 GHz
Hard disk memory: 80 GB
Cache :512 KB
SOFTWARE COMPONENTS
Operating system: Microsoft Windows XP
Software: Turbo C++
Professional Version 2002
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.
WHO USES THE C++ PROGRAM? 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++.
WHY TO USE 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)". pe rformance)". That’s why C++ is chosen when the task is to build big applications which should use less resources.
WHAT C++ SUPPORTS? 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 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, languages: abstraction, encapsulation, encapsulation, inheritance, inheritance, and and polymorphism. polymorphism. One One other programming languages is support for deterministic destructors, 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. 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.
Operators and operator overloading
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 such as member access ( . and .* ) as well as the conditional 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.
The main program
Every C++ program must contain a function with the name main. This function specifies the starting point for the computation and is called when the program starts up. When main has finished its work and returns, execution of the program ends.
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.
Local and globe variables
Variables declared with the body of a function are called local variables. The scope of a local variable extends to the end of the block in which it is declared. The lifetime of a local variable is the time during which the function is active. When the function is called, space for each local variable is allocated for the duration of that function call. When the function returns, all its local variables disappear. Variable declared outside any function definition are called global v ariables. The scope of a global variable is the remainder of the file in which it is declared. Its lifetime continues throughout the entire execution of a program.
The concept of a data type
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
#include #include #include #include #include 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. : "<
char* retbno() { return bno; } void report() {cout<
};
//class ends here
class student { char admno[6]; char name[20]; char stbno[6]; int token; public: void create_student() 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 cout<<"\nAdmission no. : "<
void modify_student() { cout<<"\nAdmission cout<<"\nAdmission no. : "<
//class ends here
//*************************************************************** 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
//****************************************************************
void display_spb(char n[]) { cout<<"\nBOOK cout<<"\nBOOK DETAILS\n"; int flag=0; fp.open("book.dat",ios::in); while(fp.read((char*)&bk,sizeof(book))) { if(strcmpi(bk.retbno(),n)==0) { bk.show_book(); flag=1; } } fp.close(); if(flag==0) cout<<"\n\nBook does not exist"; getch(); } void display_sps(char n[]) { cout<<"\nSTUDENT cout<<"\nSTUDENT DETAILS\n"; int flag=0; fp.open("student.dat",ios::in); while(fp.read((char*)&st,sizeof(student))) { if((strcmpi(st.retadmno(),n)==0)) { st.show_student(); flag=1; } } 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 cout<<"\n\n\tMODIFY BOOK REOCORD.... 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)) 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"<
void modify_student() { char n[6]; int found=0; clrscr(); 19
cout<<"\n\n\tMODIFY 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)) 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"<
function to delete record of file
//****************************************************************
void delete_student() { char n[6]; int flag=0; clrscr(); cout<<"\n\n\n\tDELETE cout<<"\n\n\n\tDELET E 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 cout<<"\n\n\n\tDELET E 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!!! cout<<"ERROR!!! FILE COULD NOT BE OPEN "; getch(); return; } cout<<"\n\n\t\tSTUDENT cout<<"\n\n\t\tSTUDENT LIST\n\n"; cout<<"==================================================================\n"; cout<<"\tAdmission cout<<"\tAdmission No."<
//*************************************************************** //
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"<
//*************************************************************** //
function to issue book
//**************************************************************** void book_issue() { char sn[6],bn[6]; int found=0,flag=0; clrscr(); cout<<"\n\nBOOK 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)) 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))&& 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)) while(fp.read((char*)&s t,sizeof(student)) && found==0) { if(strcmpi(st.retadmno(),sn)==0) { found=1; if(st.rettoken()==1) { while(fp1.read((char*)&bk,sizeof(book))&& 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. "<
fp.close(); fp1.close(); }
//*************************************************************** //
INTRODUCTION 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 cout<<"\n\nSCHOOL : Presidency school "; getch(); }
//*************************************************************** //
ADMINISTRATOR MENU FUNCTION
//**************************************************************** void admin_menu() { clrscr(); int ch2; cout<<"\n\n\n\tADMINISTRATOR cout<<"\n\n\n\tADMINI STRATOR MENU"; cout<<"\n\n\t1.CREATE 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 cout<<"\n\n\t4.MODIFY STUDENT RECORD"; cout<<"\n\n\t5.DELETE cout<<"\n\n\t5.DELET E STUDENT RECORD"; cout<<"\n\n\t6.CREATE 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 cout<<"\n\n\t9.MODIFY BOOK "; cout<<"\n\n\t10.DELETE cout<<"\n\n\t10.DELET E 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; 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 Together with computer science (Rachna sagar)
Websites: www.cppforschool.com www.cbseportal.com
39