You are on page 1of 39

PRESIDENCY SCHOOL

BANGLORE EAST

COMPUTER SCIENCE PROJECT


ON
STUDENT REPEORT CARD
BY
Angela Mariam Nelson
Grade XII
2017-18
CBSE Roll number:_____________

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 PAGE NO

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

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

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, 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.

The member function involved are create_book(),modify_book(),delete_book() and


create_student(),modify_student,delete_student(). They are employed in write_book() 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, authors name/admission no.,
Name,no. of books issued.

Displaying list of product with their prices.

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.

The member functions involved are book_issue(), book_deposit().

6
FILES USED
The program consists of two files -

1. 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 authors name.

2. 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 authors 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 Professional Version 2002


Software: Turbo C++

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)". Thats 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 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.

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 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.

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 variables. 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<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 ends here

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 getstbno(char t[])


{
strcpy(stbno,t);
}

void report()
{cout<<"\t"<<admno<<setw(20)<<name<<setw(10)<<token<<endl;}

}; //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 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 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 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

Together with computer science (Rachna sagar)

Websites:

www.cppforschool.com

www.cbseportal.com

39

You might also like