Здравствуйте, помогите пожалуйста с заданием,ничего не выходит.
Задание состоит из структуры + запись в файл.
Само задание:
Опишите тип записи- сведения о пациентах поликлиники.Сформируйте файл пациентов поликлиники.Разработайте программу корректировки этого файла.Разработайте программу получения сведений о пациентах с данным заболеванием. Расширьте возможности вашему выбору.
Есть наработает,но ошибки,не компилирует,ошибка в структуре,сделайте фикс кто может,нужно на завтра...
Код:
#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);
}