1nb0lz
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #define K 50 struct BD { char famil[15]; char imya[12]; char otches[20]; char data[8]; char pol[8]; char prof[20]; char obraz[20]; char staj[20]; char koord[50]; char zarpl[10]; } bzr[K]; //Создание БД из 50 человек struct BD AddOneRec (void) //Ввод данных на 1-го человека { char s[5]; struct BD chel; printf ("Familiya: "); scanf ("%s",&chel.famil); printf ("Imya: "); scanf ("%s",&chel.imya); printf ("Otchestvo: "); scanf ("%s",&chel.otches); printf ("Data rojdeniya: "); scanf ("%s",&chel.data); printf ("Pol: "); scanf ("%s",&chel.pol); printf ("Professiya: "); scanf ("%s",&chel.prof); printf ("Obrazovanie: "); scanf ("%s",&chel.obraz); printf ("Staj: "); scanf ("%s",&chel.staj); printf ("Kontaktnye koordinaty: "); scanf ("%s",&chel.koord); printf ("Trebovaniya k zarabotnoy plate: "); scanf ("%s",&chel.zarpl); return chel; } void Add (void) //Меню добавления { int kol, i; system("cls"); printf ("::Dabavlenie zapisi::\n---------------------\n"); kol=0; for (i=0;i<K;i++) { if (strlen(bzr[i].famil)>0) //Высчитываем текущее кол-во записей kol++; } bzr[kol]=AddOneRec(); //Добавляем еще одну printf ("\nZapis' dobavlena"); getch (); } void OutOneRec (struct BD bzr) //Вывод 1-ой записи { printf ("Familiya: %s\n",&bzr.famil); printf ("Imya: %s\n",&bzr.imya); printf ("Otchestvo: %s\n",&bzr.otches); printf ("Data rojdeniya: %s\n",&bzr.data); printf ("Pol: %s\n",&bzr.pol); printf ("Professiya: %s\n",&bzr.prof); printf ("Obrazovanie: %s\n",&bzr.obraz); printf ("Staj: %s\n",&bzr.staj); printf ("Kontaktnye koordinaty: %s\n",&bzr.koord); printf ("Trebovaniya k zarabotnoy plate: %s\n",&bzr.zarpl); } void EditOneRec (void) //Меню редактирования { int i, flag; char pfam[15]; system("cls"); printf ("::Ispravlenie zapisi::\n---------------------\n"); printf ("Vvedite familiyu bezrabotnogo dlya poiska:\n"); scanf ("%s",&pfam); flag=0; for (i=0;i<K;i++) if (strcmp(bzr[i].famil,pfam)==0) //Если фамилии совпали { flag=1; printf ("\n"); OutOneRec (bzr[i]); printf ("\nVvedite novye dannye\n\n"); bzr[i]=AddOneRec(); printf ("\nZapis' ispravlena\n"); } if (flag==0) printf ("Zapis' ne naydena!!!"); getch (); } void ClearOneRec (void) //Меню удаления { int i, flag; char pfam[15]; system("cls"); printf ("::Udalenie::\n------------\n"); printf ("Vvedite familiyu udalyaemogo: "); scanf ("%s",&pfam); flag=0; for (i=0;i<K;i++) if (strcmp(bzr[i].famil,pfam)==0) //Если фамилии совпали, то удаляем со смещением { flag=1; while (i<K-1) { bzr[i]=bzr[i+1]; i++; } printf ("Zapis' udalena"); break; } if (flag==0) printf ("Zapis' ne naydena!!!"); getch (); } void OutBD (void) //Меню вывода { int i; system("cls"); printf ("::Vyvod::\n---------\n"); for (i=0;strlen(bzr[i].famil)>0;i++) //Цикл вывода всей БД { OutOneRec (bzr[i]); getch (); printf("--\n"); } printf ("Vyvod zavershyon\n"); getch (); } void Out (void) //Меню информации об одном без-ом { int i, flag; char pfam [15]; system("cls"); printf ("::Informaciya::\n---------------\n"); printf ("Vvedite familiyu bezrabotnogo dlya poiska:\n"); scanf ("%s",&pfam); flag=0; for (i=0;i<K;i++) if (strcmp(bzr[i].famil,pfam)==0) //Если фамилии совпали { flag=1; printf ("\n"); OutOneRec (bzr[i]); } if (flag==0) printf ("Zapis' ne naydena!!!"); getch (); } void main (void) //Главное меню { int men; do { system("cls"); printf ("::MENU::\n---------------\n"); printf ("1. Dobavit'\n"); printf ("2. Izmenit'\n"); printf ("3. Udalenie\n"); printf ("4. Vyvod\n"); printf ("5. Informaciya o bezrabotnom\n"); printf ("0. Vyhod\n"); printf ("---------------\n"); printf (">>"); scanf ("%d",&men); //Ввод комманды switch (men) { case 1: Add (); break; case 2: EditOneRec (); break; case 3: ClearOneRec (); break; case 4: OutBD (); break; case 5: Out (); break; case 0: break; default: printf("Oshibka! Povtorite vvod"); getch(); } } while (men!=0); } |