/*一个实例:使用结构体和共同体
设有若干个人员的数据,其中有学生和老师。
学生的数据包括:姓名,编号,性别,职业,年级。
老师的数据包括:姓名,编号,性别,职业,职务。
输入一人员信息并打印。
*/
#include<stdio.h>
#include"string.h"
void hz( int i , struct person*pp);
union qq
{
char cla[10];//年级
char job[10];//职务
};
struct person
{
char name[10]; //姓名
int sno; //编号
char sex[3]; //性别
char zy[5]; //职业
union qq jc ; //年级或职务
};
int main()
{
int i;
char zzyy[5]="老师";
struct person ren;
for( i=1 ; i<=5 ; i++ )
{
if (strcmp(zzyy,ren.zy)==0 && i==5) { i=6; };
hz(i,&ren);
}
printf ("\n姓名:%s \n编号:%d\n性别:%s \n职业:%s\n",ren.name,ren.sno,ren.sex,ren.zy);
if (strcmp(zzyy,ren.zy)==0) //字符串比较函数strcmp
{
printf("职务:%s\n",&ren.jc.job);
}
else
{
printf("年级:%s\n",&ren.jc.cla);
}
return 0;
};
void hz( int i , struct person*pp)
{
switch ( i )
{
case 1 : printf("请输入姓名:"); scanf("%s",&pp->name); break;
case 2 : printf("请输入编号(请输入整数):"); scanf("%d",&pp->sno); break;
case 3 : printf("请输入性别(男 or 女):"); scanf("%s",&pp->sex); break;
case 4 : printf("请输入职业(老师 or 学生):"); scanf("%s",&pp->zy);break;
case 5 : printf("请输入年级:"); scanf("%s",&pp->jc.cla); break;
case 6 : printf("请输入职务:"); scanf("%s",&pp->jc.job); break;
};
} |
|