学生管理程序

来源:互联网 发布:奇亚籽品牌推荐知乎 编辑:程序博客网 时间:2024/04/27 18:23

     用了二十多天的空闲时间断断续续地写,终于写完了,这也算是自己第一个独立完成的程序了,由于里面用到的很多知识都是一边学习一边写出来的,所以程序显得很粗糙,写的途中遇到了很多问题,但还是得到了一个比较好的解决,由于程序是一边写一边测试的,所以写完之后粗略测试一下,在这里发表源代码,有兴趣的朋友可以看看,如果发现问题或者有什么建议,可以直接留言!

      //=========================================学生管理系统========================================

//头文件说明
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>

 


//自定义函数
void mainmenun();  //主菜单
void mainmessage();// 学生基本信息管理主菜单
void mainresult();//学生成绩管理主菜单
void ziresult();//学生成绩查询菜单
void ziresult1();//学生成绩排序
void ziresult2();//学生成绩查询子菜单查询
void zimessage();//学生基本信息查询
void zimessage1();//学生基本信息删除菜单
void zimessage2();//学生基本信息修改菜单
void ziresult3();//学生成绩信息删除菜单
void ziresult4();//学生成绩信息修改菜单
void addmessage();//添加学生基本信息
void judgefile();//判断文件是否存在
void addresult();//添加学生成绩信息
void searchresult();//查询学生成绩信息
void readresult();//加载学生成绩信息到程序
void sclassresult();//查询班级成绩信息
void searschool();  //查询全校成绩信息
void readmessage();//读入学生基本信息到程序
void searsmessage();//查询学生基本信息
void searclmessage();//查询学生班级基本信息
void searshmessage();//查询全校学生班级基本信息
void searximessage();//查询系学生基本信息
void zongfenpianmin();//总分排名
void claspaimin();//班级排名
void xiugaimesmean();//修改学生基本信息
void xiugairesult();//修改学生成绩信息
void delatemessag1();//删除学生个人基本信息
void delatemessag2();//删除班级学生基本信息
void delatemessag3();//删除系基本信息
void delatemessag4();//删除全校基本信息
void delatresult1();//删除学生个人成绩
void delatresult2();//删除班级成绩信息
void delatresult3();//删除全校成绩信息

 

//结构体定义
typedef struct message    //学生的基本信息
{
   char name[10];         //学生名字
   char id[15];                //学生学号
   char sex[10];       //学生的性别
   char phnumber[20];     //学生手机号码
   char address[50];      //学生的家庭住址
   char clas[15];         //学生所在的班级
   char suject[20];       //学生所读专业
   struct message *next; 
}stmessage;


typedef struct scores      //学生成绩信息
{
 char sname[10];         //学生的名字
 char sclas[15];         //学生所在班级
 char number[15];                //学生的学号
    float english;         //英语成绩
 float chinese;        //语文成绩
 float math;           //数学成绩
 float sum;              //总成绩
 float average;          //平均分
 struct scores *snext;
}stscores;

//宏定义学生个人信息
#define stmes (stmessage *)malloc(sizeof(stmessage))  //为学生个人信息结构体开辟动态内存空间
#define mgbass printf("姓名 /t 学号  /t    性别  手机号码     家庭住址/t 班级 /t  专业/n")//学生信息宏定义输出
#define mgprintf printf("%s/t%s  %s/t%s/t%s/t%s  %s/n",head2->name,head2->id,head2->sex,head2->phnumber,head2->address,head2->clas,head2->suject)//宏定义学生基本信息输出

#define henxian printf("--------------------------------------------------------------------------------")//宏定义划分线

//宏定义学生成绩信息
#define stscor (stscores *)malloc(sizeof(stscores))//为学生成绩信息指针开辟动态内存空间
#define sbass printf("姓名/t 班级/t/t   学号/t/t 英语/t语文/t数学/t总成绩/t平均分/n")
#define mprintf printf("%s/t%s/t%s/t%3.1f/t%3.1f/t%3.1f/t%3.1f/t%3.1f/n",shead2->sname,shead2->sclas,shead2->number,shead2->english,shead2->chinese,shead2->math,shead2->sum,shead2->average)

 

//全局变量
stmessage  *head=NULL;
stscores *shead=NULL;
//主函数
main()
{
 
 mainmenun();

}

//=====================================主菜单=====================================================
void mainmenun()
{
 int s=3;
 char a;
 while(1)
 {
 system("cls");
 printf("/t/t欢迎来到学生信息管理系统/t/t/n");
 printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/n");
 printf("1.学生基本信息/n2.学生的成绩信息/n3.退出系统/n");
    printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/n");
 printf("请选择对应功能以及输入对应编号:/n");
 scanf("%c",&a);
 fflush(stdin);
 while(a!='1' && a!='2' && a!='3')
 {  
  if(s==0) exit(1);
  printf("输入错误,你还有%d次机会输入机会/n请重新输入:/n",s);
  scanf("%c",&a);
  fflush(stdin);
        s--;
 
 }
 switch(a)
 {
 case '1': mainmessage(); continue;//学生基本信息
 case '2': mainresult();continue;//学生的成绩信息
 case '3': exit(1);//退出系统
 }
}
}


// =====================================学生基本信息管理主菜单====================================
void mainmessage()
{
 int s=3;
 char a;
 readmessage();
 while(1)
 {
 system("cls");
 printf("1、查询学生基本信息/n 2、添加学生基本信息/n3、删除学生基本信息/n4、修改学生基本信息/n5、返回主菜单/n6、退出系统/n");
 scanf("%c",&a);
 fflush(stdin);
 while(a!='1' && a!='2' && a!='3' && a!='4' && a!='5' && a!='6')
 {
        if(s==0) exit(1);
  printf("输入错误,你还有%d次机会输入机会/n请重新输入:/n",s);
  scanf("%c",&a);
  fflush(stdin);
        s--;
 
 }
 switch(a)
 {
 case '1':zimessage();continue;//查询学生基本信息
 case '2':addmessage();continue;//添加学生基本信息
 case '3':zimessage1();continue;//删除学生基本信息
 case '4':zimessage2();continue;//修改学生基本信息
 case '5':break;//返回主菜单
 case '6':exit(1);//退出系统
 }break;
 }
}


