亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

學(xué)生成績(jī)管理系統(tǒng)實(shí)習(xí)

2019-11-17 05:00:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#define LEN sizeof(strUCt scorenode)
#define DEBUG
#include <string.h>
struct scorenode
{int number;/*學(xué)號(hào)*/
char name[10];/*姓名*/
float yuwen;/*語(yǔ)文成績(jī)*/
float yingyu;/*英語(yǔ)成績(jī)*/
float shuxue;/*數(shù)學(xué)成績(jī) */
struct scorenode *next;
};
typedef struct scorenode score;
int n,k;/*n,k為全局變量,本程序中的函數(shù)均可以使用它*/
/*==================================================================================*/
score *creat2311(void)
/*函數(shù)creat2311,功能:創(chuàng)建鏈表,此函數(shù)帶回一個(gè)指向鏈表頭的指針*/
{
 score*head;
 score *p1,*p2,*p3,*max;
 int i,j;
 float fen;
    char t[10];
  n=0;
     p1=p2=p3=(score *)malloc(LEN);head=p3; /*開(kāi)辟一個(gè)新單元*/
       repeat1: printf("請(qǐng)輸入學(xué)生學(xué)號(hào)(學(xué)號(hào)應(yīng)大于0):");/*輸入學(xué)號(hào),學(xué)號(hào)應(yīng)大于0*/
       scanf("%d",&p1->number);
     while(p1->number<0)
   {getchar();
    printf("輸入錯(cuò)誤,請(qǐng)重新輸入學(xué)生學(xué)號(hào):");
       scanf("%d",&p1->number);}      
  /*輸入學(xué)號(hào)為字符或小于0時(shí),程序報(bào)錯(cuò),提示重新輸入學(xué)號(hào)*/
  if(p1->number==0)
   goto end;/*當(dāng)輸入的學(xué)號(hào)為0時(shí),轉(zhuǎn)到末尾,結(jié)束創(chuàng)建鏈表*/
  else
  {
  p3=head;
  if(n>0)
   {for(i=0;i<n;i++)
           {if(p1->number!=p3->number)
     p3=p3->next;
     else
     {printf("學(xué)號(hào)重復(fù),請(qǐng)重輸! ");
     goto repeat1;
     /*當(dāng)輸入的學(xué)號(hào)已經(jīng)存在,程序報(bào)錯(cuò),返回前面重新輸入*/
        }
    }    
   }         
  }
       printf("請(qǐng)輸入學(xué)生姓名:");
       scanf("%s",&p1->name);/*輸入學(xué)生姓名*/
       printf("請(qǐng)輸入語(yǔ)文成績(jī)(0~100):");/*輸入語(yǔ)文成績(jī),成績(jī)應(yīng)在0-100*/
       scanf("%f",&p1->yuwen);
    while(p1->yuwen<0p1->yuwen>100)
 {getchar();
  printf("輸入錯(cuò)誤,請(qǐng)重新輸入語(yǔ)文成績(jī)");/*輸入錯(cuò)誤,重新輸入語(yǔ)文成績(jī)直到正確為止*/
            scanf("%f",&p1->yuwen);}
       printf("請(qǐng)輸入英語(yǔ)成績(jī)(0~100):");/*輸入英語(yǔ)成績(jī),成績(jī)應(yīng)在0-100*/
       scanf("%f",&p1->yingyu);
    while(p1->yingyu<0p1->yingyu>100)

 {getchar();
  printf("輸入錯(cuò)誤,請(qǐng)重新輸入英語(yǔ)成績(jī)");/*輸入錯(cuò)誤,重新輸入英語(yǔ)成績(jī)直到正確為止*/
           scanf("%f",&p1->yingyu);}
       printf("請(qǐng)輸入數(shù)學(xué)成績(jī)(0~100):");/*輸入數(shù)學(xué)成績(jī),成績(jī)應(yīng)在0-100*/
       scanf("%f",&p1->shuxue);
    while(p1->shuxue<0p1->shuxue>100)
 {getchar();
  printf("輸入錯(cuò)誤,請(qǐng)重新輸入數(shù)學(xué)成績(jī)");
            scanf("%f",&p1->shuxue);}/*輸入錯(cuò)誤,重新輸入數(shù)學(xué)成績(jī)直到正確為止*/
     head=NULL;
 while(p1->number!=0)
  {
    n=n+1;
 if(n==1) 
  head=p1;
 else
 
    p2->next=p1;
    p2=p1;
    p1=(score *)malloc(LEN);
    printf("請(qǐng)輸入學(xué)生資料,輸0退出! ");
repeat2:printf("請(qǐng)輸入學(xué)生學(xué)號(hào)(學(xué)號(hào)應(yīng)大于0):");
      scanf("%d",&p1->number);/*輸入學(xué)號(hào),學(xué)號(hào)應(yīng)大于0*/
  
   while(p1->number<0)
   {getchar();
    printf("輸入錯(cuò)誤,請(qǐng)重新輸入學(xué)生學(xué)號(hào):");
       scanf("%d",&p1->number);}     
   /*輸入學(xué)號(hào)為字符或小于0時(shí),程序報(bào)錯(cuò),提示重新輸入學(xué)號(hào)*/
  if(p1->number==0)
   goto end;/*當(dāng)輸入的學(xué)號(hào)為0時(shí),轉(zhuǎn)到末尾,結(jié)束創(chuàng)建鏈表*/
  else
  {
  p3=head;
  if(n>0)
   {for(i=0;i<n;i++)
      {if(p1->number!=p3->number)
    p3=p3->next;
    else
    {printf("學(xué)號(hào)重復(fù),請(qǐng)重輸! ");
     goto repeat2;
     /*當(dāng)輸入的學(xué)號(hào)已經(jīng)存在,程序報(bào)錯(cuò),返回前面重新輸入*/
    }
    }    
   }         
 
  }
  printf("請(qǐng)輸入學(xué)生姓名:");
       scanf("%s",&p1->name);/*輸入學(xué)生姓名*/
     printf("請(qǐng)輸入語(yǔ)文成績(jī)(0~100):");
       scanf("%f",&p1->yuwen);/*輸入語(yǔ)文成績(jī),成績(jī)應(yīng)在0-100*/
     while(p1->yuwen<0p1->yuwen>100)
  {getchar();
   printf("輸入錯(cuò)誤,請(qǐng)重新輸入語(yǔ)文成績(jī)");
         scanf("%f",&p1->yuwen);}/*輸入錯(cuò)誤,重新輸入語(yǔ)文成績(jī)直到正確為止*/
     printf("請(qǐng)輸入英語(yǔ)成績(jī)(0~100):");
      scanf("%f",&p1->yingyu);/*輸入英語(yǔ)成績(jī),成績(jī)應(yīng)在0-100*/
     while(p1->yingyu<0p1->yingyu>100)
  {getchar();
   printf("輸入錯(cuò)誤,請(qǐng)重新輸入英語(yǔ)成績(jī)");
         scanf("%f",&p1->yingyu);}/*輸入錯(cuò)誤,重新輸入英語(yǔ)成績(jī)直到正確為止*/
      printf("請(qǐng)輸入數(shù)學(xué)成績(jī)(0~100):");
       scanf("%f",&p1->shuxue);/*輸入數(shù)學(xué)成績(jī),成績(jī)應(yīng)在0-100*/

     while(p1->shuxue<0p1->shuxue>100)
  {getchar();
   printf("輸入錯(cuò)誤,請(qǐng)重新輸入數(shù)學(xué)成績(jī)");
         scanf("%f",&p1->shuxue);}/*輸入錯(cuò)誤,重新輸入數(shù)學(xué)成績(jī)直到正確為止*/
    
 }end: p1=head;
     p3=p1;
  for(i=1;i<n;i++)
               {
             for(j=i+1;j<=n;j++)
                 {
       max=p1;
       p1=p1->next;
     
       if(max->number>p1->number)
        {
        k=max->number;
        max->number=p1->number;
        p1->number=k;
         /*交換前后結(jié)點(diǎn)中的學(xué)號(hào)值,使得學(xué)號(hào)大者移到后面的結(jié)點(diǎn)中*/
       
        strcpy(t,max->name);
        strcpy(max->name,p1->name);
        strcpy(p1->name,t);
     /*交換前后結(jié)點(diǎn)中的姓名,使之與學(xué)號(hào)相匹配*/
        fen=max->yuwen;
        max->yuwen=p1->yuwen;
        p1->yuwen=fen;
                 /*交換前后結(jié)點(diǎn)中的語(yǔ)文成績(jī),使之與學(xué)號(hào)相匹配*/
      
        fen=max->yingyu;
        max->yingyu=p1->yingyu;
        p1->yingyu=fen;
    /*交換前后結(jié)點(diǎn)中的英語(yǔ)成績(jī),使之與學(xué)號(hào)相匹配*/
      
        fen=max->shuxue;
        max->shuxue=p1->shuxue;
        p1->shuxue=fen;
                /*交換前后結(jié)點(diǎn)中的數(shù)學(xué)成績(jī),使之與學(xué)號(hào)相匹配*/
        }                 }
    max=head;p1=head;/*重新使max,p指向鏈表頭*/
  }
p2->next=NULL;/*鏈表結(jié)尾*/
       printf("輸入的學(xué)生數(shù)為:%d個(gè)! ",n);
       return(head);}
