····
#include <stdio.h>
#define Max 8
struct student
{
char name[20];
char gender;
int age;
int height;
};
int listMenu()
{
printf("\n0-按性别查询\n");
printf("1-按身高查询\n");
printf("2-按年龄查询\n");
printf("3-按条件组合查询\n");
printf("4-退出\n");
printf("请输入选择的功能:");
int select;
scanf("%d",&select);
return select;
}
void displayStudent(struct student stu)
{
printf("Name:%s,Gender:%c,Age:%d,Height:%d\n",
stu.name,
stu.gender,
stu.age,
stu.height
);
}
void findByGender(struct student *stus,int num,char sex)
{
int i;
for(i=0;i<num;i++)
{
if(stus[i].gender==sex)
{
displayStudent(stus[i]);
}
}
}
void findByAge(struct student *stus,int num,int age)
{
int i;
for(i=0;i<num;i++)
{
if(stus[i].age==age)
{
displayStudent(stus[i]);
}
}
}
void findByHeight(struct student *stus,int num,int height)
{
int i;
for(i=0;i<num;i++)
{
if(stus[i].height==height)
{
displayStudent(stus[i]);
}
}
}
void findByComb(struct student *stus,int num,char g,int a,int h)
{
int i;
for(i=0;i<num;i++)
{
if(stus[i].gender==g && stus[i].age>=a && stus[i].height>=h)
{
displayStudent(stus[i]);
}
}
}
int main()
{
struct student stu[Max]={
{"Jack",'M',20,165},
{"Rose",'F',19,170},
{"Robert",'M',20,180},
{"Lisa",'F',17,185},
{"Lily",'F',22,165},
{"Hanmeimei",'F',15,165},
{"Lilei",'M',17,155},
{"Bill",'F',25,185}
};
int select = listMenu();
while(select!=4)
{
switch(select)
{
case 0:
printf("请输入性别(M/F):");
char c;
scanf(" %c",&c);
findByGender(stu,Max,c);
break;
case 1:
//接受用户输入,调用响应函数
printf("请输入身高:");
int k;
scanf("%d",&k);
findByHeight(stu,Max,k);
break;
case 2:
//接受用户输入,调用响应函数
printf("请输入年龄:");
int j;
scanf("%d",&j);
findByAge(stu,Max,j);
break;
case 3:
char cc;
int a,h;
printf("请输入性别:");
scanf(" %c",&cc);
printf("请输入年龄下限:");
scanf("%d",&a);
printf("请输入身高下限:");
scanf("%d",&h);
findByComb(stu,Max,cc,a,h);
break;
}
select = listMenu();
}
}
·····