//====================================学生成绩管理主菜单=========================================
void mainresult()
{
 int s=3;
 char a;
    readresult();//===========================================读入学生成绩信息到程序
    while(1)
 {
 system("cls");
 printf("1、查询学生成绩信息/n 2、添加学生成绩信息/n3、删除学生成绩信息/n4、修改学生成绩信息/n5、返回主菜单/n6、退出系统/n");
  scanf("%c",&a);
  fflush(stdin);
 while(a!='1' && a!='2' && a!='3' && a!='4' && a!='5' && a!='6')
 {
        if(s==0) exit(1);
  printf("输入错误,你还有%d次机会输入机会/n请重新输入:/n",s);
  scanf("%c",&a);
  fflush(stdin);
        s--;
 
 }
 switch(a)
 {
  
 case '1':ziresult2();continue;//查询学生成绩信息
 case '2':addresult();continue;//添加学生成绩信息
 case '3':ziresult3();continue;//删除学生成绩信息
 case '4':ziresult4();continue;//修改学生成绩信息
 case '5':;break;//返回主菜单
 case '6':exit(1);//退出系统
 }break;
 }
}

//==========================================学生成绩查询菜单===================================
void ziresult()
{
 int s=3;
 char a;

 while(1)
 {
 system("cls");
 printf("1、查询学生个人成绩信息/n2、查询班级成绩信息/n3、查询全校成绩信息/n4、返回上一级菜单/n5、退出系统/n");
  scanf("%c",&a);
  fflush(stdin);
 while(a!='1' && a!='2' && a!='3' && a!='4' && a!='5' )
 {
        if(s==0) exit(1);
  printf("输入错误,你还有%d次机会输入机会/n请重新输入:/n",s);
  scanf("%c",&a);
  fflush(stdin);
        s--;
 
 }
 switch(a)
 {
 case '1':searchresult();continue;//查询学生个人成绩信息
 case '2':sclassresult();continue;//查询班级成绩信息
 case '3':searschool();continue;//查询全校成绩信息
 case '4':break;   //返回上一级菜单;
 case '5':exit(1);  //退出系统
 
 }break;
 }
}

//============================================学生成绩排序====================================
void ziresult1()
{
 int s=3;
 char a;
 while(1)
 {
 system("cls");
 printf("1、总分排名/n 2、班级排名/n3、返回上一级菜单/n4、退出系统/n");
  scanf("%c",&a);
  fflush(stdin);
 while(a!='1' && a!='2' && a!='3' && a!='4' )
 {
        if(s==0) exit(1);
  printf("输入错误,你还有%d次机会输入机会/n请重新输入:/n",s);
  scanf("%c",&a);
  fflush(stdin);
        s--;
 
 }
 switch(a)
 {
 case '1':zongfenpianmin();continue;//总分排名
 case '2':claspaimin();continue;//班级排名
 case '3':break;   //返回上一级菜单
 case '4':exit(1);  //退出系统
 }break;
 }
}


//===================================学生成绩查询子菜单查询===================================
void ziresult2()
{
  char a;
  int s=3;
  while(1)
  {
  system("cls");
  printf("1、成绩查询/n 2、排名查询/n3、返回上一级菜单/n4、退出系统/n");
  scanf("%c",&a);
  fflush(stdin);
     while(a!='1' && a!='2' && a!='3' )
  {
        if(s==0) exit(1);
  printf("输入错误,你还有%d次机会输入机会/n请重新输入:/n",s);
  scanf("%c",&a);
  fflush(stdin);
        s--;
  }
  switch(a)
  {
  case '1':ziresult();continue;//查询学生成绩信息
  case '2':ziresult1();continue;//学生成绩排序
  case '3':break;
  case '4':exit(1);
  }break;
 
   }
}


//=======================================学生基本信息查询======================================
void zimessage()
{
 int s=3;
 char a;
 readmessage();//-------------------------------------------读入学生基本信息到程序
 while(1)
 {
 system("cls");
 printf("1、查询学生个人基本信息/n 2、查询班级基本信息/n3、查询全校基本信息/n4、查询系基本信息/n5、返回上一级菜单/n6、退出系统/n");
  scanf("%c",&a);
  fflush(stdin);
 while(a!='1' && a!='2' && a!='3' && a!='4' && a!='5' && a!='6')
 {
        if(s==0) exit(1);
  printf("输入错误,你还有%d次机会输入机会/n请重新输入:/n",s);
  scanf("%c",&a);
  fflush(stdin);
        s--;
 
 }
 switch(a)
 {
 case '1':searsmessage();continue;//查询学生个人基本信息
 case '2':searclmessage();continue;//查询班级基本信息
 case '3':searshmessage();continue;//查询全校基本信息
 case '4': searximessage();continue;//查询系基本信息
 case '5':break;   //返回上一级菜单
 case '6':exit(1);  //退出系统
 }break;
 }
}


//=======================================学生基本信息删除菜单================================
void zimessage1()
{
 int s=3;
 char a;
 while(1)
 {
 system("cls");
 printf("1、删除学生个人基本信息/n 2、删除班级基本信息/n3、删除全校基本信息/n4、删除系基本信息/n5、返回上一级菜单/n6、退出系统/n");
  scanf("%c",&a);
  fflush(stdin);
 while(a!='1' && a!='2' && a!='3' && a!='4' && a!='5' && a!='6')
 {
        if(s==0) exit(1);
  printf("输入错误,你还有%d次机会输入机会/n请重新输入:/n",s);
  scanf("%c",&a);
  fflush(stdin);
        s--;
 
 }
 switch(a)
 {
 case '1':delatemessag1();continue;//删除学生个人基本信息
 case '2':delatemessag2();continue;//删除班级基本信息
 case '3':delatemessag4();continue;//删除全校基本信息
 case '4':delatemessag3();continue;//删除系基本信息
 case '5':break;   //返回上一级菜单
 case '6':exit(1);  //退出系统
 }break;
 }
}


//======================================学生基本信息修改菜单==================================
void zimessage2()
{
 int s=3;
 char a;
 while(1)
 {
 system("cls");
 printf("1、修改学生个人基本信息/n 2、返回上一级菜单/n3、退出系统/n");
  scanf("%c",&a);
  fflush(stdin);
 while(a!='1' && a!='2' && a!='3' )
 {
        if(s==0) exit(1);
  printf("输入错误,你还有%d次机会输入机会/n请重新输入:/n",s);
  scanf("%c",&a);
  fflush(stdin);
        s--;
 
 }
 switch(a)
 {
 case '1':xiugaimesmean();continue;//修改学生个人基本信息
 case '2':break;//返回上一级菜单
 case '3':exit(1);//退出系统
 }break;
 }
}


//======================================学生成绩信息删除菜单==================================
void ziresult3()
{
 int s=3;
 char a;
 while(1)
 {
 system("cls");
 printf("1、删除学生个人成绩信息/n 2、删除班级成绩信息/n3、删除全校成绩信息/n4、返回上一级菜单/n5、退出系统/n");
  scanf("%c",&a);
  fflush(stdin);
 while(a!='1' && a!='2' && a!='3' && a!='4' && a!='5' )
 {
        if(s==0) exit(1);
  printf("输入错误,你还有%d次机会输入机会/n请重新输入:/n",s);
  scanf("%c",&a);
  fflush(stdin);
        s--;
 
 }
 switch(a)
 {
 case '1':delatresult1();continue;//删除学生个人成绩信息
 case '2':delatresult2();continue;//删除班级成绩信息
 case '3':delatresult3();continue;//删除全校成绩信息
 case '4':break;   //返回上一级菜单
 case '5':exit(1);  //退出系统
 }break;
 }
}

//=====================================学生成绩信息修改菜单=====================================
void ziresult4()
{
 int s=3;
 char a;
 while(1)
 {
 system("cls");
 printf("1、修改学生个人成绩信息/n 2、返回上一级菜单/n3、退出系统/n");
  scanf("%c",&a);
  fflush(stdin);
 while(a!='1' && a!='2' && a!='3' )
 {
        if(s==0) exit(1);
  printf("输入错误,你还有%d次机会输入机会/n请重新输入:/n",s);
  scanf("%c",&a);
  fflush(stdin);
        s--;
 
 }
 switch(a)
 {
 case '1':xiugairesult();continue;//修改学生个人成绩信息
 case '2':break;//返回上一级菜单
 case '3':exit(1);//退出系统
 }break;
 }
}


//=======================================添加学生基本信息====================================
void addmessage()
{
 FILE *fp;
 char ju;
 int chi=0;
 stmessage  *h,*r,*s;
 system("cls");
    h=(stmessage *)malloc(sizeof(stmessage));
 s=h;
 printf("请输入学生姓名:/n");
 scanf("%s",h->name);
 fflush(stdin);
 printf("请输入学生学号:/n");
 scanf("%s",h->id);
    fflush(stdin);
 printf("请输入学生性别:/n");
 scanf("%s",h->sex);
 fflush(stdin);
 printf("请输入学生手机号码:/n");
 scanf("%s",h->phnumber);
 fflush(stdin);
 printf("请输入学生家庭住址:/n");
 scanf("%s",h->address);
 fflush(stdin);
 printf("请输入学生所在班级:/n");
 scanf("%s",h->clas);
 fflush(stdin);
 printf("请输入学生所读专业:/n");
 scanf("%s",h->suject);
 fflush(stdin);
 chi++;
 printf("是否继续输入下一位学生基本信息是输入Y否输入N:/n");
 scanf("%c",&ju);
    fflush(stdin);
 while(ju=='y' || ju=='Y')
 {
        r=h;
  h=(stmessage *)malloc(sizeof(stmessage));
  r->next=h;
  system("cls");
 printf("请输入学生姓名:/n");
 scanf("%s",h->name);
 fflush(stdin);
 printf("请输入学生学号:/n");
 scanf("%s",h->id);
    fflush(stdin);
 printf("请输入学生性别:/n");
 scanf("%s",h->sex);
 fflush(stdin);
 printf("请输入学生手机号码:/n");
 scanf("%s",h->phnumber);
 fflush(stdin);
 printf("请输入学生家庭住址:/n");
 scanf("%s",h->address);
 fflush(stdin);
 printf("请输入学生所在班级:/n");
 scanf("%s",h->clas);
 fflush(stdin);
 printf("请输入学生所读专业:/n");
 scanf("%s",h->suject);
 fflush(stdin);
 chi++;
 printf("是否继续输入下一位学生基本信息是输入Y否输入N:/n");
 scanf("%c",&ju);
    fflush(stdin);
 }
 h->next=NULL;
    judgefile(1);
 fp=fopen("savemessage.txt","at");
 do
 {
  fprintf(fp,"%s/t%s/t%s/t%s/t%s/t%s/t%s/n",s->name,s->id,s->sex,s->phnumber,s->address,s->clas,s->suject);
  if(s->next==NULL) break;
  s=s->next;
 }while(1);
 fclose(fp);
 system("cls");
 printf("你一共添加了%d个学生基本资料/n",chi);
 printf("/n/n/n/n请按任意键返回菜单/n");
 getch();
}
 

//========================================判断文件是否存在=======================================
void judgefile(int a)
{
 FILE *fp;
 switch(a)
 {
 case 1:{
      if((fp=fopen("savemessage.txt","rt"))==NULL)
         fp=fopen("savemessage.txt","wt");
         fclose(fp);
     }
 case 2:{
  if((fp=fopen("saveresult.txt","rt"))==NULL)
   fp=fopen("saveresult.txt","wt");
  fclose(fp);
     }
 }
}
 

//========================================添加学生成绩信息=======================================
void addresult()
{
 FILE *fp;
 char ju;
 int chi=0;
 stscores  *l,*r,*s;
 system("cls");
    l=(stscores *)malloc(sizeof(stscores));
 s=l;
 printf("请输入学生姓名:/n");
 scanf("%s",l->sname);
 fflush(stdin);
 printf("请输入学生所在班级:/n");
 scanf("%s",l->sclas);
    fflush(stdin);
 printf("请输入学生学号:/n");
 scanf("%s",l->number);
 fflush(stdin);
    printf("请输入学生的英语成绩:/n");
 scanf("%f",&l->english);
 fflush(stdin);
 printf("请输入学生的语文成绩:/n");
 scanf("%f",&l->chinese);
 fflush(stdin);
 printf("请输入学生的数学成绩:/n");
 scanf("%f",&l->math);
 fflush(stdin);
 printf("该学生的总分为/n");
 l->sum=l->english+l->chinese+l->math;
 printf("%3.1f/n",l->sum);
 printf("该学生的平均分为/n");
 l->average=l->sum/3;
 printf("%3.1f/n",l->average);
 chi++;
 printf("是否继续输入下一位学生基本信息是输入Y否输入N:/n");
 scanf("%c",&ju);
    fflush(stdin);
 while(ju=='y' || ju=='Y')
 {
        r=l;
  l=(stscores *)malloc(sizeof(stscores));
  r->snext=l;
  system("cls");
 printf("请输入学生姓名:/n");
 scanf("%s",l->sname);
 fflush(stdin);
 printf("请输入学生所在班级:/n");
 scanf("%s",l->sclas);
    fflush(stdin);
 printf("请输入学生学号:/n");
 scanf("%s",l->number);
 fflush(stdin);
 printf("请输入学生的英语成绩:/n");
 scanf("%f",&l->english);
 fflush(stdin);
 printf("请输入学生的语文成绩:/n");
 scanf("%f",&l->chinese);
 fflush(stdin);
 printf("请输入学生的数学成绩:/n");
 scanf("%f",&l->math);
 fflush(stdin);
 printf("该学生的总分为/n");
 l->sum=l->english+l->chinese+l->math;
 printf("%3.1f",l->sum);
 printf("该学生的平均分为/n");
 l->average=l->sum/3;
 printf("%3.1f",l->average);
 chi++;
 printf("是否继续输入下一位学生基本信息是输入Y否输入N:/n");
 scanf("%c",&ju);
    fflush(stdin);
 }
 l->snext=NULL;
    judgefile(2);
 fp=fopen("saveresult.txt","at");
 do
 {
  fprintf(fp,"%s/t%s/t%s/t%f/t%f/t%f/t%f/t%f/n",s->sname,s->sclas,s->number,s->english,s->chinese,s->math,s->sum,s->average);
  if(s->snext==NULL) break;
  s=s->snext;
 }while(1);
 fclose(fp);
 system("cls");
 printf("你一共添加了%d个学生成绩信息/n",chi);
 printf("/n/n/n/n请按任意键返回菜单/n");
 getch();
}


//========================================查询学生成绩信息=========================================
void searchresult()
{
 int flag=0;
 char name1[25];
    stscores *shead2;
 system("cls");
    printf("请输入姓名或者学号查询/n");
 scanf("%s",&name1);
 fflush(stdin);
 shead2=shead;
  if(shead2->snext==NULL)
 {
  printf("请先存入信息/n");
 // break;
 
 }
  else{
    while(1)
 {
 
 
      if( strcmp(name1,shead2->sname)==0 || strcmp(name1,shead2->number)==0)
  
   {
    system("cls");
             sbass;//======================================================================宏定义
   mprintf; //====================================================================宏定义
    break;
   }
         if(shead2->snext==NULL)
   {
     printf("没有你要找的学生/n");
     break;
   }
    shead2=shead2->snext;
  }
  }
 printf("/n/n/n请按任意键返回菜单");
 getch();
}
 

//===================================加载学生成绩信息到程序======================================
void readresult()
{
 FILE *fp;
 stscores  *start,*back;
 int flag=0;
    judgefile(2);
 fp=fopen("saveresult.txt","rt");
    shead=(stscores *)malloc(sizeof(stscores));
 back=(stscores *)malloc(sizeof(stscores));
 shead->snext=back;
    start=back;
    flag= fscanf(fp,"%s/t%s/t%s/t%f/t%f/t%f/t%f/t%f/n",back->sname,back->sclas,back->number,&back->english,&back->chinese,&back->math,&back->sum,&back->average);
    if(flag==EOF) shead->snext=NULL;
 else
 {
 while(1)
 {
     if (flag==EOF) break;
  back=(stscores *)malloc(sizeof(stscores)); 
     start->snext=back;
  flag= fscanf(fp,"%s/t%s/t%s/t%f/t%f/t%f/t%f/t%f/n",back->sname,back->sclas,back->number,&back->english,&back->chinese,&back->math,&back->sum,&back->average);
   if (flag==EOF) break;
  start=back;
 }
 start->snext=NULL;
    }
  fclose(fp);
}

 
//========================================查询班级成绩信息======================================
void sclassresult()
{
 char clas1[15];
 int jisuan=0;
 stscores *shead2;
 system("cls");
 printf("请输入要搜索的班级/n");
 scanf("%s",&clas1);
 fflush(stdin);
 system("cls");
 shead2=shead;
    if(shead2->snext==NULL) printf("没有任何信息,请先输入信息/n");
 while(1)
 {
    if(shead2->snext==NULL) break;
  shead2=shead2->snext;
 if(strcmp(clas1,shead2->sclas)==0)
 {
  if(0==jisuan)
  {
            sbass;//=========================================宏定义
            mprintf; //======================================宏定义
      jisuan++;
  }
  else
  {
      mprintf; //======================================宏定义
   jisuan++;
  }
 }
    
 }
 printf("一共搜索到%d条信息/n",jisuan);
 printf("请按任意键返回菜单");
 getch();
}


//=====================================查询全校成绩信息==========================================
void searschool()
{
 int jisuan=0;
 stscores *shead2;
 system("cls");
 shead2=shead;
 if(shead2->snext==NULL) printf("没有任何信息,请先录入信息");
 while(shead2->snext!=NULL)
 {
  shead2=shead2->snext;
  if(!jisuan)
  {
   sbass;//=========================================宏定义
      mprintf; //======================================宏定义
   jisuan++;
  }
  else
  {
        mprintf;//======================================宏定义
  jisuan++;
  }
 }
 printf("一共搜索到%d条信息",jisuan);
 getch();
}


//================================读入学生基本信息到程序======================================
void readmessage()
{
 FILE *fp;
 stmessage  *start,*back;
 int flag=0;
    judgefile(1);
 fp=fopen("savemessage.txt","rt");
   // head=(stmessage  *)malloc(sizeof(stmessage ));
 back=(stmessage  *)malloc(sizeof(stmessage ));
 head=back;
 back=(stmessage *)malloc(sizeof(stmessage));
    start=back;
    flag= fscanf(fp,"%s/t%s/t%s/t%s/t%s/t%s/t%s/n",back->name,back->id,back->sex,back->phnumber,back->address,back->clas,back->suject);
    if(flag==EOF) head->next=NULL;
 else
 {
 head->next=back;
 while(1)
 {
     if (flag==EOF) break;
  back=(stmessage  *)malloc(sizeof(stmessage )); 
     start->next=back;
  flag= fscanf(fp,"%s/t%s/t%s/t%s/t%s/t%s/t%s/n",back->name,back->id,back->sex,back->phnumber,back->address,back->clas,back->suject);
  if (flag==EOF) break;
  start=back;
 }
 start->next=NULL;
    }
  fclose(fp);
}


