本C++程序设计课设资源 设计要求 1、问题描述 定义通讯录类,属性有:编号、姓名、性别、通讯地址、邮箱地址、电话等信息和相关的对属性做操作的行为。
主要完成对通讯录的简单管理。
2、功能要求 (1)添加功能:程序能够添加通讯录信息,要求编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:可根据姓名、电话、邮箱地址等信息对已添加的信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息; (3)显示功能:可显示当前系统中所有通讯信息,每条记录占据一行。
(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除功能:主要实现对已添加的通讯记录进行删除。
如果当前系统中没有相应的人员记录,则提示“记录为空!
”并返回操作。
(6)保存功能:可将当前系统中通讯录记录存入文件中,存入方式任意。
(7)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。
设计思路 如图是整个系统的流程图。
输入想要完成的操作的序号,开始执行。
关键功能的实现 1)声名person的类,接下来定义类所需要的变量:姓名、ID、性别、职务、工资。
为person建立函数库。
class person{
public:
int ID;
string name;
char sex;//char定义可避免输入多字符,且解决了string类型和char类型的不匹配
string address;
string email;
string tel;
person(){}//防止函数库报错,实现重载
person(int id,string na,char se,string addr,string em,string te){//构造函数
this->ID=id;
this->name=na;
this->sex=se;
this->address=addr;
this->email=em;
this->tel=te;
}
~person();
void display();
};
person::~person(){
}
void person::display(){
cout<<"名字:"<
<
}
class ku{//为person建立函数库
public:
ku(){}
void add();
int index(string name,string tel,string email);
void search();
void show();
void edit();
void destroy();
void save();
void read();
protected:
vectorper;
};
2)主函数部分实现初始化数据调用switch函数、从键盘输入x。
int main(){
int N;
ku K;
while(1){
showMenu();
cin>>N;
switch(N){
case 1://添加联系人
K.add();break;
case 2://查询联系人
K.search();break;
case 3://显示联系人
K.show();break;
case 4://编辑联系人
K.edit();break;
case 5://删除联系人
K.destroy();break;
case 6://保存联系人
K.save();break;
case 7://读取联系人
K.read();break;
case 0://退出通讯录
return 0;break;
default:
cout<
打开程序后,界面显示菜单,根据需求,选择所需操作,输入操作对应的序号。
3)管理功能的实现:添加员工信息、查询员工信息、修改员工信息、删除员工信息。
1.添加功能 先输入需要添加的人数,之后按照提示的相关信息依次输入姓名、ID、性别、通讯地址、邮箱地址、电话等信息进行添加,若ID重复则提示"该ID已被使用,请重新输入"取消添加并重新输入。
void ku::add(){//添加功能
int id;
string name,address,email,tel;
char sex;
int num;
cout<<"请输入将要添加的人数:";
cin>>num;
cout<>name;
cout<>id;
cout<>id;
cout<>sex;
cout<>sex;
cout<>address;
cout<>email;
cout<>tel;
cout<
2.查询功能 按照输出的提示选择按照姓名、电话、邮箱地址其中的一个进行查询。
输入相应编号,然后按照提示输入相应信息,回车之后会显示通讯记录的全部信息。
void ku::search(){//查询功能
int sign;
if(per.empty()){
cout<<"列表内没有人员"<>a;
switch(a){
case '1':{
string na;
cout<<"请输入所查找人的姓名:"<>na;
if(index(na,"null","null")==-1) cout<<"查无此人"<>tel;
if(index("null",tel,"null")==-1) cout<<"查无此人"<>email;
if(index("null","null",email)==-1) cout<<"查无此人"<
3.显示功能 显示所有通讯信息。
void ku::show(){//显示功能
if(per.empty())
cout<
4.编辑功能 先输入通讯人员的姓名找到相应的记录,如果没有则会输出"查无此人";如果有则会输出"请选择您要修改的内容的序号:"并显示有关内容,之后输入想要修改的内容前面的序号,然后按照提示输入修改的新内容,回车,显示"更改完成"字样则修改成功。
void ku::edit(){//编辑功能
int sign=0;
if(per.empty()){
cout<<"——————————列表内没有人员——————"<>name;
sign=index(name,"null","null");
if(sign==-1)
cout<>x1;
switch(x1){
case '1':{
cout<<"请输入新的姓名:";
string na1;
cin>>na1;
per[sign].name=na1;
cout<<"更改完成"<>id2;
for(int i=0;i>se1;
while(se1!='f'&&se1!='m'){
cout<<"性别输入错误,请重新输入!
"<>se1;
}
per[sign].sex=se1;
cout<<"更改完成"<>addr;
per[sign].address=addr;
cout<<"更改完成"<>email;
per[sign].email=email;
cout<<"更改完成"<>tel;
per[sign].tel=tel;
cout<<"更改完成"<
5.删除功能 输入删除的通讯记录的姓名,如果该信息存在,输出"删除成功";如果不存在,输出"查无此人,删除失败"。
实现删除功能。
void ku::destroy(){//删除功能
if(per.empty()){
cout<<" ————列表内没有人员——————"<>num;
if(num<=0||num>per.size()){
cout<<"输入错误";
return;
}
for(int i=1; i<=num; i++){
cout<<"请输入要删除的第"<>name;
sign=index(name,"null","null");
if(sign==-1)
cout<<"查无此人,操作失败"<
6.保存功能的实现 当选择存盘信息之后,程序会自动将存在的通讯信息存储到a.txt这个文件中,并在程序界面显示"存储成功"字样。
void ku::save(){//保存功能
ofstream ofs;
ofs.open("a.txt",ios::out|ios::binary);
if(ofs){
if(per.empty()){
cerr<<"error"<(&per[i]),sizeof(per[i]));
ofs.flush();
}
cout<<"存储成功"<
7.读取功能的实现 将想要读取的信息写在a.txt文件中,程序会自动地将信息读取到对象数组中并在程序界面显示读取的通讯信息。
void ku::read(){//读取功能
cout<<" —————————欢迎使用通讯录管理系统——————————"<(&per2),sizeof(per2));
per[i].display();
}
}
}
测试结果 1.显示操作界面。
2.调用功能 1)添加功能 根据提示一步一步添加信息。
先添加姓名、ID、性别、职务、工资。
定义4名人员:a、101、f、北京、wxkljlr2935@163.com、17611711786 s、102、m、上海、qs3874@sina.com、17621752203 b、103、m、深圳、nvmd7705@sohu.com、19527552718 d、104、f、秦皇岛、357477338@qq.com、13103357027
编号重复时
性别输入错误时
2)查询功能 按照姓名或电话或邮箱地址查询,输出所查询员工的姓名、编号、性别、通讯地址、邮箱地址、电话。
按照姓名查询s的具体信息如下:
按照电话查询如下:
按照邮箱地址查询如下:
查无此人时
3)显示功能 显示所有通讯信息。
4)修改功能 将s的性别修改为f,具体操作如下:
5)删除功能 输入想要删除的员工ID。
删除a和s的具体操作如下:
6)存储功能 选择保存联系人功能,显示“存储成功”则存盘成功;打开a.txt文件发现相关信息。
7)读取功能 在a.txt文件中输入相关信息,选择读取功能,若显示文本中的通讯信息,则读取信息成功。
更新: 头文件
#include
#include
#include
#include
#include
#include
#include
index函数
int ku::index(string name,string tel,string email){
for(int i=0; i
