Like Tree1Likes
  • 1 Post By rags_to_riches

Need to get the average for each student

This is a discussion on Need to get the average for each student within the C Programming forums, part of the General Programming Boards category; I have to get the average score for each student. and modify my avgmarks function and write the marks to ...

  1. #1
    Registered User
    Join Date
    Nov 2013
    Posts
    16

    Need to get the average for each student

    I have to get the average score for each student.
    and modify my avgmarks function and write the marks to a output txt file.

    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    
    
     int bubble(int*,int);
     void filewrite();
     void avgmarks();
     void fileprint();
     void filesort();
     void rollin();
    
    
    /*********************** SORTING FUNCTION ***************************/
    int bubble(int x[],int n)
    {
     int hold,j,pass,i,switched = 1;
     for(pass = 0; pass < n-1 && switched == 1;pass++)
     {
      switched=0;
      for (j=0;j<n-pass-1;j++)
       if (x[j]>x[j+1])
       {
        switched=1;
        hold = x[j];
        x[j] = x[j+1];
        x[j+1]=hold;
        }
       }
    return(0);
    }
    /*********************** FILE WRITING FUNCTION ******************************/
    void filewrite()
    {
      int roll,ch,mark;
      char nam[50];
       FILE *fp;
       system("cls");
      fp = fopen("student.txt","a");
       printf("ENTER ROLL NUMBER, NAME , MARKS \n");
      ch =1;
      while(ch)
      {
      scanf("%d%s%d",&roll,&nam,&mark);
      fprintf(fp,"%d %s %d\n",roll,nam,mark);
      printf("\n\n press 1 to continue,0 to stop");
      scanf("%d",&ch);
      }
       fclose(fp) ;
    }
    /******************** OUTPUTING DATA ON SCREEN***************/
    void fileprint()
    {
      int marks[100],rollno[100],x[100],i;
      char name[100][50];
      FILE *fp;
    
    
      system("cls");
      fp = fopen("student.txt","r");
       i=0;
       printf("ROLLNO       NAME        MARK\n");
       while(!feof(fp))
      {
         fscanf(fp,"%d %s %d\n",&rollno[i],&name[i],&marks[i]);
         printf(" %d          %s          %d\n",rollno[i],name[i],marks[i]);
         i=i+1;
       }
       fclose(fp);
       printf("\n\n\nPRESS ANY KEY");
       getch();
    
    
      }
    /******************* SORTING FILE ************************/
    void filesort()
      { int marks[100],rollno[100],x[100],n,i,j;
        char name[100][50];
        FILE *fp,*fm;
    
    
        fp = fopen("student.txt","r");
        fm = fopen("marks.txt","w");
        i=0;
       while(! feof(fp))
        {
    
    
         fscanf(fp,"%d %s %d\n",&rollno[i],&name[i],&marks[i]);
         x[i]= marks[i];
         i=i+1;
          }
    
    
           n=i;
    
    
           bubble(x,n);
    
    
        for(i=0;i<n;i++)
        {
        printf(" %d\t",x[i]);
        }
    
    
     for(i=0;i<n;i++)
     {
       for (j=0;j<n;j++)
       {
       if(x[i]==marks[j])
       {
          fprintf(fm,"%d %s %d\n",rollno[j],name[j],marks[j]);
         }
       }
     }
      fclose(fm);
      fclose(fp);
      printf("\n\n\nPRESS ANY KEY");
      getch();
    
    
    }
    /************************* DATA USING ROLLNO***************************/
    void rollin()
    {   int i,roll,ch,mark,roll1;
        char nam[50];
        FILE *fm;
    
    
        ch=1;
      while(ch)
      { system("cls");
        fm = fopen("marks.txt","r");
        printf(" \n ENTER ROLL NUMBER - ");
        scanf("%d",&roll1);
          i=0;
       while(! feof(fm))
        {
         fscanf(fm,"%d %s %d\n",&roll,&nam,&mark);
         if(roll1==roll)
        {printf("\nROLLNO.     NAME        MARKS\n ");
         printf(" %d          %s          %d\n",roll,nam,mark);
         break;
         }
         else
         i=i+1;
          }
      printf("\n\npress 1 to see student info, 0 to return to main menu\n");
      scanf("%d",&ch);
      fclose(fm);
      }
    
    
    
    
    
    
     }
    
    
    void avgmarks()
     {
        int marks[100],rollno[100],n,i;
        float avg,x;
        char name[100][50];
        FILE *fm;
        fm = fopen("marks.txt","r");
        i=0;
       while(! feof(fm))
        {
    
    
         fscanf(fm,"%d %s %d\n",&rollno[i],&name[i],&marks[i]);
         x = x + marks[i];
         i=i+1;
          }
         n = i;
       avg = x/n;
      printf("AVERAGE MARKS OF %d STUDENTS ARE -  %f ",n,avg);
      fclose(fm);
      printf("\n\n\nPRESS ANY KEY");
       getch();
    
    
     }
    
    
    
    
    /**************** FUNC. ENDS************************/
    void main()
    {
      int marks[100],rollno[100],x[100],n,i,j,roll,c,mark,roll1;
      char name[100][10],nam[50];
    
    
      while(c!=6)
       {  
         system("cls");
         printf("GIVE CHOICE--\n");
         printf("   1 TO ENTER STUDENT INFO.\n");
         printf("   2 TO SEE STUDENT.TXT FILE\n");
         printf("   3 TO SORT FILE ON BASIS OF MARKS\n");
         printf("   4 TO PRINT STUDENT INFO. USING ROLL NO\n");
         printf("   5 TO FIND AVERAGE OF MARKS\n");
         printf("   6 TO EXIT\n\n--");
         scanf("%d",&c);
         system("cls");
         switch(c)
         {
         case 1:
              filewrite();
              break;
         case 2:
              fileprint();
             break;
         case 3:
             filesort();
             break;
         case 4:  rollin();
              break;
         case 5:  avgmarks();
              break;
         case 6:
              break;
         default:
              break;
         }
        }
    
    
      }

  2. #2
    a_capitalist_story
    Join Date
    Dec 2007
    Posts
    2,650
    You really think changing a few variable or function names is going to hide your copy/paste programming?
    nonpuz likes this.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. [ A student who needs help ]
    By Phazawhy in forum C Programming
    Replies: 2
    Last Post: 08-23-2007, 04:28 AM
  2. new student
    By monu in forum C Programming
    Replies: 3
    Last Post: 08-03-2007, 03:18 AM
  3. Student Roster & Grade Average
    By Surge in forum C Programming
    Replies: 10
    Last Post: 12-12-2006, 06:32 AM
  4. Student average program rookie in need of help
    By Mshock in forum C Programming
    Replies: 24
    Last Post: 05-17-2006, 12:51 AM
  5. New C Student Needs Help
    By Flim Flam in forum C Programming
    Replies: 3
    Last Post: 06-08-2003, 11:47 AM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21