C高级day6

 学生管理系统的增和查

主函数

#include 
#include "./08_func.h" 	//在预处理步骤展开


int main(int argc, const char *argv[])
{
	union msg t;
	t.score = 90;
	printf("t.score=%d  t.jixiao=%d\n", t.score, t.jixiao);
	printf("t.score=%p  t.jixiao=%p\n", &t.score, &t.jixiao); 	//两个地址打出来结果一致

	Stu info[10]; 	//定义结构体数组,存储学生和老师的信息
	int index = 0; 	//目前有效数据是0个

	int choose = 0;
	while(1)
	{
		printf("1. 录入学生\n");
		printf("2. 录入老师\n");
		printf("3. 遍历\n");
		printf("4. 退出\n");

		printf("请输入>>> ");
		scanf("%d", &choose);

		switch(choose)
		{
		case 1:
			//录入学生 
			insert_stu(info, index);
			index++;
			break;
		case 2:
			//录入老师 
			insert_tea(info, index);
			index++;
			break;
		case 3:
			//遍历数组
			show_msg(info, index);
			break;
		case 4:
			//退出 
			goto END;
		default:
			printf("输入错误\n");
		}
	}
END:
	return 0;
}

功能实现函数

#include "./08_func.h"
#include 

void insert_stu(Stu* pinfo, int index) 	//Stu* pinfo = info
{
	//从终端获取一个学生的姓名,年龄,成绩
	printf("请输入学生姓名>>> ");
	char name[20];
	scanf("%s", name);

	printf("请输入学生年龄>>> ");
	int age;
	scanf("%d", &age);

	printf("请输入学生成绩>>> ");
	int score;
	scanf("%d", &score);
	
	//存储到main函数定义好的info数组中 
	strcpy((pinfo+index)->name, name);
	(pinfo+index)->age = age;
	(pinfo+index)->t.score = score;

	(pinfo+index)->flag = 's'; 		//代表是个学生

	return;
}

void insert_tea(Tea* pinfo,int index)
{
	//从终端获取一个教师的姓名
	printf("请输入教师姓名>>> ");
	char name[20];
	scanf("%s",name);

	printf("请输入教师年龄>>> ");
	int age;
	scanf("%d",&age);

	printf("请输入教师绩效>>> ");
	int jixiao;
	scanf("%d", &jixiao);

	//存储到main函数定义好的info数组中
	strcpy((pinfo+index)->name, name);
	(pinfo+index)->age = age;
	(pinfo+index)->t.jixiao = jixiao;

	(pinfo+index)->flag = 't';   //代表老师

	return;
}

void show_msg(Stu* pinfo, int index) 	//Stu* pinfo = info
{
	for(int i=0; iname, (pinfo+i)->age );
		if('s' == (pinfo+i)->flag)
		{
			printf("%d\n", (pinfo+i)->t.score);
		}
		else
		{
			printf("%d\n", (pinfo+i)->t.jixiao);
		}
	}

	return;
}

结构体

#ifndef __FUNC_H__
#define __FUNC_H__ 

#include 

union msg
{
	int score;
	short jixiao;
};

typedef struct
{
	char name[20];
	int age;
	char flag; 		//s 学生  t:老师
	union msg t;
}Stu,Tea; 


void insert_stu(Stu* pinfo, int index); 	//Stu* pinfo = info
void show_msg(Stu* pinfo, int index); 	//Stu* pinfo = info



#endif

运行结果

C高级day6_第1张图片

你可能感兴趣的:(c语言,linux)