Untitled
unknown
plain_text
2 years ago
6.1 kB
15
Indexable
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
struct patient {
int id;
char patientName[50];
char patientAddress[50];
char disease[50];
char date[12];
} p;
struct doctor {
int id;
char name[50];
char address[50];
char specialize[50];
char date[12];
} d;
FILE* fp;
void admitPatient() {
system("cls");
char myDate[12];
time_t t = time(NULL);
struct tm tm = *localtime(&t);
sprintf(myDate, "%02d/%02d/%d", tm.tm_mday, tm.tm_mon + 1, tm.tm_year + 1900);
strcpy(p.date, myDate);
fp = fopen("patient.txt", "ab");
printf("Enter Patient id: ");
scanf("%d", &p.id);
printf("Enter Patient name: ");
fflush(stdin);
gets(p.patientName);
printf("Enter Patient Address: ");
fflush(stdin);
gets(p.patientAddress);
printf("Enter Patient Disease: ");
fflush(stdin);
gets(p.disease);
printf("\nPatient Added Successfully\n");
fwrite(&p, sizeof(p), 1, fp);
fclose(fp);
}
void patientList() {
system("cls");
printf("<== Patient List ==>\n\n");
printf("%-10s %-30s %-30s %-20s %s\n", "Id", "Patient Name", "Address", "Disease", "Date");
printf("----------------------------------------------------------------------------------------------------------\n");
fp = fopen("patient.txt", "rb");
while (fread(&p, sizeof(p), 1, fp) == 1) {
printf("%-10d %-30s %-30s %-20s %s\n", p.id, p.patientName, p.patientAddress, p.disease, p.date);
}
fclose(fp);
printf("\n\nPress Any Key To Exit...");
getchar();
}
void dischargePatient() {
int id, f = 0;
system("cls");
printf("<== Discharge Patient ==>\n\n");
printf("Enter Patient id to discharge: ");
scanf("%d", &id);
FILE* ft;
fp = fopen("patient.txt", "rb");
ft = fopen("temp.txt", "wb");
while (fread(&p, sizeof(p), 1, fp) == 1) {
if (id == p.id) {
printf("%d\n", p.id);
f = 1;
} else {
fwrite(&p, sizeof(p), 1, ft);
}
}
if (f == 1) {
printf("\n\nPatient Discharged Successfully.");
} else {
printf("\n\nRecord Not Found !");
}
fclose(fp);
fclose(ft);
remove("patient.txt");
rename("temp.txt", "patient.txt");
getchar();
}
void addDoctor() {
system("cls");
char myDate[12];
time_t t = time(NULL);
struct tm tm = *localtime(&t);
sprintf(myDate, "%02d/%02d/%d", tm.tm_mday, tm.tm_mon + 1, tm.tm_year + 1900);
strcpy(d.date, myDate);
int f = 0;
system("cls");
printf("<== Add Doctor ==>\n\n");
fp = fopen("doctor.txt", "ab");
printf("Enter Doctor id: ");
scanf("%d", &d.id);
printf("Enter Doctor Name: ");
fflush(stdin);
gets(d.name);
printf("Enter Doctor Address: ");
fflush(stdin);
gets(d.address);
printf("Doctor Specialize in: ");
fflush(stdin);
gets(d.specialize);
printf("Doctor Added Successfully\n\n");
fwrite(&d, sizeof(d), 1, fp);
fclose(fp);
}
void doctorList() {
system("cls");
printf("<== Doctor List ==>\n\n");
printf("%-10s %-30s %-30s %-30s %s\n", "id", "Name", "Address", "Specialize", "Date");
printf("-------------------------------------------------------------------------------------------------------------------\n");
fp = fopen("doctor.txt", "rb");
while (fread(&d, sizeof(d), 1, fp) == 1) {
printf("%-10d %-30s %-30s %-30s %s\n", d.id, d.name, d.address, d.specialize, d.date);
}
fclose(fp);
printf("\n\nPress Any Key To Exit...");
getchar();
}
int isAdmin() {
system("cls");
char username[50], password[50];
printf("username: ");
fflush(stdin);
gets(username);
printf("password: ");
fflush(stdin);
gets(password);
if (strcmp(username, "admin") == 0 && strcmp(password, "admin") == 0) {
return 1;
} else {
return 0;
}
}
int main() {
int ch, is_admin = 0, program_started = 0;
while (1) {
system("cls");
if (!is_admin && program_started) {
printf("!!! Invalid username or password !!!\n\n");
}
program_started = 1;
printf("<== Hospital Management System ==>\n");
printf("1. Sign in as Admin\n");
printf("2. Enter as Patient\n");
printf("0. Exit\n");
printf("\n\nEnter your choice: ");
scanf("%d", &ch);
if (ch == 1) {
is_admin = isAdmin();
if (is_admin) {
while (1) {
system("cls");
printf("<== Hospital Management System (Admin) ==>\n");
printf("1. Discharge Patient\n");
printf("2. Add Doctor\n");
printf("3. Doctors' List\n");
printf("4. Patients' List\n");
printf("0. Exit\n");
printf("\n\nEnter your choice: ");
scanf("%d", &ch);
switch (ch) {
case 1:
dischargePatient();
break;
case 2:
addDoctor();
break;
case 3:
doctorList();
break;
case 4:
patientList();
break;
case 0:
exit(0);
break;
default:
printf("Invalid choice. Please try again.\n");
break;
}
}
} else {
printf("Access denied. Please try again.\n");
}
} else if (ch == 2) {
// Implement patient functionality if needed
} else if (ch == 0) {
exit(0);
} else {
printf("Invalid choice. Please try again.\n");
}
}
return 0;
}
Editor is loading...