华中科技大学计算机学院C语言课设实验报告

时间:2024.3.31

华中科技大学计算机科学与技术学院

《C语言程序设计》课程设计

实验报告

题目: 科研项目信息管理系统

专业:        计算机        

        班级:                       

          学号:                       

        姓名:                       

        成绩:                       

         指导教师:         李开           

完成日期:  200910 20

科研项目信息管理系统

一、      系统功能结构模块图

二、      数据结构设计及其用法说明

typedef struct lakey{

char name[30];/*团队名称*/

int total;/*自然科学基金的科研项目数*/

float dudu;/*经费数*/

struct lakey *next;

}*plakey;/*统计3中用到的数据结构*/

typedef struct emmey{

char name[30];/*团队名称*/

int teacher;/*老师人数*/

int harden;/*项目数*/

float bizhi;/*比值*/

struct emmey *next;

}*pemmey;/*统计4中用到的数据结构*/

typedef struct kPro{

char code[15];/*项目编号*/

char  sort;/*项目种类*/

int       aking1;

char  time[8];/*项目时间*/

float dudu;/*项目经费*/

int       aking2;

char  beiler[15];/*负责人*/

int       aking3;

char  keynoName[30];/*所在团队名称*/

struct kPro *next;

}harden,*pHarden;

typedef struct Komo{

int teacher;/*老师人数*/

char name[20];/*院系名称*/

int student;/*学生人数*/

float bizhi;/*二者比值*/

struct Komo *next;

}*pKomo;/*统计1中用到的数据结构,统计结果放在这个数据结构中*/

typedef struct kTea{

char name[30];/*团队名称*/

char  beiler[15];/*负责人*/

int       stuNum;/*学生人数*/

int       aking2;

int       coco;/*老师人数*/

char  colName[20];/*所在院系的名称*/

int       aking1;

struct kTea  *next;

pHarden   child;

}keyno,*pKeyno;

typedef struct edward{

char name[20];/*院系名称*/

int totalnum;/*项目总数*/

int num973;/*973项目数*/

int num863;/*863项目数*/

float amount;/*经费数*/

struct edward *next;

}*pedward;/*统计2中用到的数据结构*/

typedef struct kCol{

char name[20];/*院系名称*/

int       aking;

char beiler[15];/*院系负责人*/

struct kCol   *next;

char call[15];/*负责人电话号码*/

pKeyno child;

}kekey,*pKekey;

三、      程序结构

 


                                                                                

四、      各模块的功能

1、pKekey Charge(pKekey alpha)/*这个函数将文件中的内容写入链表中*/

2、pKekey temption(int aking,int aking1,int aking2,pKekey item1,pKeyno item2,pHarden item3,pKekey alpha,int sort)/*这个函数用于向指定位置(aking)添加指定节点(item),alpha是头结点。sort控制3种添加类型*/

3、pKekey reserv(int aking1,int aking2,int aking3,pKekey alpha,int sort)/*删除指定位置的节点,sort控制删除的类型*/

4、pKekey tab(pKekey alpha)/*这个函数修改文本,使用时先将链表中的对象修改掉,再调用这个函数将文本库中的内容修改掉*/

5、pKekey seamood(char *boss,char *name,pKekey alphaer,pKekey result,int sort)/*查询,sort为1表示利用院系负责人来查询,输入:char *boss,pKekey alphaer,pKekey result,int sort,sort为2表示用院系名的一部分来查询,输入:char *name,pKekey alphaer,pKekey result,int sort*/

6、pKeyno foward (char *name,int num,pKekey alphaer,pKeyno result,int sort)/*查询,sort为1表示利用团队名称查询,输入:char *name,pKekey alphaer,pKeyno result,int sort,sort为2表示利用教师人数查询,输入:nt num,pKekey alphaer,pKeyno result,int sort*/

7、pHarden codyssed (char *code,pKekey alphaer,pHarden result,int sort)/*查询,sort 为1表示由序列号查,此时code表示序列号,sort为2表示由名字来查,此时code表示名字*/

8、void  awesome(pKekey alpha,pKomo *result1,pedward *result2,plakey *result3,pemmey *result4,char *year,int sort)/*统计:sort取1,2,3,4时分别按课设是上的要求统计,其中year在2时输入*/

五、  试验结果

1、     主菜单页面

1.jpg

2、     数据处理之输入

2.jpg

3、     查询功能

3.jpg

4、     统计功能

4.jpg

六、  体会

这是我第一次做这么大型的且比较复杂的一个C程序,从暑假开始边看书边慢慢尝试到如今全部做出来花费了许多时间与精力。

以前接触到的C程序设计都是最简单、最基本的编程,就连最后的期末考试也只是一些小程序,并不像课程设计这样庞大复杂。小程序是考察我们对基本概念的熟识,而这种大程序则是考察了我们对整体构架的设计以及各种小程序的拼接,看似不难,实则会遇到许多意想不到的困难,当然,这过程当中我学到了许多。

刚开始接到任务书的时候我感到无从下手,知道应该注重链表但是仍旧无法从整体上设计出这个程序,后来经过网上的搜索资料以及和其他同学的讨论,对这个科研项目信息管理系统进行一些列分块,拆成几个部分,然后再逐个突破,这样显得有条理且方便。

接下来是真正开始动手写程序,随之而来的是一些列的问题,其中最困扰我的是十字链表,过去我们使用的一般是单向链表,虽然在此基础上建立十字链表并不困难,但是如何保存则成了一个难题,后来经过对书本的钻研解决了次问题,从中我更加了解各种文件操作函数的用法。

在所有内核做好之后,接下来就是界面的问题,最开始的时候我考虑做图形界面,但是由于时间比较紧迫,不得不放弃,只好做了一个简易菜单,菜单设计容易,可是将界面和程序内核结合起来却又是一个难题。最后将这些函数和文件组合在一起后,终于形成了一个完整的可以运行的系统。

由于我只是C语言初学者,虽然啃过书本,但是仍能力有限,所以界面不够漂亮,有些功能也不够完善,但是我能够做出一个可以正确运行的科研项目信息管理系统已是很有成就感,尽管它不完善。

这次课程设计,巩固了我的C语言的知识,锻炼了我的动手能力,让我在这一方面有了进一步的提升。

其实,让我感触最深刻的是,学好C语言,不仅仅在于啃光书本上的知识,考试能得高分,最重要的是实践!俗语云:实践出真知。只有动手了才会更快发现自己的错误,以便于及时改正,才能更快的提升自己的能力,纸上谈兵终究只是一段段空话,毫无实际意义!

当然,不仅仅是在学习这一门语言方面有了认知,在其他方面也有了一些认识,最大的收获是写课设让我更加细心,我往往由于一个符号的错误导致程序无法运行,所以,注重细节是非常重要的。

最后,我觉得,其实C语言和其他中文、英语、日语等语言一样,虽然是由一些枯燥的字母字符组成,但是经过我们人为的设计排列,可以组成精美的东西,就像各国都有文学名作一样,C语言亦可以写出庞大复杂实用的程序系统,便于大家使用!

七、  参考文献

《C语言程序设计》 李开 曹计昌 卢萍 著 科学出版社

《C语言程序设计(第二版)》  谭浩强 著 清华大学出版社

附录

#include "string.h"

#include "stdio.h"

#include "stdlib.h"

#include "conio.h"

typedef struct kNod{

char c;

struct kNod *next;

}kame,*pKame;/*辅助性数据结构*/

typedef struct lakey{

char name[30];/*团队名称*/

int total;/*自然科学基金的科研项目数*/

float dudu;/*经费数*/

struct lakey *next;

}*plakey;/*统计3中用到的数据结构*/

typedef struct emmey{

char name[30];/*团队名称*/

int teacher;/*老师人数*/

int harden;/*项目数*/

float bizhi;/*比值*/

struct emmey *next;

}*pemmey;/*统计4中用到的数据结构*/

typedef struct kPro{

char    code[15];/*项目编号*/

char    sort;/*项目种类*/

int         aking1;

char    time[8];/*项目时间*/

float   dudu;/*项目经费*/

int         aking2;

char    beiler[15];/*负责人*/

int         aking3;

char    keynoName[30];/*所在团队名称*/

struct kPro     *next;

}harden,*pHarden;

