You are on page 1of 43

A

PROJECT REPORT
Submitted in partial fulfillment of the Requirements
For the award of Master of Computer Application Degree

RAJIV GANDHI PROUDYOGIKI VISHWAVIDYALAYA


BHOPAL (M.P.)

MINOR PROJECT REPORT

Submitted by,
ASHMAL IMAM (0103CA211036)
AAMISH (0103CA211001)
AJIT KUMAR YADAV (0103CA211012)

Under the Guidance of


Prof. Priyanka Singh

MASTER OF COMPUTER APPLICATION


LAKSHMI NARAIN COLLEGE OF TECHNOLOGY
BHOPAL

1
JULY-DECEMBER, 2022
LAKSHMI NARAIN COLLEGE OF TECHNOLOGY, BHOPAL

MASTER OF COMPUTER APPLICATION

CERTIFICATE

This is to certify that the work embodied in this Minor Project “Hospital Management
System” has been satisfactorily completed by Ashmal Imam (0103CA211036), Aamish
(0103CA211001), Ajit Kumar Yadav (0103CA211012). It is a bonafide piece of work, carried
out under my guidance in the Master of Computer Application, Lakshmi Narain College
of Technology, Bhopal for the partial fulfillment of the Master of Computer Application
degree during the academic session July-December, 2022.

Guided By

Prof. Priyanka Singh

Approved By

Head of Department

Forwarded by

Director
Dr. Sanjay Bajpai

Lakshmi Narain College of Technology, Bhopal

2
LAKSHMI NARAIN COLLEGE OF TECHNOLOGY, BHOPAL

MASTER OF COMPUTER APPLICATION

CERTIFICATE OF APPROVAL

This foregoing Minor project is hereby approved as a creditable study of a Computer


Application Subject carried out and presented in a manner satisfactory to warranty its
acceptance as a prerequisite to the degree for which it has been submitted. It is understood that
by this approval the undersigned do not necessarily endorse or approve any statement made,
opinion expressed or conclusion drawn therein, but approve the thesis only for the purpose for
which it has been submitted.

Internal Examiner External Examiner

3
LAKSHMI NARAIN COLLEGE OF TECHNOLOGY, BHOPAL

MASTER OF COMPUTER APPLICATION

DECLARATION

I/We, ASHMAL IMAM (0103CA211036), AAMISH (0103CA211001), AJIT KUMAR


YADAV (0103CA211012), a student of Master of Computer Application, Lakshmi Narain
College of Technology, Bhopal hereby declare that the work presented in this Minor Project
is outcome of my own work, is bonafide, correct to the best of my knowledge and this work has
been carried out taking care of Engineering Ethics. The work presented does not infringe any
patented work and has not been submitted to any University for the award of any degree or any
professional diploma.

Ashmal Imam (0103CA211036),

Aamish (0103CA211001),

Ajit Kumar Yadav (0103CA211012)

Date : 22-12-2022

4
LAKSHMI NARAIN COLLEGE OF TECHNOLOGY, BHOPAL

MASTER OF COMPUTER APPLICATION

ACKNOWLEDMENT

We express our sincere indebtedness towards our guide Prof. Priyanka Singh, Master of
Computer Application, Lakshmi Narain College of Technology, Bhopal for his/her
invaluable guidance, suggestions and supervision throughout the work. Without his/her kind
patronage and guidance the project would not have taken shape. We would also like to express
our gratitude and sincere regards for his/her kind approval of the project, time to time
counseling and advices. We would also like to thank to our Director Dr. Sanjay Bajpai, Master
of Computer Application, Master of Computer Application, Lakshmi Narain College of
Technology, BHOPAL for his expert advice and counseling from time to time. We owe
sincere thanks to all the faculty members in the department of Master of Computer
Application, Master of Computer Application, Lakshmi Narain College of Technology,
Bhopal for their kind guidance and encouragement from time to time.

5
CONTENTS

1. Declaration 4

2. Acknowledgement 5

3. Abstract 7

4. Introduction 8

5. Aim of the Project 9

6. Objective Of the Project 10

7. Problem Statement 11

8. Requirements Analysis 12

9. ER-Diagram 13

10. Data Flow Diagram 14-15

11. Coding 16-33

12. Main Screen (OUTPUT) 34-38

13. Implementation Procedure 39

14. Future Scope 40

15. Conclusion 41

16. Bibliography 42-43

6
ABSTRACT

Our project Hospital Management system includes registration of patients, storing their details into the system,
and also booking their appointments with doctors. Our software has the facility to give a unique id for every
patient and stores the details of every patient and the staff automatically. User can search availability of a doctor
and the details of a patient using the id. The Hospital Management System can be entered using a username and
password. It is accessible either by an administrator or receptionist. Only they can add data into the database.
The data can be retrieved easily. The interface is very user-friendly. The data are well protected for personal use
and makes the data processing very fast. It is having mainly two modules. One is at Administration Level and
other one is of user I.e., of patients and doctors. The Application maintains authentication in order to access the
application. Administrator task includes managing doctors’ information, patient’s information. To achieve this,
aim a database was designed one for the patient and other for the doctors which the admin can access. The
complaints which are given by user will be referred by authorities. The Patient modules include checking
appointments, prescription. User can also pay doctor’s Fee online.

7
Introduction
Hospital Management System is a system enabling hospitals to manage information and data related to all
aspects of healthcare – processes, providers, patients, and more, which in turn ensures that processes are
completed swiftly and effectively. When one thinks of the various aspects and departments of a hospital, it
becomes apparent that an HMS is critical. The hospital database management system was introduced in 1960,
and has greatly evolved since then – with the ability to integrate with the existing facilities, technologies,
software, and systems of a hospital. Today, patients can begin the process of healthcare in the palm of their
hand – the mobile devices and apps – make this possible. This process then moves to the healthcare providers
and hospitals.

With the large amounts of data, people involved and innumerable processes, a hospital is definitely an ideal
candidate for data management software. If hospitals are to run efficiently, provide top line care, ensure patient
and other data confidentiality, and work seamlessly – they cannot hope to do so without an effective Hospital
Management System Software. Reduced human intervention for paperwork, less paperwork, reduced staff
headcount for jobs that can be easily managed within the HMS, speedier processes, reduction of errors, and data
privacy and safety – are just some of the benefits of a Hospital Management System.
For the hospitals, HMS translates to being able to track patient history, provide better care, keep track of
appointments, save patient insurance and payment data, enable doctors and clinicians to check patient history,
maintain patient care continuity, and save time and effort on unnecessary tedious manual tasks.

8
Aim Of the Project

