c++课程设计(通讯录管理系统)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通讯录管理系统
要求:
1.创建文本文件,记录联系人的信息。
2.以菜单方式工作
3.联系人的信息包括:姓名,籍贯,电话号码,QQ号等信息
4.管理系统的功能包括:
a)增加:添加新的联系人
b)删除:删除一个联系人(输入电话号码,删除该联系人)
c)修改:修改某个联系人的信息
i.修改姓名
ii.修改电话号码
iii.修改籍贯
iv.修改QQ号
d)查询
i.根据名字查询联系人信息(查询结果不唯一)
ii.根据电话号码查询联系人信息
iii.根据QQ号查询联系人信息
实现过程分析:
建立一个文本文件,记录联系人的基本信息
建立以下几个类:
1.联系人类:表示一个联系人
数据成员包括:
姓名
籍贯
电话号码
QQ号
成员函数包括
一组set函数为数据成员赋值
一组modify函数,修改数据成员的值
Display函数:显示联系人的信息
2.通讯簿类(这是一个数据库类):用于记录所有联系人的信息
数据成员包括:
联系人的数量
联系人对象数组
成员函数包括
构造函数:读取文本文件中的数据,并根据文件内容创建联系人对象数组
析构函数:将对象数组中的内容写入到文本文件中。
增加函数:增加一个联系人
删除操作:删除一个联系人
Display:显示所有联系人的信息
修改某一联系人的信息:
查询并显示某一联系人的信息:
3.用户类(这是一个操作类,完成通讯簿的操作):用户拥有一个通讯簿,并且可以对通讯录进行管理
数据成员包括:
通讯簿对象
成员函数包括(成员函数体现用户的行为):
添加联系人:调用通讯簿对象的增加函数完成联系人的添加
删除联系人:调用通讯簿对象的删除操作删除一个联系人
Display:显示所有联系人的信息
修改某一联系人的信息:调用通讯簿对象的函数完成操作
查询并显示某一联系人的信息:调用通讯簿对象的函数完成操作4.界面菜单类:用来给出操作提示
数据成员:可以不定义数据成员
成员函数:
Display函数:显示操作菜单的提示。说明:可以根据需要定义多个函数,显示不同的菜单(操作提示)。
#include
#include
#include
#include
class person
{
int tel;
int QQ;
char name[20];
char nplace[40];
public:
int set_tel()
{
return tel;
}
int set_QQ()
{
return QQ;
}
char *set_name()
{
char *p=new char[strlen(name)+1];
strcpy(p, name);
return p;
}
char*set_nplace()
{
char *p=new char[strlen(nplace)+1];
strcpy(p, nplace);
return p;
}
friend istream & operator >>(istream &in,person&b);
friend ostream & operator <<(ostream &out,person&b);
void disp()
{
cout<<"联系人姓名:"< cout<<"联系人电话:"< cout<<"联系人籍贯:"< cout<<"联系人QQ:"< } void luru() { cout<<"请输入姓名、籍贯、电话、QQ"< cin>>this->name; cin>>this->nplace; cin>>this->tel; cin>>this->QQ; } friend class addbook; }; istream & operator >> (istream &in,person&p) { in>>; in>>p.tel; in>>p.nplace; in>>p.QQ; return in; } ostream & operator << (ostream &out,person&p) { out<<"姓名:"<<< out<<"籍贯:"< out<<"电话:"< out<<" QQ : "< return out; } class addbook { person *book; int n; public: addbook(); ~addbook(); void add(); void display(); void del(); void modify(); void searchbyname(); void searchbytel(); void searchbyQQ(); void Luru() { for(int j=0;j book[j].luru(); } }; addbook::addbook() { book = new person[1000]; fstream fin("person.dat",ios::in|ios::binary); int i=0; n=i; if(!fin) { cout<<"文件打开失败"< return ; } fin.read ((char *)&book[i],sizeof(person)); while(!fin.eof()){ i++; fin.read ((char *)&book[i],sizeof(person));