Police 1
Police 1
SCHOOL
SRI GANGANAGR
SESSION
2018-2019
C++ project on
police station software
RAVINDER SINGH
(12 SCIENCE)
STUDENT NAME : RAVINDER SINGH
CLASS : 12 SCIENCE
DATE:
SIGNATURE:
SCHOOL STAMP:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<fstream.h>
#include<string.h>
#include<stdlib.h>
#include<iomanip.h>
/***************************************************************************
****************************************************************************/
struct date
{ int d;
int m;
int y;
};
/***************************************************************************
****************************************************************************/
struct court
{ char crime[20];
char act[20];
char cour[20];
char state[20];
};
/***************************************************************************
****************************************************************************/
struct descp
{ char colour[20];
char face[20];
char height[6];
};
/***************************************************************************
****************************************************************************/
struct police
{ char station[50];
char fir_no[10];
date date_arrest;
};
/***************************************************************************
****************************************************************************/
class criminal
{ char name[20];
char sex[3];
char conno[10];
char age[4];
court COURT;
police POLICE;
descp des;
public:
void input(void);
void output(void);
void display();
void remove();
int menu();
void modify();
void list();
void empty();
};
/**************************************************************************
***************************************************************************/
{ int i=0;
while (arr[i]!='\0')
if(((arr[i]>64)&&(arr[i]<92))||((arr[i]>95)&&(arr[i]<124))||(arr[i]==' '))
{ i++;
continue;
}
else
return 0;
return 1;
/*************************************************************************
**************************************************************************/
{ clrscr();
if(((a[0]=='m')||(a[0]=='f')||(a[0]=='M')||(a[0]=='F'))&&(a[1]=='\0'))
{ return(1);
else
return(0);
/***************************************************************************
****************************************************************************/
void criminal::input(void)
{ clrscr();
this->empty();
criminal x;
int c = 0 ;
fstream filin;
filin.open("jail.dat",ios::app|ios::binary);
while(!c)
gets(this->conno);
c=x.concheck(this->conno);
c=0;
while(!c)
gets(this->name);
c= ncheck(this->name);
c=0;
while(!c)
gets(this->sex);
c =s_check(this->sex);
gets(this->address);
gets(this->age);
clrscr();
cout<<"\n\t\tDESCRIPTION :";
c=0;
while(!c)
gets(this->des.colour);
c=ncheck(this->des.colour);
c=0;
while(!c)
gets(this->des.face);
c=ncheck(this->des.face);
gets(this->des.height);
gets(this->des.imark);
clrscr();
c=0;
while(!c)
gets(this->COURT.cour);
c=ncheck(this->COURT.cour);
c=0;
while(!c)
{ cout<<"\n\t\t STATE :";
gets(this->COURT.state);
c=ncheck(this->COURT.state);
c=0;
while(!c)
gets(this->COURT.crime);
c=ncheck(this->COURT.crime);
gets(this->COURT.act);
clrscr();
gets(this->POLICE.station);
gets(this->POLICE.fir_no);
c=0;
while(!c)
cin>>this->POLICE.date_arrest.d;
if((this->POLICE.date_arrest.d>31)||(this->POLICE.date_arrest.d<1))
c=0;
}
else
c=1;
c=0;
while(!c)
cin>>this->POLICE.date_arrest.m;
if((this->POLICE.date_arrest.m>12)||(this->POLICE.date_arrest.m<1))
c=0;
continue;
else
c=1;
{ cout<<"\n THIS MONTH DOES NOT HAVE 31 DAYS \n TRY AGAIN !! ";
c=0;
else
c=1;
c=0;
while(!c)
cin>>this->POLICE.date_arrest.y;
if((this->POLICE.date_arrest.y<1900)&&(this->POLICE.date_arrest.y>2025))
{ cout<<"\n INCORRECT INPUT \n TRY AGAIN!!\n" ;
c=0;
else
c=1;
char ch;
do
{ cout<<"\n DO YOU WANT TO SAVE THIS INFORMATION (enter Y/y or N/n) :";
cin>>ch;
if(ch=='y'||ch=='Y')
filin.write((char*)this,sizeof(criminal));
else
{ if((ch!='n')&&(ch!='N'))
}while((ch!='y')&&(ch!='Y')&&(ch!='n')&&(ch!='N'));
filin.close();
/**************************************************************************
***************************************************************************/
void criminal::output()
{ clrscr();
cout<<"------------------------PERSONAL RECORD OF CONVICT-------------------------------";
puts(conno);
puts(this->name);
<<this->sex;
puts(this->address);
puts(this->age);
cout<<"\n\n DESCRIPTION\n";
puts(this->des.colour);
puts(this->des.face);
puts(this->des.imark);
puts(this->des.height);
getch();
clrscr();
cout<<"----------------------------CRIMINAL RECORD--------------------------------";
puts(this->COURT.cour);
cout<<"\n2. STATE :\t";
puts(this->COURT.state);
puts(this->COURT.crime);
puts(this->COURT.act);
getch();
clrscr();
cout<<"----------------------------CRIMINAL RECORD-------------------------------";
cout<<"\n\n\nPOLICE INFORMATION\n\n";
puts(this->POLICE.fir_no);
<<this->POLICE.date_arrest.d<<"/"
<<POLICE.date_arrest.m<<"/"<<this->POLICE.date_arrest.y;
puts(this->POLICE.station);
getch();
clrscr();
/**************************************************************************
***************************************************************************/
{ fstream filin;
filin.open("jail.dat",ios::in|ios::ate);
int q=filin.tellg();
int c=q/sizeof(criminal);
fstream temp;
temp.open("temp.dat",ios::out);
filin.seekg(0,ios::beg);
for(int i=0;i<c;i++)
{ filin.read((char*)this,sizeof(criminal));
if(strcmp(con_no,conno)!=0)
temp.write((char*)this,sizeof(criminal));
filin.close();
temp.close();
filin.open("jail.dat",ios::out);
temp.open("temp.dat",ios::in|ios::ate);
int a=temp.tellg();
int size=a/sizeof(criminal);
temp.seekg(0,ios::beg);
for(int k=0;k<size;k++)
{ temp.read((char*)this,sizeof(criminal));
filin.write((char*)this,sizeof(criminal));
filin.close();
temp.close();
}
int criminal::dcheck(char n[])
{ clrscr();
fstream file;
file.open("jail.dat",ios::in|ios::ate|ios::binary);
int q=file.tellg();
c=q/sizeof(criminal);
file.close();
file.open("jail.dat",ios::in|ios::binary);
for(int i=0;i<c;i++)
{ file.read((char*)this,sizeof(criminal));
count++;
if(strcmp(n,conno)==0)
{ x++;
break;
if(x==0)
return 0;
else
return count;
file.close();
void criminal::display()
{ clrscr();
char N[10];
int rec,loc;
cout<<"\nENTER THE CONVICT CODE OF CONVICT WHOSE INFORMATION YOU WANT :";
gets(N);
fstream file;
rec=this->dcheck(N);
file.open("jail.dat",ios::in|ios::binary);
if(rec!=0)
{ loc=(rec-1)*sizeof(criminal);
file.seekg(loc);
file.read((char*)this,sizeof(criminal));
this->output();
file.close();
void criminal::remove()
{ clrscr();
char no[10];
int s;
cout<<"\nENTER THE CONVICT NO. OF THE CONVICT WHOSE RECORD YOU WISH TO DELETE :" ;
gets(no);
s=this->dcheck(no);
if(s!=0)
this->delete_rec(no);
}
int criminal::menu()
{ int ch;
do
{ clrscr();
cout<<"\n---------------------------------MAIN MENU--------------------------------------";
cin>>ch;
}while((ch!=1)&&(ch!=2)&&(ch!=3)&&(ch!=4)&&(ch!=5)&&(ch!=6));
return(ch);
void criminal::modify()
{ clrscr();
fstream file ;
char
npdr[10],ncrime[10],nact[10],nstate[10],ncourt[10],nstat[10],nfir[10],str[10],nprd[15],cno[10];
int check,loc;
criminal x;
date D;
check=this->dcheck(str);
if(check!=0)
{ file.open("jail.dat",ios::out|ios::ate);
int d=0;
while(!d)
gets(cno);
d= x.concheck(cno);
strcpy(conno,cno);
gets(ncrime);
strcpy(COURT.crime,ncrime);
clrscr();
cout<<"\n\nACT :";
gets(nact);
strcpy(COURT.act,nact);
cout<<"\nSTATE :";
gets(nstate);
strcpy(COURT.state,nstate);
cout<<"\nCOURT :";
gets(ncourt);
strcpy(COURT.cour,ncourt);
clrscr();
gets(nstat);
strcpy(POLICE.station,nstat);
cout<<"\nFIR NO :";
gets(nfir);
strcpy(POLICE.fir_no,nfir);
int c=0;
while(!c)
cin>>D.d;
if((D.d>31)||(D.d<1))
c=0;
else
c=1;
c=0;
while(!c)
cin>>D.m;
if((D.m>12)||(D.m<1))
c=0;continue;
else
c=1;
{ cout<<"\n THIS MONTH DOES NOT HAVE 31 DAYS \n TRY AGAIN !! ";
c=0;
else
c=1;
c=0;
while(!c)
cin>>D.y;
c=0;
else
c=1;
POLICE.date_arrest.d=D.d;
POLICE.date_arrest.m=D.m;
POLICE.date_arrest.y=D.y;
loc=(check-1)*sizeof(criminal);
file.seekp(loc);
file.write((char*)this,sizeof(criminal));
file.close();
}
}
void criminal::list()
{ clrscr();
int j ;
fstream file;
file.open("jail.dat",ios::in|ios::ate|ios::binary);
int q=file.tellg();
int c=q/sizeof(criminal);
file.seekg(0);
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<"\n==========================================================================
======"<<endl;
cout<<"SNO\tNAME\t\t\tCONVICT NO.\t\t\tCRIME"<<endl;
cout<<"===========================================================================
====="<<endl;
int i=0;
while(file.read((char*)this,sizeof(criminal)))
{ i++;
cout<<i<<" ";
for(j=0;j<strlen(this->name);j++)
cout<<this->name[j];
cout<<"\t\t\t ";
for(j=0;j<strlen(this->conno);j++)
cout<<this->conno[j];
cout<<"\t\t\t ";
for(j=0;j<strlen(this->COURT.crime);j++)
cout<<this->COURT.crime[j];
cout<<"\n--------------------------------------------------------------------------------\n";
if((i%3)==0&&(i!=c))
getch();
clrscr();
cout<<"\n==========================================================================
======"<<endl;
cout<<"SNO\tNAME\t\t\tCONVICT NO.\t\t\tCRIME"<<endl;
cout<<"===========================================================================
====="<<endl;
file.close();
void criminal::empty()
{ int i;
for(i=0;i<20;i++)
name[i]=' ';
for(i=0;i<10;i++)
conno[i]=' ';
for(i=0;i<3;i++)
sex[i]=' ';
for(i=0;i<4;i++)
age[i]=' ';
for(i=0;i<50;i++)
address[i]=' ';
for(i=0;i<20;i++)
COURT.cour[i]=' ';
for(i=0;i<20;i++)
COURT.crime[i]=' ';
for(i=0;i<20;i++)
COURT.act[i]=' ';
for(i=0;i<20;i++)
COURT.state[i]=' ';
for(i=0;i<20;i++)
des.colour[i]=' ';
for(i=0;i<20;i++)
des.imark[i]=' ';
for(i=0;i<20;i++)
des.face[i]=' ';
for(i=0;i<6;i++)
des.height[i]=' ';
for(i=0;i<50;i++)
POLICE.station[i]=' ';
for(i=0;i<10;i++)
POLICE.fir_no[i]=' ';
POLICE.date_arrest.m = 0;
POLICE.date_arrest.d = 0;
POLICE.date_arrest.y = 0;
int check=0;
file.open("jail.dat",ios::in|ios::ate);
int q=file.tellg();
int size=q/sizeof(criminal);
file.seekg(0,ios::beg);
for(int i=0;i<size;i++)
{ file.read((char*)this,sizeof(criminal));
strcpy(a,conno);
if(strcmp(b,a)==0)
{ check+=1;
break;
if(check==0)
return(10);
else
return(0);
file.close();
break;
void main()
{
clrscr();
int x;
for(int i=0;i<3;i++)
{ clrscr();
cout<<"\nCRIMINAL RECORD .\n\n\t\t\t< BY RAVINDER SINGH >\n\n\n\n\n\n\n\n\t\t\t\t";
cout<<"ENTER PASSWORD..";
char*pass;
cin>>pass;
x=strcmp(pass,"5911");
if(x==0)
break;
else
cout<<"\a";
}
if(x==0)
{ int choice,ans='y';
criminal l;
while((ans=='y'|| ans=='Y'))
{ choice= l.menu();
switch(choice)
{
case 1:l.input();
break;
case 2 :l.modify();
break;
case 3:l.display();
case 4:l.remove() ;
break;
case 5: l.list();
break;
case 6:exit(0);
ans=getch();
if(ans=='y'||ans=='Y')
continue;