The aim of the project is to provide a paper-less hospital up-to 90%. It also aims at providing low-cost reliable
automation of the existing system. The system also provides security of data. The main function of the system is
to register and store patients details and doctor details and retrieve these details as and when required and also
to manipulate these details. The purpose of this project is to computerize all details regarding patient details and
doctor details.

The hospital management system helps register complete patient information. It captures and stores the medical
history, treatment required, details of their previous visits, upcoming appointments if any, reports, insurance
details and more. It helps eliminate the need to get these details on every visit.
I am developing this application after the questionnaire from the Clinic Authority/Staffs. The all data is based
on real fact, which are used as the processing of this application. I had faced many problems, which had been
solved by the Clinic Staffs after my questionnaire. I have collected those facts and discussed all aspects / facts
achieved during analysis of Software with my experienced Guide.

9
OBJECTIVE OF THE PROJECT

The project Hospital Management system includes registration of patients, storing their details into the system,
and also computerized billing in the pharmacy, and labs. The software has the facility to give a unique id for
every patient and stores the details of every patient and the staff automatically. Hospital Management System is
a software product suite designed to improve the quality and management of hospital management in the areas
of clinical process analysis and activity-based costing. Hospital Management System enables you to develop your
organization and improve its effectiveness and quality of work.

Recording information about the Patients that come, generating bills, recording information related to the
diagnosis given to patients. Keeping a record of the immunization provided to children/patients. Keeping
information about various diseases and medicines available to cure them.

• To make the interface user friendly.


• To make the system secure by adding login details
• To make the system self-sustainable such that the physical work can be avoided.
• To acquire knowledge about management practices which will be useful for us in future.
• To enhance the facilities of existing system.
• Customer satisfaction and implementation of new technology.
• On the whole the system should be profitable than the previous non computerized system.

10
PROBLEM STATEMENT

The existing System is not computerized and it is done manually. Here all the details are stored in separate files.
Therefore, the storage and retrieval of data becomes very tedious and requires lot of time and human effort.
Updating the data cannot be made easily. Retrieval of patients and doctor details of HMS was very difficult.
Debugging of errors is very difficult.
While retrieving the data or updating the data, the whole procedure has to be remembered in the current
system. Therefore, it has to switch on to a new system that is advantageous and easier than this current system.
The existing system is a tedious process whose functional areas and activities is the basis of our software
development. All processes, like managing the records of Patients, Doctor etc.. are done on excel sheet. It
needed a lot of man effort and very cumbersome task to manage. Every time when an invoice is needed to be
generated, due to lack of a digitized system it takes more time than necessary to process the data and generate
the invoice. There is always the risk of errors while processing the data and hence the company is
at a risk, as the monetary concerns always linger. In this long run where everything is at the tip of finger and
destination is at foot step, existing system is very time-consuming system.
LIMITATIONS
Time consuming
Delay at each step
Inappropriate procedural flow
Limited report
Less security
Inefficient method of record keeping

11
REQUIREMENT ANALYSIS
Hospitals have various types of functional requirements from patient registration, to scheduling consultations,
to report generation. HMS helps in several functional requirements of a hospital.
HMS is able to facilitate various registration needs in a hospital. The system not only records all relevant
information about the patient but also assigns a specific ID that uniquely identifies the individuals throughout
the patient lifecycle in the hospital. This essentially means the operators in all subsequent departments, say
diagnostics, IPD registration, physiotherapy or rehabilitation care, pharmacy, etc. Need not again record patient
data but retrieve the information from the unique ID.
Similarly, during checkout, the HMS helps healthcare facilities in ensuring all formalities and commitments from
hospitals to patients and vice versa are fulfilled. It thereafter is able to close the case during the checkout of
patients. Hospitals can choose either of the two options: The first is that they can close the case during
checkout but keep the patient ID intact and retrieve the ID and information in a follow-up visit. Or they can
choose to delete the ID altogether and generate a new ID on a fresh visit. Hospitals need to generate various
reports which include those that are related to patients and those that are pertaining to administration. By
integrating all information flow and data recording through HMS, the generation of various reports becomes
rather easy. HMS, therefore, helps record relevant information and relays them as per need, helping both
treatments of patients and administration of hospitals.
Good HMS technologies are easy to maintain. They are usually SaaS-based platforms that can be upgraded and
improved upon remotely without hindering the daily activities of hospitals. Its maintenance activities can be pre-
scheduled in parts considering when the activity is lowest, and it doesn’t take long to upgrade.
Being software as a service, HMS is highly resilient to any technology disruptions, downtime, or crashes
experienced by other technology systems. It has a certain capacity to work offline. It is highly secure from a data
safety point of view. Furthermore, good HMS has a highly instinctive and intelligent user interface which makes
them convenient to use.

Software Requirements:The application is developed in Microsoft windows 10 or later operating system. The
HMS application is coded and made using the following compilers:

1. Visual Studio code


2. Python (Backend)
3. Tkinter (Frontend)
4. Mysql (Database)

Hardware Requirements:

The application size is 2mb and the size of the code is 34.5kb so such amount of memory is required from hard
disk.

1. RAM: minimum 256 mb.


2. Mouse, keyboard

12
ER-DIAGRAM

REGISTER FORGOT
PASSWORD

ADMINISTRATION

PASSWORD P_NAME
USERNAME REF._ID

BLOOD I_DATE
PRESSURE

ISSUE_DATE
EXP_DATE

WEIGHT PATIENTS P_ADDRESS

SPECIALIZATIO
D_NAME N

MOB_N0.
DISEASE

GENDER
AGE

APPOIN
D_NAME ID TMENT

AGE DOCTOR MOB_NO.

ADDRESS
GENDER

13
DATA FLOW DIAGRAM

14
Admin for service

15
CODING
Login page:
from tkinter import *
from tkinter import ttk
from PIL import Image,ImageTk
from tkinter import messagebox
import mysql.connector

# def sample():

# #Main screen
# master = Toplevel(window)
# master.title("Bank Management System")
# master.geometry("700x500")

# #Image import
# img=Image.open("bank.png")
# img=img.resize((150,150))
# img=ImageTk.PhotoImage(img)

bgcolor="#95cfe0"
#main window
window =Tk()
window.title("login page")
window.geometry("1550x800+0+0")

#background images
bg_image=Image.open("doctor.jpg")
# bg_image=bg_image.resize((1550,800))
photo=ImageTk.PhotoImage(bg_image)
bg_label=Label(window,image=photo)
bg_label.place(x=0,y=0,relwidth=1,relheight=1)

frame=Frame(window,bg=bgcolor)
frame.place(x=610,y=170,width=340,height=450)

# login logo
img1=Image.open("user.png")
img1=img1.resize((100,100),Image.ANTIALIAS)
photoimage=ImageTk.PhotoImage(img1)
labelimg=Label(image=photoimage,borderwidth=0,bg=bgcolor)
labelimg.place(x=725,y=175,width=100,height=100)

