Hospital Management System Project in C++

Hospital Management System Project in C++ is a console application for beginners. The project of Hospital Management system can add new patient data, view the existing patients records and the information about the system.

Source Code 

#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
class all
{
 private:
  struct address
  {
   int house;
   char street[30];
   char city[30];
   char state[30];
   char country[30];
  };
  struct age
  {
   int day;
   int month;
   int year;
  };
  struct patient_info
  {
   char name[50];
   address AD1;   //nested structure implemented
   age A1;        //nested structure inplemented
   int martial_status;
   int reg_no;
   int bld_group;
   int sex;
  }PI[100];
  int task;
 protected:
  void enter_patient_info();
  void show_patient_detail();
 public:
  void software_detail();
  void tasks();
  char answer;
  char answer1;
  char ch;
  int serial;
};

class date
{
 private:
  int date;
   int month;
   int year;
 public:
   void enter_date();
   void show_date();
};

class dob
{
 private:
  struct dob1
  {
   int date;
   int month;
   int year;
   int rem;
  }DOB11[100];
 public:
   void enter_date();
   void show_date();
};

int i=0;
int rem;
int count;
int regis;
int attempt;
int temp;
int show_count=0;

all A1;           //object declared
date D1;          //object declared
dob DOB1;         //object declared

int main()
{
 count=0;
 cout<<"\n\t\t\t             Welcome To"<<"\n\n";
 cout<<"\n\t\t\t***HOSPITAL MANAGEMENT SOFTWARE***"<<"\n\n";
 D1.enter_date();
 A1.tasks();
 return 0;
}

void all::tasks()
{
 attempt=0;
 D1.show_date();
 cout<<"\n\t\t\t***HOSPITAL MANAGEMENT SOFTWARE***"<<"\n";
 cout<<"\n\t\t\t  **Hospital Management Tasks**"<<"\n";
 cout<<"\n\t\t\t  *****************************"<<"\n\n";
 cout<<"Please  select a task to do...."<<"\n\n";
 cout<<"1. Enter a new patient information ."<<"\n\n";
 cout<<"2. View detail of existing patient ."<<"\n\n";
 cout<<"3. View detail about the program ."<<"\n\n";
 cout<<"4. Exit from the program ."<<"\n\n";
 //other function remain
 cout<<"Enter your task serail :"<<"\n\n";
 cin>>task;
 switch(task)
 {
  case 1:{
          A1.enter_patient_info();
          break;
         }
  case 2:{
          A1.show_patient_detail();
          break;
         }
  case 3:{
          A1.software_detail();
          break;
         }
  case 4:{
          system("CLS");
          cout<<"Thank You for trying this program !!!"<<"\n\n";
          cout<<" This is the end of program...."<<"\n\n";
          cout<<" Press any key to exit....."<<"\n\n";
          getch();
          exit(0);
          break;
         }
 default:{
          system("CLS");
          cout<<"Invalid task serial ."<<"\n\n";
          cout<<"Press any key to continue...."<<"\n\n";
          getch();
          system("CLS");
          A1.tasks();
         }
 }
}

