Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2019, 22:00   #1
JekaPro
 
Регистрация: 26.05.2019
Сообщений: 3
По умолчанию Структура и запись в файл

Здравствуйте, помогите пожалуйста с заданием,ничего не выходит.
Задание состоит из структуры + запись в файл.
Само задание:
Опишите тип записи- сведения о пациентах поликлиники.Сформируйте файл пациентов поликлиники.Разработайте программу корректировки этого файла.Разработайте программу получения сведений о пациентах с данным заболеванием. Расширьте возможности вашему выбору.

Есть наработает,но ошибки,не компилирует,ошибка в структуре,сделайте фикс кто может,нужно на завтра...

Код:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
#include <malloc.h>
 
//структуры
struct FIO {
    char name[30];
    char surname[30];
    char fam[30];
};
 
struct Adress {
    char country[30];
    char city[30];
    char region[30];
    char district[30];
    char street [30];
    char numh[10];
    unsigned int numfl;
};
 
struct DateOP {
    unsigned int D;
    unsigned int M;
    unsigned int Y;
};
 
struct Operation {
    DateOP DO;
    char op[100];
};
 
struct Patient {
    FIO fio;
    unsigned int age;
    char sex[8];
    Adress adr;
    char diag[40];
    Operation OP;
} *pat;
 
int i;
void menu(int);
int inputData();
int outputData();
void func1();
void func2();
void func3();
void func4();
void func5();
 
//Главная функция
int main(void)
{
    setlocale(LC_ALL,"");
    int p=0;
    char pass[13], passadm[13]="favtadmin1";
    printf("1. Оператор\n2.Администратор\n");
    do
    {
        printf("Выберите режим работы программы:");
        scanf ("%d", &i);
    } while (i>2 || i<1);
    switch(i)
    {
        case 1: menu(i); break;
        case 2: r: printf("Введите пароль:\n"); 
        scanf("%s", pass);
        if (strcmp(pass,passadm)==0) 
        {
            menu(i); 
        }
        else 
        {
            if(p<2) 
                {
                    printf("Попробуйте снова\n"); p++; goto r; 
                }
            else 
            {
                printf("Ваши попытки были израсходованы.\nВы возвращаетесь в меню выбора режима программы.\n\n"); main();
            }
        } 
    }
    return 0;
}
 
//Функция меню (выбора действий)
void menu(int i)
{
    int menuP;
    
    printf("1. Задание\n2. Содержание базы данных\n3. Функция 1\n4. Функция 2\n5. Функция 3\n6. Функция 4\n7. Функция 5\n8. Добавление записи\n9. Удаление записи\n10. Выход\n\n");
    printf("Выберите пункт, который хотите воспроизвести:");
    scanf("%d", &menuP);
    switch(menuP)
    {
        case 1: printf ("Вы выбрали пункт задание\n"); break;
        case 2: printf ("Вы хотите посмотреть содержание базы данных\n"); break;
        case 3: func1(); break;
        case 4: func2(); break;
        case 5: func3(); break;
        case 6: func4(); break;
        case 7: func5(); break;
        case 8: if(i==2) inputData();
                else printf("Доступ только для администраторов\n\n"); menu(i); break;
        case 9: if(i==2) printf ("Удаление записи\n"); 
                else printf("Доступ только для администраторов\n\n"); menu(i); break;
        case 10: exit(0); 
    }
}
 
 
int inputData()
{
    char sexM[3]="M", sexJ[3]="J";
    int num, cf;
    FILE*file;
    file=fopen("d:\\kursovaya1.txt", "a");
    if(file==NULL) { printf("Ошибка при открытии файла"); return 1;}
 
    printf ("Введите количество пациентов, о которых вы хотите добавить информацию:\t");
    scanf ("%d", &num);
    pat=(Patient*)malloc(num*sizeof(Patient));
    for (cf=0; cf<num; cf++)
    {
        fflush(stdin);
        printf("Фамилия:");
        scanf("%s", pat[cf].fio.fam);
        printf("Имя:");
        scanf("%s", pat[cf].fio.name);
        printf("Отчество:");
        scanf("%s", pat[cf].fio.surname);
        do {
        printf("Возраст:");
        scanf("%d", &pat[cf].age);
        } while (pat[cf].age>120 || pat[cf].age<0);
        do  {
            printf("Пол:");
            scanf("%s", pat[cf].sex);
 
        printf("Адрес:\n");
        printf("Страна:");
        gets(pat[cf].adr.country);
        printf("Область:");
        gets(pat[cf].adr.region);
        printf("Город:");
        gets(pat[cf].adr.city);
        printf("Район:");
        gets(pat[cf].adr.district);
        printf("Улица:");
        gets(pat[cf].adr.street);
        printf("Номер дома:");
        gets(pat[cf].adr.numh);
        printf("Номер квартиры:");
        scanf("%d", &pat[cf].adr.numfl);
 
        } while (strcmp(pat[cf].sex,sexM)!=0 && strcmp(pat[cf].sex,sexJ)!=0); 
        printf("Диагноз:");
        scanf("%s", pat[cf].diag);
        printf("\n\n");
    }
 
    for (cf=0; cf<num; cf++)
    {
    fprintf(file, "ФИО: %s %s %s\nВозраст: %d\nПол: %s\nАдрес: %s, %s, %s, %s, %s, %s, %d\nДиагноз: %s\n\n", pat[cf].fio.fam, pat[cf].fio.name, pat[cf].fio.surname, &pat[cf].age, pat[cf].sex, pat[cf].adr.country, pat[cf].adr.region, pat[cf].adr.city, pat[cf].adr.district, pat[cf].adr.street, pat[cf].adr.numh, pat[cf].adr.numfl, pat[cf].diag );
    }
    fclose(file);
 
 
menu(i);
}
JekaPro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись содержит сведения о сдаче экзаменов. Структура записи. Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 7 04.04.2012 23:56
Запись содержит сведения о сдаче экзаменов. Структура записи: Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 2 28.02.2012 12:49
Запись содержит сведения о сдаче экзаменов. Структура записи: Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 2 08.02.2012 19:26
[C/C++] Структура. Запись/чтение в/из файл(a) hvz- Помощь студентам 5 25.05.2011 14:19