一个通讯录的小程序实现:
#include<iostream>
#include<string>
#define max 1000
using namespace std;
//显示操作界面
void show_menu()
{
cout << "---------------" << endl;
cout << " 1:添加联系人 " << endl;
cout << " 2:显示联系人 " << endl;
cout << " 3:删除联系人 " << endl;
cout << " 4:查找联系人 " << endl;
cout << " 5:修改联系人 " << endl;
cout << " 6:清空通讯录 " << endl;
cout << " 0:退出通讯录 " << endl;
cout << "---------------" << endl;
}
//添加联系人
//设计联系人的结构体
struct person
{
string per_name;
int per_sex;
int per_age;
int per_phone;
string per_home;
};
//设计通讯录结构体
struct addressbook
{
struct person person_arr[max]; //联系人数组
int per_size; //联系人数量
};
//封装设计联系人函数
void add_person(addressbook *abs)
{
// 判断通讯录是不是已经满了
if (abs->per_size == max)
{
cout << "通讯录已满,无法继续添加" << endl;
return;
}
else
{
//开始添加联系人
//姓名
cout << "请输入姓名" << endl;
string name;
cin >> name;
abs->person_arr[abs->per_size].per_name = name;
//性别
cout << "请输入性别" << ": 1 代表男性 2代表女性" << endl;
int sex;
while(true)
{
cin >> sex;
if (sex == 1 || sex == 2)
{
abs->person_arr[abs->per_size].per_sex = sex;
break;
}
else
cout << "请重新输入" << endl;
}
//年龄
cout << "请输入年龄" << endl;
int age;
while (true)
{
cin >> age;
if (age >= 0 && age <= 150)
{
abs->person_arr[abs->per_size].per_age = age;
break;
}
else
cout << "你输入的年龄似乎不正确,请检查后再输入" << endl;
}
//电话
cout << "请输入6位电话号码" << endl;
int number;
while(true)
{
cin >> number;
if (number >= 100000 && number <= 999999)
{
abs->person_arr[abs->per_size].per_phone = number;
break;
}
else
cout << "您输入的电话号码位数有误,请检查后重新输入" << endl;
}
//住址
cout << "请输入家庭住址" << endl;
string address;
cin >> address;
abs->person_arr[abs->per_size].per_home = address;
//更新通讯录人数
abs->per_size++;
//优化界面
system("pause"); //请按任意键继续
system("cls"); //清屏
}
}
//显示联系人函数
void show_person(addressbook* abs)
{
//判断联系人通讯录是否为空
if (abs->per_size == 0)
{
cout << "您还未添加任何联系人" << endl;
}
else
{
for(int i=0;i<abs->per_size;i++)
{
cout << "姓名:" << abs->person_arr[i].per_name << '\t';
cout << "性别:" << (abs->person_arr[i].per_sex==1?"男":"女")<< '\t';
cout << "年龄:" << abs->person_arr[i].per_age <<'\t';
cout << "电话:" << abs->person_arr[i].per_phone << '\t';
cout << "住址:" << abs->person_arr[i].per_home << endl;
}
system("pause");
system("cls");
}
//显示联系人
}
//查找联系人是否存在
int if_exit_person(addressbook* abs, string name)
{
for (int i = 0; i < abs->per_size; i++)
{
if (abs->person_arr[i].per_name == name)
{
return i;//返回这个人的姓名
}
else
return -1;
}
}
//删除联系人
void delete_person(addressbook* abs)
{
cout << "请输入您要删除的联系人" << endl;
string name;
cin >> name;
int ret;
ret = if_exit_person(abs, name);
if (ret == -1)
cout << "查无此人" << endl;
else
{
if (ret = abs->per_size)
abs->per_size--;
else
{
for (int i = ret; i < abs->per_size; i++)
{
abs->person_arr[i] = abs->person_arr[i+1];
}
abs->per_size--;
}
}
system("pause");
system("cls");
}
//查找联系人
void find_person(addressbook* abs)
{
cout << "请输入要查找的联系人" << endl;
string name;
cin >> name;
int ret = if_exit_person(abs, name);
if (ret == -1)
cout << "查无此人" << endl;
else
{
cout << "姓名:" << abs->person_arr[ret].per_name << '\t';
cout << "性别:" << (abs->person_arr[ret].per_sex == 1 ? "男" : "女") << '\t';
cout << "年龄:" << abs->person_arr[ret].per_age << '\t';
cout << "电话:" << abs->person_arr[ret].per_phone << '\t';
cout << "住址:" << abs->person_arr[ret].per_home << endl;
}
system("pause");
system("cls");
}
//修改联系人
void modify_person(addressbook* abs)
{
cout << "请输入您要修改的联系人" << endl;
string name;
cin >> name;
int ret;
ret = if_exit_person(abs, name);
if (ret != -1)
cout << "查无此人" << endl;
else
{
//姓名
string name;
cout << "请输入修改后的姓名" << endl;
cin >> name;
abs->person_arr[ret].per_name = name;
//性别
cout << "请输入修改后的性别" << ": 1 代表男性 2代表女性" << endl;
int sex;
while (true)
{
cin >> sex;
if (sex == 1 || sex == 2)
{
abs->person_arr[ret].per_sex = sex;
break;
}
else
cout << "请重新输入" << endl;
}
//年龄
cout << "请输入修改后的年龄" << endl;
int age;
while (true)
{
cin >> age;
if (age >= 0 && age <= 150)
{
abs->person_arr[abs->per_size].per_age = age;
break;
}
else
cout << "你输入的年龄似乎不正确,请检查后再输入" << endl;
}
//电话
cout << "请输入修改后的6位电话号码" << endl;
int number;
while (true)
{
cin >> number;
if (number >= 100000 && number <= 999999)
{
abs->person_arr[ret].per_phone = number;
break;
}
else
cout << "您输入的电话号码位数有误,请检查后重新输入" << endl;
}
//住址
cout << "请输入家庭住址" << endl;
string address;
cin >> address;
abs->person_arr[ret].per_home = address;
cout << "修改成功" << endl;
}
system("pause"); //请按任意键继续
system("cls"); //清屏
}
//清空联系人
void cleanperson(addressbook* abs)
{
abs->per_size = 0;
cout << "所有人的信息都已经清空" << endl;
system("pause"); //请按任意键继续
system("cls"); //清屏
}
int main()
{
//创建通讯录
addressbook abs_1;
//初始化通讯录中的人员个数
abs_1.per_size = 0;
while(true)
{
//显示操作界面
show_menu();
int delect = 0;
cin >> delect;
switch (delect)
{
case 1:
add_person(&abs_1);
break;
case 2:
show_person(&abs_1);
break;
case 3:
delete_person(&abs_1);
break;
case 4:
find_person(&abs_1);
break;
case 5:
modify_person(&abs_1);
break;
case 6:
cleanperson(&abs_1);
break;
//退出通讯录
case 0:
{
cout << "已退出,欢迎下次使用" << endl;
system("pause");
return 0;
break;
}
default:
break;
}
}
return 0;
}
具体的已经写在注释里了,写到这里是越来越懒了不想多说话了;再去开一门数据结构。
(掐指一算,我要总结回顾或者学习的大概有C++,Python,Java,数据结构,离散数学,普通物理,数学分析,复变函数,线性代数,概率论,电路与电子线路,数字设计和计算机体系结构,统计学习方法……???)
爬了爬了;还好这学期没选五选二的数学,不然死定了。