void all::enter_patient_info()
{
 system("CLS");
 answer='y';
 if(count==0)
 {
  serial=1;
 }
 else
 {
  i=serial;
 }
 for(i=serial;answer=='y'||answer=='Y';i++)
 {
  PI[i].reg_no=i;
  temp=serial;
  cout<<"  ***ENTERING INFORMATION FOR PATIENT SERIAL NUMBER "<<i<<"***"<<"\n\n";
  cin.get(ch);
  cout<<"Registration Number : "<<PI[i].reg_no<<"\n";
  cout<<"Enter the name of patient :"<<"\n\n";
  cout<<"\n\n";
  cin.getline(PI[i].name,50);
  cout<<"Sex (1-Male 2-Female) :"<<"\n\n";
  cout<<"\n\n";
  cin>>PI[i].sex;
  while(PI[i].sex!=1&&PI[i].sex!=2)
  {
   cout<<"Invalid input for sex of patient!!!"<<"\n\n";
   cout<<"Sex :"<<"\n\n";
   cout<<"\n\n";
   cin>>PI[i].sex;
  }
  cout<<"***ENTERING ADDRESS**"<<"\n\n";
  cout<<"House number :"<<"\n\n";
  cout<<"\n\n";
  cin>>PI[i].AD1.house;
  while(PI[i].AD1.house<=0)
  {
   cout<<"Invalid input for house number ."<<"\n\n";
   cout<<"Again enter the house number ."<<"\n\n";
   cout<<"\n\n";
   cin>>PI[i].AD1.house;
  }
  cin.get(ch);
  cout<<"Street :"<<"\n\n";
  cout<<"\n\n";
  cin.getline(PI[i].AD1.street,30);
  cout<<"City :"<<"\n\n";
  cout<<"\n\n";
  cin.getline(PI[i].AD1.city,30);
  cout<<"State :"<<"\n\n";
  cout<<"\n\n";
  cin.getline(PI[i].AD1.state,30);
  cout<<"Country :"<<"\n\n";
  cout<<"\n\n";
  cin.getline(PI[i].AD1.country,30);
  DOB1.enter_date();
  //to calculate age
  cin.get(ch);
  cout<<"Martial status(1-Married,2-Not Married ):"<<"\n\n";
  if(count!=0)
  {
   cout<<"\n\n";
  }
  cin>>PI[i].martial_status;
  while(PI[i].martial_status<1||PI[i].martial_status>2)
  {
   cout<<"Invalid input for martial status ."<<"\n\n";
   cout<<"Enter a valid martial status :"<<"\n\n";
   cout<<"\n\n";
   cin>>PI[i].martial_status;
  }
  cin.get(ch);
  if(count!=0)
  {
   cout<<"\n\n";
  }
  cout<<"\n\n";
  cout<<"Blood group :"<<"\n\n";
  cout<<"\n\n";
  cout<<"1. A+ "<<"\n\n";
  cout<<"\n\n";
  cout<<"2. A- "<<"\n\n";
  cout<<"\n\n";
  cout<<"3. B+ "<<"\n\n";
  cout<<"\n\n";
  cout<<"4. B- "<<"\n\n";
  cout<<"\n\n";
  cout<<"5. AB+ "<<"\n\n";
  cout<<"\n\n";
  cout<<"6. AB- "<<"\n\n";
  cout<<"\n\n";
  cout<<"7. O+ "<<"\n\n";
  cout<<"\n\n";
  cout<<"8. O- "<<"\n\n";
  cout<<"\n\n";
  cout<<"Enter :"<<"\n\n";
  cout<<"\n\n";
  cin>>PI[i].bld_group;
  switch(PI[i].bld_group)
  {
   case 1:
   case 2:
   case 3:
   case 4:
   case 5:
   case 6:
   case 7:
   case 8:{
           break;
          }
  default:{

while(PI[i].bld_group!=1&&PI[i].bld_group!=2&&PI[i].bld_group!=3&&

PI[i].bld_group!=4&&PI[i].bld_group!=5&&PI[i].bld_group!=6&&
                 PI[i].bld_group!=7&&PI[i].bld_group!=8)
           {
            cout<<"\n\n";
            cout<<"Invalid input !"<<"\n\n";
            cout<<"Blood Group :"<<"\n\n";
            cout<<"\n\n";
            cin>>PI[i].bld_group;
           }
           break;
          }
  }
  cin.get(ch);
  cout<<"Want to enter information for another patient ? "<<"\n\n";
  cout<<"\n\n";
  cin>>answer;
  count++;
  serial++;
 }
 system("CLS");
 A1.tasks();
}

