这是一个基于C/C++的开发的一个简单项目,欢迎大家指出错误,一起进步!
需要源码可文章内自取
通讯录管理项目要求
通讯录管理系统项目
项目要求实现以下功能:
1.添加联系人
2.显示联系人
3.删除联系人
4.查找联系人
5.修改联系人
6.清空联系人
项目开发思路
1.关于联系人存储方式
采用结构体数组存储联系人,利用结构体嵌套存储访问联系人信息
2.关于各个功能函数的实现
添加联系人:通过对结构体数组赋值操作实现
显示联系人:循环遍历输出数组元素及其信息实现
删除联系人:对删除位置后所有元素向前移动一位覆盖要删除的元素实现删除操作
查找联系人:通过联系人姓名属性进行对比从而查找对应联系人
修改联系人:模仿查找联系人的功能查找到需要要修改的联系人,再对数组元素信息进行修改
清空联系人:对数组做数组置空操作即可
3.关于此项目的个人想法
此项目较为简单,没有涉及到很难的C/C++的应用,
是初学者练手的优秀项目,也是大部分学校考核计信专业新生的期末作业,需要的同学可自取项目源码。
对这个项目有什么问题可以发表评论或私信我一起讨论,欢迎大家指出不足!
项目源码
#include <iostream>
#include <string>
using namespace std;
#define Maxsize 2
struct member{
string name;//联系人名字
string phone_number;//联系人电话号码
};
struct address_book{
member address_list[Maxsize];
int m_size = 0;
};
void Print_menu();//打印功能菜单
void Add_member(address_book *p);//实现功能1添加联系人
void Display_member(address_book *p);//实现功能2显示联系人
void Delete_member(address_book *p,string name);//实现功能3删除联系人
void Search_member(address_book *p,string name);//实现功能4查找联系人
void Change_member(address_book *p,string name);//实现功能5修改联系人
void Clean_member(address_book *p);//实现功能6清空联系人
int main(){
//定义一个通讯录
address_book addressBook;
while(1) {
char commond = -1;
string na;
Print_menu();
//打印菜单
cin>>commond;
switch ((int)commond) {
case 1:
Add_member(&addressBook);
break;
case 2:
Display_member(&addressBook);
break;
case 3:
cout<<"请输入您需要删除联系人名字:";
cin>>na;
Delete_member(&addressBook,na);
break;
case 4:
cout<<"请输入您需要查找的联系人名字:";
cin>>na;
Search_member(&addressBook,na);
break;
case 5:
cout<<"请输入您需要修改信息的联系人名字:";
cin>>na;
Change_member(&addressBook,na);
break;
case 6:
Clean_member(&addressBook);
break;
case 0:
cout<<"感谢您的使用!"<<endl;
exit(0);
default:
cout<<"警告:”非法输入!请重新输入数字“"<<endl;
break;
}
system("pause");
}
}
void Print_menu(){
cout<<"**********************"<<endl;
cout<<"****\t1.添加联系人\t****"<<endl;
cout<<"****\t2.显示联系人\t****"<<endl;
cout<<"****\t3.删除联系人\t****"<<endl;
cout<<"****\t4.查找联系人\t****"<<endl;
cout<<"****\t5.修改联系人\t****"<<endl;
cout<<"****\t6.清空联系人\t****"<<endl;
cout<<"****\t0.退出通讯录\t****"<<endl;
cout<<"**************************"<<endl;
cout<<"请输入数字选择功能:"<<endl;
}
void Add_member(address_book *p){
if(p->m_size >= Maxsize){
cout<<"通讯录已满,请删除部分联系人后再添加!"<<endl;
return;
}
cout<<"请输入你将要添加的联系人姓名:";
cin>>p->address_list[p->m_size].name;
cout<<"请输入你将要添加的联系人电话号码:";
cin>>p->address_list[p->m_size].phone_number;
cout<<"添加成功"<<endl;
p->m_size++;
}//实现功能1添加联系人
void Display_member(address_book *p){
if(p->m_size == 0){
cout<<"通讯录为空!"<<endl;
}
for (int i = 0; i < p->m_size; ++i) {
cout<<"联系人姓名:"<<p->address_list[i].name<<" "<<"联系人电话号码:"<<p->address_list[i].phone_number<<endl;
}
}//实现功能2显示联系人
void Delete_member(address_book *p,string na){
for (int i = 0; i < p->m_size; ++i) {
if (p->address_list[i].name == na)
{
for (int j = i; j < p->m_size; ++j) {
if(i!=p->m_size-1)
p->address_list[i] = p->address_list[i+1];
}
}
}
p->m_size--;
cout<<"删除成功!"<<endl;
}//实现功能3删除联系人
void Search_member(address_book *p,string name){
for (int i = 0; i <= p->m_size; ++i) {
if (p->address_list[i].name == name)
{
cout<<"联系人姓名:"<<p->address_list[i].name<<" "<<"联系人电话号码:"<<p->address_list[i].phone_number<<endl;
return;
}
else if (i == p->m_size){
cout<<"查无此人"<<endl;
}
}
}//实现功能4查找联系人
void Change_member(address_book *p,string name){
for (int i = 0; i <= p->m_size; ++i) {
if (p->address_list[i].name == name) {
cout << "请输入修改后的名字:" << endl;
cin >> p->address_list[i].name;
cout << "请输入修改后的电话号码:" << endl;
cin >> p->address_list->phone_number;
cout << "修改成功!" << endl;
return;
}
else if (i == p->m_size){
cout<<"查无此人!"<<endl;
}
}
}//实现功能5修改联系人
void Clean_member(address_book *p){
p->m_size = 0;
cout<<"通讯录已清空"<<endl;
return;
}//实现功能6清空联系人