01.01./*
02.02.* 程序的版权和版本声明部分
03.03.* Copyright (c)2013, 烟台大学计算机学院学生
04.04.* All rightsreserved.
05.05.* 文件名称: array.cpp
06.06.* 作 者:
07.07.* 完成日期: 2013年 12 月 6 日
08.08.* 版本号: v1.0
09.09.* 输入描述:无
10.10.* 问题描述:自己做字典
11.11.*/
#include <fstream>
#include<iostream>
#include<cstdlib>
#include<string>
using namespace std;
string e[8000],c[8000],key;
int i=0;
int search(int low, int high, string k);
int main( )
{
ifstream infile("dictionary.txt",ios::in);
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
while (infile>>e[i]>>c[i])
{
++i;
}
infile.close();
do
{
cout<<"请输入要查的词(123结束):";
cin>>key;
if (key=="123")
break;
else
{
int low=0,high=i-1;
int answer=search(low, high, key);
if (answer==-7)
cout<<"对不起 找不到"<<endl;
else
cout<<key<<"的中文意思是:"<<c[answer]<<endl;
}
}
while(1);
{cout<<"欢迎再次使用!"<<endl;}
return 0;
}
int search(int low,int high,string k)
{
int mid;
while(low<=high)
{
mid=(low+high) / 2;
if(e[mid]==k)
{
return mid;
}
if(e[mid]>k)
high=mid-1;
else
low=mid+1;
}
return -7;
}
运行结果
心得体会
这个题目对于上周没有完成文件操作初体验的我带来的很大的困难啊 ! 实在是很不应该啊 , 上周偷懒的时间这一下子全都补回来了,心里面那个悔啊。上面那个题目是我去网上找的一个差不多的(其实修改了好久)才做出来的,但依然感觉十分的不顺手,主要是对于文件的输入和输出不能很好的掌握,如果让我自己独立的写这个程序,我真不一定能够写出来啊!唉...还能说什么呢 菜鸟加油吧 以后别偷懒啊...(P.S虽然是借鉴的 但还是厚颜无耻的打上了原创,嘿嘿 原谅自己一次吧)