/*=================================================================================*/

/*=================================================================================*/
score *load2311(score *head)
/*函數(shù)load2311,功能:從文件讀入學(xué)生記錄*/
{       score *p1,*p2;
        int m=0;
        char filepn[10];
  FILE *fp;
  
  printf("請(qǐng)輸入文件路徑及文件名:");
     scanf("%s",filepn);/*輸入文件路徑及名稱(chēng)*/
     if((fp=fopen(filepn,"r+"))==NULL)
 {
  printf("不能打開(kāi)文件! ");
  return 0;
 }
     fscanf(fp,"            考試成績(jī)治理系統(tǒng)             ");
     fscanf(fp,"作者:周純鋼 班級(jí):  信息023   學(xué)號(hào):11 ");
        fscanf(fp,"----------------------------------------- ");
  fscanf(fp,"學(xué)號(hào) 姓名 語(yǔ)文 英語(yǔ) 數(shù)學(xué) ");
        fscanf(fp,"----------------------------------------- ");/*讀入表格域*/
  printf("            考試成績(jī)治理系統(tǒng)             ");
     printf("  作者:周純鋼 班級(jí):  信息023   學(xué)號(hào):11 ");
        printf("----------------------------------------- ");
  printf("學(xué)號(hào) 姓名 語(yǔ)文 英語(yǔ) 數(shù)學(xué) ");
        printf("----------------------------------------- ");/*打印表格域*/
  m=m+1; 
  if(m==1)
  {
  
  p1=(score *)malloc(LEN); /*開(kāi)辟一個(gè)新單元*/
  fscanf(fp,"%d%s%f%f%f",&p1->number,p1->name,&p1->yuwen,&p1->yingyu,&p1->shuxue);
         printf("%d %s %.1f %.1f %.1f ",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);
    /*文件讀入與顯示*/
  head=NULL;
     do
  {
   n=n+1;
   if(n==1) head=p1;
   else p2->next=p1;
   p2=p1;
   p1=(score *)malloc(LEN);  /*開(kāi)辟一個(gè)新單元*/   
      fscanf(fp,"%d%s%f%f%f ",&p1->number,p1->name,&p1->yuwen,&p1->yingyu,&p1->shuxue);
            printf("%d %s %.1f %.1f %.1f ",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);
           /*文件讀入與顯示*/
  }while(!feof(fp));
  p2->next=p1;
  p1->next=NULL;

  n=n+1;
 }printf("----------------------------------------- ");/*表格下線*/
  fclose(fp);/*結(jié)束讀入,關(guān)閉文件*/
     
 return (head);
}/*================================================================================*/
/*================================================================================*/
score *add2311(score *head,score *stu)
/*函數(shù)add2311,功能:追加學(xué)生資料,并且將所有學(xué)生資料按學(xué)號(hào)排序*/
{
 score *p0,*p1,*p2,*p3,*max;
    int i,j;
 float fen;
    char t[10];   p3=stu=(score *)malloc(LEN);/*開(kāi)辟一個(gè)新單元*/
   printf(" 輸入要增加的學(xué)生的資料!");
  repeat4: printf("請(qǐng)輸入學(xué)生學(xué)號(hào)(學(xué)號(hào)應(yīng)大于0):");
  scanf("%d",&stu->number);
  /*輸入學(xué)號(hào),學(xué)號(hào)應(yīng)大于0*/
      while(stu->number<0)
   {getchar();
    printf("輸入錯(cuò)誤,請(qǐng)重新輸入學(xué)生學(xué)號(hào):");
       scanf("%d",&stu->number);}/*輸入錯(cuò)誤,重新輸入學(xué)號(hào)*/
     /******************************************************/
    if(stu->number==0)
   goto end2;/*當(dāng)輸入的學(xué)號(hào)為0時(shí),轉(zhuǎn)到末尾,結(jié)束追加*/
  else
  {
   p3=head;
  if(n>0)
   {for(i=0;i<n;i++)
           {if(stu->number!=p3->number)
     p3=p3->next;
     else
     {printf("學(xué)號(hào)重復(fù),請(qǐng)重輸! ");
     goto repeat4;
     /*當(dāng)輸入的學(xué)號(hào)已經(jīng)存在,程序報(bào)錯(cuò),返回前面重新輸入*/
        }
    }    
   }            }
  
  /******************************************************/ 
   printf("輸入學(xué)生姓名:");
         scanf("%s",stu->name);            /*輸入學(xué)生姓名*/
      printf("請(qǐng)輸入語(yǔ)文成績(jī)(0~100):");
         scanf("%f",&stu->yuwen);    /*輸入語(yǔ)文成績(jī),成績(jī)應(yīng)在0-100*/
      while(stu->yuwen<0stu->yuwen>100)
   {getchar();
    printf("輸入錯(cuò)誤,請(qǐng)重新輸入語(yǔ)文成績(jī)");
       scanf("%f",&stu->yuwen);}     /*輸入錯(cuò)誤,重新輸入語(yǔ)文成績(jī)直到正確為止*/
      printf("請(qǐng)輸入英語(yǔ)成績(jī)(0~100):");
         scanf("%f",&stu->yingyu);/*輸入英語(yǔ)成績(jī),成績(jī)應(yīng)在0-100*/
      while(stu->yingyu<0stu->yingyu>100)
   {getchar();
    printf("輸入錯(cuò)誤,請(qǐng)重新輸入英語(yǔ)成績(jī)");
         scanf("%f",&stu->yingyu);}/*輸入錯(cuò)誤,重新輸入英語(yǔ)成績(jī)直到正確為止*/

      printf("請(qǐng)輸入數(shù)學(xué)成績(jī)(0~100):");
         scanf("%f",&stu->shuxue);/*輸入數(shù)學(xué)成績(jī),成績(jī)應(yīng)在0-100*/
      while(stu->shuxue<0stu->shuxue>100)
   {getchar();
    printf("輸入錯(cuò)誤,請(qǐng)重新輸入數(shù)學(xué)成績(jī)");
          scanf("%f",&stu->shuxue);}/*輸入錯(cuò)誤,重新輸入數(shù)學(xué)成績(jī)直到正確為止*/
p1=head;
p0=stu;
if(head==NULL)
 /*當(dāng)原來(lái)鏈表為空時(shí),從首結(jié)點(diǎn)開(kāi)始存放資料*/
 else/*原來(lái)鏈表不為空*/
 {
  if(p1->next==NULL)/*找到原來(lái)鏈表的末尾*/
  {
   p1->next=p0;
      p0->next=NULL;/*將它與新開(kāi)單元相連接*/
  }
     else
  {
    while(p1->next!=NULL)/*還沒(méi)找到末尾,繼續(xù)找*/
    {
     p2=p1;p1=p1->next;
    }
        p1->next=p0;
        p0->next=NULL;
  } }
 n=n+1;
p1=head;
p0=stu;
  for(i=1;i<n;i++)
               {
             for(j=i+1;j<=n;j++)
                 {
       max=p1;
       p1=p1->next;
     
       if(max->number>p1->number)
        {
        k=max->number;
        max->number=p1->number;
        p1->number=k;
         /*交換前后結(jié)點(diǎn)中的學(xué)號(hào)值,使得學(xué)號(hào)大者移到后面的結(jié)點(diǎn)中*/
       
        strcpy(t,max->name);
        strcpy(max->name,p1->name);
        strcpy(p1->name,t);
     /*交換前后結(jié)點(diǎn)中的姓名,使之與學(xué)號(hào)相匹配*/
        fen=max->yuwen;
        max->yuwen=p1->yuwen;
        p1->yuwen=fen;
                 /*交換前后結(jié)點(diǎn)中的語(yǔ)文成績(jī),使之與學(xué)號(hào)相匹配*/
      
        fen=max->yingyu;
        max->yingyu=p1->yingyu;
        p1->yingyu=fen;
    /*交換前后結(jié)點(diǎn)中的英語(yǔ)成績(jī),使之與學(xué)號(hào)相匹配*/
      
        fen=max->shuxue;

        max->shuxue=p1->shuxue;
        p1->shuxue=fen;
                /*交換前后結(jié)點(diǎn)中的數(shù)學(xué)成績(jī),使之與學(xué)號(hào)相匹配*/
        }                 }
    max=head;p1=head;/*重新使max,p指向鏈表頭*/
  } end2:
 printf("現(xiàn)在的學(xué)生數(shù)為:%d個(gè)! ",n);
  return(head);}
