您的位置:首页 > 其它

学生社团管理系统 任务:通过此系统可以实现如下功能(包含但不限于以下功能,可自行设计): 1、社团信息包括:社团编号、社团名称、成立时间…… 2、学生信息包括:学号、姓名、性别、年级、专业…… 3

2017-04-09 17:30 1201 查看
#define flag 0

FILE *fp;//文件指针

typedef struct Student

{//学生结点定义

    int sno;//学号

  char sname[20];//姓名

    char sex[4];//性别

    int sage;//年龄

    int stel;//电话

    char szy[20];//专业

    struct Student *next;

}Student,*StuList;

typedef struct shetuan

{

    int shetuannumber;   //社团编号

    char shetuan[20];    //社团名称

    char begintime[20];   //成立时间

    struct shetuan *next;

}shetuan,*shetuanList;

typedef struct zhongjian  //中间节点建立

{

    int sno;  //学生学号

    int shetuannumber; //社团编号

    char role[10]; //社团角色

    struct zhongjian *next;

}zhongjian,*zhongjianList;

void Save(StuList head) {       /*保存数据到文件*/

    FILE *fp;

 StuList p;

   p=head->next;

    if((fp=fopen(DAT_FILENAME,"w+"))!=NULL)          /*以W+的方式打开文件*/

        {   while(p!=NULL)

          {     fprintf(fp,"%d\t",p->sno);

                fprintf(fp,"%s\t",p->sname);

                fprintf(fp,"%s\t",p->sex);

                fprintf(fp,"%d\t",p->sage);

                fprintf(fp,"%d\t",p->stel);

                fprintf(fp,"%s\n",p->szy);

               p=p->next;

                 }               /*将链表的内容写入文件*/

            fclose(fp);

                                          }

            else   printf("cannot open file\n"); }

void Save2(shetuanList head) {       /*保存数据到文件*/

    FILE *fp;

 shetuanList p;

    p=head->next;

    if((fp=fopen(FILENAME,"w+"))!=NULL)          /*以W+的方式打开文件*/

        {   while(p!=NULL)

          {     fprintf(fp,"%d\t",p->shetuannumber);

                fprintf(fp,"%s\t",p->shetuan);

                fprintf(fp,"%s\n",p->begintime);

               p=p->next;   }               /*将链表的内容写入文件*/

            fclose(fp);

                                          }

            else   printf("cannot open file\n"); }

void Save3(zhongjianList head) {       /*保存数据到文件*/

    FILE *fp;

 zhongjianList p;

   p=head->next;

    if((fp=fopen(DATA_FILENAME,"w+"))!=NULL)          /*以W+的方式打开文件*/

        {   while(p!=NULL)

          {     fprintf(fp,"%d\t",p->sno);

                fprintf(fp,"%d\t",p->shetuannumber);

                fprintf(fp,"%s\n",p->role);

               p=p->next;   }               /*将链表的内容写入文件*/

            fclose(fp);

                                          }

            else   printf("cannot open file\n"); }

StuList Read(StuList head) {  /*读取文件中的内容到链表中*/

     StuList p;

        p=(StuList)malloc(sizeof(Student));

         FILE *fp;

        // p=head->next;

          if((fp=fopen(DAT_FILENAME,"r"))!=NULL)  {

                /*读取文件中的内容到链表中*/

                while(fscanf(fp,"%d\t",&p->sno)!=EOF)

                 {     fscanf(fp,"%s\t",p->sname);

                       fscanf(fp,"%s\t",p->sex);

                       fscanf(fp,"%d\t",&p->sage);

                       fscanf(fp,"%d\t",&p->stel);

                       fscanf(fp,"%s\t",p->szy);

                                           //head=Insert(head,p);

                                           p->next=head->next;

                                           head->next=p;

                                               p=(StuList)malloc(sizeof(Student));

                                                 }

                                                fclose(fp);  }

                                                else   printf("cannot open file\n");

                                                return head; }

shetuanList Read2(shetuanList head) {  /*读取文件中的内容到链表中*/    //社团

     shetuanList p;

        p=(shetuanList)malloc(sizeof(shetuan));

         FILE *fp;

          if((fp=fopen(FILENAME,"r"))!=NULL)  {

                /*读取文件中的内容到链表中*/

                 while(fscanf(fp,"%d\t",&p->shetuannumber)!=EOF)

                 {     fscanf(fp,"%s\t",p->shetuan);

                      // fscanf(fp,"%s\t",p->sex);

                       fscanf(fp,"%s\t",p->begintime);

                      // fscanf(fp,"%d\t",&p->stel);

                     //  fscanf(fp,"%s\t",p->szy);

                                           //head=Insert(head,p);

                                           p->next=head->next;

                                           head->next=p;

                                               p=(shetuanList)malloc(sizeof(shetuan));

                                                 }

                                                fclose(fp);  }

                                                else   printf("cannot open file\n");

                                                return head; }

