8.3号作业

定义一个学员类型,包含成员属性:姓名、性别、职业、和另一个变量,如果职业是学生,则另一个变量是分数,如果职业是老师,则另一个变量是所带课程。

再封装一个班级类型,包含成员属性:学员数组、班级当前人数,数组大小MAX为40;

操作:

1> 在堆区申请一个班级,并对班级进行初始化

2> 定义添加学员函数,如果班级人数未满,则将某个学员放入到该班级中

3> 定义输出函数,展示出当前班级的所有人员信息

4> 定义查找函数,给定一个姓名,查找该名字是否未该班级成员

5> 定义释放函数,将堆区申请的班级空间释放

#include
#include
#include
#define MAX 40
union Zhiye
{
    double score;
    char kc[20];
};
struct People
{
    char name[20];
    char sex;
    char work[20];
    union Zhiye w;
};
struct Class
{
    struct People stu;
    int len;

}C={0};
struct Class *getClass(int max)
{
    struct Class *p=(struct Class *)malloc(sizeof(struct Class)*MAX);
    return p;
}
struct Class in_Peo(struct Class *p,int len)
{
    int i =0;
    for(i=0;i     printf("学员职业\n");
    scanf("%s",(p+i)->stu.w);
        if (strcmp((p+i)->stu.work,"student")==0){
    printf("学员姓名\t学员性别\t学员职业\t学生成绩\n");
    scanf("%s %c %s %lf",(p+i)->stu.name,(p+i)->stu.sex,(p+i)->stu.w,&(p+i)->stu.w.score);}
    else if(strcmp((p+i)->stu.work,"teacher")==0){
    printf("学员姓名\t学员性别\t学员职业\t老师课程\n");
    scanf("%s %c %s %s",(p+i)->stu.name,(p+i)->stu.sex,(p+i)->stu.w,(p+i)->stu.w.kc);}
    }
}
struct Class tianjia(struct Class *p,int len)
{
    int j = 0;
    int i =0;
    printf("添加学员\n");
    scanf("%d",&j);
    for(i=len;i         printf("添加新学员\n");
        if(len         scanf("%s %c %s %lf",(p+len)->stu.name,(p+len)->stu.sex,(p+len)->stu.w,&(p+len)->stu.w.score);
        len++;}
    }
}
struct Class out_Peo(struct Class *p,int len)
{
    int i=0;
    printf("学员姓名\t学员性别\t学员职业\t学员\n");
    for(i=0;i         if(strcmp((p+i)->stu.work,"student")==0){
    printf("学员姓名\t学员性别\t学员职业\t学生成绩\n");    
    printf("%s\t%c\t%s\t%lf\n",(p+i)->stu.name,(p+i)->stu.sex,(p+i)->stu.w,(p+i)->stu.w.score);}
        else{
    printf("学员姓名\t学员性别\t学员职业\t老师课程\n");    
    printf("%s\t%c\t%s\t%s\n",(p+i)->stu.name,(p+i)->stu.sex,(p+i)->stu.w,(p+i)->stu.w.kc);}

    }
}
struct Class cha_zhao(struct Class *p,int len)
{
    int i=0;
    char s[20];
    scanf("%s",s);
    for(i=0;i     if((p+i)->stu.name==s)
        printf("%s\t%c\t%s\t%lf\n",(p+i)->stu.name,(p+i)->stu.sex,(p+i)->stu.w,(p+i)->stu.w.score);
    else
        printf("无此人\n");
    }
}
void myFree(struct Class *p)
{
    free(p);
    p=NULL;
}

int main(int argc, const char *argv[])
{
    int len =3;
    struct Class *p=getClass(MAX);
    in_Peo(p,len);
    tianjia(p,len);
    int j =0;
    scanf("%d",&j);
    out_Peo(p,len+j);
    cha_zhao(p,len+j);
    myFree(p);
    p=NULL;
    return 0;
}

2.思维导图

8.3号作业_第1张图片

 

你可能感兴趣的:(java,算法,数据结构)