/*=============================================================================*/
/*==============================================================================*/
score *search2311(score *head)
/*函數(shù)search2311,功能:查詢學(xué)生成績(jī)*/
{int number;
 score *p1,*p2;
 printf("輸入要查詢的學(xué)生的學(xué)號(hào),");
 scanf("%d",&number);while(number!=0)
{
   if(head==NULL)
  {printf(" 沒(méi)有任何學(xué)生資料! ");return(head);}   printf("----------------------------------------- ");
   printf("學(xué)號(hào) 姓名 語(yǔ)文 英語(yǔ) 數(shù)學(xué) ");
   printf("----------------------------------------- ");/*打印表格域*/
   p1=head;
     while(number!=p1->number&&p1->next!=NULL)
         if(number==p1->number) 
    {printf("%d %s %.1f %.1f %.1f ",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);
          printf("----------------------------------------- ");}/*打印表格域*/
         else
           printf("%d不存在此學(xué)生! ",number);
 
         printf("輸入要查詢的學(xué)生的學(xué)號(hào),");
         scanf("%d",&number);
}
printf("已經(jīng)退出了! ");
return(head);}/*==============================================================================*/
/*==============================================================================*/
score *del2311(score *head)/*函數(shù)del2311,功能:刪除學(xué)生資料*/
{
 score *p1,*p2;
int number;
 printf("輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào)(輸入0時(shí)退出):");
 scanf("%d",&number);
 getchar();
 while(number!=0)/*輸入學(xué)號(hào)為0時(shí)退出*/
 {
 
  if(head==NULL)
  {
   printf(" 沒(méi)有任何學(xué)生資料! ");
   return(head);
  }
  p1=head;
 
  while(number!=p1->number&&p1->next!=NULL)
   /*p1指向的不是所要找的首結(jié)點(diǎn),并且后面還有結(jié)點(diǎn)*/
   /*p1后移一個(gè)結(jié)點(diǎn)*/
    
  if(number==p1->number) 
   /*找到了*/ 
  {
   if(p1==head)
    head=p1->next;
   /*若p1指向的是首結(jié)點(diǎn),把地二個(gè)結(jié)點(diǎn)地址賦予head*/

   else
      p2->next=p1->next;
   /*否則將下一個(gè)結(jié)點(diǎn)地址 賦給前一結(jié)點(diǎn)地址*/
   printf("刪除:%d ",number);n=n-1;
  }
  else
   printf("%d不存在此學(xué)生! ",number);
  /*找不到該結(jié)點(diǎn)*/
  
  
  printf("輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào):");
  scanf("%d",&number);
  getchar();
 }
#ifdef DEBUG 
 printf("已經(jīng)退出了! ");
#endif
printf("現(xiàn)在的學(xué)生數(shù)為:%d個(gè)! ",n);
 return(head);
}  /*============================================================================*/
 /*============================================================================*/