getstarted=Label(frame,text="Get started",font=("freestyle script", 24, "bold"),bg=bgcolor,fg="white" )


getstarted.place(x=115,y=120)

16
#label username
user_name=Label(frame,text="Username",font=("times new roman",18,"bold"),bg=bgcolor,fg="white")
user_name.place(x=30,y=200)
#username entry
user=ttk.Entry(frame,font=("times new roman",14))
user.place(x=140,y=205)

#label password
user_pass=Label(frame,text="Password",font=("times new roman",18,"bold"),bg=bgcolor,fg="white")
user_pass.place(x=30,y=250)
#Password entry
Pass=ttk.Entry(frame,font=("times new roman",14))
Pass.place(x=140,y=255)

#icon image
img2=Image.open("us.png")
img2=img2.resize((20,20),Image.ANTIALIAS)
photoimage2=ImageTk.PhotoImage(img2)
labelimg1=Label(frame,image=photoimage2,borderwidth=0,bg=bgcolor)
labelimg1.place(x=5,y=205,width=25,height=25)

img3=Image.open("padlock.png")
img3=img3.resize((20,20),Image.ANTIALIAS)
photoimage3=ImageTk.PhotoImage(img3)
labelimg2=Label(frame,image=photoimage3,borderwidth=0,bg=bgcolor)
labelimg2.place(x=5,y=255,width=25,height=25)

# variables
var_fname=StringVar()
var_lname=StringVar()
var_contact=StringVar()
var_email=StringVar()
var_securityQ=StringVar()
var_securityA=StringVar()
var_pass=StringVar()
var_confpass=StringVar()
var_check=IntVar()

# function declaration register window


def register_window():
# register block:

# main window
register=Toplevel()
register.title("Register")
register.geometry("800x600+0+0")
register.maxsize(800,600)
17
register.minsize(800,600)

# frame
frame1=Frame(register,bg="white")
frame1.place(x=200,y=5,width=500,height=550)

#background images
# bg_image1=Image.open("bgimage.jpg")
# bg_image1=bg_image1.resize((800,600),Image.ANTIALIAS)
# photo1=ImageTk.PhotoImage(bg_image1)
# bg_label1=Label(register,image=photo1)
# bg_label1.place(x=0,y=0,relwidth=1,relheight=1)

