PTA(java,C++)查找电话号码
程序员文章站
2024-01-31 08:22:16
...
查找电话号码
题目描述:
文件phonebook1.txt中有若干联系人的姓名和电话号码。
高富帅 13312342222
白富美 13412343333
孙悟空 13512345555
唐三藏 13612346666
猪悟能 13712347777
沙悟净 13812348888
请你编写一个简单的通信录程序,当从键盘输入一个姓名时查找到对应的电话号码并输出。如果没找到则显示Not found. 由于目前的自动裁判系统暂时不能支持用户读入文件,我们编写程序从键盘输入文件中的姓名和电话号码,当输入的名字为noname时,表示结束。noname后面有一个名字,需要查找其对应的电话号码。
输入样例:
白富美 13412343333
孙悟空 13512345555
唐三藏 13612346666
猪悟能 13712347777
沙悟净 13812348888
noname
白骨精
输出样例:
Not found.
- 解题思路:很明显,题目中姓名和电话号码一一对应,在C++中map容器可以很好地反映出键与键值一一对相应的关系。在java中容器中的映射接口Map可以反映出键与键值一一对相应的关系。其大致流程为:声明容器对象,将姓名和电话号码的关系添加到容器中,然后输入要查找的姓名,判断该键是否在容器中,如果在,输出对应的键值,如果不在输出Not found.
C++编程
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main() {
map<string,string> m;
string name;
string phone;
string flag("noname");
cin>>name;
while(name!=flag) {
cin>>phone;
m.insert(pair<string, string>(name,phone));
cin>>name;
}
string seek_name;
cin >>seek_name;
map<string,string>::iterator p;
p=m.find(seek_name);
if(p!=m. end())
cout<<p->second;
else
cout <<"Not found."<<endl;
return 0;
}
java编程
package first;
import java.util.*;
public class first {
public static void main(String args[]){
Map<String,String> hm=new HashMap<String,String>();
Scanner in=new Scanner(System.in);
while(in.hasNext()){//判断是否还有后续元素
String name=in.next();
if(name.equals("noname")){
break;
}
else{
String phone=in.next();
hm.put(name, phone);
}
}
String seek_name=in.next();//返回键(从键盘输入)
if(hm.containsKey(seek_name)){//判断是否包含指定的键
System.out.println(hm.get(seek_name));//输出键对应的值
}
else {
System.out.println("Not found.");
}
}
}
上一篇: Numpy使用02
下一篇: Java知识总结--SpringMVC篇