void print2311(score *head)
/*函數(shù)print2311,功能:顯示學(xué)生成績(jī)*/
{
 score *p;
 if(head==NULL)     
         {printf(" 沒(méi)有任何學(xué)生資料! ");}
 else
 {printf("%d ",n);
 printf("----------------------------------------- ");
 printf("學(xué)號(hào) 姓名 語(yǔ)文 英語(yǔ) 數(shù)學(xué) ");
 printf("----------------------------------------- ");/*打印表格域*/
 p=head;
     do
    {printf("%d %s %.1f %.1f %.1f ",p->number,p->name,p->yuwen,p->yingyu,p->shuxue);
        printf("----------------------------------------- ");/*打印表格域*/
       p=p->next;}while (p!=NULL);/*打印完成了*/
 }
}
/*=========================================================================*/
/*=========================================================================*/
 score *statistics2311(score *head)
  /*函數(shù)statistics2311,功能:統(tǒng)計(jì)學(xué)生成績(jī)*/
 {
  float sum1=0,sum2=0,sum3=0,ave1=0,ave2=0,ave3=0,max=0,min;
  score *p;
  int x,y=0,i=0;       p=head;
       printf("1個(gè)人總分和平均分 2單科平均分 3總分最高分 4總分最低分 ");
         scanf("%d",&x);
      getchar(); switch(x)
  /*用switch語(yǔ)句實(shí)現(xiàn)功能選擇*/
 {
 case 1: if(head==NULL)
     {printf(" 沒(méi)有任何學(xué)生資料! ");return(head);}/*鏈表為空*/
       else
  {
     printf("--------------------------------------------------------- ");
        printf("學(xué)號(hào) 姓名 語(yǔ)文 英語(yǔ) 數(shù)學(xué) 總分 平均分 ");
        printf("--------------------------------------------------------- ");/*打印表格域*/
     while(p!=NULL)
     {
      sum1=p->yuwen+p->yingyu+p->shuxue;  /*計(jì)算個(gè)人總分*/                           

               ave1=sum1/3;/*計(jì)算個(gè)人平均分*/
         
               printf("%d %s %.1f %.1f %.1f %.1f %.1f ",p->number,p->name,p->yuwen,p->yingyu,p->shuxue,sum1,ave1);
      /*打印結(jié)果*/
               printf("--------------------------------------------------------- ");/*打印表格域*/
         p=p->next;}
    }
           return(head);    break;  case 2: if(head==NULL)
            {printf(" 沒(méi)有任何學(xué)生資料! ");return(head);}/*鏈表為空*/
       while(p!=NULL)
         {
    sum1=sum1+p->yuwen;
    sum2=sum2+p->yingyu;
    sum3=sum3+p->shuxue;/*計(jì)算總分*/
    y=y+1;
                ave1=sum1/y;
                ave2=sum2/y;
                ave3=sum3/y;/*計(jì)算平均分*/
    p=p->next;/*使p指向下一個(gè)結(jié)點(diǎn)*/
          }
     printf("語(yǔ)文平均分是%.1f ",ave1);
     printf("英語(yǔ)平均分是%.1f ",ave2);
     printf("數(shù)學(xué)平均分是%.1f ",ave3);/*打印結(jié)果*/
             return(head); break;
  case 3:
   if(head==NULL)
            {printf(" 沒(méi)有任何學(xué)生資料! ");return(head);}/*鏈表為空*/
       max=p->yuwen+p->yingyu+p->shuxue;
   while(i<n)
  {  
    i=i+1;
    sum1=p->yuwen+p->yingyu+p->shuxue;  /*計(jì)算個(gè)人總分*/
        if(max<sum1)
  max=sum1;
  p=p->next;
  }
   
   printf("總分最高分:%.1f",max);
   printf(" ");
   return(head); break;
 
  case 4: if(head==NULL)
     {printf(" 沒(méi)有任何學(xué)生資料! ");return(head);}/*鏈表為空*/
      while(p!=NULL)
   {
       min=p->yuwen+p->yingyu+p->shuxue;
    while(p!=NULL)
    {sum2=p->yuwen+p->yingyu+p->shuxue;

  
    if(min>sum2)
     min=sum2;
     p=p->next;
    }
   }
 
      printf("總分最低分:%.1f",min);
      printf(" ");
      return(head); break;
 
  default :printf("輸入錯(cuò)誤,請(qǐng)重試! ");
 }
 return(head);
 
 }
