数据结构day2

数据结构day2_第1张图片

数据结构day2_第2张图片 

 

数据结构day2_第3张图片

 

#include
#include
#include
//定义学员类型
typedef struct People
{
    char name[100];
    char sex;
    char job;
    union
    {
        int score;
        char lesson[100];
    };
}pe;
typedef struct Classroom
{
    pe class[100];
    int len;
}cla;

//定义空间申请函数
cla *getClass()
{
    cla *P=(cla *)malloc(sizeof(P));
    if(NULL==P)
    {
        printf("申请失败");
        return NULL;
    }else
    {
        printf("申请成功");
        return P;
    }
}
//定义添加学员函数
void addpeople(cla *P)
{
    //判断传过来的指针是否合法
    if(NULL==P)
    {
        printf("不合法\n");
        return;
    }
    if(40len)
    {
        printf("班级已满");
    }
    else
    {
        printf("请输入学员姓名:");
        scanf("%s",(P->class+P->len)->name);
        printf("请输入学员性别:");
        scanf(" %c",&(P->class+P->len)->sex);
        printf("请输入学员职业:");
        scanf(" %c",&(P->class+P->len)->job);
        if((P->class+P->len)->job=='s')
        {
        printf("请输入学生成绩:");
        scanf("%d",&(P->class+P->len)->score);
        }
        else if((P->class+P->len)->job=='t'){
        printf("请输入老师所带课程:");
        scanf("%s",(P->class+P->len)->lesson);}
        P->len++;
    }
}
//定义输出函数
void output(cla *P)
{
    if(NULL==P)
    {
        printf("班级不合法");
        return;
    }else{
        printf("姓名\t性别\t职业\t成绩/课程\n");
        for(int i=0;ilen;i++)
        {
            printf("%s\t%c\t%c\t",(P->class+i)->name,(P->class+i)->sex,(P->class+i)->job);
            if((P->class+i)->job=='s')
            {
                printf("%d\n",(P->class+i)->score);
            }
            else if((P->class+i)->job=='t')
            {
                printf("%s\n",(P->class+i)->lesson);
            }
        }
    }
}
//定义查找函数
void search(cla *P,const char *n)

{
    int flag=0;
    for(int i=0;ilen;i++)
    {
        if(!strcmp(n,(P->class+i)->name))
        {
            flag=1;
        }
    }
    if(flag=1)
    {
        printf("学员%s存在\n",(P->class+P->len)->name);
        
    }
}
//定义释放函数
void freePeople(cla *P)
{
    if(NULL!=P)
    {
        free(P);
        P=NULL;
    }
}
int main(int argc, const char *argv[])
{
    cla *P=getClass();
    P->len=0;
    addpeople(P);
    addpeople(P);
    addpeople(P);
    output(P);
    getchar();
    char n[100];
    printf("输入学员姓名");
    gets(n);
    search(P,n);
    freePeople(P);
    return 0;
}
 

你可能感兴趣的:(数据结构)