数据结构DAY2

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

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

操作:

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

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

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

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

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

#include 
#include 
#include 
#define MAX 40
union Job
{
	int score;
	char j[10];

};

struct Stu
{
	char name[10];
	char sex[10];
	char zhiye[10];
	union Job O;
};


struct Glass
{
	struct Stu s[MAX];
	int len;
};

struct Glass *getGlass(int num)
{
	
	struct Glass *G = (struct Glass *)malloc(sizeof(struct Glass)*num);
	if(G == NULL)
	{
		printf("空间申请失败\n");
		return NULL;
	}else
	{
		printf("空间申请成功\n");
		memset(G->s,0,sizeof(G->s));
		return G;
	}
}


void add(struct Glass *G,int num)
{
	if(G == NULL)
	{
		printf("空间不合法\n");
		return;
	}
	if(nums[i].name);
			printf("请输入第%d个成员的性别:",i+1);
			scanf("%s",(G+i)->s[i].sex);
			printf("请输入第%d个成员的职业:",i+1);
			scanf("%s",(G+i)->s[i].zhiye);
			if(strcmp((G+i)->s[i].zhiye,"student")==0)
			{
				printf("请输入该成员的分数:");
				scanf("%d",&(G+i)->s[i].O.score);
			}
			else  if(strcmp((G+i)->s[i].zhiye,"teacher")==0)
			{
				printf("请输入该成员所教授的课程:");
				scanf("%s",(G+i)->s[i].O.j);
			}
			else{
				printf("输入不合法\n");
				return;
			}

		}

	}
}

void find(struct Glass *G)
{
	int flag = 0;
	char cha[20];
	printf("请输入想要查找的成员:");
	scanf("%s",cha);
	for(int i=0;is[i].name)==0)
		{
			printf("该成员已存在\n");
			break;
		}
		else
		{
			printf("该成员不存在\n");
			break;
		}
	}
}

void output(struct Glass *G,int num)
{
	if(NULL == G)
	{
		printf("数据不合法\n");
		return;
	}
	printf("姓名\t性别\t职业\t分数/课程\n");
	for(int i=0;i

数据结构DAY2_第1张图片

 

你可能感兴趣的:(算法)