Untitled

 avatar
unknown
plain_text
a month ago
5.0 kB
2
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;
}
Leave a Comment