#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<string.h>
/****************************************************************************
* Function : main
* Description :The main function is used for whole hostel
management process.
* Parameters : void
* Returns : Void
*****************************************************************************/
void main()
{
int iCh1,iInc;
e:
clrscr();
/* To Display Main
menu */
gotoxy(26,40);
textcolor(9);
cprintf("INFOSYS
CAMPUS CONNECT PROGRAM");
gotoxy(32,44);
textcolor(19);
cprintf("LPU
UNIVERSITY");
gotoxy(16,42);
cprintf("HOSTEL
MANAGEMENT SYSTEM DONE BY PANKAJ NEGI");
gotoxy(8,45);
textcolor(9);
/* To Dispaly date
and time */
cprintf("DATE :
%s ",__DATE__);
gotoxy(55,45);
cprintf("TIME :
%s ",__TIME__);
for(iInc=0;iInc<=30;iInc++)
{
gotoxy(20,iInc);
textcolor(7);
cprintf("-");
}
for(iInc=0;iInc<80;iInc++)
{
gotoxy(iInc,30);
textcolor(7);
cprintf("|");
}
gotoxy(30,8);
textcolor(9);
/* Main menu */
cprintf("HOSTEL
MANAGEMENT SYSTEM");
gotoxy(30,10);
textcolor(19);
cprintf("1.OUT
STUDENT");
gotoxy(30,12);
cprintf("2.IN STUDENT");
gotoxy(30,14);
cprintf("3.STAFF");
gotoxy(30,16);
cprintf("0.EXIT");
gotoxy(30,18);
textcolor(9);
cprintf("ENTER
YOUR CHOICE:");
scanf("%d",&iCh1);
if(iCh1==0)
{
/* To exit from the
system */
gotoxy(30,28);
textcolor(4);
cprintf("SYSTEM
SHUTTING DOWN");
sleep(3);
gotoxy(26,40);
printf("INFOSYS
CAMPUS CONNECT PROGRAM");
gotoxy(8,42);
printf("HOSTEL
MANAGEMENT SYSTEM DONE BY PANKAJ NEGI");
gotoxy(8,45);
printf("DATE :
%s ",__DATE__);
gotoxy(55,45);
printf("TIME :
%s ",__TIME__);
exit(0);
}
else{
/* Declarations of
Variables */
FILE *fp,*ft;
char cAns,cChoice;
struct hostel
{
char
acPhistory[50],acName[30],acDesiq[20],acStreet[30],acCity[24],acPhno[11],acDoj[11],acRoom[4],acP_id[4],acSex[2];
int iAge,iSal;
};
struct hostel e;
char icPid[4];
int iF=0,iC=0,iF1=0;
long int lRecsize;
fp=fopen("hp.dat","rb+");
if(fp==NULL)
{
fp=fopen("\hp.dat","wb+");
if(fp==NULL)
{
puts("\n\t\tCannot
Open file");
exit();
}
}
lRecsize=sizeof(e);
while(1)
{
clrscr();
textcolor(4);
if(iCh1==1) {
gotoxy(30,8);
textcolor(4);
/* Sub menu for
manipulation of student and staff details */
cprintf("OUT-student
MENU"); }
else if(iCh1==2) {
gotoxy(30,8);
textcolor(4);
cprintf("IN-student
MENU"); }
else if(iCh1==3) {
gotoxy(30,8);
textcolor(4);
cprintf("STAFF
MENU"); }
gotoxy(26,40);
textcolor(4);
cprintf("INFOSYS
CAMPUS CONNECT PROGRAM");
gotoxy(32,44);
textcolor(19);
cprintf("LPU
UNIVERSITY");
gotoxy(16,42);
textcolor(19);
cprintf("HOSTEL
MANAGEMENT SYSTEM DONE BY PANKAJ NEGI");
gotoxy(8,45);
textcolor(4);
cprintf("DATE :
%s ",__DATE__);
gotoxy(55,45);
cprintf("TIME :
%s ",__TIME__);
for(iInc=0;iInc<=30;iInc++)
{
gotoxy(20,iInc);
textcolor(7);
cprintf("-");
}
for(iInc=0;iInc<=80;iInc++)
{
gotoxy(iInc,30);
textcolor(7);
cprintf("|");
}
gotoxy(30,10);
textcolor(19);
cprintf("1.ADD
");
gotoxy(30,12);
cprintf("2.DISPLAY");
gotoxy(30,14);
cprintf("3.MODIFY");
gotoxy(30,16);
cprintf("4.DELETE");
gotoxy(30,18);
cprintf("0.EXIT");
gotoxy(30,20);
textcolor(4);
cprintf("SELECT
YOUR OPTION: ");
fflush(stdin);
cChoice=getche();
clrscr();
gotoxy(25,8);
textcolor(5);
switch(cChoice)
{
case '1':
//To add a record
w:
printf("\n\n\n\t\tENTER ID: ");
scanf("%s",icPid);
rewind(fp);
//Checking for unique id
while(fread(&e,lRecsize,1,fp)==1)
{
if(strcmp(e.acP_id,icPid)==0)
{
iF=1;
printf("\n\t\tALREADY EXISTS");
goto w;
}}
if(iF==0||fread(&e,lRecsize,1,fp)==0)
{
fseek (fp,0,SEEK_END);
strcpy(e.acP_id,icPid);
a3:
printf("\n\t\tENTER NAME: ");
scanf("%s",e.acName);
if(strlen(e.acName)>30||strlen(e.acName)<3)
goto a3;
if(iCh1==3){
a4:
printf("\n\t\tENTER DESIGNATION:
");
scanf("%s",e.acDesiq);
if(strlen(e.acDesiq)>20||strlen(e.acDesiq)<3)
goto a4;
}
if(iCh1!=3){
printf("\n \t\tENTER CONSULTANT NAME: ");
scanf("%s",e.acDesiq); }
p:
printf("\n \t\tENTER SEX [M/F]: ");
scanf("%s",e.acSex);
if(strlen(e.acSex)>1)
goto p;
f:
printf("\n \t\tENTER AGE : ");
scanf("%d",&e.iAge);
if(iCh1==3){
if(e.iAge<20||e.iAge>65)
goto f; }
else
{
if(e.iAge<0||e.iAge>100)
goto f; }
a5:
printf("\n \t\tENTER STREET: ");
scanf("%s",e.acStreet);
if(strlen(e.acStreet)>30||strlen(e.acStreet)<5)
goto a5;
a6:
printf("\n \t\tENTER CITY: ");
scanf("%s",e.acCity);
if(strlen(e.acCity)>24||strlen(e.acCity)<3)
goto a6;
a:
printf("\n \t\tENTER CONTACT NUMBER: ");
scanf("%s",e.acPhno);
if(strlen(e.acPhno)>10||strlen(e.acPhno)<10)
goto a;
if(iCh1!=3){
a2:
printf("\n \t\tENTER STUDENT HISTORY: ");
scanf("%s",e.acPhistory);
if(strlen(e.acPhistory)>50)
goto a2;
}
if(iCh1==3)
{
printf("\n \t\tENTER DATE OF JOIN(dd-mmm-yy): ");
scanf("%s",e.acDoj);
v:
printf("\n\t\tSALARY/DAY: ");
scanf("%d",&e.iSal);
if(e.iSal<100 || e.iSal>9000)
goto v;
}
if(iCh1==2)
{
printf("\n\t\tENTER ROOM NUMBER:
");
scanf("%s",e.acRoom);
printf("\n \t\tENTER DATE OF JOIN: ");
scanf("%s",e.acDoj);
}
fwrite(&e,lRecsize,1,fp);
/*Flushes a stream On success returns 0 , On error returns EOF */
fflush(stdin);
}
break;
case '2':
//Searching and displaying all the
information by id
textcolor(7);
printf("\n\n\n\t\tENTER ID: ");
scanf("%s",icPid);
rewind(fp);
while(fread(&e,lRecsize,1,fp)!=0)
{
printf("hai");
if(strcmp(e.acP_id,icPid)==0)
{
printf("bye");
iC=1;
clrscr();
//Display according to Main menu
gotoxy(0,20);
//outpatient
if(iCh1==1){
printf("\n\n\n\t\tDETAILS OF
OUTstudent:%s",strupr(e.acName));
printf("\n_____________________________________________________________________\n\n");
printf("\n\n NAME : %s\t
ID : %s\t CONSULTANT NAME : %s\n\n SEX
: %s\t AGE : %d \n\n STREET: %s\n\n CITY : %s\n\n PHONE : %s\n\n PATIENT
HISTORY: %s",strupr(e.acName),strupr(e.acP_id),strupr(e.acDesiq),strupr(e.acSex),e.iAge,strupr(e.acStreet),strupr(e.acCity),strupr(e.acPhno),strupr(e.acPhistory));
printf("\n_____________________________________________________________________\n\n");
getch();
}
//Staff
else if(iCh1==3){
printf("\n\n\n\t\tDETAILS OF :%s
%s",strupr(e.acDesiq),strupr(e.acName));
printf("\n_____________________________________________________________________\n\n");
printf("\n\n NAME : %s\t
ID : %s \t DESIGNATION: %s\n\n SALARY : Rs %d(/day)\n\n AGE : %d
\t SEX : %s \n\n DATE OF JOIN :
%s\n\n STREET: %s\n\n CITY : %s\n\n
PHONE : %s
",strupr(e.acName),strupr(e.acP_id),strupr(e.acDesiq),e.iSal,e.iAge,strupr(e.acSex),strupr(e.acDoj),strupr(e.acStreet),strupr(e.acCity),strupr(e.acPhno),strupr(e.acPhistory));
printf("\n_____________________________________________________________________\n\n");
getch();
}
//Inpatient
else if(iCh1==2){
printf("\n\n\n\t\tDETAILS OF
INstudent:%s",strupr(e.acName));
printf("\n_____________________________________________________________________\n\n");
printf("\n\n NAME : %s\t
ID : %s\t CONSULTANT NAME : %s\n\n AGE
: %d\t SEX : %s \t STREET: %s\n\n CITY
: %s\n\n PHONE : %s\n\n PATIENT HISTORY: %s\n\n ROOM NUMBER : %s\n\n
DATE OF ADMISSION:%s
",strupr(e.acName),strupr(e.acP_id),strupr(e.acDesiq),e.iAge,strupr(e.acSex),strupr(e.acStreet),strupr(e.acCity),strupr(e.acPhno),strupr(e.acPhistory),strupr(e.acRoom),strupr(e.acDoj));
printf("\n_____________________________________________________________________\n\n");
getch();
}
}
}
if(iC==0)
{
printf("\n\t\tRECORD DOESN'T
EXISTS..");
getch();
}iC=0;
break;
case '3':
//Searching and modifying Records by id
cAns='y';
while(cAns=='y')
{
printf("\n\n\n\t\tENTER ID: ");
scanf("%s",icPid);
rewind(fp);
while(fread(&e,lRecsize,1,fp)==1)
{
if(strcmp(e.acP_id,icPid)==0)
{
b:
printf("\n\n\t\tENTER NAME: %s :
",strupr(e.acName));
scanf("%s",e.acName);
if(strlen(e.acName)>20||strlen(e.acName)<3)
goto b;
b1:
printf(" \n\t\tENTER SEX : %s :
",strupr(e.acSex));
scanf("%s",e.acSex);
if(strlen(e.acSex)>1)
goto b1;
r:
printf(" \n\t\tENTER AGE: %d : " ,e.iAge);
scanf("%d",&e.iAge);
if(e.iAge<20||e.iAge>65)
goto r;
b3:
printf(" \n\t\tENTER STREET: %s :
",strupr(e.acStreet));
scanf("%s",e.acStreet);
if(strlen(e.acStreet)>30||strlen(e.acStreet)<5)
goto b3;
b4:
printf(" \n\t\tENTER CITY: %s
:",strupr(e.acCity));
scanf("%s",e.acCity);
if(strlen(e.acCity)>24||strlen(e.acCity)<3)
goto b4;
a1:
printf(" \n\t\tENTER CONTACT NUMBER: %s
:",strupr(e.acPhno));
scanf("%s",e.acPhno);
if(strlen(e.acPhno)>10||strlen(e.acPhno)<10)
goto a1;
if(iCh1==3){
b2:
printf("\n \t\tENTER DESIGNATION: %s :
",strupr(e.acDesiq));
scanf("%s",e.acDesiq);
if(strlen(e.acDesiq)>20||strlen(e.acDesiq)<3)
goto b2;
o:
printf("\n \t\tENTER SALARY: %d :",e.iSal);
scanf("%d",&e.iSal);
if(e.iSal<100||e.iSal>9000)
goto o;
}
if(iCh1!=3){
b5:
printf("\n \t\tENTER student HISTORY: %s :
",e.acPhistory);
scanf("%s",e.acPhistory);
if(strlen(e.acPhistory)>50)
goto b5;
}
fseek(fp,-lRecsize,SEEK_CUR); //Repositions
the file pointer of a stream
fwrite(&e,lRecsize,1,fp);
printf("\n \t\tRECORD MODIFIED ");
break;
}else
printf("\n \t\tRECORD DOESNT EXISTS ");
}
printf("\n\n\n\t\tDO U WANT TO MODIFY
ANY RECORD[y/n]");
/*Flushes a stream On success returns 0 , On error returns EOF */
fflush(stdin);
cAns=getche();
}
break;
case '4':
//Searching and deleting records by id
cAns='y';
while(cAns=='y')
{
printf("\n\n\t\tENTER ID TO DELETE
RECORD : ");
scanf("%s",icPid);
ft=fopen("temp.dat","wb");
rewind(fp); //Repositions file pointer to
stream's beginning
while(fread(&e,lRecsize,1,fp)!=0)
{
if(strcmp(e.acP_id,icPid)!=0) {
fwrite(&e,lRecsize,1,ft);
}
else {
iF1=1;
printf("\n\n\t\t RECORD DELETED
SUCCESSFULLY");
}
}
if(iF1!=1){iF1=0;
printf("\n\n\t\t NO SUCH RECORD
FOUND");}
fclose(fp);
fclose(ft);
remove("hp.dat");
rename("temp.dat","hp.dat");
fp=fopen("hp.dat","rb+");
printf("\n\n\t\tDO U WANT TO DELETE
ANOTHER RECORD[y/n]");
fflush(stdin);
cAns=getche();
}
break;
case '0':
fclose(fp);
goto e;
}
}
}
}
No comments:
Post a Comment