void dob::enter_date()
{
 cout<<"\n\n";
 cout<<"Date of birth"<<"\n\n";
 cout<<"\n\n";
 cout<<"Year :";
 cout<<"\n\n";
 cout<<"\n\n";
 cin>>DOB11[temp].year;
 if(DOB11[temp].year<=0||DOB11[temp].year>10000)
 {
  do
  {
   cout<<"\n\n";
   cout<<"Invalid input for year !"<<"\n\n";
   cout<<"Please enter the year correctly :"<<"\n\n";
   cin>>DOB11[temp].year;
  }while(DOB11[temp].year<0||DOB11[temp].year>10000);
 }
 cout<<"\n\n";
 cout<<"Month :";
 cout<<"\n\n";
 cin>>DOB11[temp].month;
 if(DOB11[temp].month<=0||DOB11[temp].month>12)
 {
  do
  {
   cout<<"\n\n";
   cout<<"Invalid input for month !"<<"\n\n";
   cout<<"Again enter the month :"<<"\n\n";
   cout<<"\n\n";
   if(count!=0)
   {
    cout<<"\n\n";
   }
   cin>>DOB11[temp].month;
  }while(DOB11[temp].month<0||DOB11[temp].month>12);
 }
 cout<<"Date :";
 cout<<"\n\n";
 switch(DOB11[temp].month)
 {
  case 1:
  case 3:
  case 5:
  case 7:
  case 8:
  case 10:
  case 12:{
           cin>>DOB11[temp].date;
           while(DOB11[temp].date<1||DOB11[temp].date>31)
           {
            cout<<"\n\n";
            cout<<"Invalid date !"<<"\n\n";
            cout<<"Again enter the date :"<<"\n\n";
            cout<<"\n\n";
            cin>>DOB11[temp].date;
           }
            break;
          }
  case 2:{
          cin>>DOB11[temp].date;
          if(DOB11[temp].year%4==0)
          {
           while(DOB11[temp].date<0||DOB11[temp].date>29) 
//for leap year
           {
            cout<<"\n\n";
            cout<<"Invalid date !"<<"\n\n";
            cout<<"Again enter the date :"<<"\n\n";
            cout<<"\n\n";
            cin>>DOB11[temp].date;
           }
          }
          else
          {
           while(DOB11[temp].date<0||DOB11[temp].date>28) 
//for non-leap year
           {
            cout<<"\n\n";
            cout<<"Invalid date !"<<"\n\n";
            cout<<"Again enter the date :"<<"\n\n";
            cout<<"\n\n";
            cin>>DOB11[temp].date;
           }
          }
          break;
         }
 default:{
          cin>>DOB11[temp].date;
          while(DOB11[temp].date<1||DOB11[temp].date>30)
          {
           cout<<"\n\n";
           cout<<"Invalid date !"<<"\n\n";
           cout<<"Again enter the date :"<<"\n\n";
           cout<<"\n\n";
           cin>>DOB11[temp].date;
          }
          break;
         }
 }  //end of switch
 cout<<"\n\n";
}

void date::enter_date()
{
 cout<<"First of all I need the current date ..."<<"\n\n";
 cout<<"Year :";
 cin>>year;
 if(year<=0||year>10000)
 {
  do
  {
   cout<<"Invalid input for year !"<<"\n\n";
   cout<<"Please enter the year correctly :"<<"\n\n";
   cin>>year;
  }while(year<0||year>10000);
 }
 cout<<"Month :";
 cin>>month;
 if(month<=0||month>12)
 {
  do
  {
   cout<<"Invalid input for month !"<<"\n\n";
   cout<<"Again enter the month :"<<"\n\n";
   cin>>month;
  }while(month<0||month>12);
 }
 cout<<"Date :";
 switch(month)
 {
  case 1:
  case 3:
  case 5:
  case 7:
  case 8:
  case 10:
  case 12:{
           cin>>date;
           while(date<1||date>31)
           {
            cout<<"Invalid date !"<<"\n\n";
            cout<<"Again enter the date :"<<"\n\n";
            cin>>date;
           }
           break;
          }
  case 2:{
          cin>>date;
          if(year%4==0)
          {
           while(date<0||date>29) //for leap year
           {
            cout<<"Invalid date !"<<"\n\n";
            cout<<"Again enter the date :"<<"\n\n";
            cin>>date;
           }
          }
          else
          {
           while(date<0||date>28) //for non-leap year
           {
            cout<<"Invalid date !"<<"\n\n";
            cout<<"Again enter the date :"<<"\n\n";
            cin>>date;
           }
          }
          break;
         }
 default:{
          cin>>date;
          while(date<1||date>30)
          {
           cout<<"Invalid date !"<<"\n\n";
           cout<<"Again enter the date :"<<"\n\n";
           cin>>date;
          }
          break;
         }
 }  //end of switch
}

