8月2日作业

分文件编译--头文件

#ifndef __FUN_H_
#define __FUN_H_
#define MAX 40
#include
#include
#include

typedef union{  //定义共用体
	int score;
	char course[20];
}Occ;

typedef struct{  //定义人员结构体
	char name[20];
	char sex[4];
	char occ[20];
	Occ x ;
}Member;

typedef struct{  //班级结构体
	Member arr[MAX];
	int class_num;
}Class;

Member *request(int class_num);                       //申请空间函数
void mem_input(Member *m,int class_num);              //输入信息函数
void display_mem(Member *m,int class_num);            //显示信息函数
void find_mem(Member *m,int class_num,char name[20]); //寻找人员函数
void free_class(Member *m);                           //释放空间函数

#endif

分文件编译--源文件

#include"fun.h"

/***********定义申请内存空间函数*************/
Member *request(int class_num){
	Member *m = (Member*)malloc(sizeof(Member)*class_num);
	if(NULL == m){
		printf("空间申请失败\n");
		return NULL;
	}else{
		printf("空间申请成功\n");
		return m;
	}
}

/***********定义输入成员信息函数*************/
void mem_input(Member *m,int class_num){
	if(NULL == m){
		printf("未能开辟空间\n");
		return;
	}
	for(int i=0;iname);
		printf("请输入第%d位成员的性别:\n",i+1);
		scanf("%s",(m+i)->sex);
		printf("请输入第%d位成员的职业:\n",i+1);
		scanf("%s",(m+i)->occ);
		if(strcmp((m+i)->occ,"老师")){
			printf("请输入第%d位学生的成绩:\n",i+1);
			scanf("%d",&(m+i)->x.score);
		}else{
			printf("请输入第%d位老师的课程:\n",i+1);
			scanf("%s",(m+i)->x.course);
		}
	}
}

/***********定义展示成员信息函数*************/
void display_mem(Member *m,int class_num){
	printf("姓名\t性别\t职业\t分数\t课程\n");
	for(int i=0;iocc,"学生") == 0){
			printf("%s\t%s\t%s\t%d\t\n",(m+i)->name,(m+i)->sex,(m+i)->occ,(m+i)->x.score);
		}else{
			printf("%s\t%s\t%s\t\t%s\n",(m+i)->name,(m+i)->sex,(m+i)->occ,(m+i)->x.course);
		}
	}
}

/***********定义查找成员信息函数*************/
void find_mem(Member *m,int class_num,char name[20]){
	int flag=0;
	for(int i=0;iname,name) == 0){
			flag = 1;
		}
	}
	if(flag == 1){
		printf("有%s这个成员\n",name);
	}else{
		printf("无%s这个成员\n",name);
	}
}

/***********定义释放空间函数*************/
void free_class(Member *m){
	if(NULL != m){
		free(m);
		m = NULL;
		printf("已释放空间\n");
	}
}

分文件编译--测试文件

#include"fun.h"
#define class_num 3

int main(int argc, const char *argv[])
{
	Member *m = request(class_num); //malloc申请
	mem_input(m,class_num);         //输入信息
	display_mem(m,class_num);       //显示信息
	find_mem(m,class_num,"mcsl");   //寻找用户
	free_class(m);                  //释放空间

	return 0;
}

运行结果

8月2日作业_第1张图片

思维导图

8月2日作业_第2张图片

你可能感兴趣的:(c语言,数据结构)