typedef struct Komo{

int teacher;/*老师人数*/

char name[20];/*院系名称*/

int student;/*学生人数*/

float bizhi;/*二者比值*/

struct Komo *next;

}*pKomo;/*统计1中用到的数据结构,统计结果放在这个数据结构中*/

typedef struct kTea{

char    name[30];/*团队名称*/

char    beiler[15];/*负责人*/

int     stuNum;/*学生人数*/

int         aking2;

int         coco;/*老师人数*/

char     colName[20];/*所在院系的名称*/

int         aking1;

struct kTea *next;

pHarden child;

}keyno,*pKeyno;

typedef struct edward{

char name[20];/*院系名称*/

int totalnum;/*项目总数*/

int num973;/*973项目数*/

int num863;/*863项目数*/

float amount;/*经费数*/

struct edward *next;

}*pedward;/*统计2中用到的数据结构*/

typedef struct kCol{

char    name[20];/*院系名称*/

int         aking;

char    beiler[15];/*院系负责人*/

struct  kCol    *next;

char    call[15];/*负责人电话号码*/

pKeyno  child;

}kekey,*pKekey;

FILE* orgive(FILE *in,pKekey pointer1,pKeyno pointer2,pHarden pointer3,int sort)

{

    int c,i=0;

    if(sort==1)

    {

    while((c=fgetc(in))!=';')

    {

        pointer1->name[i]=c;

        i++;

    }

    for(;i<20;i++)

        pointer1->name[i]='\0';

    i=0;

    while((c=fgetc(in))!=';')

    {

        pointer1->beiler[i]=c;

        i++;

    }

    for(;i<15;i++)

        pointer1->beiler[i]='\0';

    i=0;

    while((c=fgetc(in))!=';')

    {

        pointer1->call[i]=c;

        i++;

    }

    for(;i<15;i++)

        pointer1->call[i]='\0';

    }

    else if(sort==2)

    {

    while((c=fgetc(in))!=';')

    {

        pointer2->name[i]=c;

        i++;

    }

    for(;i<30;i++)

        pointer2->name[i]='\0';

   

    i=0;

    while((c=fgetc(in))!=';')

    {

        pointer2->beiler[i]=c;

        i++;

    }

    for(;i<15;i++)

        pointer2->beiler[i]='\0';

    i=0;

    pointer2->coco=0;

    c=fgetc(in);

    while(c!=';'&&c!='-')

    {

        pointer2->coco=pointer2->coco*10+c-'0';

        c=fgetc(in);

    }

    if(c=='-')

    {

        fgetc(in);

        fgetc(in);

        pointer2->coco=-1;

    }

    pointer2->stuNum=0;

    c=fgetc(in);

    while(c!=';'&&c!='-')

    {

        pointer2->stuNum=pointer2->stuNum*10+c-'0';

        c=fgetc(in);

    }

    if(c=='-')

    {

        fgetc(in);

        fgetc(in);

        pointer2->stuNum=-1;

    }

    while((c=fgetc(in))!=';')

    {

        pointer2->colName[i]=c;

        i++;

    }

    for(;i<20;i++)

        pointer2->colName[i]='\0'; 

    }

    else if(sort==3)

    {

    while((c=fgetc(in))!=';')

    {

        pointer3->code[i]=c;

        i++;

    }

    for(;i<15;i++)

        pointer3->code[i]='\0';

    pointer3->sort=fgetc(in);

    fgetc(in);

    i=0;

    while((c=fgetc(in))!=';')

    {

        pointer3->time[i]=c;

        i++;

    }

    for(;i<8;i++)

        pointer3->time[i]='\0';

    {

        int k=-1;

        c=fgetc(in);

        i=0;

        pointer3->dudu=0;

        if(c!='-')

        {

            while(c!=';')

            {

                if(c!='.')

                    pointer3->dudu=pointer3->dudu*10+c-'0';

                else

                    i=1;

                if(i)

                    k++;

                c=fgetc(in);

            }

            while(k&&i)

            {

                pointer3->dudu/=10;

                k--;

            }

        }

        else

        {

            pointer3->dudu=-1;

            fgetc(in);

            fgetc(in);

            fgetc(in);

            fgetc(in);

        }

    }

    i=0;

    while((c=fgetc(in))!=';')

    {

        pointer3->beiler[i]=c;

        i++;

    }

    for(;i<15;i++)

        pointer3->beiler[i]='\0';

    i=0;

    while((c=fgetc(in))!=';')

    {

        pointer3->keynoName[i]=c;

        i++;

    }

    for(;i<30;i++)

        pointer3->keynoName[i]='\0';   

    }

    return in;

}

pKekey Charge(pKekey alpha)/*将文件中的内容写入链表中*/

{

    int position[3]={0,0,0};

    int input;

    pKekey colCurrent,colPre;

    FILE *in=fopen("py.txt","r");

    if(in==NULL)

    {

        printf("Open Error!"); 

        getchar();

        exit(-1);

    }

   

    alpha=NULL;

    fgetc(in);

    while((input=fgetc(in))!=')')

    {

    pKeyno teaCurrent,teaPre;

    colCurrent=(pKekey)malloc(sizeof(struct kCol));

    colCurrent->next=NULL;

    colCurrent->child=NULL;

    if(position[0]==0)

        alpha=colCurrent;

    else

        colPre->next=colCurrent;

    position[0]++;

    in=orgive(in,colCurrent,NULL,NULL,1);

    colCurrent->aking=position[0];     

    position[1]=0;

    while((input=fgetc(in))!='}')

    {

    pHarden proCurrent,proPre;

    teaCurrent=(pKeyno)malloc(sizeof(struct kTea));

    teaCurrent->next=NULL;

    teaCurrent->child=NULL;

    in=orgive(in,NULL,teaCurrent,NULL,2);

    if(position[1]==0)

        colCurrent->child=teaCurrent;

    else

        teaPre->next=teaCurrent;

    position[1]++;

    teaCurrent->aking1=colCurrent->aking;

    teaCurrent->aking2=position[1];

    position[2]=0;

    while((input=fgetc(in))!=']')

    {

    proCurrent=(pHarden)malloc(sizeof(struct kPro));

    proCurrent->next=NULL;

    in=orgive(in,NULL,NULL,proCurrent,3);

    if(position[2]==0)

        teaCurrent->child=proCurrent;

    else

        proPre->next=proCurrent;

    position[2]++;

    proCurrent->aking1=colCurrent->aking;

    proCurrent->aking2=teaCurrent->aking2;

    proCurrent->aking3=position[2];

    proPre=proCurrent;

    fgetc(in);

    }

    teaPre=teaCurrent;

    }

    colPre=colCurrent;

    }

    fclose(in);

    return alpha;

}

pKekey temption(int aking,int aking1,int aking2,pKekey item1,pKeyno item2,pHarden item3,pKekey alpha,int sort)/*这个函数用于向指定位置(aking)添加指定节点(item),alpha是头结点。sort控制3种添加类型*/

{

    FILE *in;

    if(sort==1)

    {

    pKame cody,alphaer,annie;

    int num=1;

    pKekey anniefir=alpha;

    alphaer=(pKame)malloc(sizeof(struct kNod));

    annie=alphaer;

    if((in=fopen("py.txt","r"))==NULL)

    {

    printf("Open error!");

    getchar();

    exit(-1);

    }

    annie->c=fgetc(in);

    annie->next=(pKame)malloc(sizeof(struct kNod));

    annie=annie->next;

    if((annie->c=fgetc(in))=='{')

    {

    while(annie->c!=')')

    {

    annie->next=(pKame)malloc(sizeof(struct kNod));

    annie=annie->next;

    if((annie->c=fgetc(in))=='{')

        anniefir=anniefir->next;

       

    }

    }

    {

    char str[60];

    int i;

    sprintf(str,"{%s;%s;%s;}",item1->name,item1->beiler,item1->call);

    for(i=0;str[i];i++)

    {

    annie->c=str[i];

    annie->next=(pKame)malloc(sizeof(struct kNod));

    annie=annie->next;

    }

    }

    annie->c=')';

    fclose(in);

    annie=alphaer;

    if((in=fopen("py.txt","w"))==NULL)

    {

    printf("Open error!");

    getchar();

    exit(-1);

    }

    while(annie->c!=')')

    {

    cody=annie;

    fputc(annie->c,in);

    annie=annie->next;

    free(cody);

    }

    fputc(annie->c,in);

    free(annie);

    fclose(in);

    anniefir->next=item1;

    item1->aking=anniefir->aking+1;

    }

    else if(sort==2)

    {

    int nHelp;

    pKeyno annieTea;

    pKame anniedir,alphaer,cody;

    pKekey annie=alpha;

    alphaer=(pKame)malloc(sizeof(struct kNod));

    anniedir=alphaer;

    nHelp=aking;

    if(annie==NULL)

    {

    printf("Wrong Kekey!");

    getchar();

    free(alphaer);

    return alpha;

    }

    while(nHelp>1)

    {

    annie=annie->next;

    nHelp--;

    if(annie==NULL)

    {

    printf("Wrong Kekey!");

    getchar();

    free(alphaer);

    return alpha;

    }

    }

   

    sprintf(item2->colName , annie->name);

    annieTea=annie->child;

    nHelp=aking;

    in=fopen("py.txt","r");

    if(in==NULL)

    {

    printf("Open Error!"); 

    getchar();

    exit(-1);

    }

    while(nHelp>0)

    {

    if((anniedir->c=fgetc(in))=='{')

        nHelp--;

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    {

    int k=0;

    while((anniedir->c=fgetc(in))!='}')

    {

    if(anniedir->c=='['&&k)

    {

    k=1;   

    annieTea=annieTea->next;

    }

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    }

    {

    char str[85];

    char strTeach[4];

    char strStu[5];

    int i;

    sprintf(str,"[%s;%s;%s;%s;%s;]",item2->name,item2->beiler,itoa(item2->coco,strTeach,10),itoa(item2->stuNum,strStu,10),item2->colName);

    for(i=0;str[i];i++)

    {

    anniedir->c=str[i];

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    anniedir->c='}';

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    while((anniedir->c=fgetc(in))!=')')

    {

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    fclose(in);

   

    anniedir=alphaer;

    if((in=fopen("py.txt","w"))==NULL)

    {

    printf("Open error!");

    getchar();

    exit(-1);

    }

    while(anniedir->c!=')')

    {

    cody=anniedir;

    fputc(anniedir->c,in);

    anniedir=anniedir->next;

    free(cody);

    }

    fputc(anniedir->c,in);

    free(anniedir);

    fclose(in);

   

    if(annieTea==NULL)

    {

    annie->child=item2;

    item2->aking1=annie->aking;

    item2->aking2=1;

    }

    else

    {

    annieTea->next=item2;

    item2->aking1=annieTea->aking1;

    item2->aking2=annieTea->aking2+1;

    }  

    }

    else if(sort==3)

    {

    int nHelpx,nHelpy;

    pKeyno annieTea;

    pKame anniedir,alphaer,cody;

    pHarden anniePro;

    pKekey annie=alpha;

    annieTea=(pKeyno)annie->child;

    alphaer=(pKame)malloc(sizeof(struct kNod));

    anniedir=alphaer;

    nHelpx=aking1;

    while(nHelpx>1)

    {

    annie=annie->next;

    nHelpx--;

    if(annie==NULL)

    {

    printf("Wrong Kekey!");

    getchar();

    free(alphaer);

    return alpha;

    }

    }

    nHelpy=aking2;

    annieTea=annie->child;

    if(annieTea==NULL)

    {

    printf("Wrong Keyno!");

    free(alphaer);

    return alpha;

    }

    while(nHelpy>1)

    {

    annieTea=annieTea->next;

    nHelpy--;

    if(annieTea==NULL)

    {

    printf("Wrong Keyno!");

    free(alphaer);

    return alpha;

    }

    }

    nHelpx=aking1;

    in=fopen("py.txt","r");

    if(in==NULL)

    {

    printf("Open Error!"); 

    getchar();

    exit(-1);

    }

    while(nHelpx>0)

    {

    if((anniedir->c=fgetc(in))=='{')

        nHelpx--;

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    nHelpy=aking2;

    while(nHelpy>0)

    {

    if((anniedir->c=fgetc(in))=='[')

        nHelpy--;

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    sprintf(item3->keynoName , annieTea->name );

   

    anniePro=annieTea->child;

    {

    int k=0;

    while((anniedir->c=fgetc(in))!=']')

    {

    if(anniedir->c=='<'&&k)

    {

    k=1;   

    anniePro=anniePro->next;

    }

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    }

   

    {

    char str[90];

    char strOut[11];

    int i;

    sprintf(str,"<%s;%c;%s;%s;%s;%s;>",item3->code,item3->sort,item3->time,strcat(gcvt(item3->dudu,7,strOut),"0"),item3->beiler,item3->keynoName);

    for(i=0;str[i];i++)

    {

        anniedir->c=str[i];

        anniedir->next=(pKame)malloc(sizeof(struct kNod));

        anniedir=anniedir->next;

    }

    anniedir->c=']';

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    while((anniedir->c=fgetc(in))!=')')

    {

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    fclose(in);

    anniedir=alphaer;

    if((in=fopen("py.txt","w"))==NULL)

    {

    printf("Open error!");

    getchar();

    exit(-1);

    }

    while(anniedir->c!=')')

    {

    cody=anniedir;

    fputc(anniedir->c,in);

    anniedir=anniedir->next;

    free(cody);

    }

    fputc(anniedir->c,in);

    free(anniedir);

    fclose(in);

    if(anniePro==NULL)

    {

    annieTea->child=item3;

    item3->aking1=annieTea->aking1;

    item3->aking2=annieTea->aking2;

    item3->aking3=1;

    }

    else

    {

    anniePro->next=item3;

    item3->aking1=anniePro->aking1;

    item3->aking2=anniePro->aking2;

    item3->aking3=anniePro->aking3+1;

    }

    }

    return alpha;

}

pKekey reserv(int aking1,int aking2,int aking3,pKekey alpha,int sort)/*删除指定位置的节点,sort控制删除的类型*/

{

    FILE *in;

    if(sort==1)

    {

    int nHelp;

    pKeyno annieTea,codyTea;

    pHarden  anniePro,codyPro;

    pKame anniedir,alphaer,codydir;

    pKekey cody,annie=alpha;

    cody=NULL;

    alphaer=(pKame)malloc(sizeof(struct kNod));

    anniedir=alphaer;

    nHelp=aking1;

    if(annie==NULL)

    {

    printf("Wrong Kekey!");

    getchar();

    free(alphaer);

    return alpha;

    }

    while(nHelp>1)

    {

    cody=annie;

    annie=annie->next;

    nHelp--;

    if(annie==NULL)

    {

    printf("Wrong Kekey!");

    getchar();

    free(alphaer);

    return alpha;

    }

    }

    codyTea=annie->child;

    annie->child=NULL;

    while(codyTea)

    {

    codyPro=codyTea->child;

    codyTea->child=NULL;

    while(codyPro)

    {

    anniePro=codyPro->next;

    free(codyPro);

    codyPro=anniePro;

    }

    annieTea=codyTea->next;

    free(codyTea);

    codyTea=annieTea;

    }

    if(cody==NULL)

    {

    alpha=annie->next;

    nHelp=1;

    }

    else

    {

    cody->next=annie->next;

    nHelp=cody->aking+1;

    }

    free(annie);

    annie=cody->next;

    while(annie)

    {

    annie->aking--;

    annie=annie->next;

    }

    if((in=fopen("py.txt","r"))==NULL)

    {

    printf("Open error!");

    getchar();

    exit(-1);

    }

    while((anniedir->c=fgetc(in))!=')')

    {

    if(anniedir->c=='{')

        nHelp--;

    if(nHelp!=0)

    {

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    }

    fclose(in);

    if((in=fopen("py.txt","w"))==NULL)

    {

    printf("Open error!");

    getchar();

    exit(-1);

    }

    codydir=alphaer;

    anniedir=codydir->next;

    while(codydir->c!=')')

    {

    fputc(codydir->c,in);

    free(codydir);

    codydir=anniedir;

    anniedir=codydir->next;

    }

    fputc(codydir->c,in);

    free(codydir);

    fclose(in);

    }

    else if(sort==2)

    {

    int nHelpx,nHelpy;

    pKeyno annieTea,codyTea;

    pHarden  anniePro,codyPro;

    pKame anniedir,alphaer,codydir;

    pKekey annie=alpha;

    alphaer=(pKame)malloc(sizeof(struct kNod));

    anniedir=alphaer;

    nHelpx=aking1;

    if(annie==NULL)

    {

    printf("Wrong Kekey!");

    getchar();

    free(alphaer);

    return alpha;

    }

    while(nHelpx>1)

    {

    annie=annie->next;

    nHelpx--;

    if(annie==NULL)

    {

    printf("Wrong Kekey!");

    getchar();

    free(alphaer);

    return alpha;

    }

    }

   

    nHelpy=aking2;

    annieTea=annie->child;

    if(annieTea==NULL)

    {

    printf("Wrong Keyno!");

    getchar();

    free(alphaer);

    return alpha;

    }

    while(nHelpy>1)

    {

    codyTea=annieTea;

    annieTea=annieTea->next;

    nHelpy--;

    if(annieTea==NULL)

    {

    printf("Wrong Keyno!");

    getchar();

    free(alphaer);

    return alpha;

    }

    }

   

    anniePro=annieTea->child;

    annieTea->child=NULL;

    while(anniePro!=NULL)

    {

    codyPro=anniePro;

    anniePro=codyPro->next;

    free(codyPro);

    }

    if(aking2==1)

    {

    annie->child=annieTea->next;

    annieTea=annie->child;

    }

    else

    {

    codyTea->next=annieTea->next;

    annieTea=codyTea->next;

    }

    free(annieTea);

   

    while(annieTea)

    {

    annieTea->aking2--;

    annieTea=annieTea->next;

    }

    nHelpx=aking1;

    nHelpy=aking2;

    if((in=fopen("py.txt","r"))==NULL)

    {

    printf("Open error!");

    getchar();

    exit(-1);

    }

    while((anniedir->c=fgetc(in))!=')')

    {

    if(anniedir->c=='{')

        nHelpx--;

    if(nHelpx!=0)

    {

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    else

    {

    if(anniedir->c=='['||anniedir->c=='}')

        nHelpy--;

    if(nHelpy!=0)

    {

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    }

    }

    fclose(in);

    if((in=fopen("py.txt","w"))==NULL)

    {

    printf("Open error!");

    getchar();

    exit(-1);

    }

    codydir=alphaer;

    anniedir=codydir->next;

    while(codydir->c!=')')

    {

    fputc(codydir->c,in);

    free(codydir);

    codydir=anniedir;

    anniedir=codydir->next;

    }

    fputc(codydir->c,in);

    free(codydir);

    fclose(in);

    }

   

    else if(sort==3)

    {

    int nHelpx,nHelpy,nHelpz;

    pKeyno annieTea,codyTea;

    pHarden  anniePro,codyPro;

    pKame anniedir,alphaer,codydir;

    pKekey annie=alpha;

    alphaer=(pKame)malloc(sizeof(struct kNod));

    anniedir=alphaer;

    nHelpx=aking1;

    if(annie==NULL)

    {

    printf("Wrong Kekey!");

    getchar();

    free(alphaer);

    return alpha;

    }

    while(nHelpx>1)

    {

    annie=annie->next;

    nHelpx--;

    if(annie==NULL)

    {

    printf("Wrong Kekey!");

    getchar();

    free(alphaer);

    return alpha;

    }

    }

   

    nHelpy=aking2;

    annieTea=annie->child;

    if(annieTea==NULL)

    {

    printf("Wrong Keyno!");

    getchar();

    free(alphaer);

    return alpha;

    }

    while(nHelpy>1)

    {

    codyTea=annieTea;

    annieTea=annieTea->next;

    nHelpy--;

    if(annieTea==NULL)

    {

    printf("Wrong Keyno!");

    getchar();

    free(alphaer);

    return alpha;

    }

    }

    nHelpz=aking3;

    anniePro=annieTea->child;

    if(anniePro==NULL)

    {

    printf("Wrong Harden!");

    getchar();

    free(alphaer);

    return alpha;

    }

    while(nHelpz>1)

    {

    codyPro=anniePro;

    anniePro=codyPro->next;

    nHelpz--;

    if(anniePro==NULL)

    {

    printf("Wrong Harden!");

    getchar();

    free(alphaer);

    return alpha;

    }

    }

    if(aking3==1)

    {

    annieTea->child=anniePro->next;

    anniePro=annieTea->child;

    }

    else

    {

    codyPro->next=anniePro->next;

    anniePro=codyPro->next;

    }

    while(anniePro)

    {

    anniePro->aking3--;

    anniePro=anniePro->next;

    }

    nHelpx=aking1;

    nHelpy=aking2;

    nHelpz=aking3;

    if((in=fopen("py.txt","r"))==NULL)

    {

    printf("Open error!");

    getchar();

    exit(-1);

    }

    while((anniedir->c=fgetc(in))!=')')

    {

    if(anniedir->c=='{')

        nHelpx--;

    if(nHelpx!=0)

    {

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    else

    {

    if(anniedir->c=='['||anniedir->c=='}')

        nHelpy--;

    if(nHelpy!=0)

    {

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    else

    {

    if(anniedir->c=='<'||anniedir->c==']')

        nHelpz--;

    if(nHelpz!=0)

    {

    anniedir->next=(pKame)malloc(sizeof(struct kNod));

    anniedir=anniedir->next;

    }

    }

    }

    }

    fclose(in);

    if((in=fopen("py.txt","w"))==NULL)

    {

    printf("Open error!");

    getchar();

    exit(-1);

    }

    codydir=alphaer;

    anniedir=codydir->next;

    while(codydir->c!=')')

    {

    fputc(codydir->c,in);

    free(codydir);

    codydir=anniedir;

    anniedir=codydir->next;

    }

    fputc(codydir->c,in);

    free(codydir);

    fclose(in);

    }

    return alpha;

}

pKekey tab(pKekey alpha)/*这个函数修改文本,使用时先将链表中的对象修改掉,再调用这个函数将文本库中的内容修改掉*/

{

    FILE *in;

    pKeyno annieTea;

    pHarden  anniePro;

    pKekey annie=alpha;

    if((in=fopen("py.txt","w"))==NULL)

    {

        printf("Open error!");

        getchar();

        exit(-1);

    }

   

    fputc('(',in);

    while(annie)

    {

        char str_col[53];

        sprintf(str_col,"{%s,%s,%s,",annie->name,annie->beiler,annie->call);

        fputs(str_col,in);

        annieTea=annie->child;

        while(annieTea)

        {

            char str_tea[85];

            char strTeach[4];

            char strStu[5];

            sprintf(str_tea,"[%s,%s,%s,%s,%s,",annieTea->name,annieTea->beiler,itoa(annieTea->coco,strTeach,10),itoa(annieTea->stuNum,strStu,10),annieTea->colName);

            fputs(str_tea,in);

            anniePro=annieTea->child;

            while(anniePro)

            {

                char str_pro[90];

                char strOut[11];

                sprintf(str_pro,"<%s,%c,%s,%s,%s,%s,>",anniePro->code,anniePro->sort,anniePro->time,strcat(gcvt(anniePro->dudu,7,strOut),"0"),anniePro->beiler,anniePro->keynoName);

                fputs(str_pro,in);

                anniePro=anniePro->next;

            }

            fputc(']',in);

            annieTea=annieTea->next;

        }

        fputc('}',in);

        annie=annie->next;

    }

    fputc(')',in);

   

    fclose(in);

    return alpha;

}

/**************************************

*查询

**************************************/

int easic (char *S,char *T)

{

    int n,m,j=0;

    m=strlen(S);

    n=strlen(T);

    while(S[j])

    {

    int i=0;

    while(T[i]==S[j+i]&&T[i])

    {

    i++;   

    }

    if(i>=n)

        return 1;

    j++;

    }

   

    return 0;

}      

pKekey seamood(char *boss,char *name,pKekey alphaer,pKekey result,int sort)/*查询,sort为1表示利用院系负责人来查询,输入:char *boss,pKekey alphaer,pKekey result,int sort,sort为2表示用院系名的一部分来查询,输入:char *name,pKekey alphaer,pKekey result,int sort*/

{

    int i=0;

    pKekey cody,annieCol,annie=alphaer;

    result=NULL;

    if(sort==1)

    {

    while(annie!=NULL)

    {

    if(!strcmp(boss,annie->beiler))

    {

    annieCol=(pKekey)malloc(sizeof(struct kCol));

    if(!i)

    {

    result=annieCol;

    annieCol->aking=1;

    }

    else

    {

    cody->next=annieCol;

    annieCol->aking=cody->aking+1;

    }

    i++;

    sprintf(annieCol->name,annie->name);

    sprintf(annieCol->beiler,annie->beiler);

    sprintf(annieCol->call,annie->call);

    cody=annieCol;

    cody->next=NULL;

    cody->child=NULL;

    }

    annie=annie->next;

    }  

    }

    else if(sort==2)

    {

    while(annie!=NULL)

    {

    if(easic(annie->name,name))

    {

    annieCol=(pKekey)malloc(sizeof(struct kCol));

    if(!i)

    {

    result=annieCol;

    annieCol->aking=1;

    }

    else

    {

    cody->next=annieCol;

    annieCol->aking=cody->aking+1;

    }

    i++;

    sprintf(annieCol->name,annie->name);

    sprintf(annieCol->beiler,annie->beiler);

    sprintf(annieCol->call,annie->call);

    cody=annieCol;

    cody->next=NULL;

    cody->child=NULL;

    }

    annie=annie->next;

    }

    }

    return result;

}

pKeyno foward (char *name,int num,pKekey alphaer,pKeyno result,int sort)/*查询,sort为1表示利用团队名称查询,输入:char *name,pKekey alphaer,pKeyno result,int sort,sort为2表示利用教师人数查询,输入:nt num,pKekey alphaer,pKeyno result,int sort*/

{

    int i=0;

    pKeyno annieTea,cody,now;

    pKekey annie=alphaer;

    result=NULL;

    if(sort==1)

    {

    while(annie!=NULL)

    {

    annieTea=annie->child;

    while(annieTea)

    {

    if(easic(annieTea->name,name))

    {

    now=(pKeyno)malloc(sizeof(struct kTea));

    if(!i)

    {

    result=now;

    now->aking2=1;

    }

    else

    {

    cody->next=now;

    now->aking2=cody->aking2+1;

    }

    i++;

    sprintf(now->name,annieTea->name);

    sprintf(now->beiler,annieTea->beiler);

    sprintf(now->colName,annieTea->colName);

    now->aking1=0;

    now->stuNum=annieTea->stuNum;

    now->coco=annieTea->coco;

    cody=now;

    cody->next=NULL;

    cody->child=NULL;

    }

    annieTea=annieTea->next;

    }

    annie=annie->next;

    }

    }

    else if(sort==2)

    {

    while(annie!=NULL)

    {

    annieTea=annie->child;

    while(annieTea)

    {

    if(num<annieTea->coco)

    {

    now=(pKeyno)malloc(sizeof(struct kTea));

    if(!i)

    {

    result=now;

    now->aking2=1;

    }

    else

    {

    cody->next=now;

    now->aking2=cody->aking2+1;

    }

    i++;

    sprintf(now->name,annieTea->name);

    sprintf(now->beiler,annieTea->beiler);

    sprintf(now->colName,annieTea->colName);

    now->aking1=0;

    now->stuNum=annieTea->stuNum;

    now->coco=annieTea->coco;

    cody=now;

    cody->next=NULL;

    cody->child=NULL;

    }

    annieTea=annieTea->next;

    }

    annie=annie->next;

    }  

    }

    return result;

}

pHarden codyssed (char *code,pKekey alphaer,pHarden result,int sort)/*查询,sort 为1表示由序列号查,此时code表示序列号,sort为2表示由名字来查,此时code表示名字*/

{

    int i=0;

    pKeyno annieTea;

    pHarden cody,now,anniePro;

    pKekey annie=alphaer;

    result=NULL;

    if(sort==1)

    {

    while(annie!=NULL)

    {

    annieTea=annie->child;

    while(annieTea)

    {

    anniePro=annieTea->child;

    while(anniePro!=NULL)

    {

    if(!strcmp(code,anniePro->code))

    {

    now=(pHarden)malloc(sizeof(struct kPro));

    if(!i)

    {

    result=now;

    now->aking3=1;

    }

    else

    {

    cody->next=now;

    now->aking3=cody->aking3+1;

    }

    i++;

    sprintf(now->time,anniePro->time);

    sprintf(now->keynoName,anniePro->keynoName);

    sprintf(now->beiler,anniePro->beiler);

    sprintf(now->code,anniePro->code);

    now->sort=anniePro->sort;

    now->dudu=anniePro->dudu;

    now->aking1=0;

    now->aking2=0;

    cody=now;

    cody->next=NULL;

    }

    anniePro=anniePro->next;

    }

    annieTea=annieTea->next;

    }

    annie=annie->next;

    }

    }

    else if(sort==2)

    {

    while(annie!=NULL)

    {

    annieTea=annie->child;

    while(annieTea)

    {

    if(!strcmp(annieTea->name,code))

    {

    anniePro=annieTea->child;

    while(anniePro!=NULL)

    {

    now=(pHarden)malloc(sizeof(struct kPro));

    if(!i)

    {

    result=now;

    now->aking3=1;

    }

    else

    {

    cody->next=now;

    now->aking3=cody->aking3+1;

    }

    i++;

    sprintf(now->time,anniePro->time);

    sprintf(now->keynoName,anniePro->keynoName);

    sprintf(now->beiler,anniePro->beiler);

    sprintf(now->code,anniePro->code);

    now->sort=anniePro->sort;

    now->dudu=anniePro->dudu;

    now->aking1=0;

    now->aking2=0;

    cody=now;

    cody->next=NULL;

    now=cody->next;

    anniePro=anniePro->next;

    }

    }

    annieTea=annieTea->next;

    }

    annie=annie->next;

    }  

    }

    return result;

}

/*************************************

*统计

*************************************/

void  awesome(pKekey alpha,pKomo *result1,pedward *result2,plakey *result3,pemmey *result4,char *year,int sort)/*统计:sort取1,2,3,4时分别按课设是上的要求统计,其中year在2时输入*/

{

    int j=0,i=0;

    if(sort==1)

    {

    pKomo annieStat=NULL,cody=NULL,alphaer=NULL;

    pKomo alphaerjun=NULL,anniejun=NULL,codyjun=NULL,codySen=NULL;

    pKekey annie;

    pKeyno annieTea;

    float panduan=-1;

    annie=alpha;

    while(annie)

    {

        annieStat=(pKomo)malloc(sizeof(struct Komo));

        if(!i)

            alphaer=annieStat;

        else

            cody->next=annieStat;

        i++;

        sprintf(annieStat->name,annie->name);

        annieStat->teacher=0;

        annieStat->student=0;

        annieStat->bizhi=0;

        annieStat->next=NULL;

        annieTea=annie->child;

        while(annieTea)

        {

            annieStat->teacher+=annieTea->coco;

            annieStat->student+=annieTea->stuNum;

            annieTea=annieTea->next;

        }

        if(annieStat->teacher>0&&annieStat->student>=0)

            annieStat->bizhi=((float)annieStat->student)/((float)annieStat->teacher);

        cody=annieStat;

        annie=annie->next;

    }

    while(j<i)

    {

        cody=alphaer;

        annieStat=cody->next;

        panduan=-1;

        while(annieStat)

        {

            if(panduan<annieStat->bizhi)

            {

                panduan=annieStat->bizhi;

                anniejun=annieStat;

                codyjun=cody;

            }

            cody=annieStat;

            annieStat=annieStat->next;

        }

        if(!j)

        {

            alphaerjun=anniejun;

            codySen=alphaerjun;

        }

        else

        {

            codySen->next=anniejun;

            codySen=anniejun;

        }

        if(anniejun)

        {

            codyjun->next=anniejun->next;

            anniejun->next=NULL;

        }

        j++;

    }

    annieStat=alphaerjun;      

    cody=annieStat;

    j=1;

    alphaer->next=NULL;

    while(annieStat)

    {

        if(alphaer->bizhi>=annieStat->bizhi)

        {

            if(annieStat==alphaerjun)

            {

                alphaer->next=annieStat;

                alphaerjun=alphaer;

            }

            else

            {

                alphaer->next=annieStat;

                cody->next=alphaer;

            }

            j=0;

            break;

        }

        cody=annieStat;

        annieStat=annieStat->next;

    }

    if(j)

    {

        if(cody)

            cody->next=alphaer;

        else

            alphaerjun=alphaer;

    }

    *result1=alphaerjun;

    }

    else if(sort==2)

    {

    pedward annieStat=NULL,cody=NULL,alphaer=NULL;

    pedward alphaerjun=NULL,anniejun=NULL,codyjun=NULL,codySen=NULL;

    pKekey annie;

    pKeyno annieTea;

    pHarden anniePro;

    float panduan=-1;

    annie=alpha;

    while(annie)

    {

        annieStat=(pedward)malloc(sizeof(struct edward));

        sprintf(annieStat->name,annie->name);

        annieStat->amount=0;

        annieStat->next=NULL;

        annieStat->num863=0;

        annieStat->num973=0;

        annieStat->totalnum=0;

        if(!i)

            alphaer=annieStat;

        else

            cody->next=annieStat;

        i++;

        annieTea=annie->child;

        while(annieTea)

        {

            anniePro=annieTea->child;

            while(anniePro)

            {

                if(easic(anniePro->time,year))

                {

                    annieStat->totalnum++;

                    if(anniePro->dudu>=0)

                        annieStat->amount+=anniePro->dudu;

                    if(anniePro->sort=='0')

                        annieStat->num973++;

                    else if(anniePro->sort=='2')

                        annieStat->num863++;

                }

                anniePro=anniePro->next;

            }

            annieTea=annieTea->next;

        }

        annie=annie->next;

        cody=annieStat;

    }

    while(j<i)

    {

        cody=alphaer;

        annieStat=cody->next;

        panduan=-1;

        while(annieStat)

        {

            if(panduan<annieStat->totalnum)

            {

                panduan=annieStat->totalnum;

                anniejun=annieStat;

                codyjun=cody;

            }

            cody=annieStat;

            annieStat=annieStat->next;

        }

        if(!j)

        {

            alphaerjun=anniejun;

            codySen=alphaerjun;

        }

        else

        {

            codySen->next=anniejun;

            codySen=anniejun;

        }

        if(anniejun)

        {

            codyjun->next=anniejun->next;

            anniejun->next=NULL;

        }

        j++;

    }

    annieStat=alphaerjun;      

    cody=annieStat;

    j=1;

    alphaer->next=NULL;

    while(annieStat)

    {

       if(alphaer->totalnum>=annieStat->totalnum)

        {

            if(annieStat==alphaerjun)

            {

                alphaer->next=annieStat;

                alphaerjun=alphaer;

            }

            else

            {

                alphaer->next=annieStat;

                cody->next=alphaer;

            }

            j=0;

            break;

        }

        cody=annieStat;

        annieStat=annieStat->next;

    }

    if(j)

    {

        if(cody)

            cody->next=alphaer;

        else

            alphaerjun=alphaer;

    }  

    *result2= alphaerjun;

    }

    else if(sort==3)

    {

    plakey annieStat=NULL,cody=NULL,alphaer=NULL;

    plakey alphaerjun=NULL,anniejun=NULL,codyjun=NULL,codySen=NULL;

    pKekey annie;

    pKeyno annieTea;

    pHarden anniePro;

    float panduan=-1;

    annie=alpha;

    while(annie)

    {

        annieTea=annie->child;

        while(annieTea)

        {

            annieStat=(plakey)malloc(sizeof(struct lakey));

            annieStat->total=0;

            annieStat->dudu=0;

            sprintf(annieStat->name,annieTea->name);

            annieStat->next=NULL;

            if(!i)

                alphaer=annieStat;

            else

                cody->next=annieStat;

            i++;

            anniePro=annieTea->child;

            while(anniePro)

            {

                if(anniePro->sort=='1')

                {

                    annieStat->total++;

                    annieStat->dudu+=anniePro->dudu;

                }

                anniePro=anniePro->next;

            }

            annieTea=annieTea->next;

            cody=annieStat;

        }

        annie=annie->next;

    }

    while(j<i)

    {

        cody=alphaer;

        annieStat=cody->next;

        panduan=-1;

        while(annieStat)

        {

            if(panduan<annieStat->total)

            {

                panduan=annieStat->total;

                anniejun=annieStat;

                codyjun=cody;

            }

            cody=annieStat;

            annieStat=annieStat->next;

        }

        if(!j)

        {

            alphaerjun=anniejun;

            codySen=alphaerjun;

        }

        else

        {

            codySen->next=anniejun;

            codySen=anniejun;

        }

        if(anniejun)

        {

            codyjun->next=anniejun->next;

            anniejun->next=NULL;

        }

        j++;

    }

    annieStat=alphaerjun;      

    cody=annieStat;

    j=1;

    alphaer->next=NULL;

    while(annieStat)

    {

        if(alphaer->total>=annieStat->total)

        {

            if(annieStat==alphaerjun)

                alphaer->next=annieStat;

            else

            {

                alphaer->next=annieStat;

                cody->next=alphaer;

                alphaer=alphaerjun;

            }

            j=0;

            break;

        }

        cody=annieStat;

        annieStat=annieStat->next;

    }

    if(j&&cody)

        cody->next=alphaer;

    else

        alphaerjun=alphaer;

    i=0;

    annieStat=alphaerjun;

    while(annieStat)

    {

        i++;

        if(i==10)

        {

            codyjun=annieStat;

            annieStat=annieStat->next;

            codyjun->next=NULL;

        }

        else if(i>10)

        {

            codyjun=annieStat;

            annieStat=annieStat->next;

            free(codyjun);

        }

        else

            annieStat=annieStat->next;

    }  

    *result3= alphaerjun;

    }

    else if(sort==4)

    {

    pemmey annieStat=NULL,cody=NULL,alphaer=NULL;

    pemmey alphaerjun=NULL,anniejun=NULL,codyjun=NULL,codySen=NULL;

    pKekey annie;

    pKeyno annieTea;

    pHarden anniePro;

    float panduan=-1;

    annie=alpha;

    while(annie)

    {

        annieTea=annie->child;

        while(annieTea)

        {

            annieStat=(pemmey)malloc(sizeof(struct lakey));

            annieStat->teacher=annieTea->coco;

            annieStat->harden=0;

            annieStat->bizhi=0;

            sprintf(annieStat->name,annieTea->name);

            annieStat->next=NULL;

            if(!i)

                alphaer=annieStat;

            else

                cody->next=annieStat;

            i++;

            anniePro=annieTea->child;

            while(anniePro)

            {

                annieStat->harden++;

                anniePro=anniePro->next;

            }

            if(annieTea->coco>0&&annieStat->harden>=0)

                annieStat->bizhi=((float)annieStat->harden)/((float)annieTea->coco);

            annieTea=annieTea->next;

            cody=annieStat;

        }

        annie=annie->next;

    }

    while(j<i)

    {

        cody=alphaer;

        annieStat=cody->next;

        panduan=-1;

        while(annieStat)

        {

            if(panduan<annieStat->bizhi)

            {

                panduan=annieStat->bizhi;

                anniejun=annieStat;

                codyjun=cody;

            }

            cody=annieStat;

            annieStat=annieStat->next;

        }

        if(!j)

        {

            alphaerjun=anniejun;

            codySen=alphaerjun;

        }

        else

        {

            codySen->next=anniejun;

            codySen=anniejun;

        }

        if(anniejun)

        {

            codyjun->next=anniejun->next;

            anniejun->next=NULL;

        }

        j++;

    }

    annieStat=alphaerjun;      

    cody=annieStat;

    j=1;

    alphaer->next=NULL;

    while(annieStat)

    {

        if(alphaer->bizhi>=annieStat->bizhi)

        {

            if(annieStat==alphaerjun)

                alphaer->next=annieStat;

            else

            {

                alphaer->next=annieStat;

                cody->next=alphaer;

                alphaer=alphaerjun;

            }

            j=0;

            break;

        }

        cody=annieStat;

        annieStat=annieStat->next;

    }

    if(j&&cody)

        cody->next=alphaer;

    else

        alphaerjun=alphaer;

    i=0;

    annieStat=alphaerjun;

    while(annieStat)

    {

        i++;

        if(i==5)

        {

            codyjun=annieStat;

            annieStat=annieStat->next;

            codyjun->next=NULL;

        }

        else if(i>5)

        {

            codyjun=annieStat;

            annieStat=annieStat->next;

            free(codyjun);

        }

        else

            annieStat=annieStat->next;

    }  

    *result4= alphaerjun;

    }

}

int face(int i)

{

    switch(i)

    {

        case 0:

            clrscr();

            printf("****Welcome to use this menu****\n");

            printf("1.Display all.\n");

            printf("2.Search.\n");

            printf("3.Tongji.\n");

            printf("4.Exit.\n");

            printf("Please choose 1--4:\n");

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

        break;

        case 1:

            clrscr();

            printf("****Welcome to use this menu****\n");

            printf("1.Search college by master.\n");

            printf("2.Search college by name.\n");

            printf("3.Search Tuandui by name.\n");

            printf("4.Search Tuandui by teacher nunmber.\n");

            printf("5.Search Project by codes.\n");

            printf("6.Search Project by Tuandui.\n");

            printf("7.Previous.\n");

            printf("Please choose 1--7:\n");

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

        break;

        case 2:

            clrscr();

            printf("****Welcome to use this menu****\n");

            printf("1.Tongji by student number/teacher number.\n");

            printf("2.Tongji by project.\n");

            printf("3.Tongji by nature.\n");

            printf("4.Tongji by project number/teacher number.\n");

            printf("Please choose 1--4:\n");

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

        break; 

    }

    return 1;

}

pKekey alpha=NULL;

pKekey result_pKe=NULL;

pKeyno result_no=NULL;

pHarden result_ar=NULL;

pKomo result_ko=NULL;

pedward result_ed=NULL;

plakey result_la=NULL;

pemmey result_my=NULL;

int main()

{

    int series=0;

    pKekey current=NULL;

    pKeyno current_on=NULL;

    pHarden current_ar=NULL;

    pKomo current_ko=NULL;

    pedward current_ed=NULL;

    plakey current_la=NULL;

    pemmey current_my=NULL;

    char c,cc;

    int way1,way2;

    char str_Help[30];

    int num_Help=0;

   

loop:

    alpha=Charge(alpha);

    face(0);

    fflush(stdin);

    c=getchar();

    switch(c)

    {

        case '1':

            series=0;

            clrscr();

            current=alpha;

            while(current)

            {

                series++;

                printf("%d.      %s\n",series,current->name);

                printf("\t%s\n",current->beiler);

                printf("\t%s\n\n\n",current->call);

                current=current->next;

            }

            printf("Add?(A),Delete?(D),Modify?(M)\n");

            fflush(stdin);

            cc=getchar();

            switch(cc)

            {

                case 'D':

                    printf("Choose the one to delete:\n");

                    scanf("%d",&num_Help);

                    if(num_Help>0)

                        reserv(num_Help,0,0,alpha,1);

                    break;

                case 'A':

                    current=(pKekey)malloc(sizeof(struct kCol));

                    printf("Input the name,master,and call\n");

                    scanf("%s",current->name);

                    printf("\n");

                    scanf("%s",current->beiler);

                    printf("\n");

                    scanf("%s",current->call);

                    printf("\n");

                    current->child=NULL;

                    current->next=NULL;

                    current->aking=0;

                    temption(1,0,0,current,NULL,NULL,alpha,1);

                    break;

            }

           

            printf("Continue? Y/N\n");

            fflush(stdin);

            cc=getchar();

            if(cc=='Y'||cc=='y')

            {

                fflush(stdin);

                scanf("%d",&way1);

                num_Help=way1;

                current=alpha;

                while(num_Help>1&&current)

                {

                    current=current->next;

                    num_Help--;

                }

                series=0;

                clrscr();

                current_on=current->child;

                while(current_on)

                {

                    series++;

                    printf("%d.      %s\n",series,current_on->name);

                    printf("\t%s\n",current_on->beiler);

                    printf("\t%d\n",current_on->stuNum);

                    printf("\t%d\n",current_on->coco);

                    printf("\t%s\n\n\n",current_on->colName);

                    current_on=current_on->next;

                }

                printf("Add?(A),Delete?(D),Modify?(M)\n");

                fflush(stdin);

                cc=getchar();

                switch(cc)

                {

                    case 'D':

                        printf("Choose the one to delete:\n");

                        scanf("%d",&num_Help);

                        if(num_Help>0)

                            reserv(way1,num_Help,0,alpha,2);

                        break;

                }

           

                printf("Continue? Y/N\n");

                fflush(stdin);

                cc=getchar();

                if(cc=='Y'||cc=='y')

                {

                    fflush(stdin);

                    scanf("%d",&way2);

                    current=alpha;

                    num_Help=way1;

                    while(num_Help>1&&current)

                    {

                        current=current->next;

                        num_Help--;

                    }

                   

                    current_on=current->child;

                    num_Help=way2;

                    while(num_Help>1&&current_on)

                    {

                        current_on=current_on->next;

                        num_Help--;

                    }

                   

                    series=0;

                    clrscr();

                    current_ar=current_on->child;

                    while(current_ar)

                    {

                        series++;

                        printf("%d.      %s\n",series,current_ar->code);

                        printf("\t%c\n",current_ar->sort);

                        printf("\t%d\n",current_ar->time);

                        printf("\t%f\n",current_ar->dudu);

                        printf("\t%s\n",current_ar->beiler);

                        printf("\t%s\n\n\n",current_ar->keynoName);

                        current_ar=current_ar->next;

                    }

                   

                    printf("Add?(A),Delete?(D),Modify?(M)\n");

                    fflush(stdin);

                    cc=getchar();

                    switch(cc)

                    {

                        case 'D':

                            printf("Choose the one to delete:\n");

                            scanf("%d",&num_Help);

                            if(num_Help>0)

                            reserv(way1,num_Help,0,alpha,2);

                            break;

                    }

                   

                    fflush(stdin);

                    getchar();

                }

            }

           

        break;

        case '2':

            face(1);

            fflush(stdin);

            cc=getchar();

            switch(cc)

            {

                case '1':

                    series=0;

                    printf("\nPlease input the name of the master.\n");

                    scanf("%s",str_Help);

                    result_pKe=seamood(str_Help,NULL,alpha,result_pKe,1);

                    clrscr();

                    current=result_pKe;

                    while(current)

                    {

                        series++;

                        printf("%d.      %s\n",series,current->name);

                        printf("\t%s\n",current->beiler);

                        printf("\t%s\n\n\n",current->call);

                        current=current->next;

                    }

                    fflush(stdin);

                    getchar();

                    break;

                   

                case '2':

                    printf("\nPlease input the name of the college.\n");

                    scanf("%s",str_Help);

                    result_pKe=seamood(NULL,str_Help,alpha,result_pKe,2);

                    clrscr();

                    current=result_pKe;

                    while(current)

                    {

                        series++;

                        printf("%d.      %s\n",series,current->name);

                        printf("\t%s\n",current->beiler);

                        printf("\t%s\n\n\n",current->call);

                        current=current->next;

                    }

                    fflush(stdin);

                    getchar();

                    break;

                   

                case '3':

                    printf("\nPlease input the name of the Tuandui.\n");

                    scanf("%s",str_Help);

                    result_no=foward(str_Help,0,alpha,result_no,1);

                    clrscr();

                    current_on=result_no;

                    while(current_on)

                    {

                        series++;

                        printf("%d.      %s\n",series,current_on->name);

                        printf("\t%s\n",current_on->beiler);

                        printf("\t%d\n",current_on->stuNum);

                        printf("\t%d\n",current_on->coco);

                        printf("\t%s\n\n\n",current_on->colName);

                        current_on=current_on->next;

                    }

                    fflush(stdin);

                    getchar();

                    break;

                   

                case '4':

                    printf("\nPlease input the number of the teachers.\n");

                    scanf("%d",&num_Help);

                    result_no=foward(NULL,num_Help,alpha,result_no,2);

                    clrscr();

                    current_on=result_no;

                    while(current_on)

                    {

                        series++;

                        printf("%d.      %s\n",series,current_on->name);

                        printf("\t%s\n",current_on->beiler);

                        printf("\t%d\n",current_on->stuNum);

                        printf("\t%d\n",current_on->coco);

                        printf("\t%s\n\n\n",current_on->colName);

                        current_on=current_on->next;

                    }

                    fflush(stdin);

                    getchar();

                    break;

                   

                case '5':

                    printf("\nPlease input the code of the project.\n");

                    scanf("%s",str_Help);

                    result_ar=codyssed (str_Help,alpha,result_ar,1);

                    clrscr();

                    current_ar=result_ar;

                    while(current_ar)

                    {

                        series++;

                        printf("%d.      %s\n",series,current_ar->code);

                        printf("\t%c\n",current_ar->sort);

                        printf("\t%d\n",current_ar->time);

                        printf("\t%f\n",current_ar->dudu);

                        printf("\t%s\n",current_ar->beiler);

                        printf("\t%s\n\n\n",current_ar->keynoName);

                        current_ar=current_ar->next;

                    }

                    fflush(stdin);

                    getchar();

                    break;

                   

                case '6':

                    printf("\nPlease input the name of theTuandui.\n");

                    scanf("%s",str_Help);

                    result_ar=codyssed (str_Help,alpha,result_ar,2);

                    clrscr();

                    current_ar=result_ar;

                    while(current_ar)

                    {

                        series++;

                        printf("%d.      %s\n",series,current_ar->code);

                        printf("\t%c\n",current_ar->sort);

                        printf("\t%d\n",current_ar->time);

                        printf("\t%f\n",current_ar->dudu);

                        printf("\t%s\n",current_ar->beiler);

                        printf("\t%s\n\n\n",current_ar->keynoName);

                        current_ar=current_ar->next;

                    }

                    fflush(stdin);

                    getchar();

                    break;

            }

        break;

           

        case '3':

            face(2);

            fflush(stdin);

            c=getchar();

            switch (cc)

            {

                case '1':

                    series=0;

                    awesome(alpha,&result_ko,NULL,NULL,NULL,NULL,1);

                    current_ko=result_ko;

                    clrscr();

                    while(current_ko)

                    {

                        series++;

                        printf("%d.      %s\n",series,current_ko->code);

                        printf("\t%d\n",current_ko->teacher);

                        printf("\t%d\n",current_ko->student);

                        printf("\t%f\n",current_ko->bizhi);

                        current_ko=current_ko->next;

                    }

                    fflush(stdin);

                    getchar();

                    break;

                case '2':

                    series=0;

                    printf("\nPlease input the year:\n");

                    scanf("%s",str_Help);

                    awesome(alpha,NULL,&result_ed,NULL,NULL,str_Help,2);

                    current_ed=result_ed;

                    clrscr();

                    while(current_ed)

                    {

                        series++;

                        printf("%d.      %s\n",series,current_ed->name);

                        printf("\t%d\n",current_ed->totalnum);

                        printf("\t%d\n",current_ed->num973);

                        printf("\t%d\n",current_ed->num863);

                        printf("\t%f\n",current_ed->amount);

                        current_ed=current_ed->next;

                    }

                    fflush(stdin);

                    getchar();

                    break;

                case '3':

                    series=0;

                    awesome(alpha,NULL,NULL,&result_la,NULL,NULL,3);

                    current_la=result_la;

                    clrscr();

                    while(current_la)

                    {

                        series++;

                        printf("%d.      %s\n",series,current_la->name);

                        printf("\t%d\n",current_la->total);

                        printf("\t%f\n",current_la->dudu);

                        current_la=current_la->next;

                    }

                    fflush(stdin);

                    getchar();

                    break;

                case '4':

                    series=0;

                    awesome(alpha,NULL,NULL,NULL,&result_my,NULL,4);

                    current_my=result_my;

                    clrscr();

                    while(current_my)

                    {

                        series++;

                        printf("%d.      %s\n",series,current_my->name);

                        printf("\t%d\n",current_my->teacher);

                        printf("\t%d\n",current_my->harden);

                        printf("\t%f\n",current_my->bizhi);

                        current_my=current_my->next;

                    }

                    fflush(stdin);

                    getchar();

                    break;

            }

            break;

        case '4':

            exit(-1);

        default:

            printf("Default.\n");

    }

    goto loop;

   

    getchar();

    return 0;

}

更多相关推荐:
大学计算机基础实验报告

大学计算机基础课程实验报告手册学院年级专业姓名学号2220xx319xx20xx任课教师上机地点以上由学生填写实验教师签字西南大学计算机与信息科学学院计算机基础教育系年月日1一实验说明本课程实验分为一般性实验验...

大学计算机基础实验报告

大学计算机基础教学班级课程教师实验报告学号姓名实验辅导教师西南交通大学20xx年9月大学计算机基础实验报告实验一微机基本操作与上网冲浪教学班级学号姓名实验日期实验地点机房指导教师签名实验成绩一实验目的1掌握计算...

《大学计算机Ⅱ》实验报告实验一

广东金融学院实验报告课程名称:大学计算机Ⅱ

北理大学计算机实验基础 实验九 实验报告表

五实验报告学号姓名班级实验时间年月日实验报告图像生成与图像处理一填写下载图像的相关数据二查看左侧的图像请填写相应的图像编码三计算机中实际存储的图像可能有数几百万像素为了减少图像存储的空间有一种游程压缩方法可以减...

大学计算机一实验报告二

广东金融学院实验报告课程名称:大学计算机Ⅰ柠檬,lemon,那个和柠檬一样单纯的女生的名字,她说,她喜欢柠檬的苦涩与酸甜,就像,她一样。像柠檬一样的女生,她的爱情,是那般的青涩、酸甜,也让她有了前所未有的幸福。…

大学计算机Ⅱ》实验报告实验一

广东金融学院实验报告课程名称大学计算机第1页共2页实验一计算机组装与维护实验第3页共2页实验一计算机组装与维护实验第5页共2页

大学计算机基础网页制作实验报告

网页制作报告计算机基础网页制作报告20xx913网页制作报告目录一制作目的3二制作内容3三遇到的问题及解决方案3四报告成果截图展示4五制作体会5网页制作报告一制作目的掌握Dreamweaver的基本操作掌握网页...

广东海洋大学微型计算机基础键盘扫描实验报告

GDOUB11112广东海洋大学学生实验报告书成绩指导教师日期注请用A4纸书写不够另附纸第页共页

广金《大学计算机Ⅱ》实验报告实验一

广东金融学院实验报告课程名称大学计算机第1页共2页实验一计算机组装与维护实验第3页共2页

大学计算机实验报告

西安交通大学实验报告课程计算机程序设计实验名称第1页共2页系别电气工程学院专业班级组别姓名学号同组人实验日期20xx年12月18日实验报告日期20xx年12月18日报告退发订正重做教师审批签字一实验目的1掌握数...

同济大学 计算机网络实验报告

同济大学电子与信息工程学院实验报告实验课程名称:计算机通信网络任课教师:实验项目名称:跨交换机实现VLAN实验项目名称:静态路由实验项目名称:OSPF单区域姓名:学号:实验地点:实验名称:跨交换机实现VLAN【…

《大学计算机Ⅰ》实验报告实验一1

广东金融学院实验报告课程名称大学计算机第2页共2页第3页共2页第4页共2页

大学计算机实验报告(48篇)