void date::show_date()  //remove the goto ststements in this function
{
 system("CLS");
 cout<<"Hello.... It's ";
 cout<<date;
 rem=date%10;
 switch(date)
 {
  case 11:
  case 12:
  case 13:
  case 14:
  case 15:
  case 16:
  case 17:
  case 18:
  case 19:
  case 20:{
           cout<<"th ";
           goto over;
          }
 }
 switch(rem)
 {
  case 1:{
          cout<<"st ";
          break;
         }
  case 2:{
          cout<<"nd ";
          break;
         }
  case 3:{
          cout<<"rd ";
          break;
         }
 default:{
          cout<<"th ";
          break;
         }
 }
 over:
 switch(month)
 {
  case 1:{
          cout<<"January , ";
          break;
         }
  case 2:{
          cout<<"February , ";
          break;
         }
  case 3:{
          cout<<"March , ";
          break;
         }
  case 4:{
          cout<<"April , ";
          break;
         }
  case 5:{
          cout<<"May , ";
          break;
         }
  case 6:{
          cout<<"June , ";
          break;
         }
  case 7:{
          cout<<"July , ";
          break;
         }
  case 8:{
          cout<<"August , ";
          break;
         }
  case 9:{
          cout<<"September , ";
          break;
         }
 case 10:{
          cout<<"October , ";
          break;
         }

 case 11:{
          cout<<"November , ";
          break;
         }
 case 12:{
          cout<<"December , ";
          break;
         }
 }
 cout<<year<<" ";
}

void all::show_patient_detail()
{
 do
 {
  system("CLS");
  cout<<"Enter registration number :"<<"\n\n";
  cout<<"\n\n";
  cin>>regis;
  cin.get(ch);
  show_count++;
  if(regis>0&&regis<serial)
  {
   cout<<"\n\n";
   cout<<"   ***INFORMATION FOR PATIENT REGISTRATION NUMBER"<<regis<<"***";
   cout<<"\n\n";
   cout<<"Name           : "<<PI[regis].name<<"";
   cout<<"\n\n";
   cout<<"Sex            : ";
   cout<<"\n\n";
   if(PI[regis].sex==1)
   {
    cout<<"Male "<<"\n\n";
    cout<<"\n\n";
   }
   if(PI[regis].sex==2)
   {
    cout<<"Female "<<"\n\n";
    cout<<"\n\n";
   }
   cout<<"Blood Group    : ";
   cout<<"\n\n";
   switch(PI[regis].bld_group)
   {
    case 1:{
            cout<<"\n\n";
            cout<<"A+";
            break;
           }
    case 2:{
            cout<<"\n\n";
            cout<<"A-";
            break;
           }
    case 3:{
            cout<<"\n\n";
            cout<<"B+";
            break;
           }
    case 4:{
            cout<<"\n\n";
            cout<<"B-";
            break;
           }
    case 5:{
            cout<<"\n\n";
            cout<<"AB+";
            break;
           }
    case 6:{
            cout<<"\n\n";
            cout<<"AB-";
            break;
           }
    case 7:{
            cout<<"\n\n";
            cout<<"O+";
            break;
           }
    case 8:{
            cout<<"\n\n";
            cout<<"O-";
            break;
           }
   }
   cout<<"\n\n";
   cout<<"Date of birth  : ";
   cout<<"\n\n";
   DOB1.show_date();
   cout<<"Martial Status : ";
   cout<<"\n\n";
   if(PI[i].martial_status==1)
   {
    cout<<"Married "<<"\n\n";
    cout<<"\n\n";
   }
   else
   {
    cout<<"Not married "<<"\n\n";
    cout<<"\n\n";
   }
   cout<<"\n\n";
   cout<<"          **ADDRESS**"<<"\n\n";
   cout<<"\n\n";
   cout<<"House no.      : "<<PI[regis].AD1.house;
   cout<<"\n\n";
   cout<<"Street         : "<<PI[regis].AD1.street;
   cout<<"\n\n";
   cout<<"City           : "<<PI[regis].AD1.city;
   cout<<"\n\n";
   cout<<"State          : "<<PI[regis].AD1.state;
   cout<<"\n\n";
   cout<<"Country        : "<<PI[regis].AD1.country;
   cout<<"\n\n";
  }
  else
  {
   if(regis==1)
   {
    cout<<"Database is empty !!!"<<"\n\n";
    cout<<"Press any key to exit to main task menu..."<<"\n\n";
    getch();
    system("CLS");
    A1.tasks();
   }
   attempt++;
   if(attempt==3)
   {
    cout<<"You have entered wrong registration number 3 times ."<<"\n\n";
    cout<<"Access Denied!!! "<<"\n\n";
    cout<<"Please try again later. "<<"\n\n";
    cout<<"Press any key to exit to main task menu..."<<"\n\n";
    getch();
    system("CLS");
    A1.tasks();
   }
   cout<<"\n\n";
   cout<<"Sorry, the registration number is invalid ."<<"\n\n";
   cout<<"Press any key to continue...."<<"\n\n";
   getch();
   cout<<"\n\n";
   A1.show_patient_detail();
  }
  cout<<"\n\n";
  cout<<"Want to see information of another patient :"<<"\n\n";
  cout<<"\n\n";
  cin>>answer1;
 }while(answer1=='y'||answer1=='Y');
 cout<<"\n\n";
 system("CLS");
 A1.tasks();
}