/*==========================================================================*/
/*==========================================================================*/save2311(score *p1)
/*函數(shù)save2311,功能:保存學(xué)生的資料*/
{
 FILE *fp;
 
 char filepn[20];/*用來(lái)存放文件保存路徑以及文件名*/
 
 printf("請(qǐng)輸入文件路徑及文件名:");
 scanf("%s",filepn);
 if((fp=fopen(filepn,"w+"))==NULL)
 {
  printf("不能打開(kāi)文件! ");
  return 0;
 }    fprintf(fp,"            考試成績(jī)治理系統(tǒng)             ");
 fprintf(fp,"  作者:周純鋼 班級(jí):  信息023   學(xué)號(hào):11 ");
    fprintf(fp,"----------------------------------------- ");
 fprintf(fp,"學(xué)號(hào) 姓名 語(yǔ)文 英語(yǔ) 數(shù)學(xué) ");
    fprintf(fp,"----------------------------------------- ");
 /*打印表格域*/
 while(p1!=NULL)
 {
 fprintf(fp,"%d %s %.1f %.1f %.1f ",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);
 
  p1=p1->next;/*下移一個(gè)結(jié)點(diǎn)*/
 
 }
 fclose(fp);
 printf("文件已經(jīng)保存! ");
 return 0;
}
/*============================================================================*/
/*============================================================================*/
 score *taxis2311(score *head)   
  /*定義排序函數(shù)。此函數(shù)帶回一個(gè)指向鏈表頭的指針*/
{ score *p,*max;
  int   i,j,x;
  float fen;
  char t[10];
  if(head==NULL)
  {printf(" 沒(méi)有任何學(xué)生資料,請(qǐng)先建立鏈表! ");return(head);}/*鏈表為空*/
  max=p=head;
 
  for(i=0;i<80;i++)
  printf("*");
    printf("1按學(xué)生學(xué)號(hào)排序 2按學(xué)生姓名排序 3按語(yǔ)文成績(jī)排序 ");
    printf("4按英語(yǔ)成績(jī)排序 5按數(shù)學(xué)成績(jī)排序 ");
  for(i=0;i<80;i++)
  printf("*");
 
    printf("請(qǐng)選擇操作:");
    scanf("%d",&x);/*選擇操作*/
    getchar();  switch(x) /*用switch語(yǔ)句實(shí)現(xiàn)功能選擇*/
  {case 1 : 
               for(i=1;i<n;i++)
               {
             for(j=i+1;j<=n;j++)
                 {

       max=p;
       p=p->next;
     
       if(max->number>p->number)
        {
        k=max->number;
        max->number=p->number;
        p->number=k;
         /*交換前后結(jié)點(diǎn)中的學(xué)號(hào)值,使得學(xué)號(hào)大者移到后面的結(jié)點(diǎn)中*/
       
        strcpy(t,max->name);
        strcpy(max->name,p->name);
        strcpy(p->name,t);
     /*交換前后結(jié)點(diǎn)中的姓名,使之與學(xué)號(hào)相匹配*/
        fen=max->yuwen;
        max->yuwen=p->yuwen;
        p->yuwen=fen;
                 /*交換前后結(jié)點(diǎn)中的語(yǔ)文成績(jī),使之與學(xué)號(hào)相匹配*/
      
        fen=max->yingyu;
        max->yingyu=p->yingyu;
        p->yingyu=fen;
    /*交換前后結(jié)點(diǎn)中的英語(yǔ)成績(jī),使之與學(xué)號(hào)相匹配*/
      
        fen=max->shuxue;
        max->shuxue=p->shuxue;
        p->shuxue=fen;
                /*交換前后結(jié)點(diǎn)中的數(shù)學(xué)成績(jī),使之與學(xué)號(hào)相匹配*/
        }                 }
    max=head;p=head;/*重新使max,p指向鏈表頭*/
             }
                print2311(head);break;/*打印值排序后的鏈表內(nèi)容*/   case 2 :   for(i=1;i<n;i++)
                {
    for(j=i+1;j<=n;j++)
                 {
     max=p;
        p=p->next;
      if(strcmp(max->name,p->name)>0)/*strcmp=>字符串比較函數(shù)*/
        {
       strcpy(t,max->name);/*strcpy=>字符串復(fù)制函數(shù)*/
       strcpy(max->name,p->name);
       strcpy(p->name,t);

  /*交換前后結(jié)點(diǎn)中的姓名,使得姓名字符串的值大者移到后面的結(jié)點(diǎn)中*/  
       k=max->number;
       max->number=p->number;
       p->number=k;   /*交換前后結(jié)點(diǎn)中的學(xué)號(hào)值,使之與姓名相匹配*/    fen=max->yuwen;
       max->yuwen=p->yuwen;
       p->yuwen=fen;
    /*交換前后結(jié)點(diǎn)中的語(yǔ)文成績(jī),使之與姓名相匹配*/       fen=max->yingyu;
       max->yingyu=p->yingyu;
       p->yingyu=fen;
   /*交換前后結(jié)點(diǎn)中的英語(yǔ)成績(jī),使之與姓名相匹配*/       fen=max->shuxue;
       max->shuxue=p->shuxue;
       p->shuxue=fen;
   /*交換前后結(jié)點(diǎn)中的數(shù)學(xué)成績(jī),使之與姓名相匹配*/
        }
                 }
                  p=head;
            max=head;
                }
                print2311(head);
    break;   case 3 :     for(i=1;i<n;i++)
                {for(j=i+1;j<=n;j++)
                 {max=p;
      p=p->next;
      if(max->yuwen>p->yuwen)
        {
       fen=max->yuwen;
          max->yuwen=p->yuwen;
          p->yuwen=fen;
 /*交換前后結(jié)點(diǎn)中的語(yǔ)文成績(jī),使得語(yǔ)文成績(jī)高者移到后面的結(jié)點(diǎn)中*/
                    
       k=max->number;
      max->number=p->number;
      p->number=k;
  /*交換前后結(jié)點(diǎn)中的學(xué)號(hào),使之與語(yǔ)文成績(jī)相匹配*/                     strcpy(t,max->name);
      strcpy(max->name,p->name);
      strcpy(p->name,t);
  /*交換前后結(jié)點(diǎn)中的姓名,使之與語(yǔ)文成績(jī)相匹配*/          fen=max->yingyu;

       max->yingyu=p->yingyu;
       p->yingyu=fen;
  /*交換前后結(jié)點(diǎn)中的英語(yǔ)成績(jī),使之與語(yǔ)文成績(jī)相匹配*/       fen=max->shuxue;
       max->shuxue=p->shuxue;
       p->shuxue=fen;
    /*交換前后結(jié)點(diǎn)中的數(shù)學(xué)成績(jī),使之與語(yǔ)文成績(jī)相匹配*/
        }
                 }
                  p=head;
            max=head;
                }
                print2311(head);
    break;   case 4 :      for(i=1;i<n;i++)
                {for(j=i+1;j<=n;j++)
                 {max=p;
      p=p->next;
      if(max->yingyu>p->yingyu)
        {
      fen=max->yingyu;
         max->yingyu=p->yingyu;
         p->yingyu=fen;
 /*交換前后結(jié)點(diǎn)中的英語(yǔ)成績(jī),使得英語(yǔ)成績(jī)高者移到后面的結(jié)點(diǎn)中*/
     
      k=max->number;
      max->number=p->number;
      p->number=k;
 /*交換前后結(jié)點(diǎn)中的學(xué)號(hào),使之與英語(yǔ)成績(jī)相匹配*/         strcpy(t,max->name);
      strcpy(max->name,p->name);
      strcpy(p->name,t);
  /*交換前后結(jié)點(diǎn)中的姓名,使之與英語(yǔ)成績(jī)相匹配*/         fen=max->yuwen;
      max->yuwen=p->yuwen;
      p->yuwen=fen;
 /*交換前后結(jié)點(diǎn)中的語(yǔ)文成績(jī),使之與英語(yǔ)成績(jī)相匹配*/
         fen=max->shuxue;
      max->shuxue=p->shuxue;
      p->shuxue=fen;
 /*交換前后結(jié)點(diǎn)中的數(shù)學(xué)成績(jī),使之與英語(yǔ)成績(jī)相匹配*/
        }
                 }
                  p=head;
            max=head;
                }

               print2311(head);
    break;   case 5 :      for(i=1;i<n;i++)
                {for(j=i+1;j<=n;j++)
                 {max=p;
      p=p->next;
      if(max->shuxue>p->shuxue)
        {
      fen=max->shuxue;
         max->shuxue=p->shuxue;
         p->shuxue=fen; 
      /*交換前后結(jié)點(diǎn)中的數(shù)學(xué)成績(jī),使得數(shù)學(xué)成績(jī)高者移到后面的結(jié)點(diǎn)中*/      k=max->number;
      max->number=p->number;
      p->number=k; 
      /*交換前后結(jié)點(diǎn)中的學(xué)號(hào),使之與數(shù)學(xué)成績(jī)相匹配*/         strcpy(t,max->name);
      strcpy(max->name,p->name);
      strcpy(p->name,t); 
      /*交換前后結(jié)點(diǎn)中的姓名,使之與數(shù)學(xué)成績(jī)相匹配*/         fen=max->yuwen;
      max->yuwen=p->yuwen;
      p->yuwen=fen;
      /*交換前后結(jié)點(diǎn)中的語(yǔ)文成績(jī),使之與數(shù)學(xué)成績(jī)相匹配*/
         fen=max->yingyu;
      max->yingyu=p->yingyu;
      p->yingyu=fen;
      /*交換前后結(jié)點(diǎn)中的英語(yǔ)成績(jī),使之與數(shù)學(xué)成績(jī)相匹配*/
        }
     }
                  p=head;
            max=head;
                }
                print2311(head);
    break;  
   default :printf("輸入錯(cuò)誤,請(qǐng)重試! ");
  }
     return (0);} /*======================================================================================*/