//===========================================查询学生基本信息====================================
void searsmessage()
{
 int flag=0;
 char name1[10];
   stmessage *head2;
 system("cls");
    printf("请输入姓名或者学号查询/n");
 scanf("%s",&name1);
 fflush(stdin);
 head2=head;
 if(head2->next==NULL)
  {
   printf("请先存入信息/n");
  // break;
  }
 else
 {
    while(1)
 {
 
      if( strcmp(name1,head2->name)==0 || strcmp(name1,head2->id)==0)
  
   {
    system("cls");
             mgbass;//======================================================================宏定义
   mgprintf; //====================================================================宏定义
    break;
   }
         if(head2->next==NULL)
   {
     printf("没有你要找的学生/n");
     break;
   }
    head2=head2->next;
 }
 }
 printf("/n/n/n请按任意键返回菜单");
 getch();
}


//=======================================查询学生班级基本信息===================================
void searclmessage()
{
 char clas1[15];
 int jisuan=0;
 stmessage *head2;
 system("cls");
 printf("请输入要搜索的班级/n");
 scanf("%s",&clas1);
 fflush(stdin);
 system("cls");
 head2=head;
    if(head2->next==NULL) printf("没有任何信息,请先输入信息/n");
 while(1)
 {
    if(head2->next==NULL) break;
  head2=head2->next;
 if(strcmp(clas1,head2->clas)==0)
 {
  if(0==jisuan)
  {
            mgbass;//=========================================宏定义
            mgprintf; //======================================宏定义
      jisuan++;
  }
  else
  {
     mgprintf; //======================================宏定义
   jisuan++;
  }
 }
    
 }
 printf("一共搜索到%d条信息/n",jisuan);
 printf("请按任意键返回菜单");
 getch();
}


//========================================查询全校学生班级基本信息===============================
void searshmessage()
{
 int jisuan=0;
 stmessage *head2;
 system("cls");
 head2=head;
 if(head2->next==NULL) printf("没有任何信息,请先录入信息");
 while(head2->next!=NULL)
 {
  head2=head2->next;
  if(!jisuan)
  {
   mgbass;//=========================================宏定义
   mgprintf; //======================================宏定义
   jisuan++;
  }
  else
  {
        mgprintf;//======================================宏定义
  jisuan++;
  }
 }
 printf("一共搜索到%d条信息",jisuan);
 getch();
}


//==========================================查询系学生基本信息=================================
void searximessage()
{
 char clas1[15];
 int jisuan=0;
 stmessage *head2;
 system("cls");
 printf("请输入要搜索的班级/n");
 scanf("%s",&clas1);
 fflush(stdin);
 system("cls");
 head2=head;
    if(head2->next==NULL) printf("没有任何信息,请先输入信息/n");
 while(1)
 {
    if(head2->next==NULL) break;
  head2=head2->next;
 if(strcmp(clas1,head2->suject)==0)
 {
  if(0==jisuan)
  {
            mgbass;//=========================================宏定义
            mgprintf; //======================================宏定义
      jisuan++;
  }
  else
  {
     mgprintf; //======================================宏定义
   jisuan++;
  }
 }
    
 }
 printf("一共搜索到%d条信息/n",jisuan);
 printf("请按任意键返回菜单");
 getch();
}


//=========================================总分排名=============================================
void zongfenpianmin()
{
 stscores  huan;
    stscores  *shead2,*start;
 int jisuan=0;
 shead2=shead;
 if(shead2->snext==NULL) printf("没有任何信息,请先输入信息/n");
 else
 {
  for(shead2 = shead2->snext ; shead2->snext!=NULL;shead2=shead2->snext)
   for(start=shead2->snext;start->snext!=NULL;start=start->snext)
    if(shead2->sum < start->sum)
    {
     strcpy(huan.sname,shead2->sname);
     strcpy(huan.sclas,shead2->sclas);
     strcpy(huan.number,shead2->number);
     huan.average=shead2->average;
     huan.chinese=shead2->chinese;
     huan.english=shead2->english;
     huan.math=shead2->math;
     huan.sum=shead2->sum;

     shead2->average=start->average;
     shead2->chinese=start->chinese;
     shead2->english=start->english;
     shead2->math=start->math;
     strcpy(shead2->number,start->number);
     strcpy(shead2->sclas,start->sclas);
     strcpy(shead2->sname,start->sname);
     shead2->sum=start->sum;

     start->average=huan.average;
     start->chinese=huan.chinese;
     start->english=huan.english;
     start->math=huan.math;
     strcpy(start->number,huan.number);
     strcpy(start->sclas,huan.sclas);
     strcpy(start->sname,huan.sname);
     start->sum=huan.sum;

    }   
 }
system("cls");
shead2=shead;
while(shead2->snext!=NULL)
{
 shead2=shead2->snext;
 if(!jisuan)
 {
  sbass;//=========================================宏定义
  mprintf; //======================================宏定义
     jisuan++;
 }
 else
 {
  mprintf;//======================================宏定义
  jisuan++;
 
 }
}
 printf("一共搜索到%d条信息",jisuan);
 printf("请按任意键返回菜单/n");
 getch();

}


