Untitled
unknown
plain_text
10 months ago
5.0 kB
5
Indexable
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_APPOINTMENTS 100
#define NAME_LEN 50
#define TIME_LEN 10
// Структура за съхранение на информацията за назначението
typedef struct {
char patientName[NAME_LEN];
char doctorName[NAME_LEN];
char appointmentTime[TIME_LEN];
char notes[100];
} Appointment;
Appointment schedule[MAX_APPOINTMENTS]; // Масив за съхранение на всички назначения
int appointmentCount = 0; // Променлива за броя на назначенията
// Функция за добавяне на ново назначение
void addAppointment() {
if (appointmentCount >= MAX_APPOINTMENTS) {
printf("\nSchedule is full! Cannot add more appointments.\n");
return;
}
Appointment newAppointment;
// Въвеждаме информация за пациента
printf("\nEnter patient name: ");
fgets(newAppointment.patientName, NAME_LEN, stdin);
newAppointment.patientName[strcspn(newAppointment.patientName, "\n")] = '\0';
// Въвеждаме информация за лекаря
printf("Enter doctor name: ");
fgets(newAppointment.doctorName, NAME_LEN, stdin);
newAppointment.doctorName[strcspn(newAppointment.doctorName, "\n")] = '\0';
// Въвеждаме времето за назначението
printf("Enter appointment time (e.g., 10:00 AM): ");
fgets(newAppointment.appointmentTime, TIME_LEN, stdin);
newAppointment.appointmentTime[strcspn(newAppointment.appointmentTime, "\n")] = '\0';
// Въвеждаме бележки за консултацията
printf("Enter notes: ");
fgets(newAppointment.notes, 100, stdin);
newAppointment.notes[strcspn(newAppointment.notes, "\n")] = '\0';
// Добавяме новото назначение в графика
schedule[appointmentCount++] = newAppointment;
printf("\nAppointment successfully added!\n");
}
// Функция за преглед на всички назначения
void viewAppointments() {
if (appointmentCount == 0) {
printf("\nNo appointments scheduled.\n");
return;
}
printf("\nScheduled Appointments:\n");
for (int i = 0; i < appointmentCount; i++) {
printf("\nAppointment #%d:\n", i + 1);
printf("Patient Name: %s\n", schedule[i].patientName);
printf("Doctor Name: %s\n", schedule[i].doctorName);
printf("Appointment Time: %s\n", schedule[i].appointmentTime);
printf("Notes: %s\n", schedule[i].notes);
}
}
// Функция за отмяна на назначение
void cancelAppointment() {
if (appointmentCount == 0) {
printf("\nNo appointments to cancel.\n");
return;
}
int index;
printf("\nEnter the appointment number to cancel: ");
scanf("%d", &index);
getchar(); // Поглъща новия ред след въвеждане на числото
if (index < 1 || index > appointmentCount) {
printf("\nInvalid appointment number.\n");
return;
}
// Изтриваме назначението, като преместим следващите назначения напред
for (int i = index - 1; i < appointmentCount - 1; i++) {
schedule[i] = schedule[i + 1];
}
appointmentCount--;
printf("\nAppointment cancelled successfully.\n");
}
// Меню с опции за управление на назначенията
void menu() {
printf("\nTelemedicine Consultation Scheduler\n");
printf("----------------------------------\n");
printf("1. Add Appointment\n");
printf("2. View Appointments\n");
printf("3. Cancel Appointment\n");
printf("4. Exit\n");
printf("\nEnter your choice: ");
}
int main() {
int choice;
do {
menu(); // Показва менюто
scanf("%d", &choice);
getchar(); // Поглъща новия ред след числото
switch (choice) {
case 1:
addAppointment(); // Добавя ново назначение
break;
case 2:
viewAppointments(); // Преглежда всички назначения
break;
case 3:
cancelAppointment(); // Отменя назначение
break;
case 4:
printf("\nExiting... Have a great day!\n");
break;
default:
printf("\nInvalid choice. Please try again.\n");
}
} while (choice != 4); // Продължава програмата, докато потребителят не избере да излезе
return 0;
}
Editor is loading...
Leave a Comment