资源简介
本课程设计是设计一个实用的小型通信录程序,具有查询和删除功能,并且能够打开或修改指定文件及将多个文件组成一个文件。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
struct Record {
string name; // 姓名
string tel; //电话
};
class RecordList : public list {
friend ostream& operator<< (ostream& os const RecordList& c_rl);
friend istream& operator>> (istream& is RecordList& rl);
public:
void clear();
iterator erase(iterator where);
~RecordList();
};
ostream& operator<< (ostream& os const RecordList& c_rl) {
if(c_rl.empty())
os<<“--------该表为空------“< else {
RecordList::const_iterator it;
RecordList::const_iterator it_begin = c_rl.begin();
RecordList::const_iterator it_end = c_rl.end();
for(it = it_begin; it != it_end; it++) {
os<name;
os<tel< }
}
return os;
}
istream& operator>> (istream& is RecordList& rl) {
Record* re=new Record;
is>>re->name>>re->tel;
rl.push_back(re);
return is;
}
void RecordList:: clear() {
RecordList::iterator it;
RecordList::iterator it_begin = this->begin();
RecordList::iterator it_end = this->end();
for(it = it_begin; it != it_end; it++)
delete *it;
list::clear();
}
RecordList::iterator RecordList:: erase(iterator where) {
RecordList::iterator it=list::erase(where);
delete *where;
return it;
}
RecordList::~RecordList() {
clear();
}
class AddressList
{
protected:
RecordList recList; //RecordList类的对象作为数据成员
public:
typedef RecordList::iterator Iterator;
//从通信录中寻找一个记录
virtual Iterator findRecord(string patten int type Iterator form);
//其他成员函数
virtual void addRecord(Record* rec);
virtual void removeRecord(Iterator it);
virtual void saveRecords(ostream& os);
virtual int loadRecords(istream& in);
virtual ~AddressList();
const int size() const {return (int)recList.size();}
const bool empty() const {return recList.empty();}
virtual void clear(){recList.clear();}
Iterator first(){return recList.begin();}
Iterator pastEnd(){return recList.end();}
};
RecordList::iterator AddressList:: findRecord(string patten int type Iterator form) {
Iterator it;
Iterator it_end = recList.end();
if(type==1) {
for(it = form; it != it_end; it++){
if((*it)->name==patten){
return it;
}
}
}
else if(type==2) {
for(it = form; it != it_end; it++) {
if((*it)->tel==patten) {
return it;
}
}
}
return it_end;
}
void AddressList::addRecord(Record* rec) {
recList.push_back(rec);
}
void AddressList::removeRecord(Iterator it ) {
recList.erase(it);
}
void AddressList::saveRecords(ostream& os) {
os< }
int AddressList::loadRecords(istream& in) {
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 583168 2007-08-28 22:21 通讯录\13061007.doc
文件 10032 2007-08-24 10:07 通讯录\13061007段浩伟.cpp
文件 72704 2007-08-22 11:02 通讯录\stl1.doc
文件 70144 2007-08-22 10:59 通讯录\stl2.doc
文件 3274 2007-08-22 23:39 通讯录\Unti
文件 10137 2007-08-24 00:01 通讯录\作业一.cpp
文件 11806 2007-08-23 22:42 通讯录\作业二.cpp
文件 47616 2007-08-19 18:17 通讯录\新建 Microsoft PowerPoint 演示文稿.ppt
文件 51200 2007-08-19 18:14 通讯录\新建 Microsoft Word 文档.doc
文件 2679 2007-08-21 11:08 通讯录\新建 文本文档 (2).txt
文件 6543 2007-08-21 11:23 通讯录\新建 文本文档 (3).txt
文件 11478 2007-08-21 10:53 通讯录\新建 文本文档.txt
文件 1489 2007-08-23 19:07 通讯录\新建_文本文档_(4).txt
文件 2309 2007-08-23 19:08 通讯录\新建_文本文档_(5).txt
文件 8044 2007-08-23 19:08 通讯录\新建_文本文档_(6).txt
文件 2809 2007-08-22 17:56 通讯录\通讯录程序\John\H\AddressBook.h
文件 1448 2007-08-22 10:02 通讯录\通讯录程序\John\H\AddressList.h
文件 1314 2007-08-22 17:01 通讯录\通讯录程序\John\H\RecordList.h
文件 105 2007-08-25 23:29 通讯录\通讯录程序\John\H\未命名1.cpp
文件 738 2007-08-21 19:51 通讯录\通讯录程序\My work\My work\address.cpp
文件 691 2007-08-21 23:27 通讯录\通讯录程序\My work\My work\address.h
文件 5488 2007-08-21 23:24 通讯录\通讯录程序\My work\My work\addressbook.cpp
文件 735 2007-08-21 19:46 通讯录\通讯录程序\My work\My work\addressbook.h
..A..H. 7680 2007-08-21 19:44 通讯录\通讯录程序\My work\My work\addressbook.suo
文件 820 2007-08-21 22:14 通讯录\通讯录程序\My work\My work\addresslist.cpp
文件 842 2007-08-21 20:10 通讯录\通讯录程序\My work\My work\addresslist.h
..A..H. 9216 2007-08-21 20:44 通讯录\通讯录程序\My work\My work\My Addressbook.suo
目录 0 2010-10-11 19:24 通讯录\通讯录程序\John\H
目录 0 2010-10-11 19:24 通讯录\通讯录程序\My work\My work
目录 0 2010-10-11 19:24 通讯录\通讯录程序\John
............此处省略6个文件信息
- 上一篇:C++读取WAV格式音频文件
- 下一篇:Thinking in C++ 源代码
评论
共有 条评论