//===============================================班级排名========================================
void claspaimin()
{
 stscores *shead2,*start,*back,*p1,huan,*l1;
 char clas[15];
 int jisuan=0;
 printf("请输入需要排名的班级/n");
 scanf("%s",&clas);
 fflush(stdin);
 system("cls");
 p1=shead;
 back=(stscores *)malloc(sizeof(stscores));
 shead2=back;
 start=back;
    if(p1->snext==NULL) printf("没有任何信息,请先输入信息/n");
 else
 {
 while(1)
 {
    if(p1->snext==NULL) break;
  p1=p1->snext;
 if(strcmp(clas,p1->sclas)==0)
 {
    back=(stscores *)malloc(sizeof(stscores));
  shead2->snext=back;
  shead2=back;
  shead2->average=p1->average;
  shead2->chinese=p1->chinese;
  shead2->english=p1->english;
  shead2->math=p1->math;
  strcpy(shead2->number,p1->number);
  strcpy(shead2->sclas,p1->sclas);
  strcpy(shead2->sname,p1->sname);
  shead2->sum=p1->sum;
 }
    
 }
 }
 back->snext=NULL;
 shead2=start;
 if(shead2->snext==NULL) printf("没有你要查找的信息/n");
 else{
 l1=start;
 for(shead2 = shead2->snext ; shead2->snext!=NULL;shead2=shead2->snext)
   for(start=shead2->snext;start->snext!=NULL;start=start->snext)
    if(shead2->sum < start->sum)
    {
     strcpy(huan.sname,shead2->sname);
     strcpy(huan.sclas,shead2->sclas);
     strcpy(huan.number,shead2->number);
     huan.average=shead2->average;
     huan.chinese=shead2->chinese;
     huan.english=shead2->english;
     huan.math=shead2->math;
     huan.sum=shead2->sum;

     shead2->average=start->average;
     shead2->chinese=start->chinese;
     shead2->english=start->english;
     shead2->math=start->math;
     strcpy(shead2->number,start->number);
     strcpy(shead2->sclas,start->sclas);
     strcpy(shead2->sname,start->sname);
     shead2->sum=start->sum;

     start->average=huan.average;
     start->chinese=huan.chinese;
     start->english=huan.english;
     start->math=huan.math;
     strcpy(start->number,huan.number);
     strcpy(start->sclas,huan.sclas);
     strcpy(start->sname,huan.sname);
     start->sum=huan.sum;

   }   
 
shead2=l1;
while(shead2->snext!=NULL)
{
 shead2=shead2->snext;
 if(!jisuan)
 {
  sbass;//=========================================宏定义
  mprintf; //======================================宏定义
     jisuan++;
 }
 else
 {
  mprintf;//======================================宏定义
  jisuan++;
 
 }
 }}
 printf("一共搜索到%d条信息",jisuan);
 printf("请按任意键返回菜单/n");
 getch();

}


//==============================================修改学生基本信息===================================
void xiugaimesmean()
{
 FILE *fp;
 int flag=0,s=3;
 char name1[25];
 char a,c;
   stmessage *head2,*l1;
 system("cls");
    printf("请先输入姓名或者学号查询你要修改的学生/n");
 scanf("%s",&name1);
 fflush(stdin);
 head2=head;
 if(head2->next==NULL)
  {
   printf("请先存入信息/n");
  }
 else
 {
    while(1)
 {
 
      if( strcmp(name1,head2->name)==0 || strcmp(name1,head2->id)==0)
  
   {
    system("cls");
             mgbass;//======================================================================宏定义
   mgprintf; //====================================================================宏定义
    break;
   }
         if(head2->next==NULL)
   {
     printf("没有你要找的学生/n");
     break;
   }
    head2=head2->next;
 }
 }
 printf("确定该内容为所需修改内容请按“Y”继续修改,如否请按“N”/n");
 scanf("%c",&c);
 fflush(stdin);
 if(c=='y' || c=='Y')
 {
 while(1)
 {
  system("cls");
  printf("1、修改学生姓名/n 2、修改学生学号/n3、修改学生性别/n4、修改学生手机号码/n5、修改家庭住址/n6、修改学生所在班级/n7、修改学生所在专业/n8、返回上一级菜单/n9、退出系统/n");
  scanf("%c",&a);
  fflush(stdin);
     while(a!='1' && a!='2' && a!='3' && a!='4' && a!='5' && a!='6' && a!='7' && a!='8' && a!='9' )
  {
        if(s==0) exit(1);
  printf("输入错误,你还有%d次机会输入机会/n请重新输入:/n",s);
  scanf("%c",&a);
  fflush(stdin);
        s--;
  }
  switch(a)
  {
  case '1':{
          printf("请输入新的学生姓名/n");
       scanf("%s",&name1);
       fflush(stdin);
       strcpy(head2->name,name1);
       printf("*修改成功*/n请按任意键返回/n");
       getch();
     }continue;
  case '2':{
          printf("请输入新的学生学号/n");
       scanf("%s",&name1);
       fflush(stdin);
       strcpy(head2->id,name1);
       printf("*修改成功*/n请按任意键返回/n");
       getch();
     }continue;
  case '3':{
          printf("请输入新的学生的性别/n");
       scanf("%s",&name1);
       fflush(stdin);
       strcpy(head2->sex,name1);
       printf("*修改成功*/n请按任意键返回/n");
       getch();
     }continue;
  case '4':{
          printf("请输入新的学生的手机号码/n");
       scanf("%s",&name1);
       fflush(stdin);
       strcpy(head2->phnumber,name1);
       printf("*修改成功*/n请按任意键返回/n");
       getch();
     }continue;
  case '5':{
          printf("请输入新的学生的家庭住址/n");
       scanf("%s",&name1);
       fflush(stdin);
       strcpy(head2->address,name1);
       printf("*修改成功*/n请按任意键返回/n");
       getch();
     }continue;
  case '6':{
          printf("请输入新的学生所在班级/n");
       scanf("%s",&name1);
       fflush(stdin);
       strcpy(head2->clas,name1);
       printf("*修改成功*/n请按任意键返回/n");
       getch();
     }continue;
  case '7':{
          printf("请输入新的学生的所在专业/n");
       scanf("%s",&name1);
       fflush(stdin);
       strcpy(head2->suject,name1);
       printf("*修改成功*/n请按任意键返回/n");
       getch();
     }continue;
  case '8':break;
  case '9':exit(1);
  }break;
 
  }
 fp=fopen("savemessage.txt","wt");
 l1=head;
 while(l1->next!=NULL)
 {
  l1=l1->next;
  fprintf(fp,"%s/t%s/t%s/t%s/t%s/t%s/t%s/n",l1->name,l1->id,l1->sex,l1->phnumber,l1->address,l1->clas,l1->suject);
 }
 fclose(fp);

 }
 
}


//===============================================修改学生成绩信息==============================
void xiugairesult()
{
 FILE *fp;
 int flag=0,s=3;
 float chen;
 char name1[25];
 char a,c;
   stscores *shead2,*l1;
 system("cls");
    printf("请先输入姓名或者学号查询你要修改的学生/n");
 scanf("%s",&name1);
 fflush(stdin);
 shead2=shead;
 if(shead2->snext==NULL)
  {
   printf("请先存入信息/n");
  }
 else
 {
    while(1)
 {
 
      if( strcmp(name1,shead2->sname)==0 || strcmp(name1,shead2->number)==0)
  
   {
    system("cls");
             sbass;//======================================================================宏定义
   mprintf; //====================================================================宏定义
    break;
   }
         if(shead2->snext==NULL)
   {
     printf("没有你要找的学生/n");
     break;
   }
    shead2=shead2->snext;
 }
 }
 printf("确定该内容为所需修改内容请按“Y”继续修改,如否请按“N”/n");
 scanf("%c",&c);
 fflush(stdin);
 if(c=='y' || c=='Y')
 {
 while(1)
 {
  system("cls");
  printf("1、修改学生姓名/n 2、修改学生学号/n3、修改学生班级/n4、修改学生英语成绩/n5、修改学生数学成绩/n6、修改语文成绩/n7、返回上一级菜单/n");
  scanf("%c",&a);
  fflush(stdin);
     while(a!='1' && a!='2' && a!='3' && a!='4' && a!='5' && a!='6' && a!='7'  )
  {
        if(s==0) exit(1);
  printf("输入错误,你还有%d次机会输入机会/n请重新输入:/n",s);
  scanf("%c",&a);
  fflush(stdin);
        s--;
  }
  switch(a)
  {
  case '1':{
          printf("请输入新的学生姓名/n");
       scanf("%s",&name1);
       fflush(stdin);
       strcpy(shead2->sname,name1);
       printf("*修改成功*/n请按任意键返回/n");
       getch();
     }continue;
  case '2':{
          printf("请输入新的学生学号/n");
       scanf("%s",&name1);
       fflush(stdin);
       strcpy(shead2->number,name1);
       printf("*修改成功*/n请按任意键返回/n");
       getch();
     }continue;
  case '3':{
          printf("请输入新的学生所在班级/n");
       scanf("%s",&name1);
       fflush(stdin);
       strcpy(shead2->sclas,name1);
       printf("*修改成功*/n请按任意键返回/n");
       getch();
     }continue;
  case '4':{
          printf("请输入新的学生的英语成绩/n");
       scanf("%f",&chen);
       fflush(stdin);
       shead2->english=chen;
       printf("*修改成功*/n请按任意键返回/n");
       getch();
     }continue;
  case '5':{
          printf("请输入新的学生的数学成绩/n");
       scanf("%f",&chen);
       fflush(stdin);
       shead2->math=chen;
       printf("*修改成功*/n请按任意键返回/n");
       getch();
     }continue;
  case '6':{
          printf("请输入新的学生的语文成绩/n");
       scanf("%f",&chen);
       fflush(stdin);
       shead2->chinese=chen;
       printf("*修改成功*/n请按任意键返回/n");
       getch();
     }continue;
  case '7':break;
  }
    shead2->sum=shead2->english+shead2->chinese+shead2->math;
    shead2->average=shead2->sum/3;
    break;
  }
 fp=fopen("saveresult.txt","wt");
 l1=shead;
 while(l1->snext!=NULL)
 {
  l1=l1->snext;
  fprintf(fp,"%s/t%s/t%s/t%f/t%f/t%f/t%f/t%f/n",l1->sname,l1->sclas,l1->number,l1->english,l1->chinese,l1->math,l1->sum,l1->average);
 }
 fclose(fp);

 }
 
}


//==========================================删除学生个人基本信息==================================
void delatemessag1()
{
 FILE *fp;
 char name1[20],number1[20],clas1[20],c;
 stmessage *head2,*start,*back,*l1;
 head2=head;
 system("cls");
    printf("请先输入你需要删除的学生姓名学号以及班级以便精确删除/n");
 printf("请输入姓名:/n");
 scanf("%s",&name1);
 fflush(stdin);
 printf("请输入学号:/n");
 scanf("%s",&number1);
 fflush(stdin);
 printf("请输入班级:/n");
 scanf("%s",&clas1);
 fflush(stdin);
 system("cls");
 if(head2->next==NULL)
  {
   printf("请先存入信息/n");
  }
 else
 {
  start=head2;
    while(1)
 {
      if( !strcmp(name1,head2->name) && !strcmp(number1,head2->id) && !strcmp(clas1,head2->clas))
  
   {
    system("cls");
             mgbass;//======================================================================宏定义
   mgprintf; //====================================================================宏定义
    break;
   }
         if(head2->next==NULL)
   {
     printf("没有你要找的学生/n");
     break;
   }
             start=head2;
    head2=head2->next;
 }
 }
 printf("确定该内容为所需修改内容请按“Y”继续修改,如否请按“N”/n");
 scanf("%c",&c);
 fflush(stdin);
 if(c=='y' || c=='Y')
 {
  back=head2->next;
  free(head2);
  start->next=back;
 }
 
 fp=fopen("savemessage.txt","wt");
 l1=head;
 while(l1->next!=NULL)
 {
  l1=l1->next;
  fprintf(fp,"%s/t%s/t%s/t%s/t%s/t%s/t%s/n",l1->name,l1->id,l1->sex,l1->phnumber,l1->address,l1->clas,l1->suject);
 }
 fclose(fp);
 system("cls");
 printf("学生信息删除成功,请按任意键返回/n");
 getch();
 }
 

//=========================================删除班级学生基本信息===================================
void delatemessag2()
{
 FILE *fp;
 char clas1[20];
 int jisuan=0;
 stmessage *head2,*start,*back,*l1;
 head2=head;
 system("cls");
    printf("请输入你需要删除班级/n");
 scanf("%s",&clas1);
 fflush(stdin);
 system("cls");
 if(head2->next==NULL)
  {
   printf("请先存入信息/n");
  }
 else
 {
  start=head2;
    while(1)
 {
            if(head2->next==NULL)
   {
    if( !strcmp(clas1,head2->clas))
    {
    free(head2);
    start->next=NULL;
    jisuan++;
    }
     break;
   }
     if( !strcmp(clas1,head2->clas))
  
   {
    back=head2->next;
       free(head2);
         start->next=back;
    head2=back;
    jisuan++;
    continue;
   
   
   }
             start=head2;
    head2=head2->next;
 }
 }
 fp=fopen("savemessage.txt","wt");
 l1=head;
 while(l1->next!=NULL)
 {
  l1=l1->next;
  fprintf(fp,"%s/t%s/t%s/t%s/t%s/t%s/t%s/n",l1->name,l1->id,l1->sex,l1->phnumber,l1->address,l1->clas,l1->suject);
 }
 fclose(fp);
 system("cls");
 printf("一共成功删除%d条信息,请按任意键返回/n",jisuan);
 getch();
 }


//=============================================删除系基本信息==================================== 
void delatemessag3()
{
 FILE *fp;
 char clas1[20];
 int jisuan=0;
 stmessage *head2,*start,*back,*l1;
 head2=head;
 system("cls");
    printf("请输入你需要删除系信息/n");
 scanf("%s",&clas1);
 fflush(stdin);
 system("cls");
 if(head2->next==NULL)
  {
   printf("请先存入信息/n");
  }
 else
 {
  start=head2;
    while(1)
 {
            if(head2->next==NULL)
   {
    if( !strcmp(clas1,head2->suject))
    {
    free(head2);
    start->next=NULL;
    jisuan++;
    }
     break;
   }
     if( !strcmp(clas1,head2->suject))
  
   {
    back=head2->next;
       free(head2);
         start->next=back;
    head2=back;
    jisuan++;
    continue;
   
   
   }
             start=head2;
    head2=head2->next;
 }
 }
 fp=fopen("savemessage.txt","wt");
 l1=head;
 while(l1->next!=NULL)
 {
  l1=l1->next;
  fprintf(fp,"%s/t%s/t%s/t%s/t%s/t%s/t%s/n",l1->name,l1->id,l1->sex,l1->phnumber,l1->address,l1->clas,l1->suject);
 }
 fclose(fp);
 system("cls");
 printf("一共成功删除%d条信息,请按任意键返回/n",jisuan);
 getch();
 }


//===========================================删除全校基本信息====================================
void delatemessag4()
{
 FILE *fp;
 stmessage *head2,*start;
 head2=head;
     head2=head2->next;
 
 while(head2!=NULL)
 {
        start=head2->next;
  free(head2);
  head2=start;

 }
 fp=fopen("savemessage.txt","wt");
 fclose(fp);
 system("cls");
 printf("所有数据已删除,请按任意键返回/n");
 getch();

}


//===========================================删除学生个人成绩====================================
void delatresult1()
{
 FILE *fp;
 char name1[20],number1[20],clas1[20],c;
 stscores *shead2,*start,*back,*l1;
 shead2=shead;
 system("cls");
    printf("请先输入你需要删除的学生姓名学号以及班级以便精确删除/n");
 printf("请输入姓名:/n");
 scanf("%s",&name1);
 fflush(stdin);
 printf("请输入学号:/n");
 scanf("%s",&number1);
 fflush(stdin);
 printf("请输入班级:/n");
 scanf("%s",&clas1);
 fflush(stdin);
 system("cls");
 if(shead2->snext==NULL)
  {
   printf("请先存入信息/n");
  }
 else
 {
  start=shead2;
    while(1)
 {
      if( !strcmp(name1,shead2->sname) && !strcmp(number1,shead2->number) && !strcmp(clas1,shead2->sclas))
  
   {
    system("cls");
             sbass;//======================================================================宏定义
   mprintf; //====================================================================宏定义
    break;
   }
         if(shead2->snext==NULL)
   {
     printf("没有你要找的学生/n");
     break;
   }
             start=shead2;
    shead2=shead2->snext;
 }
 }
 printf("确定该内容为所需修改内容请按“Y”继续修改,如否请按“N”/n");
 scanf("%c",&c);
 fflush(stdin);
 if(c=='y' || c=='Y')
 {
  back=shead2->snext;
  free(shead2);
  start->snext=back;
 }
 
 fp=fopen("saveresult.txt","wt");
 l1=shead;
 while(l1->snext!=NULL)
 {
  l1=l1->snext;
  fprintf(fp,"%s/t%s/t%s/t%3.1f/t%3.1f/t%3.1f/t%3.1f/t%3.1f/n",shead2->sname,shead2->sclas,shead2->number,shead2->english,shead2->chinese,shead2->math,shead2->sum,shead2->average);
 }
 fclose(fp);
 system("cls");
 printf("学生信息删除成功,请按任意键返回/n");
 getch();
 }


//==========================================删除班级成绩信息=====================================
void delatresult2()
{
 FILE *fp;
 char clas1[20];
 int jisuan=0;
 stscores *shead2,*start,*back,*l1;
 shead2=shead;
 system("cls");
    printf("请输入你需要删除班级/n");
 scanf("%s",&clas1);
 fflush(stdin);
 system("cls");
 if(shead2->snext==NULL)
  {
   printf("请先存入信息/n");
  }
 else
 {
  start=shead2;
    while(1)
 {
            if(shead2->snext==NULL)
   {
    if( !strcmp(clas1,shead2->sclas))
    {
    free(shead2);
    start->snext=NULL;
    jisuan++;
    }
     break;
   }
     if( !strcmp(clas1,shead2->sclas))
  
   {
    back=shead2->snext;
       free(shead2);
         start->snext=back;
    shead2=back;
    jisuan++;
    continue;
   
   
   }
             start=shead2;
    shead2=shead2->snext;
 }
 }
 fp=fopen("saveresult.txt","wt");
 l1=shead;
 while(l1->snext!=NULL)
 {
  l1=l1->snext;
  fprintf(fp,"%s/t%s/t%s/t%3.1f/t%3.1f/t%3.1f/t%3.1f/t%3.1f/n",shead2->sname,shead2->sclas,shead2->number,shead2->english,shead2->chinese,shead2->math,shead2->sum,shead2->average);
 }
 fclose(fp);
 system("cls");
 printf("一共成功删除%d条信息,请按任意键返回/n",jisuan);
 getch();
 }

 

//======================================删除全校成绩信息==========================================
void delatresult3()
{
 FILE *fp;
 stscores *shead2,*start;
 shead2=shead;
     shead2=shead2->snext;
 
 while(shead2!=NULL)
 {
        start=shead2->snext;
  free(shead2);
  shead2=start;

 }
 fp=fopen("saveresult.txt","wt");
 fclose(fp);
 system("cls");
 printf("所有数据已删除,请按任意键返回/n");
 getch();

}


//=============================================THE END=============================================

原创粉丝点击