Problem Description 有以下英汉对照表 cliff 悬崖 berg 冰山 precipice 悬崖 tract 一片,区域,地带 编程实现: 函数inputWord把以上英汉对照表用键盘输入到内存字典中。 函数displayDic把字典内容显示到屏幕。 函数findWord查找某英文单词是否在字典中,如果在,则输出;不在,输出提示信息。 输出格式:左对齐,每项占12列。 //你的代码将嵌在这里 int main() { string word; cin >> word; multimap<string, string> dic; inputWord(dic); displayDic(dic); findWord(dic, word); return 0; }
Input Description 输入的第1行是要查找的英文单词 输入的第2-7行是英汉单词对照表 Output Description 首先,输出英汉单词对照表 其次,如果查找到英文单词,则输出: 查找单词的结果: tract 一片 tract 区域 tract 地带
如果没有查找到,则输出: 查找单词的结果: 没有要查找的单词
Sample Input tract cliff 悬崖 berg 冰山 precipice 悬崖 tract 一片 tract 区域 tract 地带 Sample Output 字典中的内容: berg 冰山 cliff 悬崖 precipice 悬崖 tract 一片 tract 区域 tract 地带 查找单词的结果: tract 一片 tract 区域 tract 地带
#include <iostream>
using namespace std;
#include <algorithm>
#include<map>
#include <string>
#include<iomanip>
void inputWord(multimap<string, string> &p)
{
string china, english;
for (int i = 0; i < 6; i++)
{
cin >> china >> english;
p.insert(make_pair(china, english));
}
}
void displayDic(multimap<string, string> &v)
{
cout << "字典中的内容:" << endl;
multimap<string, string>::iterator p;
for (p = v.begin(); p != v.end(); p++)
{
cout <<setw(12) << left << p->first << p->second << endl;
}
}
void findWord(multimap<string, string> & t ,string word)
{
cout << "查找单词的结果:" << endl;
bool flag = false;
multimap<string, string>::iterator p;
for (p = t.begin(); p != t.end(); p++)
{
if (p->first == word)
{
cout << setw(12) << left << p->first << p->second << endl;
flag = true;
}
}
if (!flag)
{
cout << "没有要查找的单词" << endl;
}
}
int main()
{
string word;
cin >> word;
multimap<string, string> dic;
inputWord(dic);
displayDic(dic);
findWord(dic, word);
return 0;
}
|