求教 用C++编一个程序

xiaoqiang1987 2008-03-24 04:20:02
用C++编一个程序
题目是这样的:
编一个程序能把名片上所有的信息都保存到一个文件上,并且能通过名片上的""公司名和"姓名"查找到文件中名片的所有的信息.
请各位大虾帮帮忙!先谢了!!!
...全文
153 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hai040 2008-03-24
  • 打赏
  • 举报
回复
这个要用到文件操作,字符串匹配,结构/类
怎么初学就写这个?
sheenl 2008-03-24
  • 打赏
  • 举报
回复
这个可以从文件中读出名片并搜索. 名片只有公司名和人名信息


#include <iostream>
#include <fstream>
#include <iterator>
#include <list>
#include <string>
#include <algorithm>

using namespace std;

struct Card
{
string CompanyName;
string Name;
};

istream& operator >>(istream& in, Card& c)
{
in>>c.CompanyName>>c.Name;
return in;
}

ostream& operator <<(ostream& out, const Card& c)
{
out<<c.CompanyName<<' '<<c.Name;
return out;
}

class CardCmp
{
public:
enum COMPTYPE {COMPANY, PERSON};
CardCmp(const string& s, COMPTYPE type = COMPANY):
strName(s),cmpType(type) {}
bool operator ()(const Card& c)
{
return (cmpType == COMPANY)?
(strName == c.CompanyName) : (strName == c.Name);
}
private:
string strName;
COMPTYPE cmpType;
};


void card()
{
list<Card> lstCard;
list<Card>::iterator pos;

fstream fs("card.txt");
istream_iterator<Card> ifs_iter(fs);
istream_iterator<Card> ifs_end;

copy(ifs_iter, ifs_end, back_inserter(lstCard));

for (pos = lstCard.begin(); pos != lstCard.end(); ++pos)
{
cout<<*pos<<endl;
}

string s;
cout<<"Please inpu company name:\n";
cin>>s;
pos = find_if(lstCard.begin(), lstCard.end(), CardCmp(s));
if (pos != lstCard.end())
{
cout<<"founded :"<<*pos<<endl;
}
else
{
cout<<"not found"<<endl;
}

cout<<"Please inpu company name:\n";
cin>>s;
pos = find_if(lstCard.begin(), lstCard.end(),
CardCmp(s, CardCmp::PERSON));
if (pos != lstCard.end())
{
cout<<"founded :"<<*pos<<endl;
}
else
{
cout<<"not found"<<endl;
}

fs.close();

}
xiaoqiang1987 2008-03-24
  • 打赏
  • 举报
回复
可还是不会编程序啊
我是刚学C++ 不会编程序
独孤过儿 2008-03-24
  • 打赏
  • 举报
回复
晕倒,你不做一个名片的结构啊?这个结构肯定有字段吧!接下来不用我说了吧...
xiaoqiang1987 2008-03-24
  • 打赏
  • 举报
回复
用strcmp()好象不行啊
它是从文件开头一个个比较
如果名字在中间那就没法比了
独孤过儿 2008-03-24
  • 打赏
  • 举报
回复
strcmp();
这是最简单,也是最懒的方法!

65,206

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