Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<conio.h>
- #include<string.h>
- #include<locale.h>
- #include<windows.h>
- #include<iostream>
- struct scholnik
- {
- char surename[80];
- char name[80];
- char fathern[80];
- char klass[80];
- char tel[80];
- int mat;
- int phys;
- int rus;
- };
- struct scholnik scho[30],t;
- int sch=0;
- int menu();
- void input();
- void sort();
- int search();
- void change();
- void deleting() ;
- void output();
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- setlocale(LC_ALL, "Russian");
- while (1)
- {
- switch (menu())
- {
- case 1: input();break;
- case 2: sort();break;
- case 3: search();break;
- case 4: change();break;
- case 5: deleting();break;
- case 6: output();break;
- case 7: return 0;
- default: printf ("Неверный выбор \n");
- }
- }
- getch();
- return 0;
- }
- int menu()
- {
- int ch;
- do {
- printf("\n Меню: \n");
- printf("1. Ввод массива структур \n");
- printf("2. Сортировка массива структур \n");
- printf("3. Поиск в массиве структур по заданному параметру \n");
- printf("4. Изменение заданной структуры \n");
- printf("5. Удаление структуры из массива \n");
- printf("6. Вывод на экран массива структур \n");
- printf("7. Выход \n");
- printf("\t Ваш выбор: ");
- scanf("%d",&ch);
- }
- while(ch>7);
- return ch;
- }
- void input()
- {
- int i,k=0;
- printf("Введите количество школьников: ");
- scanf("%d", &k);
- for (i=0; i<k; i++)
- {
- printf("Запись номер: %d\n",sch+1);
- puts("Введите фамилию: ");
- fflush(stdin);
- gets(scho[i].surename);
- puts("Введите имя: ");
- fflush(stdin);
- gets(scho[i].name);
- puts("Введите отчество:");
- fflush(stdin);
- gets(scho[i].fathern);
- puts("Введите класс:");
- fflush(stdin);
- gets(scho[i].klass);
- puts("Введите номер телефона:");
- scanf("%s", &scho[i].tel);
- puts("Введите оценку по математике:");
- scanf("%d", &scho[i].mat);
- puts("Введите оценку по физике:");
- scanf("%d", &scho[i].phys);
- puts("Введите оценку по русскому языку:");
- scanf("%d", &scho[i].rus);
- sch++;
- printf("\n");
- }
- }
- void output()
- {
- setlocale(LC_ALL, "Russian");
- int i=0,k,sw=0;
- if (scho[i].surename==0)
- printf("\nНет записей");
- else
- printf("\nВведите: ");
- printf("\nl - для вывода одной записи\n");
- printf("2 - для вывода всех записей\n");
- scanf("%d",&sw);
- if(sw==1)
- {
- printf("Номер записи, которую требуется вывести\n");
- scanf_s("%d",&k);
- if (k>sch) printf("Нет записи, которую требуется вывести\n");
- else
- {
- printf("\n");
- puts(scho[k-1].surename);
- puts(scho[k-1].name);
- puts(scho[k-1].fathern);
- printf("Класс: %s \n", scho[k-1].klass);
- printf("Номер телефона: %s \n", scho[k-1].tel);
- printf("Оценка по математике: %d\n",scho[k-1].mat);
- printf("Оценка по физике: %d\n", scho[k-1].phys);
- printf("Оценка по русскому языку: %d\n",scho[k-1].rus);
- }
- }
- else if(sw==2)
- for(int i=0;i<sch;i++)
- {
- printf("\n\n");
- puts(scho[i].surename);
- puts(scho[i].name);
- puts(scho[i].fathern);
- printf("Класс: %s \n", scho[i].klass);
- printf("Номер телефона: %s \n", scho[i].tel);
- printf("Оценка по математике: %d\n",scho[i].mat);
- printf("Оценка по физике: %d\n", scho[i].phys);
- printf("Оценка по русскому языку: %d\n",scho[i].rus);
- }
- }
- void sort()
- {
- int i,j=0;
- if (sch==0) printf("\nНе найдено ни одной записи.\n");
- else
- {
- for (i=0; i<sch; i++)
- for (j=i+1; j<sch; j++)
- if (strcmp(scho[i].surename, scho[j].surename)>0)
- {
- t=scho[i];
- scho[i]=scho[j];
- scho[j]=t;
- }
- }
- printf("Записи отсортированы по алфавиту фамилий.\n");
- printf("Получили: \n");
- for (i=0; i<sch; i++)
- {
- puts(scho[i].surename);
- puts(scho[i].name);
- puts(scho[i].fathern);
- printf("Класс: %s \n", scho[i].klass);
- printf("Номер телефона: %s \n", scho[i].tel);
- printf("Оценка по математике: %d\n",scho[i].mat);
- printf("Оценка по физике: %d\n", scho[i].phys);
- printf("Оценка по русскому языку: %d\n",scho[i].rus);;
- printf("\n");
- }
- }
- void change()
- {
- int c;
- if (sch==0)
- printf("\nНе найдено ни одной записи.\n");
- else
- printf ("\nВведите номер записи\n");
- scanf("%d",&c);
- printf("Веведите новую фамилию: \n");
- fflush(stdin);
- gets(scho[c-1].surename);
- printf("Веведите новое имя: \n");
- fflush(stdin);
- gets(scho[c-1].name);
- printf("Веведите новое отчество: \n");
- fflush(stdin);
- gets(scho[c-1].fathern);
- puts("Введите класс:");
- fflush(stdin);
- scanf("%s", &scho[c-1].klass);
- puts("Введите номер телефона: \n");
- scanf("%s", &scho[c-1].tel);
- puts("Введите оценку по математике: \n");
- scanf("%d", &scho[c-1].mat);
- puts("Введите оценку по физике: \n");
- scanf("%d", &scho[c-1].phys);
- puts("Введите оценку по русскому языку: \n");
- scanf("%d", &scho[c-1].rus);
- printf("Запись изменена.\n");
- }
- void deleting()
- {
- int i,ch;
- int d;
- printf("Выберите действие:\n1 - удалить все записи;\n2 - удалить одну запись\n");
- scanf("%d",&ch);
- switch(ch){
- case 1:
- for(i=0;i<sch;i++)
- scho[i]=t;
- sch=0;
- printf("\nВсе записси удалены.\n");
- break;
- case 2:
- printf("Введите номер записи, которую необходимо удалить\n");
- scanf("%d",&d);
- for (i=d-1;i<sch;i++)
- {
- scho[i]=scho[i+1];
- sch--;
- }
- printf("Запись №%d удалена.",d);
- break;
- default:printf("\nНеверный ввод\n");
- }
- }
- int search()
- {
- int i,k=0,c=0;
- int per;
- int
- printf("Введите: \n");
- printf("1. фамилию\n");
- printf("2. класс\n");
- printf("3. номер телефона\n");
- printf("4. оценка по математике\n");
- printf("5. оценка по физике\n");
- printf("6. оценка по русскому языку\n");
- printf("7. Выход\n");
- scanf("%d",&per);
- switch (per)
- {
- case 1:
- printf("Введите фамилию:\n");
- fflush(stdin);
- gets(scho[c].surename);
- for (i=0;i<k;i++)
- if (strcmp(scho[c].surename,scho[i].surename)==0)
- scho[c]=scho[i];
- printf("\nШкольник найден:\n");
- puts(scho[c].surename);
- puts(scho[c].name);
- puts(scho[c].fathern);
- puts(scho[c].klass);
- printf("Номер телефона: %s \n", scho[c].tel);
- printf("Оценка по математике: %d\n",scho[c].mat);
- printf("Оценка по физике: %d\n", scho[c].phys);
- printf("Оценка по русскому языку: %d\n",scho[c].rus);
- break;
- case 2:
- printf("Введите класс\n");
- fflush(stdin);
- gets(scho[c].klass);
- for (i=0;i<k;i++)
- if (strcmp(scho[c].klass,scho[i].klass)==0)
- scho[c]=scho[i];
- printf("Школьник найден:\n");
- puts(scho[c].surename);
- puts(scho[c].name);
- puts(scho[c].fathern);
- puts(scho[c].klass);
- printf("Номер телефона: %s \n", scho[c].tel);
- printf("Оценка по математике: %d\n",scho[c].mat);
- printf("Оценка по физике: %d\n", scho[c].phys);
- printf("Оценка по русскому языку: %d\n",scho[c].rus);
- break;
- case 3:
- printf("Введите номер телефона:\n");
- scanf("%s",&scho[c].tel);
- for (i=0;i<k;i++)
- if (scho[c].tel==scho[i].tel)
- scho[c]=scho[i];
- printf("Школьник найден:\n");
- puts(scho[c].surename);
- puts(scho[c].name);
- puts(scho[c].fathern);
- puts(scho[c].klass);
- printf("Номер телефона: %s \n", scho[c].tel);
- printf("Оценка по математике: %d\n",scho[c].mat);
- printf("Оценка по физике: %d\n", scho[c].phys);
- printf("Оценка по русскому языку: %d\n",scho[c].rus);
- break;
- case 4:
- printf("Введите оценку по математике:\n");
- scanf("%d",&scho[c].mat);
- for (i=0;i<k;i++)
- if (scho[c].mat==scho[i].mat)
- scho[c]=scho[i];
- printf("Школьник найден:\n");
- puts(scho[c].surename);
- puts(scho[c].name);
- puts(scho[c].fathern);
- puts(scho[c].klass);
- printf("Номер телефона: %s \n", scho[c].tel);
- printf("Оценка по математике: %d\n",scho[c].mat);
- printf("Оценка по физике: %d\n", scho[c].phys);
- printf("Оценка по русскому языку: %d\n",scho[c].rus);
- break;
- case 5:
- printf("Введите оценку по физике:\n");
- scanf("%d",&scho[c].phys);
- for (i=0;i<k;i++)
- if (scho[c].phys==scho[i].phys)
- scho[c]=scho[i];
- printf("Школьник найден:\n");
- puts(scho[c].surename);
- puts(scho[c].name);
- puts(scho[c].fathern);
- puts(scho[c].klass);
- printf("Номер телефона: %s \n", scho[c].tel);
- printf("Оценка по математике: %d \n",scho[c].mat);
- printf("Оценка по физике: %d\n", scho[c].phys);
- printf("Оценка по русскому языку: %d\n",scho[c].rus);
- break;
- case 6:
- printf("Введите оценку по русскому языку:\n");
- scanf("%d",&scho[c].rus);
- for (i=0;i<k;i++)
- if (scho[c].rus==scho[i].rus)
- scho[c]=scho[i];
- printf("Школьник найден:\n");
- puts(scho[c].surename);
- puts(scho[c].name);
- puts(scho[c].fathern);
- puts(scho[c].klass);
- printf("Номер телефона: %s \n", scho[c].tel);
- printf("Оценка по математике: %d\n",scho[c].mat);
- printf("Оценка по физике: %d\n", scho[c].phys);
- printf("Оценка по русскому языку: %d\n",scho[c].rus);
- break;
- case 7:
- return 0;
- default: printf("\nНеверный ввод\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement