Untitled
#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; }
Leave a Comment