<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        C語言學生成績管理系統源代碼

        作者:huqin   來源:本站原創   點擊數:  更新時間:2014年04月04日   【字體:
        
        程序代碼:
        
        #include<stdio.h>
        
        #include<stdlib.h>
        
        #include<string.h>
        
        #define SIZE 3 /*定義常量SIZE便于以后的修改*/
        
        struct student /*定義一個結構體數組存放學生的信息*/
        
        {
        
            int number; /*學號*/
        
            char name[20];/*名字*/
        
            char xueyuan[20];/*學院*/
        
            int cla;/*班級*/
        
            int score[3];/*分數*/
        
            int sum;/*總分*/
        
            int average;/*平均分*/
        
        }stu[SIZE];
        
         
        
        void menu();/*調用菜單函數*/
        
        void write();/*讀入信息*/
        
        void save(int x);/*保存stud.dat文件函數*/
        
        void SaveOneStudent(int i);/*保存一個學生信息*/
        
        void SaveAllStudent(int n);/*保存全部學生信息*/
        
        void inturn (struct student c[]);/*用于對學生的信息按學號排序的函數*/
        
        void save2();/*將排序后的信息存入student.dat文件中*/
        
        int AddStudent(int n);/*增加學生信息*/
        
        void InputOnestudent(int i);/*輸入一個同學信息*/
        
        int DelStudent(int n);/*刪除學生信息*/
        
        void ModifyStudent(int n);/*修改學生信息*/
        
        void OutputOneStudent(int i);/*查詢一個學生信息*/
        
        void SearchMenu(int n);/*查詢學生信息操作*/
        
        void SearchNumber(int n);/*按學號查詢學生信息*/
        
        void SearchName(int n);/*按姓名查詢學生信息*/
        
        void SearchXueyuan(int n);/*按所在學院查詢學生信息*/
        
        void SearchCla(int n);/*按所在班級查詢學生信息*/
        
        void tongji();/*學生信息統計操作*/
        
        void tongji2();/*統計不及格率操作*/
        
        void zfsc();/*總分排序操作*/
        
        void avecz();/*按平均分統計人數操作*/
        
        void avecz();/*按平均分統計人數操作*/
        
        void search();/*查找最高成績操作*/
        
        void tongji2();/*統計不及格率操作*/
        
        void read();/*讀取student.dat文件文件中學生的信息*/
        
         
        
        /*主函數************************************************************************************/
        
        void main()
        
        {
        
            int n=SIZE;
        
            int choice;/*用戶選擇變量*/
        
            printf("*******************************************************************************\n");
        
            printf("*                                                                             *\n");
        
            printf("*          Hwadee            &學生成績文件管理&          Hwadee               *\n");
        
            printf("*                                                                             *\n");
        
            printf("*******************************************************************************\n\n\n");
        
            printf("******************************●●歡迎使用●●*********************************");
        
            while (1)
        
            {
        
                 menu();/*調用菜單函數形成操作界面*/
        
                 printf("請選擇:");
        
                 scanf("%d", &choice);
        
                 if ( choice==0 )
        
                 {
        
                      printf("\t\t\t\t謝謝使用!!!");
        
                      break;
        
                  }
        
               switch(choice) /*多重選擇實現功能不同的功能*/
        
               {  
        
                    case 1:
        
                        write();
        
                      inturn(stu);
        
                      save(SIZE);
        
                        break;
        
                    case 2:
        
                      AddStudent(n);
        
                        break;
        
                   case 3:
        
                      DelStudent(n);
        
                      break;
        
                   case 4:
        
                        ModifyStudent(n);
        
                      break;
        
                   case 5:
        
                      SearchMenu(n);
        
                      break;
        
                   case 6:
        
                      tongji();
        
                      break;
        
                   case 0:
        
                      printf("\n謝謝使用!再見!\n");
        
                   default:
        
                      printf("\n按鍵錯誤!請重新選擇!\n");
        
               }/*結束switch*/
        
            }/*結束while*/
        
        }
        
         
        部分程序清單
        
        /*菜單函數*************************************************************************************/
        
        void menu()
        
        {
        
            printf("************請輸入所需操作***********\n");/*選擇功能菜單*/
        
            printf("*************************************\n");
        
            printf("1.學生成績寫入及排序\n");
        
            printf("2.增加學生信息\n");
        
            printf("3.刪除學生信息\n");
        
            printf("4.修改學生信息\n");                             
        
            printf("5.查詢學生信息\n");
        
            printf("6.學生成績統計操作\n");
        
            printf("0.退出系統\n");
        
            printf("**************************************\n");
        
        }
        
         
        
        /*寫入函數*************************************************************************************/
        
        void write()
        
        {
        
            int i;/*計數變量*/
        
            for(i=0;i<SIZE;i++)
        
            {
        
                printf("學號:");
        
                scanf("%d",&stu[i].number);
        
                printf("姓名:");
        
                scanf("%s",&stu[i].number);
        
                printf("學院:");
        
                scanf("%s",&stu[i].xueyuan);
        
                printf("班級:");
        
                scanf("%d",&stu[i].cla);
        
                printf("高數:");
        
                scanf("%d",&stu[i].score[0]);
        
                printf("英語:");
        
                scanf("%d",&stu[i].score[1]);
        
                printf("C語言:");
        
                scanf("%d",&stu[i].score[2]);
        
                stu[i].sum=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2]);/*計算總成績*/
        
                printf("總成績:%d",stu[i].sum);
        
                stu[i].average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;/*計算平均成績*/
        
                printf("平均成績:%d\n",stu[i].average);
        
            }
        
        }
        
         
        
        /*排序函數**************************************************************************************/
        
        void inturn(struct student m[])
        
        {
        
            int i,j;/*計數變量*/
        
            struct student temp;/*中間變量 類型為結構體*/
        
            for(i=0;i<SIZE-1;i++) /*運用冒泡排序對結構體數組進行排序*/
        
            for (j=i+1;j<SIZE-i-1;j++)
        
            {
        
               if(m[i].number>m[j].number)
        
               {
        
                   temp=m[i];
        
                   m[i]=m[j];
        
                   m[j]=temp;
        
               }
        
            }
        
            printf("\n排序后的學生信息:\n\n");
        
            for (i=0;i<SIZE;i++)
        
            {
        
                printf("學號%d\t姓名%s\t學院%s\t班級%d\t高數%d\t英語%d\tC語言%d\t總成績%d\t平均成績%d\n\n",i+1,stu[i].number,stu[i].name,stu[i].xueyuan,stu[i].cla,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].average);
        
            }/*輸出排序后的學生信息*/ 
        
        }
        
        /*寫入文件*************************************************************************************/
        
        void save(int x)
        
        {
        
            FILE *fp;/*定義文件指針用于向文件讀入數據*/
        
            int i;
        
            if((fp=fopen("student.dat","rb+"))==NULL)/*以二進制讀,寫方式打開文件*/
        
            {
        
                printf("cannot open file\n");
        
               exit(1);
        
            }
        
            for(i=0;i<SIZE;i++)
        
                if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
        
                    printf("file write error\n");
        
            fclose(fp);
        
            printf("\n信息保存成功!恭喜!!\n");
        
        }
        
         
        
        /*保存一個學生信息******************************************************************************/
        
        void SaveOneStudent(int i)
        
        {
        
            FILE *fp;
        
            if((fp=fopen("student.dat","rb+"))==NULL)/*以二進制讀,寫方式打開文件*/
        
            {
        
                printf("文件打開失敗!\n");
        
                exit(1);
        
            }
        
            fseek(fp,i,0);/*文件指針定位到第i個學生*/
        
            fwrite(&stu[i],sizeof(struct student),1,fp);/*將第i個學生信息寫入文件*/
        
            fclose(fp);
        
        }
        
         
        
        /*保存全部學生信息******************************************************************************/
        
        void SaveAllStudent(int n)/*保存全部學生信息*/
        
        {
        
            FILE *fp;
        
            if((fp=fopen("student.dat","wb"))==NULL)/*以二進制寫方式打開文件*/
        
            {
        
                printf("文件打開失敗!\n");
        
                exit(1);
        
            }
        
            fwrite(stu,sizeof(struct student),n,fp);/*將數組stu中全部學生信息寫入文件*/
        
            fclose(fp);
        
        }
        
         
        
        /*將排序后的學生信息讀入到另外的文件中**********************************************************/
        
        void save2()
        
        {
        
            FILE *fp;
        
            int i;
        
            if((fp=fopen("stud.dat","rb+"))==NULL)/*以二進制讀,寫方式打開文件*/
        
            {
        
                printf("文件打開失敗!\n");
        
                exit(1);
        
            }
        
            for (i=0;i<SIZE;i++)
        
                if (fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
        
                printf("file write error\n");
        
            fclose(fp);/*讀取完畢關閉文件*/
        
        }
        
         
        
        /*增加學生信息*********************************************************************************/
        
        int AddStudent(int n)
        
        {
        
            char c='y';
        
            FILE *fp;
        
            if((fp=fopen("student.dat","ab"))==NULL)/*以二進制追加方式打開文件*/
        
            {
        
                printf("文件打開失敗!\n");
        
                exit(1);
        
            }
        
            while(c=='y')
        
            {
        
                printf("\n請輸入要增加的同學的信息:");
        
                InputOnestudent(n);/*調用函數輸入第n個學生信息*/
        
               fwrite(&stu[n],sizeof(struct student),1,fp);/*將第n個學生信息保存至文件*/
        
               n++;/*學生數量增加1*/
        
                printf("\n繼續輸入其他同學信息嗎?\n");
        
                printf("確定進行刪除請按y;不進行刪除請按n\n");
        
               c=getchar();
        
                getchar();
        
            }/*結束while*/
        
            printf("\n按任意鍵繼續!\n");
        
            getchar();
        
            fclose(fp);
        
            return(n);
        
        }
        
         
        
        /*輸入一個同學信息*****************************************************************************/
        
        void InputOnestudent(int i)
        
        {
        
            printf("學號\t姓名\t學院\t班級\t高數\t英語\tC語言\n");
        
            scanf("%d\t%s\t%s\t%d\t%d\t%d\t%d\t\n",&stu[i].number,stu[i].name,stu[i].xueyuan,&stu[i].cla,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);      
        
            stu[i].sum=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2]);/*計算總成績*/      
        
            stu[i].average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;/*計算平均成績*/
        
        }
        
         
        
        /*刪除學生信息*********************************************************************************/
        
        int DelStudent(int n)
        
        {
        
            int i,k=-1,x;
        
            char c1='y',c2;
        
            while(c1=='y')
        
            {
        
               c2='n';
        
                printf("\n請輸入要刪除的同學的學號:");
        
                scanf("%d",&x);
        
                for(i=0;i<n;i++)
        
                   if(x==stu[i].number)
        
                   {
        
                       k=i;/*找到要刪除的同學學號,并用k記下其下標*/
        
                       break;
        
                   }
        
                if(k<0)/*k<0表示在數組中沒有找到輸入學號對應的學生*/
        
                    printf("\n輸入學號有誤,請重新輸入!");
        
                else
        
               {
        
                    printf("\n該同學信息如下:\n");
        
                    InputOnestudent(k);
        
                    printf("\n確定刪除?\n");
        
                    printf("確定進行刪除請按y;不進行刪除請按n\n");
        
                   c2=getchar();
        
                   getchar();
        
                   if(c2=='y')/*c2為y,表示確定進行刪除操作*/
        
                   {
        
                       for(i=k;i<n;i++)
        
                          stu[i]=stu[i+1];/*刪除第k個學生信息*/
        
                       n--;/*學生人數減1*/
        
                       printf("刪除成功!恭喜!!\n");
        
                   }
        
                   else
        
                       printf("\n取消刪除!\n");
        
                    printf("\n繼續刪除操作嗎?");
        
                    printf("\n繼續刪除請按y;不進行刪除請按n\n");
        
                   c1=getchar();
        
                   getchar();
        
               }
        
            }/*結束while*/
        
            save(n);
        
            printf("\n按任意鍵繼續!\n");
        
            getchar();
        
            return(n);
        
        }
        
         
        
        /*修改學生信息********************************************************************************/
        
        void ModifyStudent(int n)
        
        {
        
            struct student temp;
        
            int k=-1,x,i;
        
            char c1='y',c2;
        
            while(c1=='y')
        
            {
        
               c2='y';
        
                printf("\n請輸入要修改的同學的學號:");
        
                scanf("%d",&x);
        
                for(i=0;i<n;i++)
        
                   if(x==stu[i].number)
        
                   {
        
                       k=i;/*找到要修改的同學學號,并用k記下其下標*/
        
                       break;
        
                   }
        
                if(k<0)/*k<0表示在數組中沒有找到輸入學號對應的學生*/
        
                    printf("\n輸入學號有誤,請重新輸入!");
        
                else
        
               {
        
                    printf("請輸入要修改學生修改后的的信息\n");
        
                    printf("學號\t姓名\t學院\t班級\t高數\t英語\tC語言\t\n");
        
                    scanf("%d\t%s\t%s\t%d\t%d\t%d\t%d\t\n",&temp.number,stu[i].name,temp.xueyuan,&temp.cla,&temp.score[0],&temp.score[1],&temp.score[2]);      
        
                   temp.sum=(temp.score[0]+temp.score[1]+temp.score[2]);/*計算總成績*/      
        
                   temp.average=(temp.score[0]+temp.score[1]+temp.score[2])/3;/*計算平均成績*/
        
                    stu[k]=temp;/*修改該學生信息*/
        
                    printf("\n修改成功!恭喜!!\n");
        
                   break;
        
               }
        
                SaveAllStudent(k);/*保存修改后的學生信息*/
        
                printf("\n繼續修改操作嗎?");
        
                printf("\n繼續修改請按y;不進行修改請按n\n");
        
               c1=getchar();
        
                getchar();
        
            }/*結束while*/
        
            printf("\n按任意鍵繼續!\n");
        
            getchar();
        
        }
        
         
        
        /*查詢一個學生信息**********************************************************************************/
        
        void OutputOneStudent(int i)
        
        {
        
            printf("學號:%d  姓名:%s  學院:%s  班級:%d\n",stu[i].number,stu[i].name,stu[i].xueyuan,stu[i].cla);
        
            printf("高數:%d  英語:%d  C語言:%d  總分:%d  平均分:%d\n",stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].average);
        
        }
        
         
        
        /*查詢學生信息操作*********************************************************************************/
        
        void SearchMenu(int n)
        
        {
        
            int selet;
        
            while(1)
        
            {
        
                printf("**********************************************************\n");
        
                printf("******************** 歡迎進入查詢系統  *******************\n");    
        
                printf("**********************************************************\n");
        
                printf("\n");
        
                printf("*********************  請輸入所需操作  *******************\n");/*選擇功能菜單*/
        
                printf("**********************************************************\n");
        
                printf("1.按學號查詢\n");
        
                printf("2.按姓名查詢\n");
        
                printf("3.按學院查詢\n"); 
        
                printf("4.按班級查詢\n");
        
                printf("0.返回主菜單\n");     
        
                printf("**********************************************************\n");
        
                printf("請輸入操作選項:");
        
                scanf("%d",&selet);
        
               getchar();
        
                switch(selet)
        
               {
        
                   case 1:
        
                      SearchNumber(n);
        
                      break;
        
                   case 2:
        
                      SearchName(n);
        
                      break;
        
                   case 3:
        
                      SearchXueyuan(n);
        
                      break; 
        
                   case 4:
        
                      SearchCla(n);
        
                      break;
        
                   case 0:
        
                      return;
        
                   default:
        
                      printf("輸入錯誤!請重新輸入!\n");
        
               }
        
            }/*結束while*/
        
        }
        
         
        
        /*按姓名查詢學生信息*******************************************************************************/
        
        void SearchName(int n)
        
        {
        
            int i,j,k;
        
            char xname[20],c='y';
        
            while(c=='y')
        
            {
        
               k=-1;
        
               printf("\n請輸入學生姓名:");
        
               gets(xname);
        
               for(i=0,j=1;i<n;i++)/*精確查詢*/
        
                   if(strcmp(stu[i].name,xname)==0)
        
                   {
        
                       k=i;/*找到要查詢的同學姓名,并用k記下其下標*/
        
                       printf("學生%d的信息:\n",j++);
        
                        OutputOneStudent(k);
        
                        printf("\n按任意鍵繼續!\n");
        
                        getchar();
        
                   }
        
               if(k==-1)/*k表示沒有精確查詢結果*/
        
               {
        
                   printf("\n模糊查詢結果如下:\n");
        
                   for(i=0,j=1;i<n;i++)
        
                      if(strstr(stu[i].name,xname)!=NULL)/*模糊查詢*/
        
                      {
        
                          k=1;
        
                           printf("學生%d的信息:\n",j++);
        
                            OutputOneStudent(k);
        
                            printf("\n按任意鍵繼續!\n");
        
                            getchar();
        
                      }
        
                   if(j==1)
        
                        printf("\n抱歉!沒有該學生信息!\n");
        
               }
        
               printf("繼續查詢其他學生信息嗎?");
        
                printf("\n繼續修改請按y;不進行修改請按n\n");
        
               c=getchar();
        
                getchar();
        
            }/*結束while*/
        
            printf("\n按任意鍵繼續!\n");
        
            getchar();
        
        }
        
         
        
        /*按學號查詢學生信息*******************************************************************************/
        
        void SearchNumber(int n)
        
        {
        
            int i,j,k,x;
        
            char c='y';
        
            while(c=='y')
        
            {
        
               k=-1;
        
               printf("\n請輸入學生學號:");
        
               scanf("%d",&x);
        
               for(i=0,j=1;i<n;i++)
        
                   if(stu[i].number==x)
        
                   {
        
                       k=i;/*找到要查詢的同學學號,并用k記下其下標*/
        
                       printf("學生%d的信息:\n",j++);
        
                        OutputOneStudent(k);
        
                        printf("\n按任意鍵繼續!\n");
        
                        getchar();
        
                   }
        
               printf("繼續查詢其他學生信息嗎?");
        
                printf("\n繼續修改請按y;不進行修改請按n\n");
        
               c=getchar();
        
                getchar();
        
            }/*結束while*/
        
            printf("\n按任意鍵繼續!\n");
        
            getchar();
        
        }
        
         
        
        /*按所在學院查詢學生信息***************************************************************************/
        
        void SearchXueyuan(int n)
        
        {
        
            int i,j,k;
        
            char xxueyuan[20],c='y';
        
            while(c=='y')
        
            {
        
               k=-1;
        
               printf("\n請輸入學生所在學院:");
        
               gets(xxueyuan);
        
               for(i=0,j=1;i<n;i++)
        
                   if(strcmp(stu[i].xueyuan,xxueyuan)==0)
        
                   {
        
                       k=i;/*找到要查詢的同學所在學院,并用k記下其下標*/
        
                       printf("學生%d的信息:\n",j++);
        
                        OutputOneStudent(k);
        
                        printf("\n按任意鍵繼續!\n");
        
                        getchar();
        
                   }
        
               printf("繼續查詢其他學生信息嗎?");
        
                printf("\n繼續修改請按y;不進行修改請按n\n");
        
               c=getchar();
        
                getchar();
        
            }/*結束while*/
        
            printf("\n按任意鍵繼續!\n");
        
            getchar();
        
        }
        
         
        
        /*按所在班級查詢學生信息***************************************************************************/
        
        void SearchCla(int n)
        
        {         
        
            int i,j,k,x;
        
            char c='y';
        
            while(c=='y')
        
            {
        
               k=-1;
        
               printf("\n請輸入學生所在班級:");
        
               scanf("%d",&x);
        
               for(i=0,j=1;i<n;i++)
        
                   if(stu[i].cla==x)
        
                   {
        
                       k=i;/*找到要查詢的同學所在班級,并用k記下其下標*/
        
                       printf("學生%d的信息:\n",j++);
        
                        OutputOneStudent(k);
        
                        printf("\n按任意鍵繼續!\n");
        
                        getchar();
        
                   }
        
               printf("繼續查詢其他學生信息嗎?");
        
                printf("\n繼續修改請按y;不進行修改請按n\n");
        
               c=getchar();
        
                getchar();
        
            }/*結束while*/
        
            printf("\n按任意鍵繼續!\n");
        
            getchar();
        
        }
        
         
        
        /*學生信息統計操作*********************************************************************************/
        
        void tongji()
        
        {  
        
            int x;
        
            printf("**********************************************************\n");
        
            printf("******************** 歡迎進入統計系統  *****************++\n");       
        
            printf("**********************************************************\n");
        
            printf("\n");
        
            printf("************請輸入所需操作***********\n");/*選擇功能菜單*/
        
            printf("*************************************\n");
        
            printf("1.按總分排序操作\n");
        
            printf("2.按平均分統計人數操作\n");                         
        
            printf("3.按查找最高成績操作\n");
        
            printf("4.按統計部及格率操作\n");                             
        
            printf("0.返回主菜單\n");
        
            printf("**************************************\n");
        
            printf("請輸入操作選項:");
        
            scanf("%d",&x);/*用戶選擇變量*/
        
            while(x>0&&x<6)
        
            {
        
                switch(x)
        
               {
        
                   case 1:
        
                         zfsc();break;/*選擇按總分排序操作*/        
        
                     case 2:
        
                          avecz();break;/*選擇按平均分統計人數操作*/
        
                     case 3:
        
                          search();break;/*選擇按查找最高成績操作*/
        
                     case 4:
        
                          tongji();break;/*選擇按統計部及格率操作*/
        
                     case 0:
        
                        printf("謝謝使用!再見!\n");
        
                       return;/*選擇退出操作*/
        
                     default:
        
                        printf("輸入錯誤!請重新輸入\n");/*提示錯誤信息*/
        
               }
        
            }
        
        }
        
         
        
        /*總分排序操作*************************************************************************************/
        
        void zfsc()
        
        {
        
            FILE *wj,*fp;
        
            int i,j;
        
            struct student temp;
        
            if((fp=fopen("student.dat","wb"))==NULL)
        
            {
        
                printf("文件打開失敗!\n");
        
               exit(1);
        
            }
        
            for(i=0;i<SIZE-1;i++)
        
                for(j=0;j<SIZE-i-1;j++)
        
                    if(stu[i].sum<stu[j].sum)/*冒泡法排序*/
        
                    {
        
                        temp=stu[j];
        
                        stu[j]=stu[i];
        
                        stu[i]=temp;
        
                    }
        
            if((wj=fopen("student1.dat","wb+"))==NULL)
        
            {
        
                printf("文件打開失敗!\n");
        
               exit(1);
        
            } 
        
            else
        
            {   
        
                 for(i=0;i<SIZE;i++)
        
                     fwrite(&stu[i],sizeof(struct student),1,wj);/*寫入文件*/
        
            }
        
            fclose(fp);
        
            fclose(wj);
        
        }
        
         
        
        /*按平均分統計人數操作*****************************************************************************/
        
        void avecz()
        
        {
        
            int i=0,k,m;
        
            printf("平均分不及格的同學有:\n");
        
            for(i=0;i<SIZE;i++)/*統計平均分不及格人數*/
        
            {
        
               k=0;
        
                if(stu[i].average<60)
        
               {  
        
                   m=i;/*找到平均分不及格學生,并用m記下其下標*/
        
                   OutputOneStudent(m);
        
                   k++;/*k為平均分不及格人數*/
        
               }
        
                printf("             平均分不及格的同學信息輸出結束\n");
        
                printf("共%d人\n",k);
        
                printf("  **********************************************************");
        
            }
        
            printf("平均分60~69分的同學有:\n");
        
            for(i=0;i<SIZE;i++)/*統計平均分60~69分人數*/
        
            {
        
               k=0;
        
                if(stu[i].average>59&&stu[i].average<70)
        
               {     
        
                   m=i;/*找到平均分69~69學生,并用m記下其下標*/
        
                   OutputOneStudent(m);
        
                    k++;/*k為平均分60~69分人數*/
        
               }
        
                printf("             平均分60~69分的同學信息輸出結束\n");
        
                printf("共%d人\n",k);
        
                printf("  **********************************************************");
        
            }
        
            printf("平均分70~79分的同學有:\n");
        
            for(i=0;i<SIZE;i++)/*統計平均分70~79分人數*/
        
            {
        
               k=0;
        
                if(stu[i].average>69&&stu[i].average<80)
        
               {     
        
                   m=i;/*找到平均分70~79學生,并用m記下其下標*/
        
                   OutputOneStudent(m);
        
                   k++;/*k為平均分70~79分人數*/
        
               }
        
                printf("             平均分70~79分的同學信息輸出結束\n");
        
                printf("共%d人\n",k);
        
                printf("  **********************************************************");
        
            }
        
            printf("平均分80~89分的同學有:\n");
        
            for(i=0;i<SIZE;i++)/*統計平均分80~89分人數*/
        
            {
        
               k=0;
        
                if(stu[i].average>79&&stu[i].average<90)
        
               {     
        
                   m=i;/*找到平均分80~89學生,并用m記下其下標*/
        
                   OutputOneStudent(m);
        
                   k++;/*k為平均分80~89分人數*/
        
               }
        
                printf("             平均分80~89分的同學信息輸出結束\n");
        
                printf("共%d人\n",k);
        
                printf("  **********************************************************");
        
            }
        
            printf("平均分90~100分的同學有:\n");
        
            for(i=0;i<SIZE;i++)/*統計平均分90~100分人數*/
        
            {
        
               k=0;
        
                if(stu[i].average>89&&stu[i].average<=100)
        
               {     
        
                   m=i;/*找到平均分90~100學生,并用m記下其下標*/
        
                   OutputOneStudent(m);
        
                   k++;/*k為平均分90~100分人數*/
        
               }
        
                printf("             平均分90~100分的同學信息輸出結束\n");
        
                printf("共%d人\n",k);
        
                printf("  **********************************************************");
        
            }
        
        }
        
         
        
        /*查找最高成績操作****************************************************************************/
        
        void search()
        
        {
        
            int i=0,x,k=0;
        
            printf("********************輸入查找選項**********************\n");/*選擇功能菜單*/
        
            printf("          查找高數成績最高學生請按:1\n");
        
            printf("          查找英語成績最高學生請按:2\n");           
        
            printf("          查找C語言成績最高學生請按:3\n");
        
            scanf("%d",&x);/*用戶選擇變量*/                        
        
            if(x==1)
        
            {
        
                for(i=0;i<SIZE;i++)/*查找高數成績最高學生*/                   
        
               {   if(stu[i].score[0]>stu[k].score[0])
        
                      i=k;
        
               }
        
               printf("高數成績最高學生信息如下:\n");
        
               OutputOneStudent(k);
        
               printf("                       輸出結束\n");
        
                printf("  **********************************************************");
        
            }
        
            if(x==2)
        
            {
        
                for(i=0;i<SIZE;i++)/*查找英語成績最高學生*/
        
               {   if(stu[i].score[1]>stu[k].score[1])
        
                      i=k;
        
               }
        
               printf("英語成績最高學生信息如下:\n");
        
               OutputOneStudent(k);
        
               printf("                       輸出結束\n");
        
                printf("  **********************************************************");
        
            }
        
            if(x==3)
        
            {
        
                for(i=0;i<SIZE;i++)/*查找C語言成績最高學生*/
        
               {   if(stu[i].score[2]>stu[k].score[2])
        
                      i=k;
        
               }
        
               printf("C語言成績最高學生信息如下:\n");
        
               OutputOneStudent(k);
        
               printf("                       輸出結束\n");
        
                printf("  **********************************************************");
        
            }
        
        }
        
         
        
        /*統計不及格率操作*****************************************************************************/
        
        void tongji2()
        
        {
        
            int x,i,k;
        
            printf("********************輸入統計選項**********************\n"); /*選擇功能菜單*/
        
            printf("統計高數成績不及格率請按:1\n");
        
            printf("統計英語成績不及格率請按:2\n");           
        
            printf("統計C語言成績不及格率請按:3\n");
        
            scanf("%d",&x);/*用戶選擇變量 */                        
        
            if(x==1)
        
            {
        
                for(i=0;i<SIZE;i++)/*統計高數成績不及格率*/
        
               {
        
                   k=0;
        
                   if(stu[i].score[0]<60)
        
                        k++;/*k為高數成績不及格人數*/
        
                printf("共%d人高數未及格\n",k);
        
                printf("不及格率為%f\n",k/SIZE);
        
                printf("  **********************************************************");
        
               }
        
            }
        
            if(x==2)
        
            {
        
                for(i=0;i<SIZE;i++)/*統計英語成績不及格率*/
        
               {
        
                   k=0;
        
                   if(stu[i].score[1]<60)
        
                         k++;/*k為英語成績不及格人數*/
        
                printf("共%d人英語不及格\n",k);
        
                printf("不及格率為%f\n",k/SIZE);
        
                printf("  **********************************************************");
        
               }
        
            }
        
            if(x==3)
        
            {
        
                for(i=0;i<SIZE;i++)/*統計C語言成績不及格率*/
        
               {
        
                   k=0;
        
                   if(stu[i].score[2]<60)
        
                        k++;/*k為C語言成績不及格人數*/
        
                printf("共%d人C語言不及格\n",k);
        
                printf("不及格率為%f\n",k/SIZE);
        
                printf("  **********************************************************");
        
               }
        
            }
        
        }
        
        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