zhongjianList Read3(zhongjianList head) {  /*读取文件中的内容到链表中*/    //中间

     zhongjianList p;

        p=(zhongjianList)malloc(sizeof(zhongjian));

         FILE *fp;

          if((fp=fopen(DATA_FILENAME,"r"))!=NULL)  {

                /*读取文件中的内容到链表中*/

                 while(fscanf(fp,"%d\t",&p->sno)!=EOF)

                 {     fscanf(fp,"%d\t",&p->shetuannumber);

                       fscanf(fp,"%s\t",p->role);

                       p->next=head->next;

                       head->next=p;

                       p=(zhongjianList)malloc(sizeof(zhongjian));

                 }

                                    fclose(fp);  }

                            else   printf("cannot open file\n");

                                                return head; }

void Re_Creat_StuList(StuList &L,int n)

{//重复添加学生信息(前插法)

    int i;

    StuList p,M;

    int a=1;

    M=L->next;

    for(i=n;i>0;--i)

    {

        p=(Student *)malloc(sizeof(Student));

        printf("请依次输入学生的学号、姓名、性别、年龄、电话、专业:\n");

        printf("学号:");

        scanf("%d",&p->sno);

         while(M)

        {

         if(M->sno==p->sno)

         {

             a=0;

             break;

         }

          M=M->next;

        }

        if(a==1)

        {

            printf("姓名:");

            scanf("%s",p->sname);

            printf("性别:");

           scanf("%s",p->sex);

           printf("年龄:");

           scanf("%d",&p->sage);

           printf("电话:");

          scanf("%d",&p->stel);

          printf("专业:");

          scanf("%s",p->szy);

        p->next = L->next;

        L->next = p;

        }

        else{

             printf("该学号已经存在,此信息添加失败!\n");

            }

    }

}

void Re_Creat_shetuanList(shetuanList &A,int n)

{//重复添加学生信息(前插法)

    int i;

    shetuanList p,M;

    int a=1;

    M=A->next;

    for(i=n;i>0;--i)

    {

        p=(shetuan *)malloc(sizeof(shetuan));

        printf("请依次输入社团的社团编号,社团名称,成立时间:\n");

        printf("社团编号:");

        scanf("%d",&p->shetuannumber);

        while(M)

        {

            if(M->shetuannumber==p->shetuannumber)

            {

                a=0;

                break;

            }

            M=M->next;

        }

        if(a==1)

        {

        printf("社团名称:");

        scanf("%s",p->shetuan);

        printf("成立时间:");

        scanf("%s",p->begintime);

        p->next = A->next;

        A->next = p;

        }

       else printf("该社团编号已存在,此信息添加失败!\n");

    }

}

void Re_Creat_zhongjianList(StuList &L,shetuanList &A,zhongjianList &O,int n)

{

    int i;

    zhongjianList p,Q;

    Q=O->next;

    int a=1;

    int b=1;

    StuList M;

    M=L->next;

    shetuanList N;

    N=A->next;

    for(i=n;i>0;--i)

    {

        p=(zhongjian *)malloc(sizeof(zhongjian));

         printf("请依次输入学生学号,社团编号,社团角色:\n");

         printf("学生学号:");

        scanf("%d",&p->sno);

       while(M)

       {

          // printf("23333333333333333333\n");

           if(M->sno==p->sno)

           {

               a=0;

               break;

           }

           M=M->next;

       }

       if(a==0)

1554a
       {

             printf("社团编号:");

        scanf("%d",&p->shetuannumber);

        while(N)

        {

            if(N->shetuannumber==p->shetuannumber)

            {

                b=0;

                break;

            }

            N=N->next;

        }

        if(b==0)

        {

            printf("社团角色:");

        scanf("%s",p->role);

        p->next = O->next;

        O->next = p;

        }

        else printf("添加失败,该社团信息不存在!\n");

       }

       else printf("添加失败,该学号学生信息不存在!\n");

    }

}

void Display_zhongjianList(zhongjianList O)

{

    zhongjianList p;

    p=O;

    if(p->next)

    {

         while(p->next)

    {

        printf("学生学号:%d\n",p->next->sno);

        printf("社团编号:%d\n",p->next->shetuannumber);

        printf("社团角色:%s\n",p->next->role);

        p=p->next;

        printf("*******************\n");

    }

    }

   else printf("空!\n");

}

void Display_shetuanList(shetuanList A)