void dob::show_date()
{
 cout<<DOB11[regis].date;
 rem=DOB11[regis].date%10;
 switch(DOB11[regis].date)
 {
  case 11:
  case 12:
  case 13:
  case 14:
  case 15:
  case 16:
  case 17:
  case 18:
  case 19:
  case 20:{
           cout<<"th ";
           goto over;
          }
 }
 switch(rem)
 {
  case 1:{
          cout<<"st ";
          break;
         }
  case 2:{
          cout<<"nd ";
          break;
         }
  case 3:{
          cout<<"rd ";
          break;
         }
 default:{
          cout<<"th ";
          break;
         }
 }
 over:
 switch(DOB11[regis].month)
 {
  case 1:{
          cout<<"January , ";
          break;
         }
  case 2:{
          cout<<"February , ";
          break;
         }
  case 3:{
          cout<<"March , ";
          break;
         }
  case 4:{
          cout<<"April , ";
          break;
         }
  case 5:{
          cout<<"May , ";
          break;
         }
  case 6:{
          cout<<"June , ";
          break;
         }
  case 7:{
          cout<<"July , ";
          break;
         }
  case 8:{
          cout<<"August , ";
          break;
         }
  case 9:{
          cout<<"September , ";
          break;
         }
 case 10:{
          cout<<"October , ";
          break;
         }

 case 11:{
          cout<<"November , ";
          break;
         }
 case 12:{
          cout<<"December , ";
          break;
         }
 }
 cout<<DOB11[regis].year<<" ";
}

void all::software_detail()
{
 system("CLS");
 cout<<"    ***SOFTWARE DETAILS***\n\n";
 cout<<" Programming Language     : C++ "<<"\n\n";
 cout<<" Aim                      : Simulation of the software used in Hospital"<<"\n\n";
 cout<<" Hope you like it..."<<"\n\n";
 cout<<" Thank You for trying this program. "<<"\n\n";
 cout<<"Press any key to return to the main task menu......."<<"\n\n";
 getch();
 A1.tasks();
}

Output of the Program


Hospital Management System Project in C++

Share on Google Plus

About Asad

Asad Niazi is Software Engineer , Programmer, Web Developer and a young mentor of BloggersTown and PProgramming. Asad Love to writes about Technology, Programming, Blogging and make money online.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment