Advertisement
Guest User

Untitled

a guest
Dec 25th, 2014
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.23 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <locale.h>
  6. #define MAX 10
  7. #define NAME_STR "STRINGS.DAT"
  8. #define NAME_IDX "IDX.DAT"
  9.  
  10. struct strings{
  11.     int indexInFile;
  12.     char a[160];
  13. } s[MAX], strl;
  14.  
  15. int comp(const void *a1, const void *a2) {
  16.     return strcmp(((struct strings *)a1)->a, ((struct strings *)a2)->a);
  17. }
  18.  
  19.  
  20.  
  21.  
  22. //void enterSyst(void);
  23. void enterDat(void);
  24. //void outputDat();
  25. void closeFiles(void);
  26. int menu_select(void);
  27. void searchAll(void);
  28.  
  29.  
  30. FILE *str, *ind;
  31.  
  32. int main(void)
  33. {
  34.     setlocale(LC_ALL, "Russian");
  35.     char choice;
  36.     int n = 0;
  37.     for (;;) {
  38.         choice = menu_select();
  39.         switch (choice) {
  40.         case 1:
  41.             enterDat();
  42.             break;
  43.         case 2: searchAll();
  44.             break;
  45.         case 0: exit(0);
  46.  
  47.         }
  48.     }
  49.  
  50.     return 0;
  51. }
  52.  
  53.  
  54. int menu_select(void)
  55. {
  56.     char s[80];
  57.     int c;
  58.  
  59.     printf("1. Добавление файла записей\n");
  60.     printf("2. Нахождение и вывод по заданному индексу всех лексикографически старших строк.\n");
  61.     printf("0. Выход\n");
  62.     do {
  63.         printf("\nВведите номер нужного пункта: ");
  64.         gets(s);
  65.         c = atoi(s);
  66.     } while (c<0 || c>3);
  67.     return c;
  68. }
  69.  
  70. void enterDat(){
  71.     char st[5];
  72.     int index = 0;
  73.     int c;
  74.     printf("Введите количество строк: ");
  75.     gets(st);
  76.     c = atoi(st);
  77.     printf("Введите строки для записи в файл: \n");
  78.     for (index = 0; index < c; index++){
  79.         gets(s[index].a);
  80.         s[index].indexInFile = index + 1;
  81.     }
  82.     str = fopen(NAME_STR, "wb");
  83.     for (index = 0; index < c; index++){
  84.         fwrite(s[index].a, sizeof(strl), 1, str);
  85.     }
  86.     printf("\n");
  87.     qsort(s, c, sizeof(s[0]), comp);
  88.     for (index = 0; index < c; index++){
  89.         printf(s[index].a);
  90.         printf("\n");
  91.     }
  92.     fclose(str);
  93.  
  94.     ind = fopen(NAME_IDX, "wb");
  95.     printf("\n");
  96.  
  97.     for (index = 0; index < c; index++){
  98.         fwrite(&s[index].indexInFile, sizeof(strl), 1, ind);
  99.         printf("%d",s[index].indexInFile);
  100.         printf("\n");
  101.     }
  102.     fclose(ind);
  103.    
  104.    
  105.  
  106. }
  107.  
  108. void searchAll(void){
  109.     int index = 0;
  110.     str = fopen(NAME_STR, "wb");
  111.     printf("Выберите номер нужной строчки: ");
  112.     while (!feof(str)){
  113.         fread()
  114.     }
  115.  
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement