Advertisement
Oddlyshapedtree

Untitled

Dec 1st, 2015
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.10 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. struct Shift
  6.  {
  7.  char name[100];
  8.  char day_of_week[100];
  9.  int start_hour;
  10.  int end_hour;
  11.  };
  12.  
  13. struct Shift shift_data[100];
  14. struct Shift temp;
  15.  
  16. int read_data(struct Shift shift_data[], int *num_shifts);
  17. void sort_data(struct Shift shift_data[], int num_shifts);
  18. void sort_data(struct Shift shift_data[], int num_shifts);
  19.  
  20.  
  21.  
  22.  
  23.  
  24. int main()
  25.   {
  26.     int num_shifts;
  27.  
  28.     read_data(shift_data, &num_shifts);
  29.  
  30.   //  void sort_data(struct Shift shift_data[], int num_shifts);
  31.  
  32.     print_data(shift_data, num_shifts);
  33.  
  34.     return 0;
  35.  
  36.   }
  37.  
  38.  
  39.  
  40. // Preconditions: array of structure "Shift" to store data
  41. // Postconditions: number of shifts read in from data file
  42. // Actions: Ask user for name of input file. Read the number
  43. // of shifts, then read in the data for all
  44. // of the shifts. Return the number of shifts.
  45. int read_data(struct Shift shift_data[], int *num_shifts)
  46. {
  47.     char input_schedule[100];
  48.  
  49.     int i;
  50.  
  51.  
  52.     printf("What is the name of the file?\n");
  53.     scanf("%s",input_schedule);
  54.  
  55.     FILE *ifp;
  56.     ifp=fopen(input_schedule,"r");
  57.  
  58.     fscanf(ifp,"%d",num_shifts);
  59.  
  60.     printf("numshifts = %d", num_shifts);
  61.  
  62.     for(i=0;i<*num_shifts;i++)
  63.     {
  64.         fscanf(ifp,"%s",&shift_data[i].name);
  65.         fscanf(ifp,"%s",&shift_data[i].day_of_week);
  66.         fscanf(ifp,"%d",&shift_data[i].start_hour);
  67.         fscanf(ifp,"%d",&shift_data[i].end_hour);
  68.     }
  69.  
  70.     fclose(ifp);
  71.     return num_shifts;
  72.   }
  73.  
  74.  
  75.  
  76. // Preconditions: array of structure "Shift"
  77. // integer value indicating number of shifts
  78. // Postconditions: none - this function does not return anything.
  79. // Actions: Sort the shifts by the TA's first name.
  80. /*
  81. void sort_data(struct Shift shift_data[], int num_shifts)
  82. {
  83.  
  84. int i,j;
  85.  
  86. for(i=0;i<num_shifts;i++)
  87. {
  88.     for(j=i+1;j<num_shifts;j++)
  89.     {
  90.         if(strcmp(shift_data[i].name,shift_data[i].name)<0)
  91.         {
  92.             temp[i]=shift_data[i];
  93.             shift_data[i]=shift_data[j];
  94.             shift_data[i]=temp[i];
  95.         }
  96.         if(strcmp(shift_data[i].day_of_week,shift_data[i].day_of_week)<0)
  97.         {
  98.             temp[i]=shift_data[i];
  99.             shift_data[i]=shift_data[j];
  100.             shift_data[i]=temp[i];
  101.         }
  102.        if(strcmp(shift_data[i].start_hour,shift_data[i].start_hour)<0)
  103.         {
  104.             temp[i]=shift_data[i];
  105.             shift_data[i]=shift_data[j];
  106.             shift_data[i]=temp[i];
  107.         }
  108.         if(strcmp(shift_data[i].end_hour,shift_data[i].end_hour)<0)
  109.         {
  110.             temp[i]=shift_data[i];
  111.             shift_data[i]=shift_data[j];
  112.             shift_data[i]=temp[i];
  113.         }
  114. }
  115.  
  116. }
  117. */
  118.  
  119. // Preconditions: array of structure "Shift"
  120. // integer value indicating number of shifts
  121. // Postconditions: none - this function does not return anything.
  122. // Actions: Print the sorted data in the format described below.
  123.  
  124. void print_data(struct Shift shift[], int num_shifts)
  125. {
  126.    int i;
  127.  
  128.    printf("\n\n\n");
  129.  
  130.    for(i=0;i<num_shifts;i++)
  131.    {
  132.        printf("%-5s\t\t",shift_data[i].name);
  133.        printf("%-8s\t",shift_data[i].day_of_week);
  134.  
  135.  
  136.            if(shift_data[i].start_hour>12)
  137.            {
  138.                shift_data[i].start_hour=shift_data[i].start_hour-12;
  139.                printf("%3d:00 pm to  ", shift_data[i].start_hour);
  140.            }
  141.            else if(shift_data[i].start_hour<12)
  142.            {
  143.                printf("%3d:00 am to  ", shift_data[i].start_hour);
  144.            }
  145.            else if(shift_data[i].start_hour==12)
  146.            {
  147.                printf("%3d:00 pm to  ", shift_data[i].start_hour);
  148.            }
  149.  
  150.  
  151.            if(shift_data[i].end_hour>12)
  152.            {
  153.                shift_data[i].end_hour=shift_data[i].end_hour-12;
  154.                printf("%3d:00 pm\n", shift_data[i].end_hour);
  155.            }
  156.            else if(shift_data[i].end_hour<12)
  157.            {
  158.                printf("%3d:00 am\n", shift_data[i].end_hour);
  159.            }
  160.            else if(shift_data[i].end_hour==12)
  161.            {
  162.                printf("%3d:00 pm\n", shift_data[i].end_hour);
  163.            }
  164.  
  165.     }
  166. return 0;
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement