From Sole Guinea Pig, 4 Days ago, written in Text.
Embed
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define MAX 1000                                        //Do not edit this macro.
  6.  
  7. typedef struct{
  8.         int film_id;
  9.         char title[255];
  10.         char description[1023];
  11.         unsigned int release_year;
  12.         char rental_duration;
  13.         float rental_rate;
  14.         unsigned char length;
  15.         float replacement_cost;
  16.         char rating[10];
  17.         char last_update[30];
  18. } RECORD_t, *RECORD;                                    //Do not edit this struct.
  19.  
  20. /* DECLARE YOUR FUNCTION PROTOTYPES HERE */
  21. /* DECLARE YOUR FUNCTION PROTOTYPES HERE */
  22. /* DECLARE YOUR FUNCTION PROTOTYPES HERE */
  23. void list(RECORD rec)
  24. {
  25.  int i;
  26.  for(i=0;i<10;i++)
  27.  {
  28.         printf("ID: %d\n", rec[i].film_id);
  29.         printf("TITLE: %s\n", rec[i].title);
  30.         printf("DESCRIPTION: %s\n", rec[i].description);
  31.         printf("RELEASE YEAR: %d\n", rec[i].release_year);
  32.         printf("RENTAL DURATION: %d\n", rec[i].rental_duration);
  33.         printf("RENTAL RATE: %f\n", rec[i].rental_rate);
  34.         printf("REPLACEMENT COST: %f\n", rec[i].replacement_cost);
  35.         printf("RATING: %s\n", rec[i].rating);
  36.         printf("LAST UPDATE: %s\n", rec[i].last_update);
  37.  }
  38.  
  39. }
  40.  
  41. void swap(RECORD_t rec,RECORD_t rec2)
  42. {
  43.   RECORD_t temp;
  44.  
  45.   temp = rec;
  46.   rec = rec2;
  47.   rec2 = temp;
  48.    
  49. }
  50.  
  51. void sort(RECORD rec)
  52. {
  53.    int i, j;
  54.    for (i = 0; i < 10-1; i++)      
  55.     {
  56.        for (j = 0; j < 10-i-1; j++)
  57.          {  if (rec[j].rental_rate > rec[j+1].rental_rate)
  58.               {  
  59.                  swap(rec[j],rec[j+1]);
  60.                           }
  61.          }
  62.     }
  63. }
  64.  
  65. void find(int a,RECORD rec)
  66. {
  67.     int i=0;
  68.    
  69.     while(rec[i].film_id != a)
  70.     {
  71.      i++;
  72.     }
  73.        
  74.     printf("ID: %d\n", rec[i].film_id);
  75.         printf("TITLE: %s\n", rec[i].title);
  76.         printf("DESCRIPTION: %s\n", rec[i].description);
  77.         printf("RELEASE YEAR: %d\n", rec[i].release_year);
  78.         printf("RENTAL DURATION: %d\n", rec[i].rental_duration);
  79.         printf("RENTAL RATE: %f\n", rec[i].rental_rate);
  80.         printf("REPLACEMENT COST: %f\n", rec[i].replacement_cost);
  81.         printf("RATING: %s\n", rec[i].rating);
  82.         printf("LAST UPDATE: %s\n", rec[i].last_update);
  83.  
  84. }
  85. void update(int c,float  b,RECORD rec)
  86. {
  87.    int i=0;
  88.    
  89.     while(rec[i].film_id != c)
  90.     {
  91.      i++;
  92.     }
  93.     rec[i].replacement_cost=b;
  94.    
  95.  
  96. }
  97.  
  98. int main(){
  99.         RECORD rec = (RECORD)malloc(sizeof(RECORD_t)*MAX);  //Do not edit this line.
  100.         FILE *file = fopen("data.txt", "rb");               //Do not edit this line.
  101.         if (file == NULL) {                                 //Do not edit this line.
  102.                 printf("Cannot open the file.\n");              //Do not edit this line.
  103.                 exit(0);                                        //Do not edit this line.
  104.         }                                                   //Do not edit this line.
  105.         fread(rec, sizeof(RECORD_t)*MAX, 1, file);          //Do not edit this line.
  106.         fclose(file);                                       //Do not edit this line.
  107.  
  108.         /**************************/
  109.         /* Your code starts here. */
  110.         /**************************/
  111.    
  112.     int a;
  113.     float b;
  114.     int c;
  115.    
  116.     list(rec); //list all films
  117.     sort(rec);    //sorting films by rental_rate
  118.     list(rec);    //listing films by rental_rate
  119.     printf("Enter your film id:");
  120.     scanf("%d",&a);
  121.     find(a,rec);
  122.     printf("Which film do you want change its replement cost");
  123.     scanf("%d",&c);
  124.     printf("Change the film cost");
  125.     scanf("%f",&b);
  126.     update(c,b,rec);
  127.    
  128.    
  129.    
  130.     /*
  131.         //The following is a hint to access the rec array in memory.
  132.         printf("ID: %d\n", rec[189].film_id);
  133.         printf("TITLE: %s\n", rec[189].title);
  134.         printf("DESCRIPTION: %s\n", rec[189].description);
  135.         printf("RELEASE YEAR: %d\n", rec[189].release_year);
  136.         printf("RENTAL DURATION: %d\n", rec[189].rental_duration);
  137.         printf("RENTAL RATE: %f\n", rec[189].rental_rate);
  138.         printf("REPLACEMENT COST: %f\n", rec[189].replacement_cost);
  139.         printf("RATING: %s\n", rec[189].rating);
  140.         printf("LAST UPDATE: %s\n", rec[189].last_update);
  141.     */
  142.    
  143.         //...
  144.  
  145.         /**************************/
  146.         /* Your code ends here.   */
  147.         /**************************/
  148.  
  149.         file = fopen("data.txt", "wb");                     //Do not edit this line.
  150.         fwrite(rec, sizeof(RECORD_t)*MAX, 1, file);         //Do not edit this line.
  151.         fclose(file);                                       //Do not edit this line.
  152.         free(rec);                                          //Do not edit this line.
  153.         return 1;                                           //Do not edit this line.
  154. }
  155.  
  156.  
  157.  
  158. /* IMPLEMENT YOUR FUNCTIONS HERE */
  159. /* IMPLEMENT YOUR FUNCTIONS HERE */
  160. /* IMPLEMENT YOUR FUNCTIONS HERE */
  161.  
  162.