{

    shetuanList p;

    p=A;

    if(p->next)

    {

         while(p->next)

    {

        printf("社团编号:%d\n",p->next->shetuannumber);

        printf("社团名称:%s\n",p->next->shetuan);

        printf("成立时间:%s\n",p->next->begintime);

        p=p->next;

        printf("*******************\n");

    }

    }

   else printf("空!\n");

}

void Display_StuList(StuList M)

{

    StuList p;

    p=M;

    if(p->next)

    {

         while(p->next)

    {

        printf("学号:%d\n",p->next->sno);

        printf("姓名:%s\n",p->next->sname);

        printf("性别:%s\n",p->next->sex);

        printf("年龄:%d\n",p->next->sage);

        printf("电话:%d\n",p->next->stel);

        printf("专业:%s\n",p->next->szy);

        p=p->next;

        printf("*******************\n");

    }

    }

   else printf("空!\n");

}

StuList Locate_StuList(StuList L,int x) //选择不同的插入方法 查找也会有细微的区别

{//在带头结点单链表中查找等于给定值的结点

    StuList p;

    int a=x; //q用于保存所查元素上一结点的指针

    int j = 1;

    p = L;

   // q = p;

    while(p->next!=NULL&&p->next->sno!=a)  //第一个结点不是查找点且不是空链表继续查找 注意第一个结点非头结点

    {

       // q = p;

        p = p->next;

        j++;

    }

        if(p->next)

        {

            //printf("该学生信息基本信息:\n");

            printf("学号为:%d的学生在文件中,是第%d位学生\n",p->next->sno,j)    ;

            printf("该学生详细信息:\n");

            printf("学号:%d\n",p->next->sno);//打印出被查找学生的全部信息

            printf("姓名:%s\n",p->next->sname);

            printf("性别:%s\n",p->next->sex);

          printf("年龄:%d\n",p->next->sage);

           printf("电话:%d\n",p->next->stel);

           printf("专业:%s\n",p->next->szy);

            return p;

        }

        else

        {

            printf("学号为:%d的学生不在文件中!\n",a);

            return NULL;

        }

}

shetuanList Locate_shetuanList(shetuanList A,int x)   //查询社团

{//在带头结点单链表中查找等于给定值的结点

    shetuanList p;

    int a=x; //q用于保存所查元素上一结点的指针

    int j = 1;

    p = A;

   // q = p;

    while(p->next!=NULL&&p->next->shetuannumber!=a)  //第一个结点不是查找点且不是空链表继续查找 注意第一个结点非头结点

    {

       // q = p;

        p = p->next;

        j++;

    }

        if(p->next)

        {

            //printf("该学生信息基本信息:\n");

            printf("编号为:%d的社团在文件中,是第%d个社团\n",p->next->shetuannumber,j)    ;

            printf("该社团详细信息:\n");

           printf("社团编号:%d\n",p->next->shetuannumber);

           printf("社团名称:%s\n",p->next->shetuan);

           printf("成立时间:%s\n",p->next->begintime);

            return p;

        }

        else

        {

            printf("编号为:%d的社团不在文件中!\n",a);

            return NULL;

        }

}

zhongjianList Locate_zhongjianList(zhongjianList O,int x) //根据学号查询学生在社团信息

{//在带头结点单链表中查找等于给定值的结点

    zhongjianList p;

    int a=x;

    int j = 1;

    p = O;

    //q = p;

    while(p->next!=NULL&&p->next->sno!=a)  //第一个结点不是查找点且不是空链表继续查找 注意第一个结点非头结点

    {

      //  q = p;

        p = p->next;

        j++;

    }

        if(p->next)

        {

          //  printf("该学生在社团的基本信息:\n");

         //   printf("学号为:%d的学生在社团中,是第%d个学生\n",p->next->sno,j)    ;

            printf("该学生在社团的详细信息为:\n");

           printf("学生学号:%d\n",p->next->sno);

           printf("社团编号:%d\n",p->next->shetuannumber);

           printf("社团角色:%s\n",p->next->role);

            return p;

        }

        else

        {

           // printf("学号为:%d的学生不在社团中!\n",a);

            return NULL;

        }

}

zhongjianList Locate_zhongjianList2(zhongjianList O,int x)  //根据社团编号查询学生在社团信息

{//在带头结点单链表中查找等于给定值的结点

    zhongjianList p;

    int a=x; //q用于保存所查元素上一结点的指针

    int j = 1;

    p = O;

   // q = p;

    while(p->next!=NULL&&p->next->shetuannumber!=a)  //第一个结点不是查找点且不是空链表继续查找 注意第一个结点非头结点

    {

        //q = p;

        p = p->next;

        j++;

    }

        if(p->next)

        {

          //  printf("该学生在社团的基本信息:\n");

         //   printf("学号为:%d的学生在社团中,是第%d个学生\n",p->next->sno,j)    ;

            printf("该社团学生的详细信息为:\n");

           printf("学生学号:%d\n",p->next->sno);

           printf("社团编号:%d\n",p->next->shetuannumber);

           printf("社团角色:%s\n",p->next->role);

            return p;

        }

        else

        {

            //printf("社团编号为:%d的社团不存在!\n",a);

            return NULL;

        }

}

int xiugai_StuList(StuList L,int x)

{

    StuList p,q;

    int a=x;

    p=L;

    q=(StuList)malloc(sizeof(Student));

    q= Locate_StuList(L,x);

    if(q)

    {

        if(q->next->sno==a)

    {

        printf("请输入修改后的学号:");

        scanf("%d",&q->next->sno);

        printf("请输入修改后的姓名:");

        scanf("%s",q->next->sname);

         printf("请输入修改后的性别:");

         scanf("%s",q->next->sex);

         printf("请输入修改后的年龄:");

         scanf("%d",&q->next->sage);

         printf("请输入修改后的电话:");

         scanf("%d",&q->next->stel);

         printf("请输入修改后的专业:");

         scanf("%s",q->next->szy);

         printf("*******************\n");

         return 1;

    }

    }

    else {printf("该学号不存在!\n");

         return -1 ;  }

}

int xiugai_shetuanList(shetuanList A,int x)

{

    shetuanList p,q;

    int a=x;

    p=A;

    q=(shetuanList)malloc(sizeof(shetuan));

    q= Locate_shetuanList(A,x);

    if(q)

    {

         if(q->next->shetuannumber==a)

    {

        printf("请输入修改后的社团编号:");

        scanf("%d",&q->next->shetuannumber);

        printf("请输入修改后的社团名称:");

        scanf("%s",q->next->shetuan);

         printf("请输入修改后的社团成立时间:");

         scanf("%s",q->next->begintime);

        /* printf("请输入修改后的年龄:");

         scanf("%d",&p->next->sage);

         printf("请输入修改后的电话:");

         scanf("%d",&p->next->stel);

         printf("请输入修改后的专业:");

         scanf("%s",p->next->szy);*/

        return 1;

    }

    }

        else

        {

            printf("该社团不存在!\n");

            return -1;

        }

    }

int xiugai_zhongjianList(zhongjianList O,int x)

{

    zhongjianList p,q;

    int a=x;

    p=O;

     q=(zhongjianList)malloc(sizeof(zhongjian));

    q= Locate_zhongjianList(O,x);

    if(q)

    {

         if(q->next->sno==a)

    {

        printf("请输入修改后的学生学号:");

        scanf("%d",&q->next->sno);

        printf("请输入修改后的社团编号:");

        scanf("%d",&q->next->shetuannumber);

         printf("请输入修改后的社团角色:");

         scanf("%s",q->next->role);

      printf("信息修改成功!\n");

         return 1;

    }

    }

    else

    {printf("该信息不存在!\n");

    return -1;}

}

int xiugai_zhongjianList2(zhongjianList O,int x) //根据学号修改学生在社团信息

{

    zhongjianList p,q;

    int a=x;

    int b=0;

    q=O;

    // p=(zhongjianList)malloc(sizeof(zhongjian));

   // p= Locate_zhongjianList(O,x);

    while(q->next)

    {

         if(q->next->sno==a)

    {

        b=1;

        // p= Locate_zhongjianList(O,q->next->sno);

             printf("学生学号:%d\n",q->next->sno);

             printf("社团编号:%d\n",q->next->shetuannumber);

             printf("社团角色:%s\n",q->next->role);

             printf("*********************************\n");

        printf("请输入修改后的学生学号:");

        scanf("%d",&q->next->sno);

        printf("请输入修改后的社团编号:");

        scanf("%d",&q->next->shetuannumber);

         printf("请输入修改后的社团角色:");

         scanf("%s",q->next->role);

      printf("信息修改成功!\n");

        // return 1;

    }

    q=q->next;

    }

    if(b==0)

    {//printf("该信息不存在!\n");

    return -1;}

    else return 1;

}

int xiugai_zhongjianList3(zhongjianList O,int x) //根据社团编号修改学生在社团信息

{

    zhongjianList p,q;

    int a=x;

    int b=0;

    q=O;

    // p=(zhongjianList)malloc(sizeof(zhongjian));

   // p= Locate_zhongjianList(O,x);

    while(q->next)

    {

         if(q->next->shetuannumber==a)

    {

        b=1;

        // p= Locate_zhongjianList(O,q->next->sno);

             printf("学生学号:%d\n",q->next->sno);

             printf("社团编号:%d\n",q->next->shetuannumber);

             printf("社团角色:%s\n",q->next->role);

             printf("*********************************\n");

        printf("请输入修改后的学生学号:");

        scanf("%d",&q->next->sno);

        printf("请输入修改后的社团编号:");

        scanf("%d",&q->next->shetuannumber);

         printf("请输入修改后的社团角色:");

         scanf("%s",q->next->role);

      printf("信息修改成功!\n");

        // return 1;

    }

    q=q->next;

    }

    if(b==0)

    {//printf("该信息不存在!\n");

    return -1;}

    else return 1;

}

int Delete_shetuanList(shetuanList A,int n)

{

    shetuanList p,s; //p要删结点的上一结点 s为删除结点

    p = Locate_shetuanList(A,n);

    if(p==NULL)

    {

       // printf("要删除的前一结点不存在\n");

        return -1;

    }

    else if(p!=NULL) //此处不能p-》next 当只有一个结点时 p-》next 就是NULL

        {

            if(p->next==NULL)

            {    s=p;

                free(s);

                return -1;

            }

            s = p->next; //s为要删除的结点 p为前一结点

            p->next = s->next;// 绕过s结点

            free(s);

            return 1;

        }

        else

        {

            printf("该结点不存在!\n");

            return 0;

        }

}

int Delete_zhongjianList(zhongjianList O,int n)

{

    zhongjianList p,s; //p要删结点的上一结点 s为删除结点

    p = Locate_zhongjianList(O,n);

    if(p==NULL)

    {

       // printf("要删除的前一结点不存在\n");

        return -1;

    }

    else if(p!=NULL) //此处不能p-》next 当只有一个结点时 p-》next 就是NULL

        {

            if(p->next==NULL)

            {    s=p;

                free(s);

                return -1;

            }

            s = p->next; //s为要删除的结点 p为前一结点

            p->next = s->next;// 绕过s结点

            free(s);

            return 1;

        }

        else

        {

            printf("该结点不存在!\n");

            return 0;

        }

}

int Delete_zhongjianList2(zhongjianList O,int n)//根据社团编号删除中间表学生在社团信息

{

    zhongjianList p,s; //p要删结点的上一结点 s为删除结点

    p = Locate_zhongjianList2(O,n);

    if(p==NULL)

    {

       // printf("要删除的前一结点不存在\n");

        return -1;

    }

    else if(p!=NULL) //此处不能p-》next 当只有一个结点时 p-》next 就是NULL

        {

            if(p->next==NULL)

            {    s=p;

                free(s);

                return -1;

            }

            s = p->next; //s为要删除的结点 p为前一结点

            p->next = s->next;// 绕过s结点

            free(s);

            return 1;

        }

        else

        {

            printf("该结点不存在!\n");

            return 0;

        }

}

int Delete_StuList(StuList L,int n)

{                                           //删除学号为n的学生的所有信息

    StuList p,s; //p要删结点的上一结点 s为删除结点

    p = Locate_StuList(L,n);

    if(p==NULL)

    {

      //  printf("要删除的前一结点不存在\n");

        return -1;

    }

    else if(p!=NULL) //此处不能p-》next 当只有一个结点时 p-》next 就是NULL

        {

            if(p->next==NULL)

            {    s=p;

                free(s);

                return -1;

            }

            s = p->next; //s为要删除的结点 p为前一结点

            p->next = s->next;// 绕过s结点

            free(s);

            return 1;

        }

        else

        {

            printf("该结点不存在!\n");

            return 0;

        }

}

/*void shurushetuan(shetuanList &L)   //输入社团属性

{

 //scanf("%s %d %d",L->shetuan,&L->len,&L->maxLen);

 printf("社团编号:");

 scanf("%d",&L->shetuannumber);

 printf("社团名称:");

 scanf("%s",L->shetuan);

 printf("成立时间:");

  scanf("%d",&L->begintime);

}*/

void chaxunsno(zhongjianList O,int x)

{

    zhongjianList p;

    int a=x;

    int b=0;

    p=O;

     //q=(zhongjianList)malloc(sizeof(zhongjian));

     while(p->next)

     {

         if(p->next->sno==a)

         {

             b=1;

             printf("学生学号:%d\n",p->next->sno);

             printf("社团编号:%d\n",p->next->shetuannumber);

             printf("社团角色:%s\n",p->next->role);

             printf("*********************************\n");

         }

         p=p->next;

     }

     if(b==0)

     {

         printf("该学生学号信息不存在!\n");

     }

}

void chaxunshetuannumber(zhongjianList O,int x)

