写了一个很简单的案例,管理通讯录,并没有用到数据库,文件等知识,虽说是用C++写的,但是除了输入输出外,和c语言一毛一样,大一的同学做C语言实验也许有点参考作用。
主要功能实现:
好了,废话不多说,直接上完整代码。
#include<iostream>
#include<string>
using namespace std;
#define M 1000
struct person //联系人结构体
{
string name;
string sex;
int age;
long int phone;
string addr;
};
struct books //通讯录结构体
{
struct person parr[M]; //当前联系人数组
int sum; //当前联系人个数
};
//1、封装个函数用来显示界面
void showmenu()
{
cout << endl;
cout << "选择通讯录功能:" << endl;
cout << " 1、添加联系人" << endl;
cout << " 2、显示联系人" << endl;
cout << " 3、删除联系人" << endl;
cout << " 4、查找联系人" << endl;
cout << " 5、修改联系人" << endl;
cout << " 6、清空添加联系人" << endl;
cout << " 0、退出通讯录" << endl;
}
void addperson(books *abs) //添加联系人
{
if (abs->sum == 1000)
{
cout << "通讯录已达上限!" << endl;
}
else //1.添加具体联系人
{
string name;
cout << " 请输入姓名:";
cin >> name;
abs->parr[abs->sum].name = name;
string sex;
cout << " 请输入性别:";
cin >> sex;
abs->parr[abs->sum].sex = sex;
int age;
cout << " 请输入年龄:";
cin >> age;
abs->parr[abs->sum].age = age;
int phone;
cout << " 请输入电话:";
cin >> phone;
abs->parr[abs->sum].phone = phone;
string addr;
cout << " 请输入地址:";
cin >> addr;
abs->parr[abs->sum].addr = addr;
abs->sum++;
cout << " 添加成功!" << endl;
system("pause"); //按任意键继续
system("cls"); //清屏
}
}
void showperson(books *abs) //2.显示联系人
{
if (abs->sum == 0) //判断通讯鲁中人数,如果为0,提示记录为空
{
cout << "当前记录为空!";
}
else
{
for (int i = 0; i < abs->sum; i++)
{
cout << "姓名:" << abs->parr[i].name<<" ";
cout << "性别:" << abs->parr[i].sex<<" ";
cout << "年龄:" << abs->parr[i].age<<" ";
cout << "电话:" << abs->parr[i].phone<<" ";
cout << "住址:" << abs->parr[i].addr<<endl;
}
}
system("pause");
system("cls");
}
//检测联系人是否存在,如果存在,返回联系人所在数组中的具体位置,不存在则返回-1
int isexist(books *abs, string name)
{
for (int i = 0; i < abs->sum; i++)
{
if (abs->parr[i].name == name)
{
return i; //联系人在数组中的位置
}
else
return -1;
}
}
//删除联系人
void deleteperson(books *abs)
{
cout << "请输入您要删除的联系人姓名:";
string name;
cin >> name;
int ret = isexist(abs, name);
if (ret == -1)
{
cout << "未查到" << endl;
}
else
{
for (int i = ret; i < abs->sum; i++)
{
abs->parr[i] = abs->parr[i + 1]; //前移操作
}
abs->sum--;
cout << "删除成功" << endl;
}
system("pause");
system("cls");
}
//查找联系人
void findperson(books *abs)
{
cout << "请输入您要查找的联系人姓名:";
string name;
cin >> name;
int ret = isexist(abs, name);
if (ret != -1)
{
cout << "姓名:" << abs->parr[ret].name << " ";
cout << "性别:" << abs->parr[ret].sex << " ";
cout << "年龄:" << abs->parr[ret].age << " ";
cout << "电话:" << abs->parr[ret].phone << " ";
cout << "住址:" << abs->parr[ret].addr << endl;
}
else
cout << "未查到" << endl;
system("pause");
system("cls");
}
//修改联系人
void modifyperson(books *abs)
{
cout << "请输入您要修改的联系人姓名:" << endl;
string name;
cin >> name;
int ret = isexist(abs, name);
if (ret != -1)
{
string name;
cout << " 请输入姓名:";
cin >> name;
abs->parr[ret].name = name;
string sex;
cout << " 请输入性别:";
cin >> sex;
abs->parr[ret].sex = sex;
int age;
cout << " 请输入年龄:";
cin >> age;
abs->parr[ret].age = age;
int phone;
cout << " 请输入电话:";
cin >> phone;
abs->parr[ret].phone = phone;
string addr;
cout << " 请输入地址:";
cin >> addr;
abs->parr[ret].addr = addr;
}
else
cout << "未查到" << endl;
system("pause");
system("cls");
}
//清空
void cleanperson(books *abs)
{
abs->sum = 0;
cout << "已清空" << endl;
system("pause");
system("cls");
}
int main()
{
books abs; //创建通讯录结构体变量
abs.sum = 0; //初始化个数为0
int select; //用户选择输入的变量
while (true) //循环使用户能重新选择功能
{
showmenu(); //主菜单
cout << endl;
cout << " 选择功能:";
cin >> select;
switch (select) //选择功能
{
case 1:
addperson(&abs);
break;
case 2:
showperson(&abs);
break;
case 3:
deleteperson(&abs);
break;
case 4:
findperson(&abs);
break;
case 5:
modifyperson(&abs);
break;
case 6:
cleanperson(&abs);
break;
case 0:
cout << "欢迎下次使用" << endl;
system("pause");
return 0;
break;
}
}
}