// Tugas pemrograman struktur data ke-01
	

#include   <stdio.h>
#include   <stdlib.h>

#define    NUM_OF_STUDENT    10		//	banyaknya siswa

// structure definition

struct NILAI {
  char	 name[100];	// nama
  float  math;		// nilai math
  float  biology; 	// nilai biology
  float  average;    	// rata-rata nilai math & biology
};

// Loading data

void load_data(FILE *fp,struct NILAI x[])
{
  int i,j;

  // membaca data dari file baris per baris

  for(i=0;i<NUM_OF_STUDENT;i++) {
	  if(fscanf(fp,"%s %f %f",&x[i].name,&x[i].math,&x[i].biology)!=3) {
		printf("banyaknya item tidak sesuai\n");
		exit(1);
	  }
  }
    
}

//  menghitung average nilai (nilai math {nilai biologyj/2

void average(struct NILAI x[])
{
  int i;

  // selesaikan bagian ini 

}


// Sorting memakai bubble sort

void bubble_sort(struct NILAI x[])
{
  int i,j;

  // selesaikan bagian ini

}

// Tampilkan nama, nilai math, nilai biology dan average untuk tiap siswa

void print_result(FILE *fp,struct NILAI x[])
{
  int i;

	
  // selesaikan bagian ini 

}


// Main

int main()
{
  FILE    *fpi,*fpo;
  char    filename[100];
  struct  NILAI p[NUM_OF_STUDENT];

  printf("nama file nilai: ");  scanf("%s",filename);

  if((fpi=fopen(filename,"r"))==NULL) {
    printf("File %s tidak dapat dibuka \n",filename);
    exit(1);
  }

  printf("nama file output:");  scanf("%s",filename);

  if((fpo=fopen(filename,"w"))==NULL) {
    printf("File %s tidak dapat dibuka \n",filename);
    exit(1);
  }

  load_data(fpi,p); // membaca file data nilai 
  average(p);        // menghitung nilai rata-rata 
  fprintf(fpo,"nilai tiap siswa (sebelum dilakukan sorting)\n");
  print_result(fpo,p);     // menampilkan nama, nilai math, nilai biology dan average untuk tiap siswa 
  fprintf(fpo,"\n\n"); // ganti baris 2 kali
  bubble_sort(p);   // sorting dilakukan berdasarkan rata-rata nilai tiap siswa
  fprintf(fpo,"nilai tiap siswa (sesudah dilakukan sorting)\n");
  print_result(fpo,p);    // menampilkan nama, nilai math, nilai biology dan average untuk tiap siswa 
  fclose(fpi);
  fclose(fpo);
  return(0);  
}