{

    zhongjianList p;

    int a=x;

    p=O;

    int b=0;

     //q=(zhongjianList)malloc(sizeof(zhongjian));

     while(p->next)

     {

         if(p->next->shetuannumber==a)

         {

             b=1;

             printf("学生学号:%d\n",p->next->sno);

             printf("社团编号:%d\n",p->next->shetuannumber);

             printf("社团角色:%s\n",p->next->role);

             printf("*********************************\n");

         }

         p=p->next;

     }

     if (b==0)

     {

         printf("该社团编号不存在!\n");

     }

}

int main()

{

    int i; //i控制界面输出边框

    int y; //操作数n的实参

    char ans;//ans 用于询问是否要继续操作

    int Y; //查询学号寄存变量

    StuList L,L2=NULL,L3=NULL,L4=NULL;//结构体student类型指针 L2用于删除时确定删除前一结点

    L=(StuList)malloc(sizeof(Student));

    L->next=NULL;

    shetuanList A,B=NULL,C=NULL;

     A=(shetuanList)malloc(sizeof(shetuan));

     A->next=NULL;

    zhongjianList O,P=NULL;

    O=(zhongjianList)malloc(sizeof(zhongjian));

     O->next=NULL;

   // Read(L);

    int T; //用于检查是否为表为空

    do{

    printf("       \t"HEAD_1);

    printf("\t*\t\t\t学生社团管理系统\t\t\t*\n"); //要想对称显示可以通过前后符号要对称才可以!

    for(i=0;i<2;i++)

    {

        printf("       \t"BODY);

    }

    printf("                              1、学生综合信息查询浏览\n");

    printf("                              2、社团综合信息查询浏览\n");

    printf("                              3、学生在社团中的综合信息查询浏览\n");

    printf("                              0、退出管理程序\n");

    for(i=0;i<2;i++)

    {

        printf("       \t"BODY);

    }

    printf("       \t"FOOT_1);

    int j;//j菜单选择

    printf("请输入相应操作序号:\n");

    scanf("%d",&j);

    switch(j)

    {

        case 1:

               do{ printf("***********************************************************************\n");

                   printf("*                       1.打开学生数据文件                            *\n");

                   printf("*                       2.添加学生信息                                *\n");

                   printf("*                       3.删除学生信息                                *\n");

                   printf("*                       4.修改学生信息                                *\n");

                   printf("*                       5.查询学生信息                                *\n");

                   printf("*                       6.显示当前学生信息                            *\n");

                   printf("***********************************************************************\n");

                int k;

                printf("请输入相应操作序号:");

                scanf("%d",&k);

                switch(k)

                {

                    case 1: printf("当前文件信息为:\n");

                            if((L=Read(L))!=NULL)

                            {

                              Display_StuList(L);

                             }

                               printf("是否继续操作(Y/N)?\n");

                               scanf(" %c",&ans);

                                  break;

                    case 2:printf("请输入要添加学生个数:");

                                scanf("%d",&y);

                              Re_Creat_StuList(L,y);

                           //   printf("信息添加成功!\n");

                              printf("*******************\n");

                               printf("当前学生信息为:\n");

                                Display_StuList(L);

                                Save(L);

                                 printf("是否继续操作(Y/N)?\n");

                               scanf(" %c",&ans);

                                break;

                    case 3:printf("请输入要删除学生学号:");

                                 scanf("%d",&Y);

                               T = Delete_StuList(L,Y); //逆序

                               if(T == -1)

                              {

                              printf("当前信息为空!\n");

                              printf("是否继续操作(Y/N)?\n");

                               scanf(" %c",&ans);

                               break;

                               }

                               else if(T)

                               {

                                   Save(L);

                                   printf("正在为您查询并删除该学号在社团的相应信息.........\n");

                                   P=O;

                                 while(P)

                                 {

                                      T = Delete_zhongjianList(O,Y); //逆序

                                       if(T == -1)

                                   {

                                //  printf("当前学号在社团信息为空!\n");

                                  }

                                else if(T)

                                {

                                    Save3(O);

                                }

                                     P=P->next;

                                 }

                               }

                             printf("********************\n");

                             printf("删除后信息为:\n");

                               Display_StuList(L);

                            //  Save(L);

                               printf("是否继续操作(Y/N)?\n");

                                  scanf(" %c",&ans);

                              break;

                    case 4:printf("请输入要修改的学生学号:");

                            scanf("%d",&Y);

                                  T= xiugai_StuList(L,Y);

                                if(T == -1)

                               {

                                printf("当前信息为空!\n");

                                printf("是否继续操作(Y/N)?\n");

                                scanf(" %c",&ans);

                                   break;

                               }

                               else if(T)

                               {

                                   Save(L);

                                   printf("正在为您查找并修改该学号学生在社团信息.....\n");

                                       T = xiugai_zhongjianList2(O,Y); //逆序

                                       if(T == -1)

                                   {

                                      // P=P->next;

                                      //  printf("该编号社团信息为空!\n");

                                   }

                                   else if(T)

                                   {

                                      // P=P->next;

                                      Save3(O);

                                   }

                                   }

                           //  Display_StuList(L);

                            // Save(L);

                              printf("是否继续操作(Y/N)?\n");

                             scanf(" %c",&ans);

                             break;

                    case 5: printf("请输入要查询学生学号:");

                             scanf("%d",&Y);

                                Locate_StuList(L,Y);

                               printf("是否继续操作(Y/N)?\n");

                              scanf(" %c",&ans);

                              break;

                   case 6:   printf("当前学生信息为:\n");

                            Display_StuList(L);

                            printf("是否继续操作(Y/N)?\n");

                            scanf(" %c",&ans);

                            break;

                   default:printf("输入数据有误,请检查!\n");

                   }

               }while(ans=='Y'||ans=='y');

                        printf("是否返回主菜单操作(Y/N)?\n");

                      scanf(" %c",&ans);

                       break;

        case 2:do{ printf("***********************************************************************\n");

                   printf("*                       1.打开社团数据文件                            *\n");

                   printf("*                       2.添加社团信息                                *\n");

                   printf("*                       3.删除社团信息                                *\n");

                   printf("*                       4.修改社团信息                                *\n");

                   printf("*                       5.查询社团信息                                *\n");

                   printf("*                       6.显示当前社团信息                            *\n");

                   printf("***********************************************************************\n");

                int k;

                printf("请输入相应操作序号:");

                scanf("%d",&k);

                switch(k)

                {

                    case 1:printf("当前社团数据文件为:\n");

                           if((A=Read2(A))!=NULL)

                            Display_shetuanList(A);

                          printf("是否继续操作(Y/N)?\n");

                          scanf(" %c",&ans);

                                break;

                    case 2:printf("请输入要添加社团个数:");

                            scanf("%d",&y);

                                Re_Creat_shetuanList(A,y);

                                Save2(A);

                               //  printf("信息添加成功!\n");

                                printf("当前文件中社团信息为:\n");

                                printf("***************************\n");

                                Display_shetuanList(A);

                               // printf("信息添加成功!\n");

                                 printf("是否继续操作(Y/N)?\n");

                                scanf(" %c",&ans);

                                break;

                    case 3:printf("请输入要删除社团编号:");

                          scanf("%d",&Y);

                           // Locate_shetuanList(A,Y);

                          T = Delete_shetuanList(A,Y); //逆序

                             if(T == -1)

                             {

                              printf("当前信息为空!\n");

                              printf("是否继续操作(Y/N)?\n");

                               scanf(" %c",&ans);

                             break;

                             }

                             else if(T)

                                {

                                   printf("正在为您查询并删除相应学生在该社团的信息!\n");

                                   P=O;

                                  while (P)

                                  {

                                      T = Delete_zhongjianList2(O,Y); //逆序

                                       if(T == -1)

                                   {

                                //  printf("该编号社团信息为空!\n");

                                   }

                                   else if(T)

                                   {

                                       Save3(O);

                                   }

                                   P=P->next;

                                  }

                                }

                              printf("删除后文件中信息为:\n");

                              Display_shetuanList(A);

                              Save2(A);

                               printf("是否继续操作(Y/N)?\n");

                               scanf(" %c",&ans);

                               break;

                    case 4:printf("请输入要修改的社团编号:");

                            scanf("%d",&Y);

                            T= xiugai_shetuanList(A,Y);

                            if(T == -1)

                           {

                            printf("当前信息为空!\n");

                            printf("是否继续操作(Y/N)?\n");

                            scanf(" %c",&ans);

                            break;

                           }

                           else if(T)

                           {

                               Save2(A);

                                printf("正在为您查找并修改该社团编号在社团信息.....\n");

                                  T = xiugai_zhongjianList3(O,Y); //逆序

                                       if(T == -1)

                                   {

                                      // P=P->next;

                                      //  printf("该编号社团信息为空!\n");

                                   }

                                   else if(T)

                                   {

                                      // P=P->next;

                                      Save3(O);

                                   }

                           }

                         //  printf("该信息修改成功!\n");

                         //  printf("当前文件中社团信息为:\n");

                         //   Display_shetuanList(A);

                         //   Save2(A);

                            printf("是否继续操作(Y/N)?\n");

                            scanf(" %c",&ans);

                            break;

                    case 5:printf("请输入要查询社团编号:");

                          scanf("%d",&Y);

                          if(B)

                          {

                          Locate_shetuanList(B,Y);

                          printf("是否继续操作(Y/N)?\n");

                          scanf(" %c",&ans);

                          break;

                          }

                          Locate_shetuanList(A,Y);

                          printf("是否继续操作(Y/N)?\n");

                          scanf(" %c",&ans);

                          break;

                    case 6:printf("当前社团信息为:\n");

                           Display_shetuanList(A);

                           printf("是否继续操作(Y/N)?\n");

                           scanf(" %c",&ans);

                           break;

                    default:printf("输入错误,请检查!\n");

                          printf("是否继续操作(Y/N)?\n");

                           scanf(" %c",&ans);

                           break;

                           }

                    }  while(ans=='Y'||ans=='y');

                     printf("是否返回主菜单操作(Y/N)?\n");

                      scanf(" %c",&ans);

                       break;

          case 3:do{ printf("***********************************************************************\n");

                     printf("*                       1.打开学生在社团的数据文件                    *\n");

                     printf("*                       2.学生加入社团                                *\n");

                     printf("*                       3.学生退出社团                                *\n");

                     printf("*                       4.修改学生在社团信息                          *\n");

                     printf("*                       5.按学生学号查询学生在社团信息                *\n");

                     printf("*                       6.按社团编号查询学生在社团信息                *\n");

                     printf("*                       7.显示当前学生在社团信息                      *\n");

                     printf("***********************************************************************\n");

                int k;

                printf("请输入相应操作序号:");

                scanf("%d",&k);

               switch(k)

              {

                  case 1:printf("当前学生在社团中的信息为:\n");

                        if((O=Read3(O))!=NULL)

                        Display_zhongjianList(O);

                        printf("是否继续操作(Y/N)?\n");

                        scanf(" %c",&ans);

                        break;

                  case 2:printf("请输入要加入社团学生个数:");

                            scanf("%d",&y);

                                Re_Creat_zhongjianList(L,A,O,y);

                               //  printf("信息添加成功!\n");

                                printf("当前学生在社团中信息为:\n");

                                Display_zhongjianList(O);

                                Save3(O);

                                printf("是否继续操作(Y/N)?\n");

                                scanf(" %c",&ans);

                                break;

                  case 3:printf("请输入要退出社团学生的学生学号:");

                         scanf("%d",&Y);

                          P=O;

                                 while(P)

                                 {

                                      T = Delete_zhongjianList(O,Y); //逆序

                                       if(T == -1)

                                   {

                                //  printf("当前学号在社团信息为空!\n");

                                  }

                                else if(T)

                                {

                                    Save3(O);

                                }

                                     P=P->next;

                                 }

                        // Locate_zhongjianList(O,Y);

                       /*  T = Delete_zhongjianList(O,Y); //逆序

                          if(T == -1)

                        {

                        printf("当前信息为空!\n");

                        printf("是否继续操作(Y/N)?\n");

                        scanf(" %c",&ans);

                        break;

                        }

                        else if(T)

                        {

                             Save3(O);

                        }*/

                        printf("退出当前学生在社团信息为:\n");

                        Display_zhongjianList(O);

                        printf("是否继续操作(Y/N)?\n");

                        scanf(" %c",&ans);

                        break;

                 case 4: printf("请输入要修改的学生学号:");

                         scanf("%d",&Y);

                         T= xiugai_zhongjianList2(O,Y);

                         if(T == -1)

                       {

                        printf("当前信息为空!\n");

                        printf("是否继续操作(Y/N)?\n");

                        scanf(" %c",&ans);

                        break;

                        }

                          //Display_zhongjianList(O);

                          Save3(O);

                         printf("是否继续操作(Y/N)?\n");

                        scanf(" %c",&ans);

                        break;

                 case 5:

                        printf("请输入要查询学生学号:");

                         scanf("%d",&Y);

                        chaxunsno(O,Y);

                     // Locate_zhongjianList(O,Y);

                      printf("是否继续操作(Y/N)?\n");

                      scanf(" %c",&ans);

                      break;

                 case 6: printf("请输入要查询的社团编号:\n");

                         scanf("%d",&Y);

                         chaxunshetuannumber(O,Y);

                         // Locate_zhongjianList2(O,Y);

                      printf("是否继续操作(Y/N)?\n");

                      scanf(" %c",&ans);

                      break;

                 case 7:printf("当前学生在社团的信息为:\n");

                        Display_zhongjianList(O);

                        printf("是否继续操作(Y/N)?\n");

                        scanf(" %c",&ans);

                        break;

               default:printf("输入错误,请检查!\n");

              }

          }while(ans=='Y'||ans=='y');

           printf("是否返回主菜单操作(Y/N)?\n");

                      scanf(" %c",&ans);

                       break;

         case 0:    exit(0);

                break;

        default:printf("输入错误,请检查!\n");

    }

    }while(ans=='Y'||ans=='y');

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