Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <conio.h>
- #include <stdio.h>
- #include <locale.h>
- #include <process.h>
- #include <string.h>
- #include <IO.h>
- struct tabl
- {
- char poroda[100];
- char color[100];
- char telephone[100];
- int year;
- };
- struct tabl tablica[1000];
- int del(int s)
- {
- int size,j,n;
- printf("kakyuy strochky udalit?");
- scanf("%d",&n);
- for (n=0;n<s-1;n++)
- tablica[n]=tablica[n+1];
- s=s-1;
- return s;
- }
- int add(int s,int size1)
- {
- int size,n,k=0;;
- printf("Введите число строк, которое нужно добавить \n");
- scanf("%d",&n);
- k=n+s;
- for(size=size1;size<=k;size++)
- {
- printf("Введите породу собаки\n");
- scanf ("%s", &tablica[size].poroda);
- printf("Введите цвет собаки\n");
- scanf ("%s", &tablica[size].color);
- printf("Введите возраст\n");
- scanf ("%d", &tablica[size].year);
- printf("Введите телефон\n");
- scanf ("%s", &tablica[size].telephone);
- printf("\n");
- }
- return k;
- }
- void search(int s)
- {
- int c,size,flag=0,count=0;
- struct tabl search;
- printf("Введите параметр поиска: 1 - порода, 2 - цвет, 3 - возраст\n");
- scanf("%d", &c);
- switch(c)
- {
- case 1:
- {
- printf("Введите породу\n");
- scanf("%s",search.poroda);
- for(size=1; size<=s;size++)
- if(strcmp(search.poroda,tablica[size].poroda)==0);
- flag++;
- if(flag == 0)
- {
- printf("Ничего не найдено\n");
- printf("\n");
- }
- else
- {
- printf(" N Пород Цвет Возраст телефон\n");
- for( size=1;size<=s;size++)
- {
- if(strcmp(search.poroda,tablica[size].poroda)==0)
- {
- count++;
- printf("%d %s %s %d %s\n",count,tablica[size].poroda,tablica[size].color,tablica[size].year,tablica[size].telephone);
- }
- }
- }
- break;
- }
- case 2:
- {
- printf("Введите цвет\n");
- scanf("%s",search.color);
- for(size=1; size<=s;size++)
- if(strcmp(search.color,tablica[size].color)==0);
- flag++;
- if(flag == 0)
- {
- printf("Ничего не найдено\n");
- printf("\n");
- }
- else
- {
- printf(" N Пород Цвет Возраст телефон\n");
- for( size=1;size<=s;size++)
- {
- if(strcmp(search.color,tablica[size].color)==0)
- {
- count++;
- printf("%d %s %s %d %s\n",count,tablica[size].poroda,tablica[size].color,tablica[size].year,tablica[size].telephone);
- }
- }
- }
- break;
- }
- case 3:
- {
- printf("Введите возраст\n");
- scanf("%s",search.year);
- for(size=1; size<=s;size++)
- if(search.year==tablica[size].year);
- flag++;
- if(flag == 0)
- {
- printf("Ничего не найдено\n");
- printf("\n");
- }
- else
- {
- printf(" N Пород Цвет Возраст телефон\n");
- for( size=1;size<=s;size++)
- {
- if(search.year==tablica[size].year)
- {
- count++;
- printf("%d %s %s %d %s\n",count,tablica[size].poroda,tablica[size].color,tablica[size].year,tablica[size].telephone);
- }
- }
- }
- break;
- }
- }
- }
- void vivod( int s)
- {
- int count,size,i;
- count = 0;
- printf("\n");
- printf(" N Пород Цвет Возраст телефон\n");
- for (size=1;size<=s;size++)
- {
- count++;
- printf("%d %s %s %d %s\n",count,tablica[size].poroda,tablica[size].color,tablica[size].year,tablica[size].telephone);
- }
- }
- void vvod(int *s, int *size1)
- {
- int size;
- int n;
- size=1;
- printf("Введите кол-во строк\n");
- scanf("%d",&n);
- *s=n;
- for(size=1;size<=n;size++)
- {
- printf("Введите породу собаки\n");
- scanf ("%s", tablica[size].poroda);
- printf("Введите цвет собаки\n");
- scanf ("%s", tablica[size].color);
- printf("Введите возраст\n");
- scanf ("%d", &tablica[size].year);
- printf("Введите телефон\n");
- scanf ("%s", tablica[size].telephone);
- }
- *size1=size;
- }
- void load(int &count)
- {
- FILE * file = fopen("data.dat", "rb");
- if(file == NULL)
- return;
- int desk = fileno(file);
- size_t size = sizeof(tabl);
- for(int i = 0; i < filelength(desk) / size; i++)
- {
- fread(tablica + i, size, 1, file);
- count++;
- }
- fclose(file);
- }
- void save(int count)
- {
- FILE *file = fopen("data.dat", "wb");
- for(int i = 1; i <= count; i++)
- fwrite(tablica+i, sizeof(tabl), 1, file);
- fclose(file);
- }
- void main()
- {
- int size;
- int c,r,i,s;
- setlocale (LC_ALL,".1251");
- load(r);
- while(true)
- {
- printf("\n");
- printf ("1. Ввод таблицы\n");
- printf ("2. Добавление в таблицу\n");
- printf ("3. Поиск\n");
- printf ("4. Вывод таблицы\n");
- printf ("5. Удаление строки\n");
- printf ("6. Сохранить \n");
- printf ("7. Выход \n");
- printf("Выберите пункт меню \n");
- scanf ("%d",&c);
- switch(c)
- {
- case 1:
- {
- vvod(&r,&i);
- break;
- }
- case 2:
- {
- r = add(r,i);
- break;
- }
- case 3:
- {
- search(r);
- break;
- }
- case 4:
- {
- vivod(r);
- break;
- }
- case 5:
- {
- r=del(r);
- break;
- }
- case 6:
- save(r);
- break;
- case 7:
- exit(0);
- break;
- }
- }
- getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement