学生成绩管理系统

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#define MAXSIZE 100

int n,m;

typedef struct 

{

    char name[20];

    int num;

    int yuwen;

    int shuxue;

    int yinyu;

}DataType;

typedef struct 

{

    DataType data[MAXSIZE];

    int last;

}seqlist;

seqlist *A1,*A2,*A3,*A4,*A6;

struct In

{

    int sum;

    int nums;

    char names[20];

}A5[MAXSIZE];

void Printf1( )

{

     printf("姓名\t学号\t语文\t数学\t英语\n");

     for(int i=1;i<=n;i++)

     {

              printf("%s\t%d\t%d\t%d\t%d\n",&A1->data[i].name,A1->data[i].num,A1->data[i].yuwen,A1->data[i].shuxue,A1->data[i].yinyu);

     }

}

void Printf2( )

{

     printf("姓名\t学号\t语文\t数学\t英语\n");

     for(int i=1;i<=m;i++)

     {

              printf("%s\t%d\t%d\t%d\t%d\n",&A2->data[i].name,A2->data[i].num,A2->data[i].yuwen,A2->data[i].shuxue,A2->data[i].yinyu);

     }

}

void Printf3()

{

     printf("姓名\t学号\t语文\t数学\t英语\n");

     for(int i=1;i<=m+n;i++)

     {

              printf("%s\t%d\t%d\t%d\t%d\n",&A3->data[i].name,A3->data[i].num,A3->data[i].yuwen,A3->data[i].shuxue,A3->data[i].yinyu);

     }  

}

void Printf4()

{

     printf("姓名\t学号\t语文\t数学\t英语\n");

     for(int i=1;i<=A4->last;i++)

     {

              printf("%s\t%d\t%d\t%d\t%d\n",&A4->data[i].name,A4->data[i].num,A4->data[i].yuwen,A4->data[i].shuxue,A4->data[i].yinyu);

     }  

}

void creat()

{

    A1=(seqlist *)malloc(sizeof(seqlist));

    A2=(seqlist *)malloc(sizeof(seqlist));

    printf("请输入文件一的内容:\n");

    printf("请输入学生的个数:\n");

    scanf("%d",&n);

    printf("请输入文件一的具体内容:\n");

    for(int i=1;i<=n;i++)

    {

        scanf("%s%d%d%d%d",A1->data[i].name,&A1->data[i].num,&A1->data[i].yuwen,&A1->data[i].shuxue,&A1->data[i].yinyu);

    }

    A1->last=n;

    printf("请输入文件二的内容:\n");

    printf("请输入学生的个数:\n");

    scanf("%d",&m);

    printf("请输入文件二的具体内容:\n");

    for(int i=1;i<=m;i++)

    {

         scanf("%s%d%d%d%d",A2->data[i].name,&A2->data[i].num,&A2->data[i].yuwen,&A2->data[i].shuxue,&A2->data[i].yinyu);

    }

    A2->last=m;

    printf("输出文件一和文件二的信息:\n");

    printf("学生成绩信息文件1(1.txt),内容如下:\n");

    printf("---------------------------------------------------------\n");

    Printf1();

    printf("---------------------------------------------------------\n");

    printf("学生成绩信息文件2(2.txt),内容如下:\n");

    printf("---------------------------------------------------------\n");

    Printf2();

    printf("---------------------------------------------------------\n");

}

void Union()

{

    

    A3=(seqlist *)malloc(sizeof(seqlist));

    for(int i=1;i<=n;i++)

    {

        strcpy(A3->data[i].name,A1->data[i].name);

        A3->data[i].num=A1->data[i].num;

        A3->data[i].yuwen=A1->data[i].yuwen;

        A3->data[i].shuxue=A1->data[i].shuxue;

        A3->data[i].yinyu=A1->data[i].yinyu;

    }

    for(int i=n+1;i<=n+m;i++)

    {

        strcpy(A3->data[i].name,A2->data[i-n].name);

        A3->data[i].num=A2->data[i-n].num;

        A3->data[i].yuwen=A2->data[i-n].yuwen;

        A3->data[i].shuxue=A2->data[i-n].shuxue;

        A3->data[i].yinyu=A2->data[i-n].yinyu;         

    }

    A3->last=n+m;

    printf("学生成绩信息文件3(3.txt),内容如下:\n");

    printf("---------------------------------------------------------\n");

    Printf3();

    printf("---------------------------------------------------------\n");

}

void bukao()

{

    A4=(seqlist *)malloc(sizeof(seqlist)); 

    int j=1;

    for(int i=1;i<=n+m;i++)

    {

        if(A3->data[i].yuwen<60||A3->data[i].shuxue<60||A3->data[i].yinyu<60)

        {

              strcpy(A4->data[j].name,A3->data[i].name);

              A4->data[j].num=A3->data[i].num;

              A4->data[j].yuwen=A3->data[i].yuwen;

              A4->data[j].shuxue=A3->data[i].shuxue;

              A4->data[j].yinyu=A3->data[i].yinyu; 

              j++;   

        }

    }

    A4->last=j-1;

    printf("学生成绩信息文件4(4.txt),内容如下:\n");

    printf("---------------------------------------------------------\n");

    Printf4();

    printf("---------------------------------------------------------\n");

}

int cmp(const void *a,const void *b)

{

    return (*(In *)b).sum - (*(In *)a).sum;

}

void Qsort()

{ 

     for(int i=1;i<=m+n;i++)

     {

          strcpy(A5[i].names,A3->data[i].name);

          A5[i].nums=A3->data[i].num;

          A5[i].sum=A3->data[i].yuwen+A3->data[i].shuxue+A3->data[i].yinyu;

     }

     qsort(A5+1,m+n,sizeof(A5[0]),cmp);

     A6=(seqlist *)malloc(sizeof(seqlist));

     for(int i=1;i<=m+n;i++)

     {

          strcpy(A6->data[i].name,A5[i].names);

          A6->data[i].num=A5[i].nums;

          for(int j=1;j<=m+n;j++)

          {

               if(A3->data[j].num==A5[i].nums)

               {

                    A6->data[i].yuwen=A3->data[j].yuwen;

                    A6->data[i].shuxue=A3->data[j].shuxue;

                    A6->data[i].yinyu=A3->data[j].yinyu;

               }

          }

     }

     for(int i=1;i<=m+n;i++)

     {

          A3->data[i].num=A6->data[i].num;

          A3->data[i].yuwen=A6->data[i].yuwen;

          A3->data[i].shuxue=A6->data[i].shuxue;

          A3->data[i].yinyu=A6->data[i].yinyu;

          strcpy(A3->data[i].name,A6->data[i].name);

     }

     printf("学生成绩信息文件5(5.txt),内容如下:\n");

     printf("---------------------------------------------------------\n");

     Printf3();

     printf("---------------------------------------------------------\n");

}

void Search()

{

     char ch[20];

     printf("请输入要查找的学生的名字:\n");

     while(scanf("%s",ch))

     {

          int i;

          for( i=1;i<=m+n;i++)

          {

               if(!(strcmp(ch,A3->data[i].name)))

               {

                    printf("%s\t%d\t%d\t%d\t%d\n",&A3->data[i].name,A3->data[i].num,A3->data[i].yuwen,A3->data[i].shuxue,A3->data[i].yinyu);

                    break;

               }

          }

          if(i==m+n+1)

          {

              printf("学生信息管理系统中不含有此学生的信息!\n");

          }

     }

}

int main()

{

    creat();

    Union();

    bukao();

    Qsort();

    Search();

    system("pause");

    return 0;      

}

你可能感兴趣的:(管理)