register_lbl=Label(frame1,text="REGISTER HERE",font=("times new


roman",20,"bold"),fg=bgcolor,bg="white")
register_lbl.pack()

# label and entry


fname=Label(frame1,text="First name",font=("times new roman",15,"bold"),bg="white")
fname.place(x=10,y=50)

fname_entry=ttk.Entry(frame1,textvariable=var_fname,font=("times new roman",15))

fname_entry.place(x=120,y=50)
lname=Label(frame1,text="Last name",font=("times new roman",15,"bold"),bg="white")
lname.place(x=10,y=90)

lname_entry=ttk.Entry(frame1,textvariable=var_lname,font=("times new roman",15))


lname_entry.place(x=120,y=90)

contact=Label(frame1,text="Contact",font=("times new roman",15,"bold"),bg="white")


contact.place(x=10,y=130)

contact_entry=ttk.Entry(frame1,textvariable=var_contact,font=("times new roman",15))


contact_entry.place(x=120,y=130)

email=Label(frame1,text="Email",font=("times new roman",15,"bold"),bg="white")


email.place(x=10,y=170)

email_entry=ttk.Entry(frame1,textvariable=var_email,font=("times new roman",15))


email_entry.place(x=120,y=170)

#select option
security_Q=Label(frame1,text="Select Security Questions",font=("times new
roman",15,"bold"),bg="white")
security_Q.place(x=10,y=210)

18
combo_security_Q=ttk.Combobox(frame1,textvariable=var_securityQ,font=("times new
roman",15,"bold"),state="readonly")
combo_security_Q["values"]=("select","Your city name","your birth place","your pet name")
combo_security_Q.place(x=240,y=210)
combo_security_Q.current(0)

security_A=Label(frame1,text="Security Answer",font=("times new roman",15,"bold"),bg="white")


security_A.place(x=10,y=250)

security_A_entry=ttk.Entry(frame1,textvariable=var_securityA,font=("times new roman",15))


security_A_entry.place(x=180,y=250)

password=Label(frame1,text="Password",font=("times new roman",15,"bold"),bg="white")


password.place(x=10,y=290)

pass_entry=ttk.Entry(frame1,textvariable=var_pass,font=("times new roman",15))


pass_entry.place(x=180,y=290)

cpass=Label(frame1,text="Confirm Password",font=("times new roman",15,"bold"),bg="white")


cpass.place(x=10,y=330)

cpass_entry=ttk.Entry(frame1,textvariable=var_confpass,font=("times new roman",15))


cpass_entry.place(x=180,y=330)

#checkbutton
checkbtn=Checkbutton(frame1,variable=var_check,text="I Agree the terms & condition",font=("times new
roman",10,"bold"),bg="white",onvalue=1, offvalue=0)
checkbtn.place(x=10,y=370)

def register_data():
if var_fname.get()=="" or var_email.get()=="" or var_securityQ.get()=="select":
messagebox.showerror("Error","All fields are required")
elif var_pass.get()!=var_confpass.get():
messagebox.showerror("Error","Password and confirm password are not same")
elif var_check.get()==0:

messagebox.showerror("Error","Please agree our terms and codition")


else:

mydb=mysql.connector.connect(host="localhost",user="root",password="Ashmal123",database="hms")

cur=mydb.cursor()
query=("select * from register where email=%s")
value=(var_email.get(),)
cur.execute(query,value)
row=cur.fetchone()
if row!=None:
19
messagebox.showerror("Error","User already exist, please enter another email")
else:
cur.execute("insert into register values(%s,%s,%s,%s,%s,%s,%s)",
(var_fname.get(),var_lname.get(),var_contact.get(),
var_email.get(),var_securityQ.get(),var_securityA.get(),var_pass.get()))
mydb.commit()
mydb.close()
messagebox.showinfo("Success","Registered Successfully")
# buttons

btn=Button(frame1,text="Register Now",command=register_data,font=("times new


roman",15,"bold"),fg="red",borderwidth=0,cursor="hand2")
btn.place(x=20,y=430,width=150)

btn1=Button(frame1,text="Login Now",font=("times new


roman",15,"bold"),fg="blue",borderwidth=0,cursor="hand2")
btn1.place(x=180,y=430,width=150)

#login
def login():
if user.get()=="" or Pass.get()=="":
messagebox.showerror("Error","All fields are required")
else:
mydb=mysql.connector.connect(host="localhost",user="root",password="Ashmal123",database="hms")
cur=mydb.cursor()
cur.execute("select * from register where email=%s and password=%s",(user.get(),Pass.get()))
row=cur.fetchone()
if row==None:
messagebox.showerror("Error","Invalid username and password")
else:
messagebox.showinfo("Success","Welcome")
mydb.commit()
mydb.close()
# sample()
#forgot password

def forgot_password():
if user.get()=="":
messagebox.showerror("Error","Please enter the email id to reset the Password")
else:

mydb=mysql.connector.connect(host="localhost",user="root",password="Ashmal123",database="hms")
cur=mydb.cursor()
query=("select * from register where email=%s")
value=(user.get(),)
cur.execute(query,value)
row=cur.fetchone()

20
if row==None:
messagebox.showerror("Error","Please enter the valid username")
else:
mydb.close()
forgot_window=Toplevel()
forgot_window.title("Forgot Password")
forgot_window.geometry("340x450+610+170")
labelf=Label(forgot_window,text="Forgot Password",font=("times new
roman",16,"bold"),fg="green",bg="#95cfe0")
labelf.place(x=0,y=10,relwidth=1)

security_Q=Label(forgot_window,text="Select Security Questions",font=("times new


roman",15,"bold"),bg="white")
security_Q.place(x=50,y=80)

combo_security_Q=ttk.Combobox(forgot_window,font=("times new
roman",15,"bold"),state="readonly")
combo_security_Q["values"]=("select","Your city name","your birth place","your pet name")
combo_security_Q.place(x=50,y=110)
combo_security_Q.current(0)

security_A=Label(forgot_window,text="Security Answer",font=("times new


roman",15,"bold"),bg="white")
security_A.place(x=50,y=150)

security_A_entry=ttk.Entry(forgot_window,font=("times new roman",15))


security_A_entry.place(x=50,y=180)
new_pass=Label(forgot_window,text="New Password",font=("times new
roman",15,"bold"),bg="white")
new_pass.place(x=50,y=220)

new_password_entry=ttk.Entry(forgot_window,font=("times new roman",15))


new_password_entry.place(x=50,y=250)

#reset password function


def reset_pass():
if combo_security_Q.get()=="Select"or security_A_entry.get()==""or
new_password_entry.get()=="":
messagebox.showerror("Error","All fields required")
else:

mydb=mysql.connector.connect(host="localhost",user="root",password="Ashmal123",database="hms")
cur=mydb.cursor()
cur.execute("select * from register where email=%s and securityQ=%s and
securityA=%s",(user.get(),combo_security_Q.get(),security_A_entry.get()))
row=cur.fetchone()
if row==None:
messagebox.showerror("Error","Please select the correct security question or answer")
21
else:
cur.execute("update register set password=%s where
email=%s",(new_password_entry.get(),user.get()))
mydb.commit()
mydb.close()
messagebox.showinfo("Success","Your password has been reset")
forgot_button=Button(forgot_window,text="RESET",command=reset_pass,font=("times new
roman",14,"bold"),fg="white",bg="green")
forgot_button.place(x=50,y=300)

#main window button


login_button=Button(frame,text="Login",command=login,font=("times new
roman",14),bd=2,relief=RIDGE,fg="white",bg="red")
login_button.place(x=120,y=300,width=100,height=35)

register_button=Button(frame,text="New user Register",command=register_window,font=("times new


roman",14),borderwidth=0,fg="white",bg=bgcolor)
register_button.place(x=5,y=350,width=160)
forgot_button=Button(frame,text="Forgot password",command=forgot_password,font=("times new
roman",14),borderwidth=0,fg="white",bg=bgcolor)
forgot_button.place(x=5,y=380,width=160)
window.mainloop()

Main windows:

from tkinter import *


from tkinter import ttk
from turtle import width
from PIL import Image,ImageTk
from tkinter import messagebox
import random
import time
import datetime
import mysql.connector

def mainwindow():
main_window=Tk()
main_window.title("Polyclinic")
main_window.geometry("1550x800+0+0")
main_window.maxsize(1550,800)

name=StringVar()
ref=StringVar()
bp=StringVar()
idate=StringVar()
edate=StringVar()
weight=StringVar()
address=StringVar()
22
dname=StringVar()
special=StringVar()
disease=StringVar()
mobile=StringVar()
blood=StringVar()
id=StringVar()
age=StringVar()
gender=StringVar()
docname=StringVar()
dadd=StringVar()
dage=StringVar()
dmobile=StringVar()
dgender=StringVar()

#frame
frame=Frame(main_window,bg="#76a5ba",borderwidth=4,relief=RIDGE)
frame.place(x=0,y=0,width=1550,height=70)

frame1=Frame(main_window,bg="grey",borderwidth=4,relief=RIDGE)
frame1.place(x=0,y=70,width=230,height=730)

frame2=Frame(main_window)
frame2.place(x=230,y=70,width=1320,height=730)

# background image
bg_image=Image.open("doc.jpg")
bg_image=bg_image.resize((1320,730))
photo=ImageTk.PhotoImage(bg_image)
bg_label=Label(frame2,image=photo)
bg_label.place(x=0,y=0,relwidth=1,relheight=1)

#Label
label=Label(frame,text="POLYCLINIC",font=("times new
roman",50,"bold"),fg="blue",bg="#76a5ba",justify='center')
label.pack(pady=5,fill=X)

def add_patient():
patient=Toplevel()
patient.title("Patient records")
patient.geometry("800x500")

# frame
frame=Frame(patient,bd=15,relief=SUNKEN)
frame.place(x=0,y=0,width=800,height=500)

frame1=Frame(patient,bd=10,relief=SUNKEN)
frame1.place(x=0,y=400,width=800,height=50)

23
# label and entry

label=Label(frame,text="Patient Informtion",font=("times new roman",15,"bold"),fg="green")


label.pack()

label1=Label(frame,text="Patient Name",font=("times new roman",15))


label1.place(x=5,y=55)
entry1=Entry(frame,textvariable=name,font=("times new roman",15))
entry1.place(x=140,y=55)

label2=Label(frame,text="Reference No.",font=("times new roman",15))


label2.place(x=5,y=100)
entry2=Entry(frame,textvariable=ref,font=("times new roman",15))
entry2.place(x=140,y=100)

label3=Label(frame,text="Blood Pressure",font=("times new roman",15))


label3.place(x=5,y=145)
entry3=Entry(frame,textvariable=bp,font=("times new roman",15))
entry3.place(x=140,y=145)

label4=Label(frame,text="Issue Date:",font=("times new roman",15))


label4.place(x=5,y=190)
entry4=Entry(frame,textvariable=idate,font=("times new roman",15))
entry4.place(x=140,y=190)

label5=Label(frame,text="Expiry Date:",font=("times new roman",15))


label5.place(x=5,y=235)
entry5=Entry(frame,textvariable=edate,font=("times new roman",15))
entry5.place(x=140,y=235)

label6=Label(frame,text="Weight",font=("times new roman",15))


label6.place(x=5,y=280)
entry6=Entry(frame,textvariable=weight,font=("times new roman",15))
entry6.place(x=140,y=280)

label7=Label(frame,text="Patient Address",font=("times new roman",15))


label7.place(x=5,y=325)
entry7=Entry(frame,textvariable=address,font=("times new roman",15))
entry7.place(x=140,y=325)

label8=Label(frame,text="Doctor",font=("times new roman",15))


label8.place(x=400,y=55)

mydb=mysql.connector.connect(host="localhost",user="root",password="Ashmal123",database="hms")
cur=mydb.cursor()
options=[]
cur.execute("select name from doctor")
ids=cur.fetchall()
24
for i in ids:
options.append(i)

combo_label8=ttk.Combobox(frame,textvariable=dname,font=("times new roman",15),state="readonly")


combo_label8["values"]=options
combo_label8.place(x=500,y=55)
# combo_label8.current(0)

label9=Label(frame,text="Specialization",font=("times new roman",15))


label9.place(x=380,y=100)

combo_label9=ttk.Combobox(frame,textvariable=special,font=("times new roman",15),state="readonly")

combo_label9["values"]=("select","Neurologist","Cardiologist","Gynecologist","Dentist","Physician","Radiologi
st")
combo_label9.place(x=500,y=100)
combo_label9.current(0)
label10=Label(frame,text="Disease",font=("times new roman",15))
label10.place(x=400,y=145)
entry10=Entry(frame,textvariable=disease,font=("times new roman",15))
entry10.place(x=500,y=145,width=220)

label11=Label(frame,text="Mobile No.",font=("times new roman",15))


label11.place(x=400,y=190)
entry11=Entry(frame,textvariable=mobile,font=("times new roman",15))
entry11.place(x=500,y=190,width=220)

label12=Label(frame,text="Blood Grp",font=("times new roman",15))


label12.place(x=400,y=235)
entry12=Entry(frame,textvariable=blood,font=("times new roman",15))
entry12.place(x=500,y=235,width=220)

label13=Label(frame,text="Age",font=("times new roman",15))


label13.place(x=400,y=280)
entry13=Entry(frame,textvariable=age,font=("times new roman",15))
entry13.place(x=500,y=280,width=220)

label14=Label(frame,text="Gender",font=("times new roman",15))


label14.place(x=400,y=325)
entry14=Entry(frame,textvariable=gender,font=("times new roman",15))
entry14.place(x=500,y=325,width=220)

def add():
if name.get()=="" or ref.get()==""or disease.get()==""or special.get()==""or dname.get()=="":
messagebox.showerror("Error","All fields are required",parent=patient)
else:

mydb=mysql.connector.connect(host="localhost",user="root",password="Ashmal123",database="hms")
25
cur=mydb.cursor()
cur.execute("insert into patient
values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",(name.get(),ref.get(),bp.get(),idate.get(),edate.get(),we
ight.get(),
address.get(),dname.get(),special.get(),disease.get(),mobile.get(),blood.get(),age.get(),gender.get()))
mydb.commit()
mydb.close()
messagebox.showinfo("Success","Record has been inserted",parent=patient)

# button
btn1=Button(frame1,text="Add",command=add,font=("times new roman",14),bg="green",fg="white")
btn1.place(x=250,width=100)

btn2=Button(frame1,text="Reset",font=("times new roman",14),bg="green",fg="white")


btn2.place(x=400,width=100)

#update section
def update_patient():
upatient=Toplevel()
upatient.title("Update patient records")
upatient.geometry("800x500")
upatient.maxsize(800,500)

def search():
try:
global myresult
Reference_id=e.get()
Patient_name=name.get()
Reference_no=ref.get()
Blood_pressure=bp.get()
issue_date=idate.get()
exp_date=edate.get()
Weight=weight.get()
Address=address.get()
doctor=dname.get()
Special=special.get()
Disease=disease.get()
mobile_no=mobile.get()
blood_grp=blood.get()
Age=age.get()
Gender=gender.get()

mydb=mysql.connector.connect(host="localhost",user="root",password="Ashmal123",database="hms")
cur=mydb.cursor()
sql="select * from patient where refno='%s'"%e.get()
cur.execute(sql)
myresult=cur.fetchone()
# print(myresult)
26
mydb.commit()
mydb.close()
# for x in myresult:
name.set(myresult[0])
ref.set(myresult[1])
bp.set(myresult[2])
idate.set(myresult[3])
edate.set(myresult[4])
weight.set(myresult[5])
address.set(myresult[6])
dname.set(myresult[7])
special.set(myresult[8])
disease.set(myresult[9])
mobile.set(myresult[10])
blood.set(myresult[11])
age.set(myresult[12])
gender.set(myresult[13])
except:
messagebox.showinfo("No Data","No such Data available..")

frame=Frame(upatient,bd=15,relief=SUNKEN)
frame.place(x=0,y=0,width=800,height=500)

frame1=Frame(upatient,bd=10,relief=SUNKEN)
frame1.place(x=0,y=400,width=800,height=50)
frame2=Frame(upatient,bd=15,relief=SUNKEN)
frame2.place(x=0,y=5,width=800,height=60)

l=Label(frame2,text="Reference id",font=("times new roman",14,"bold"))


l.place(x=20,y=5)
e=Entry(frame2,font=("times new roman",14,"bold"))
e.place(x=150,y=5)

btn=Button(frame2,command=search,text="search")
btn.place(x=400,y=5,width=200)

label1=Label(frame,text="Patient Name",font=("times new roman",15))


label1.place(x=5,y=55)
entry1=Entry(frame,textvariable=name,font=("times new roman",15))
entry1.place(x=140,y=55)

label2=Label(frame,text="Reference No.",font=("times new roman",15))


label2.place(x=5,y=100)
entry2=Entry(frame,textvariable=ref,font=("times new roman",15))
entry2.place(x=140,y=100)

27
label3=Label(frame,text="Blood Pressure",font=("times new roman",15))
label3.place(x=5,y=145)
entry3=Entry(frame,textvariable=bp,font=("times new roman",15))
entry3.place(x=140,y=145)

label4=Label(frame,text="Issue Date:",font=("times new roman",15))


label4.place(x=5,y=190)
entry4=Entry(frame,textvariable=idate,font=("times new roman",15))
entry4.place(x=140,y=190)

label5=Label(frame,text="Expiry Date:",font=("times new roman",15))


label5.place(x=5,y=235)
entry5=Entry(frame,textvariable=edate,font=("times new roman",15))
entry5.place(x=140,y=235)

label6=Label(frame,text="Weight",font=("times new roman",15))


label6.place(x=5,y=280)
entry6=Entry(frame,textvariable=weight,font=("times new roman",15))
entry6.place(x=140,y=280)

label7=Label(frame,text="Patient Address",font=("times new roman",15))


label7.place(x=5,y=325)
entry7=Entry(frame,textvariable=address,font=("times new roman",15))
entry7.place(x=140,y=325)

label8=Label(frame,text="Doctor",font=("times new roman",15))


label8.place(x=400,y=55)

mydb=mysql.connector.connect(host="localhost",user="root",password="Ashmal123",database="hms")
cur=mydb.cursor()
options=[]
cur.execute("select name from doctor")
ids=cur.fetchall()
for i in ids:
options.append(i)

combo_label8=ttk.Combobox(frame,textvariable=dname,font=("times new
roman",15,"bold"),state="readonly")
combo_label8["values"]=options
combo_label8.place(x=500,y=55)
# combo_label8.current(0)

label9=Label(frame,text="Specialization",font=("times new roman",15))


label9.place(x=380,y=100)

combo_label9=ttk.Combobox(frame,textvariable=special,font=("times new
roman",15,"bold"),state="readonly")

28
combo_label9["values"]=("select","Neurologist","Cardiologist","Gynecologist","Dentist","Physician","Radiologi
st")
combo_label9.place(x=500,y=100)
combo_label9.current(0)

label10=Label(frame,text="Disease",font=("times new roman",15))


label10.place(x=400,y=145)
entry10=Entry(frame,textvariable=disease,font=("times new roman",15))
entry10.place(x=500,y=145,width=220)

label11=Label(frame,text="Mobile No.",font=("times new roman",15))


label11.place(x=400,y=190)
entry11=Entry(frame,textvariable=mobile,font=("times new roman",15))
entry11.place(x=500,y=190,width=220)

label12=Label(frame,text="Blood Grp",font=("times new roman",15))


label12.place(x=400,y=235)
entry12=Entry(frame,textvariable=blood,font=("times new roman",15))
entry12.place(x=500,y=235,width=220)

label13=Label(frame,text="Age",font=("times new roman",15))


label13.place(x=400,y=280)
entry13=Entry(frame,textvariable=age,font=("times new roman",15))
entry13.place(x=500,y=280,width=220)

label14=Label(frame,text="Gender",font=("times new roman",15))


label14.place(x=400,y=325)
entry14=Entry(frame,textvariable=gender,font=("times new roman",15))
entry14.place(x=500,y=325,width=220)

def delete():

if name.get()=="" or ref.get()==""or disease.get()==""or special.get()==""or dname.get()=="":


messagebox.showerror("Error","All fields are required",parent=upatient)
else:

mydb=mysql.connector.connect(host="localhost",user="root",password="Ashmal123",database="hms")
cur=mydb.cursor()
query="delete from patient where refno=%s"
value=(ref.get(),)
cur.execute(query,value)
mydb.commit()
mydb.close()
messagebox.showinfo("Success","Record has been deleted",parent=upatient)

# button
btn1=Button(frame1,text="Update",font=("times new roman",14),bg="green",fg="white")
29
btn1.place(x=150,width=100)

btn2=Button(frame1,text="Delete",command=delete,font=("times new
roman",14),bg="green",fg="white")
btn2.place(x=300,width=100)

btn3=Button(frame1,text="Reset",font=("times new roman",14),bg="green",fg="white")


btn3.place(x=450,width=100)

def doctor():
doctor=Toplevel()
doctor.title("Doctor Records")
doctor.geometry("800x500")

# frame
frame=Frame(doctor,bd=15,relief=SUNKEN)
frame.place(x=0,y=0,width=800,height=500)

frame1=Frame(doctor,bd=10,relief=SUNKEN)
frame1.place(x=0,y=400,width=800,height=50)

# label and entry

label=Label(frame,text="Doctor Informtion",font=("times new roman",15,"bold"),fg="green")


label.pack()

label1=Label(frame,text="Doctor Name",font=("times new roman",15))


label1.place(x=5,y=55)
entry1=Entry(frame,textvariable=docname,font=("times new roman",15))
entry1.place(x=140,y=55)

label2=Label(frame,text="Id",font=("times new roman",15))


label2.place(x=5,y=100)
entry2=Entry(frame,textvariable=id,font=("times new roman",15))
entry2.place(x=140,y=100)

label3=Label(frame,text="Mobile No.",font=("times new roman",15))


label3.place(x=5,y=145)
entry3=Entry(frame,textvariable=dmobile,font=("times new roman",15))
entry3.place(x=140,y=145)

label4=Label(frame,text="Specialization",font=("times new roman",15))


label4.place(x=5,y=190)
combo_label4=ttk.Combobox(frame,textvariable=special,font=("times new
roman",15,"bold"),state="readonly")
30
combo_label4["values"]=("select","Neurologist","Cardiologist","Gynecologist","Dentist","Physician","Radiologi
st")
combo_label4.place(x=140,y=190)
combo_label4.current(0)

label5=Label(frame,text="Age",font=("times new roman",15))


label5.place(x=5,y=235)
entry5=Entry(frame,textvariable=dage,font=("times new roman",15))
entry5.place(x=140,y=235)

label6=Label(frame,text="Address",font=("times new roman",15))


label6.place(x=5,y=280)
entry6=Entry(frame,textvariable=dadd,font=("times new roman",15))
entry6.place(x=140,y=280)

label7=Label(frame,text="Gender",font=("times new roman",15))


label7.place(x=5,y=325)
entry7=Entry(frame,textvariable=dgender,font=("times new roman",15))
entry7.place(x=140,y=325)

def add():
if docname.get()=="" or id.get()=="":
messagebox.showerror("Error","All fields are required",parent=doctor)
else:

mydb=mysql.connector.connect(host="localhost",user="root",password="Ashmal123",database="hms")
cur=mydb.cursor()
cur.execute("insert into doctor
values(%s,%s,%s,%s,%s,%s,%s)",(docname.get(),id.get(),dmobile.get(),special.get(),dage.get(),dadd.get(),dgender
.get()))
mydb.commit()
mydb.close()
messagebox.showinfo("Success","Record has been inserted",parent=doctor)

def delete():
if id.get()=="":
messagebox.showerror("Error","id fields are required",parent=doctor)
else:

mydb=mysql.connector.connect(host="localhost",user="root",password="Ashmal123",database="hms")
cur=mydb.cursor()
query=("delete from doctor where id=%s")
value=(id.get(),)
cur.execute(query,value)
mydb.commit()
mydb.close()
messagebox.showinfo("Success","Record has been deleted",parent=doctor)
31
#button
btn1=Button(frame1,text="Add",command=add,font=("times new roman",14),bg="green",fg="white")
btn1.place(x=100,width=100)

btn2=Button(frame1,text="Update",font=("times new roman",14),bg="green",fg="white")


btn2.place(x=250,width=100)

btn3=Button(frame1,text="Delete",command=delete,font=("times new
roman",14),bg="green",fg="white")
btn3.place(x=400,width=100)

btn4=Button(frame1,text="Reset",font=("times new roman",14),bg="green",fg="white")


btn4.place(x=550,width=100)

#add data
def data():
data=Toplevel()
data.title("Patient Data")
data.geometry("800x500")

xscroll=ttk.Scrollbar(data,orient=HORIZONTAL)
yscroll=ttk.Scrollbar(data,orient=VERTICAL)

# frame=Frame()

patient_table=ttk.Treeview(data,column=("pname","ref","bp","idate","edate","wei","paddress","doc","special","
dis","mob","bgrp","age","gen"),
xscrollcommand=xscroll.set,yscrollcommand=yscroll.set)
xscroll.pack(side=BOTTOM,fill=X)
yscroll.pack(side=RIGHT,fill=Y)

xscroll.config(command=patient_table.xview)
yscroll.config(command=patient_table.yview)
patient_table.heading("pname",text="Patient name")
patient_table.heading("ref",text="Reference No.")
patient_table.heading("bp",text="Blood Pressure")
patient_table.heading("idate",text="Issue Date")
patient_table.heading("edate",text="Expiry Date")
patient_table.heading("wei",text="Weight")
patient_table.heading("paddress",text="Patient Address")
patient_table.heading("doc",text="Doctor")
patient_table.heading("special",text="Specialization")
patient_table.heading("dis",text="Disease")
patient_table.heading("mob",text="Mobile")
patient_table.heading("bgrp",text="Blood Group")
patient_table.heading("age",text="Age")
32
patient_table.heading("gen",text="Gender")

patient_table["show"]="headings"
patient_table.pack(fill=BOTH,expand=1)

patient_table.column("pname",width=100)
patient_table.column("ref",width=100)
patient_table.column("bp",width=100)
patient_table.column("idate",width=100)
patient_table.column("edate",width=100)
patient_table.column("wei",width=100)
patient_table.column("paddress",width=100)
patient_table.column("doc",width=100)
patient_table.column("special",width=100)
patient_table.column("dis",width=100)
patient_table.column("mob",width=100)
patient_table.column("bgrp",width=100)
patient_table.column("age",width=100)
patient_table.column("gen",width=100)

#button
btn=Button(frame1,text="Add New Patient Record",command=add_patient,font=("times new
roman",12,"bold"),fg="white",bg="red")
btn.place(x=20,y=35,width=180)

btn1=Button(frame1,text="Update Patient Record",command=update_patient,font=("times new


roman",12,"bold"),fg="white",bg="red")
btn1.place(x=20,y=95,width=180)

btn2=Button(frame1,text="Delete Patient Record",font=("times new


roman",12,"bold"),fg="white",bg="red")
btn2.place(x=20,y=155,width=180)

btn3=Button(frame1,text="Add Doctor",command=doctor,font=("times new


roman",12,"bold"),fg="white",bg="red")
btn3.place(x=20,y=215,width=180)
btn4=Button(frame1,text="Prescription Data",command=data,font=("times new
roman",12,"bold"),fg="white",bg="red")
btn4.place(x=20,y=275,width=180)
btn5=Button(frame1,text="Hospital Information",font=("times new
roman",12,"bold"),fg="white",bg="red")
btn5.place(x=20,y=335,width=180)

btn6=Button(frame1,text="Log Out",font=("times new roman",12,"bold"),fg="white",bg="red")


btn6.place(x=20,y=395,width=180)
main_window.mainloop()

mainwindow()
33
MAIN SCREEN(OUTPUT)
Registered User’s :

User’s Entered wrong id and password:

34
Forgot Password:

Login page:

35
Main window:

Add Patient’s Record:

36
Update Patient’s Record:

Add Doctor’s Record:

37
Databases Doctor’s record:

User’s Registered:

Databases Patient’s Record:

38
Implementation Procedure

Implementation is the stage of the project when the theoretical design is turned out into a working system.
Theus, it can be considered to be the most critical stage in achieving a successful new system and in giving the
user, confidence that the new system will work and be effective. The implementation stage involves careful
planning, investigation of the existing system and its constraints on implementation, designing of methods to
achieve changeover and evaluation of changeover methods.
Implementation is the processes of having system personnel check out and put new equipment into use it.
Depending on the requirement of the organization that will be involved in using the application and the risk
associated with its use. In this phase the developers make a pilot(test) of the operation in a segment before
handing over the system to a user. A crucial phase in system life cycle is the successful implementation of the
new system design, in a sequential design by the technique of scheduling, which is transform into a sequence
design by the technique of scheduling. This is followed by further detailed design and coding.
The transformation from logical system specification to sequential design is achieved by introducing a
scheduler process (main program) and inverting other system processes as subroutines which can be called by
the scheduler. The implementation phase in S/W application development is concerned with translating design
specification into source code.
Implementation involves the preparation for beginning of the new information system operations, conversion
of existing data file & programs those suitable for the new system.

39
FUTURE SCOPE

All this work is done manually by the receptionist and other operational staff and lot of papers are needed to be
handled and taken care of. Doctors have to remember various medicines available for diagnosis and sometimes
miss better alternatives as they can’t remember them at that time. The limited time and resources have restricted
us to incorporate, in this project, only taken to make the system efficient and user friendly.

Most of the analysis and interpretations, made for the reports, are based on secondary data obtained. This data
could have some inherent mistakes and errors. Finally, although due care has been taken those can be typing
and compilation errors in the report itself. The tasks specified were not well defined because nothing was
mentioned regarding validations in the project. Though we gave maximum efforts to check the software. But it
in no way alters the ultimate aim of the project and because it’s highly USER FRIENDLY, it would be the
choice of all kinds of personnel.

The Database maintained here grows as times passes by thus it has to be cleaned up in frequent intervals so
as to save memory. There are no special provisions designed in the system. If the user wants an option of
backing of data in frequent intervals, it could be added to the present system.

Frequently enough the system should be reviewed for pupations as we know that maintenance is rather
difficult than developing a system. So there should be proper feedback about the usefulness of the system,
otherwise the basic purpose of automation would not be achieved.

At present the accounting system of the organization using this package is maintained in record Patient only
but in future expansion they can go for the computerization of accounts and also it can be included in the
present system.

40
CONCLUSION
Since we are entering details of the patients electronically in the “Hospital Management System”, data will be
secured. Using this application, we can retrieve patient’s history with a single clock. Thus, processing
information will be faster. It guarantees accurate maintenance of patient details. It easily reduces the book
keeping task and thus reduces the human effort and increases accuracy speed.

Hospital Management System is essential for maintaining details about the Doctor, Patient, Hospital staff etc.
We understand that by using of hospital management system project the work became very easy and we save lot
of time. Hospital administrators would be able to significantly improve the operational control and thus
streamline operations. This would enable to improve the response time to the demands of patient care because
it automates the process of collecting, collating and retrieving patient information. Accounting sometimes
becomes awfully pathetic and complex. This product will eliminate any such complexity.

41
BIBLIOGRAPHY

1. Han J. and Kamber M. (2003): “Data Mining, Concepts and Techniques”, Academic Press, 2003.
2. Hand D., Mannila H. and Smyth P. (2001): “Principle of Data Mining”. MIT Press, Cambridge,
Massachusetts, USA, 2001.
3. J. Han and M. Kamber (2011): “Data Mining: Concepts and Techniques”, Morgan Kaufmann Pub.,
3rd ed., 2011.
4. Berson (1997): “Data warehousing, Data Mining & DLAP, Computing” Mcgraw-Hill, 1997.
5. W. H. Inmon (2005): “Building the Data Warehouse”, 3ed, Wiley India, 2005.
6. B. W. Kernighan and R. Pike (1995): “The UNIX Programming Environment”, Prentice Hall of India,
1995.
7. Buyya and Selvi (2013): ”Mastering Cloud Computing “,TMH Pub., 2013.
8. Law and Kelton (2000): “Simulation Modelling and Analysis” 3rd Ed., McGraw Hill, 2000.
9. Jeffrey R. Shapiro (2002): “The Complete Reference Visual Basic .NET”, Tata Mcgraw Hill, 2002.
10. Chris Ullman and Kauffman (2003): “Beg ASP.NET1.1 with VC#.NET 2003”, Wiley Dream tech., 2003.
11. Han J., Pei J. and Yin Y. (2000): “Mining Frequent Patterns without Candidate Generation”. In
proceedings of International Conference on Management of Data (ACM SIGMOD’00), pages 1-12,
ACM Press Dallas, TX, United States, May 2000.
12. Andrew S. Tanenbaum and Maarten Van Steen (2002): “Distributed Systems Principles and
Paradigms” Pearson Education Inc. 2002.
13. Eric Maiwald (2004): “Fundamentals of network security”, New Delhi, Wiley Dreamtech India Ltd,
2004 Edition.
14. Elaine Rich, Kevin Knight and Shivashankar B. Nair(2009): “Artifical Intelligence”, Tata McGraw-Hill
Education Private Limited, 2009.
15. G. Somasundaram and Alok Shrivastava (EMC Education Services)(2002): “Information Storage and
Management: Storing, Managing, and Protecting Digital Information”,2nd Ed., Wiley India, 2002.
16. S. Harrington (1987): “Computer Graphics - a Programming approach”, 2nd ed. McGrawhill, New
York, 1987.
17. Ullman (2008): "Analysis and Design of Algorithm", McGrawhill, New York, 2008.
18. Goodman (2002): “Introduction to the Design & Analysis of Algorithms”, TMH-2002.
19. Naughton and Schildt (1999): “The Complete Reference Java 2”, Tata McGraw Hill 1999.
20. Deitel (2004): "Java How to Program", Fifth Edition. Pearson Education, 2004.
21. Alfred V. Aho, Ravi Sethi and J.D. Ullman (1986): “Compilers- Principles, Techniques and tools”,
Addison Wesley, 1986.
22. Elmarsi (2004): “Fundamentals of Database Systems”, 6 th Edition, Pearson Education, 2004.
42
23. R. Ramakrishnan (1998): “Database Management Systems”, McGraw Hill, International Editions,
1998.
24. Gillet B.E. (1979): “Introduction to Operation Research, Computer Oriented Algorithmic
approach”, Tata McGraw, Hill Publising Co. Ltd., New Delhi, 1979.
25. R. S. Pressman (2002): “Software Engineering – A practitioner’s approach”, 6th ed., McGraw Hill
Int. Ed., 2002.
26. Lafore R. (2000): “Object Oriented Programming in C++”, 3rd. ed., Galgotia Pub, 2000.
27. Balagurusawmy (2008): “Object Orienter Programming with C++”, Tata McGraw-Hill Education,
2008.
28. Hopcroft & Ullman (1979): “Introduction to Automata theory, languages & Computation”, Narosha
Publishing house, 1979.
29. A. S. Tanenbaum (1989): “Computer Network”, 4th addition, PHI, 1989.
30. A. S. Tanenbaum (1995): "Modern Operating System", Prentice Hall of India Pvt. Ltd., 1995.
31. H. M. Deitel (1984): "An Introduction to Operating Systems". Addison Wesley Publishing Company,
1984.
32. A Silberschatz, H.F Korth and Sudersan (2002): “Database System Concepts”, 4th ed. MGH
Publication, 2002.
33. C. J. Date (1997): “An introduction to Database Systems”, Addison-Wesley, 6th edition, 1997.
34. Iyengyr M. K. Jain & R. K. Jain (1995): “Numerical Methods for scientific and engineering
computation”, Wiley Eastern (New Age), 1995.
35. Hipp J., Guntzer U. and Nakhaeizadeh G. (2000): “Algorithms for Association Rule Mining: A
General Survey and Comparison”. SIGKDD Explorations, Vol. 2, No. 1, pages 58-64, July 2000.
36. Bhattacharya S.K. and Deardan John (1986 ): “Accounting for Management” PHI, South Asia Books,
Jan 1, 1986.
37. Rajaraman V. (2004): “Fundamental of Computers”, 4nd edition, Prentice Hall of India, New Delhi,
2004.
38. J. P. Trembley & R. P. Manohar (1989): “Discrete Mathematical Structure with applications to
Computer Science”. McGraw Hill, 1989;
39. Brian W. Kernighan and Dennis M. Ritchie (1990): “The C programming language”, PHI, 284 pages;
PHI; 2 edition, 1990.
40. Schildt (2000 ): “C The Complete reference”, McGraw-Hill Osborne Media; 4 edition, April 26, 2000.
41. M. Morris Mano (1993 ): “Computer System Architecture”, PHI, 3rd edition, 1993.
42. Website URL: https://www.w3schools.com/java/

43

You might also like