SOF PROGRAMMING ASSIGNMENT: SOLUTION A & B



  Sof in; in.open_cc((unichar*)"favorites.sof");
  Long i;  Long max = 0;  Long min = LONG_MAX;  Float mean;  long cnt=0;
  
  for (long tag = in.first_cc(LONG_CLASS_NAME);
       tag != SOF_NO_TAG;
       tag = in.next_cc(LONG_CLASS_NAME,tag)) {

    i.read_cc(in,tag);

    if ((long)i < min) {min = (long)i;}
    if ((long)i > max) {max = (long)i;}
    mean += i;
    cnt++;
  }

  mean /= (float)cnt;
  in.close_cc();
  printf("min = %ld\nmax = %ld\nmean = %f\n",(long)min,(long)max,(float)mean);

  Sof out;  out.open_cc((unichar*)"out.sof", ISIP_BINARY, ISIP_WRITE_PLUS);

  min.write_cc(out, 0);
  max.write_cc(out, 1);
  mean.write_cc(out, 0);

  Statistics stat;
  stat.set_cc((long)min, (long)max, (float)mean);
  stat.write_cc(out, 0);
  out.close_cc();