编程题 7-34 通讯录的录入与显示【PAT】

编程练习题目集目录

题目

  通讯录中的一条记录包含下述基本信息:朋友的姓名、出生日期、性别、固定电话号码、移动电话号码。 本题要求编写程序,录入 N N N 条记录,并且根据要求显示任意某条记录。

输入格式

  输入在第一行给出正整数 N ( ≤ 10 ) N(≤10) N10;随后 N N N 行,每行按照格式:姓名 生日 性别 固话 手机给出一条记录。其中姓名是不超过 10 10 10 个字符、不包含空格的非空字符串;生日按 y y y y / m m / d d yyyy/mm/dd yyyy/mm/dd 的格式给出年月日;性别用 M M M 表示“男”、 F F F 表示“女”;固话和手机均为不超过 15 15 15 位的连续数字,前面有可能出现+。
  在通讯录记录输入完成后,最后一行给出正整数 K K K,并且随后给出 K K K 个整数,表示要查询的记录编号(从 0 0 0 N − 1 N−1 N1 顺序编号)。数字间以空格分隔。

输出格式

  对每一条要查询的记录编号,在一行中按照姓名 固话 手机 性别 生日的格式输出该记录。若要查询的记录不存在,则输出 N o t Not Not F o u n d Found Found

输入样例

3
Chris 1984/03/10 F +86181779452 13707010007
LaoLao 1967/11/30 F 057187951100 +8618618623333
QiaoLin 1980/01/01 M 84172333 10086
2 1 7

输出样例

LaoLao 057187951100 +8618618623333 F 1967/11/30
Not Found

题解

解题思路

  使用 c l a s s class class 来存储输入的 N N N 个数据,然后创建一个 c l a s s class class 类型的数组,来存放几个人的数据,然后根据题目要求输入数据。然后输入要查找的人数,创建一个 i n t int int 型数组来存储要找那 K K K 个人,然后 f o r for for 循环判断 i n t int int 型数组和 c l a s s class class 型数组中下标是否有相同的,如果有直接按照要求输出;如果没有则输出 " N o t F o u n d " "Not Found" "NotFound" 即可。
  注:最后判断下标,数组的下标从 0 0 0 开始到 N − 1 N-1 N1

完整代码

#include<string>
#include<iostream>
using namespace std;

class Person            // 人员信息结构体
{
    
    
public:
    string sex;
    string name;
    string phone;
    string mobile;
    string birthday;
};

int main(void)
{
    
    
    int n, m, a[20];
    Person p[20];
    cout << "请输入人数:";                       // 提交时注释此行
    cin >> n;
    cout << "请输入 " << n << " 个信息:";         // 提交时注释此行
    for (int i = 0; i < n; i++)
        cin >> p[i].name >> p[i].birthday >> p[i].sex >> p[i].phone >> p[i].mobile;
    cin >> m;
    for (int i = 0; i < m; i++)
        cin >> a[i];
    for (int i = 0; i < m; i++)
    {
    
    
        if (a[i] < n && a[i] >=0)
            cout << p[a[i]].name << " " << p[a[i]].phone << " " << p[a[i]].mobile << " " << p[a[i]].sex << " " << p[a[i]].birthday << endl;
        else
            cout << "Not Found" << endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41918107/article/details/143285220