/*======================================================================================*/
int menu2311(k)/*函數(shù)menu2311,功能:菜單選擇界面*/
{
 int i;
 printf(" 考試成績(jī)治理系統(tǒng) ");
 printf(" 作者:周純鋼  班級(jí):信息023  學(xué)號(hào):11 ");
    for(i=0;i<80;i++)
         printf("*");

printf("1輸入學(xué)生的資料 2從文件調(diào)入資料 3查詢學(xué)生的成績(jī) ");
printf("4刪除學(xué)生的資料 5追加學(xué)生的資料 6顯示學(xué)生的成績(jī) "); 
printf("7統(tǒng)計(jì)學(xué)生的成績(jī) 8保存輸入的資料 9對(duì)成績(jī)進(jìn)行排序 ");
/*菜單選擇界面*/ for(i=0;i<80;i++)
    printf("*");
printf("歡迎進(jìn)入成績(jī)治理系統(tǒng),請(qǐng)選擇您所要的操作(選擇(0)退出):");
scanf("%d",&k);/*選擇操作*/
   getchar();
 
return (k);}
/*===============================================================================*/
/*=====================================================================================*/
main() /*主函數(shù)main,功能:通過(guò)調(diào)用creat,search,del,add,print,ststistics,save,taxis等函數(shù),實(shí)現(xiàn)學(xué)生成績(jī)查詢系統(tǒng)功能*/
{score *head=0,*stu=0;while(1)
{k=menu2311(k);
switch(k)/*用switch語(yǔ)句實(shí)現(xiàn)功能選擇*/
{case 1: head=creat2311();break;/*調(diào)用創(chuàng)建鏈表函數(shù)*/
 case 2: head=load2311(head);break;/*從文件調(diào)入記錄函數(shù)*/
 case 3: head=search2311(head);break;/*調(diào)用成績(jī)查詢函數(shù)*/
 case 4: head=del2311(head); break;/*調(diào)用刪除學(xué)生資料函數(shù)*/
 case 5: head=add2311(head,stu);break;/*調(diào)用追加學(xué)生資料函數(shù)*/
 case 6: print2311(head); break;/*調(diào)用顯示學(xué)生資料函數(shù)*/
 case 7: statistics2311(head); break;/*調(diào)用統(tǒng)計(jì)函數(shù)*/
 case 8: save2311(head);break;/*調(diào)用保存函數(shù)*/
 case 9: taxis2311(head);break;/*調(diào)用排序函數(shù)*/ 
 case 0: exit(0);/*退出系統(tǒng),返回主界面*/
 default: printf("輸入錯(cuò)誤,請(qǐng)重試! "); }
}
}
/*====================================================================================*/



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产又粗又大又爽视频| 国产精品午夜福利| 成年女人色毛片免费| 九七影院97影院理论片免费| 亚洲精品视频在线看| 亚洲男女性事视频| 精品国内亚洲在观看18黄| 亚洲欧洲日韩精品在线| 99蜜月精品久久91| 欧美精品99久久久**| 韩日中文字幕第一页| 日韩黄色三级视频| 欧美一区永久视频免费观看| 欧美亚男人的天堂| 7777精品伊久久久大香线蕉语言| 久久综合偷偷噜噜噜色| 欧美日韩黄色网| 残酷重口调教一区二区| 久久久久亚洲AV成人| 久久久欧美精品sm网站| 亚洲黄色网址大全| 久久久久久久久久久久久久久久久| 中文字幕欧美精品在线| **国产精品| 中文字幕在线观看视频网站| 国产精品中文字幕一区二区三区| 在线免费观看不卡av| 校园激情久久| 免费成人深夜夜行视频| 一区二区中文字幕在线观看| 欧洲成人免费aa| 免费看的黄色欧美网站| 欧美亚洲一区二区三区四区| 亚洲制服中文字幕| 日本一二区免费| 激情美女网站| 欧美性受xxx黑人xyx性爽| av成人免费在线观看| 五月天综合婷婷| 在线视频一区二区三区四区| 香蕉久久精品日日躁夜夜躁| 久久免费手机视频| 91精品啪在线观看国产手机| 在线视频观看一区| 亚洲欧美精品中文第三| 欧美一区二区三区播放| 神马久久影视大全| 黄网页在线观看| 国产精品卡一卡二卡三| 欧洲精品乱码久久久久蜜桃| 一本久久精品一区二区| 午夜精品久久久久久毛片| 日韩精品手机在线观看| 日日摸夜夜添夜夜添亚洲女人| 手机在线免费观看毛片| 欧美成年人视频网站| 亚洲综合中文| 久久精品伊人| 欧美韩日一区二区三区四区| 美腿丝袜亚洲色图| 国产裸体永久免费无遮挡| 色女人综合av| 国产一区二区三区在线免费观看| 国产精品扒开腿做爽爽爽男男| 男的插女的下面视频| 中文字幕+乱码+中文字幕| 一色桃子一区二区| 深夜福利视频在线免费观看| 天天干天天干天天干天天干天天干| 国内一级毛片| 疯狂欧洲av久久成人av电影| 国产在线三区| 99青春婷婷视频| 亚洲精品成人一区| 成人av网在线| 亚洲日本在线视频观看| 国产精品动漫网站| 久久久久久久免费视频| 校园春色亚洲色图| 中文字幕日本人妻久久久免费| 佐山爱痴汉视频一区二区三区| 国产电影一区二区三区| 在线亚洲人成| 久久精品在线播放| 日日噜噜噜噜夜夜爽亚洲精品| 国产成人在线视频免费观看| 欧美日韩一级片在线观看| 一本在线高清不卡dvd| 久久久久久9| 国产精品扒开腿做爽爽爽视频| 日韩av中文字幕在线播放| h在线免费观看| 日韩电影一区二区三区四区| 在线免费日韩片| 视频一区免费观看| 国产视频二区在线观看| 99在线观看精品视频| 欧美精品第1页| 超碰在线人人| 欧美日韩另类丝袜其他| 亚洲欧美一区二区三区不卡| 亚洲欧美综合7777色婷婷| 亚洲综合网在线| 一区二区三区www污污污网站| 九一精品国产| 欧美一区二区三区| 中文字幕观看在线| 男女爱爱网站| 久草视频视频在线播放| 国产一区二区在线视频| 亚洲自拍偷拍视频| 动漫av在线免费观看| 蜜桃av.网站在线观看| 国产精品日本精品| 国产精品乱码人人做人人爱| 国产一区二区高清不卡| 久久久久久国产三级电影| 亚洲成人7777| 一本色道久久综合| 欧美性狂猛xxxxxbbbbb| 久久观看最新视频| 91丨九色丨丰满| 日韩成人一区二区三区| 成人免费观看49www在线观看| 欧美黑人猛交的在线视频| 久久亚洲电影| 91激情五月电影| 色婷婷综合网| 92看片淫黄大片欧美看国产片| 不卡在线观看av| 国产精品一区二区婷婷| 亚洲午夜av电影| 国产美女三级视频| 欧美精品情趣视频| 亚洲一级Av无码毛片久久精品| melody高清在线观看| 国产一区二区精品久久91| 国产在线观看h| 欧美激情 亚洲a∨综合| 欧美视频亚洲视频| 99国产揄拍国产精品| 国产高清不卡一区二区| 最新亚洲视频| 首页综合国产亚洲丝袜| 国产字幕在线观看| 国产高清不卡| 精品人妻中文无码av在线| 91在线地址| 国产精品美女久久久免费| 久久久天天操| 欧美一区二区视频观看视频| 色噜噜成人av在线| 牛牛澡牛牛爽一区二区| 3d成人动漫网站| 黄网站色大毛片| 青青影院一区二区三区四区| 99精品在线观看| 精品视频一区在线视频| 午夜裸体女人视频网站在线观看| 国产精品日本一区二区不卡视频| 在线播放亚洲精品| av电影天堂一区二区在线观看| 99久久精品国产成人一区二区| 日韩激情视频在线观看| 国产电影精品久久禁18| 国产精品91一区| 91网站免费看| 亚洲激情综合网| 精品一区二区三区中文字幕视频| 国一区二区在线观看| 成人在线免费看| 亚洲欧美日韩综合国产aⅴ| 国产精品高清一区二区| 91精品国产综合久久久久久豆腐| 日本xxxwww免费视频| 欧美sm精品调教视频| |精品福利一区二区三区| 天堂а√在线中文在线| 精品一区二区三区免费观看| 91色乱码一区二区三区| 日韩三级高清在线| 免费毛片在线看片免费丝瓜视频| 高清日韩电视剧大全免费| 日本不卡一区二区三区高清视频| 中文字幕在线永久在线视频2020| 奇米亚洲午夜久久精品| 久久女同性恋中文字幕| 蜜桃av噜噜一区二区三区| 精品人妻无码一区二区| 国产麻豆精品在线观看| 国产精品无av码在线观看| 亚洲精品国产一区| 免费国产黄线在线观看视频| 国产精品免费一区| 国内精品美女在线观看| 奇米影视狠888| av中文天堂在线| 影音欧美亚洲| 日韩精品电影网站| 成人免费视频一区二区| 台湾亚洲精品一区二区tv| av在线播放一区二区| 亚洲综合影院| 92福利视频午夜1000合集在线观看| 久久av红桃一区二区小说| 久久久国产午夜精品| 男人艹女人在线观看| 日韩毛片一二三区| 国产厕拍一区| 亚洲性生活大片| 久久精品在线播放| 9191国语精品高清在线| 欧美高清电影在线看| 国产精品无码一区二区在线| 国产黄人亚洲片| 国模大尺度视频一区二区| 欧美日韩免费在线观看| 欧美日韩在线观看视频小说| 亚洲精品之草原avav久久| 色婷婷综合久久久久中文| 亚洲国产日韩在线| 日韩欧美字幕| 九色精品免费永久在线| 国产精品久久久久免费a∨| 超碰超碰超碰超碰超碰| 久久精品国产亚洲av无码娇色| 最近的中文字幕在线看视频| 亚洲综合中文字幕在线观看| 免费看的黄色网| 精品国产制服丝袜高跟| 色老头视频在线观看| 9lporm自拍视频区在线| 国产99久久久国产精品成人免费| 91久久国语露脸精品国产高跟| 国产激情综合五月久久| 2021国产视频| 国产亚洲精品精品国产亚洲综合| 国产欧美日韩在线| 天天爽夜夜爽人人爽| 日韩高清中文字幕一区| 亚洲娇小xxxx欧美娇小| 天堂网www在线资源中文| 一本一道dvd在线观看免费视频| 91精品视频免费观看| 亚洲四区在线观看| 国产制服丝袜在线| 日韩小视频网址| 日韩不卡一二三区| 日韩欧美高清一区| 欧美高清dvd| 久久精品男人天堂av| 日韩欧美在线电影| 欧美一级片在线免费观看| 亚欧精品一区二区三区| 精品国产无码一区二区三区| 亚洲色图综合久久| 久久久久欧美精品| 伊人一区二区三区| 日韩在线www| 成人污网站在线观看| 亚洲午夜视频| 精品国产aⅴ一区二区三区东京热| 99热成人精品热久久66| 欧美乱大交xxxxx在线观看| 欧美日韩亚洲一区在线观看| 日本丰满少妇一区二区三区| jizzjizz.con| 一片黄亚洲嫩模| 国产一级二级三级在线观看| 精品三级在线观看| 日韩激情综合| 久久人妻无码一区二区| 99久久久无码国产精品衣服| 美日韩一区二区| 91麻豆123| 亚洲一级片av| 久久av国产紧身裤| 性久久久久久| 天天堂资源网在线观看免费视频| 日韩欧美一区二区三区在线| 亚洲成在人线免费视频| 成人做爰视频www| 自拍av一区二区三区| 成人高潮a毛片免费观看网站| a'aaa级片在线观看| 国产精品乱子久久久久| 国产日韩欧美一区二区三区| 先锋影音欧美性受| 制服丝袜亚洲色图| 国产欧美一区二区三区视频在线观看| 99久久亚洲国产日韩美女| 黄色小视频在线看| 日韩中文字幕在线视频播放| 精品无码一区二区三区电影桃花| 欧美aaaa视频| 在线观看亚洲一区二区| 亚洲黄页在线观看| 亚洲人成在线网站| 久久国产精彩视频| 亚洲一区二区在线免费观看视频| 亚洲桃花岛网站| 色综合一区二区日本韩国亚洲| 中文字幕av中文字幕| 日韩欧美的一区二区| 亚洲欧美综合自拍| 一区二区日韩欧美| 啊啊啊久久久| 九九热免费视频| www.在线播放| ●精品国产综合乱码久久久久| 国产一二三视频| 欧美大交乱xxxx| 日本精品一区二区三区视频| 天天骑夜夜操| 风间由美中文字幕在线看视频国产欧美| 亚洲夜晚福利在线观看| 最新国产精品精品视频| 日韩在线免费| 国产精品久久久久99| 成人久久18免费网站麻豆| 影音先锋在线国产| 奇米一区二区三区| 一二三区免费视频| 精久久久久久久久久久| 国产偷自视频区视频一区二区| 另类视频欧美| 伊人久久成人| 免费黄网在线看|