小张的个人信息管理系统

tech2022-09-15  103

小张是同学会的负责人,但是复杂的联系信息让他很头痛,请你帮他写一个个人信箱的管理系统(人数小于30人),每个人包含3项信息:

姓名 (小于20个字符) 性别(Female = 女, Male = 男) 生日(年月日)

每个人用一个结构体表示,同时支持以下操作:

add Tim Male 1993 12 22

添加一个名为Tim的男生,出生年月日位1993-12-22

name Tim

返回姓名为Tim的人的所有信息

sex Male

返回所有男生的信息(sex Female返回女生信息)

quit

退出系统

样例输入 add Tim Male 1993 12 22 add Britney Female 1992 2 23 add Freddy Male 1989 4 22 name Britney sex Male quit 样例输出 Britney Female 1992-2-23 Tim Male 1993-12-22 Freddy Male 1989-4-22

#include <stdio.h> #include <string.h> struct { char name[100]; char sex[10]; int year; int month; int day; }stu[30]; //定义一个结构体数组,用于存放个人信息 int main() { char s[10]; //字符数组s[10]用于接收命令 int i=0; while(1) //保持持续循环的状态 { scanf("%s",s); if(strcmp(s,"quit")==0) //当命令为quit时,退出循环 break; if(strcmp(s,"add")==0) //当命令为add时,向结构体数组中存入信息 { scanf("%s%s%d%d%d",&stu[i].name,&stu[i].sex,&stu[i].year,&stu[i].month,&stu[i].day); i++; } if(strcmp(s,"name")==0) //当命令为name时 { char b[100]; scanf("%s",b); //输入要查询的名字并存入b[100]中 for(int j=0;j<i;j++) //遍历结构体数组 if(strcmp(b,stu[j].name)==0) //找到所查询的名字,并输出所有信息 printf("%s %s %d-%d-%d\n",stu[j].name,stu[j].sex,stu[j].year,stu[j].month,stu[j].day); } if(strcmp(s,"sex")==0) //当命令为sex时 { char a[10]; scanf("%s",a); //输入需要查询的性别,并存入a[10]中 for(int j=0;j<i;j++) if(strcmp(a,stu[j].sex)==0) //当性别为查询性别时,输出个人信息 printf("%s %s %d-%d-%d\n",stu[j].name,stu[j].sex,stu[j].year,stu[j].month,stu[j].day); } } }

输出结果如下:

最新回复(0)