Advertisement
Guest User

Untitled

a guest
Apr 19th, 2015
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.81 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <conio.h>
  3. #include <stdio.h>
  4. #include <locale.h>
  5. #include <process.h>
  6. #include <string.h>
  7. #include <IO.h>
  8.  
  9. struct tabl
  10. {
  11. char poroda[100];
  12. char color[100];
  13. char telephone[100];
  14. int year;
  15. };
  16.  
  17. struct tabl tablica[1000];
  18.  
  19. int del(int s)
  20. {
  21. int size,j,n;
  22. printf("kakyuy strochky udalit?");
  23. scanf("%d",&n);
  24. for (n=0;n<s-1;n++)
  25. tablica[n]=tablica[n+1];
  26. s=s-1;
  27. return s;
  28. }
  29.  
  30. int add(int s,int size1)
  31. {
  32. int size,n,k=0;;
  33. printf("Введите число строк, которое нужно добавить \n");
  34. scanf("%d",&n);
  35. k=n+s;
  36. for(size=size1;size<=k;size++)
  37. {
  38. printf("Введите породу собаки\n");
  39. scanf ("%s", &tablica[size].poroda);
  40.  
  41. printf("Введите цвет собаки\n");
  42. scanf ("%s", &tablica[size].color);
  43.  
  44. printf("Введите возраст\n");
  45. scanf ("%d", &tablica[size].year);
  46.  
  47. printf("Введите телефон\n");
  48. scanf ("%s", &tablica[size].telephone);
  49. printf("\n");
  50. }
  51. return k;
  52. }
  53. void search(int s)
  54. {
  55. int c,size,flag=0,count=0;
  56. struct tabl search;
  57. printf("Введите параметр поиска: 1 - порода, 2 - цвет, 3 - возраст\n");
  58. scanf("%d", &c);
  59. switch(c)
  60. {
  61. case 1:
  62. {
  63. printf("Введите породу\n");
  64. scanf("%s",search.poroda);
  65. for(size=1; size<=s;size++)
  66. if(strcmp(search.poroda,tablica[size].poroda)==0);
  67. flag++;
  68. if(flag == 0)
  69. {
  70. printf("Ничего не найдено\n");
  71. printf("\n");
  72. }
  73. else
  74. {
  75. printf(" N Пород Цвет Возраст телефон\n");
  76. for( size=1;size<=s;size++)
  77. {
  78. if(strcmp(search.poroda,tablica[size].poroda)==0)
  79. {
  80. count++;
  81. printf("%d %s %s %d %s\n",count,tablica[size].poroda,tablica[size].color,tablica[size].year,tablica[size].telephone);
  82. }
  83. }
  84. }
  85. break;
  86. }
  87. case 2:
  88. {
  89. printf("Введите цвет\n");
  90. scanf("%s",search.color);
  91. for(size=1; size<=s;size++)
  92. if(strcmp(search.color,tablica[size].color)==0);
  93. flag++;
  94. if(flag == 0)
  95. {
  96. printf("Ничего не найдено\n");
  97. printf("\n");
  98. }
  99. else
  100. {
  101. printf(" N Пород Цвет Возраст телефон\n");
  102. for( size=1;size<=s;size++)
  103. {
  104. if(strcmp(search.color,tablica[size].color)==0)
  105. {
  106. count++;
  107. printf("%d %s %s %d %s\n",count,tablica[size].poroda,tablica[size].color,tablica[size].year,tablica[size].telephone);
  108. }
  109. }
  110. }
  111. break;
  112. }
  113. case 3:
  114. {
  115. printf("Введите возраст\n");
  116. scanf("%s",search.year);
  117. for(size=1; size<=s;size++)
  118. if(search.year==tablica[size].year);
  119. flag++;
  120. if(flag == 0)
  121. {
  122. printf("Ничего не найдено\n");
  123. printf("\n");
  124. }
  125. else
  126. {
  127. printf(" N Пород Цвет Возраст телефон\n");
  128. for( size=1;size<=s;size++)
  129. {
  130. if(search.year==tablica[size].year)
  131. {
  132. count++;
  133. printf("%d %s %s %d %s\n",count,tablica[size].poroda,tablica[size].color,tablica[size].year,tablica[size].telephone);
  134. }
  135. }
  136. }
  137. break;
  138. }
  139. }
  140. }
  141.  
  142. void vivod( int s)
  143. {
  144. int count,size,i;
  145. count = 0;
  146. printf("\n");
  147. printf(" N Пород Цвет Возраст телефон\n");
  148. for (size=1;size<=s;size++)
  149. {
  150. count++;
  151. printf("%d %s %s %d %s\n",count,tablica[size].poroda,tablica[size].color,tablica[size].year,tablica[size].telephone);
  152.  
  153. }
  154. }
  155. void vvod(int *s, int *size1)
  156. {
  157. int size;
  158. int n;
  159. size=1;
  160. printf("Введите кол-во строк\n");
  161. scanf("%d",&n);
  162. *s=n;
  163. for(size=1;size<=n;size++)
  164. {
  165. printf("Введите породу собаки\n");
  166. scanf ("%s", tablica[size].poroda);
  167.  
  168. printf("Введите цвет собаки\n");
  169. scanf ("%s", tablica[size].color);
  170.  
  171. printf("Введите возраст\n");
  172. scanf ("%d", &tablica[size].year);
  173.  
  174. printf("Введите телефон\n");
  175. scanf ("%s", tablica[size].telephone);
  176. }
  177. *size1=size;
  178. }
  179.  
  180. void load(int &count)
  181. {
  182. FILE * file = fopen("data.dat", "rb");
  183. if(file == NULL)
  184. return;
  185. int desk = fileno(file);
  186. size_t size = sizeof(tabl);
  187. for(int i = 0; i < filelength(desk) / size; i++)
  188. {
  189. fread(tablica + i, size, 1, file);
  190. count++;
  191. }
  192. fclose(file);
  193. }
  194.  
  195. void save(int count)
  196. {
  197. FILE *file = fopen("data.dat", "wb");
  198. for(int i = 1; i <= count; i++)
  199. fwrite(tablica+i, sizeof(tabl), 1, file);
  200. fclose(file);
  201. }
  202.  
  203. void main()
  204. {
  205. int size;
  206. int c,r,i,s;
  207. setlocale (LC_ALL,".1251");
  208. load(r);
  209. while(true)
  210. {
  211. printf("\n");
  212. printf ("1. Ввод таблицы\n");
  213. printf ("2. Добавление в таблицу\n");
  214. printf ("3. Поиск\n");
  215. printf ("4. Вывод таблицы\n");
  216. printf ("5. Удаление строки\n");
  217. printf ("6. Сохранить \n");
  218. printf ("7. Выход \n");
  219. printf("Выберите пункт меню \n");
  220. scanf ("%d",&c);
  221. switch(c)
  222. {
  223. case 1:
  224. {
  225. vvod(&r,&i);
  226. break;
  227. }
  228. case 2:
  229. {
  230. r = add(r,i);
  231. break;
  232. }
  233. case 3:
  234. {
  235. search(r);
  236. break;
  237. }
  238. case 4:
  239. {
  240. vivod(r);
  241. break;
  242. }
  243. case 5:
  244. {
  245. r=del(r);
  246. break;
  247. }
  248. case 6:
  249. save(r);
  250. break;
  251. case 7:
  252. exit(0);
  253. break;
  254. }
  255.  
  256. }
  257. getch();
  258. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement