简单入门C++项目:通讯管理系统

#include <iostream>
using namespace std;
#include <string>
#define MAX 1000



int main()
{
 Addressbooks abs;
 abs.m_size = 0;
 int select = 0;
 while (1) {
  showMenu();
  cout << "请输入要执行的操作 1 - 6 : ";
  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 1;
  default:
   cout << "输出错误,请重新输入 0 - 6 : ";
   break;
  }
 }
 system("pause");
 return 0;
}
struct Person {
 string m_Name;
 int m_Sex;
 int m_Age;
 string m_Phone;
 string m_Addr;
};


struct Addressbooks {
 struct Person personArray[MAX];
 int m_size;
};
//显示菜单
void showMenu() {
 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;
}


void addPerson(struct Addressbooks * abs) {
 if (abs->m_size == MAX) {
  cout << "通讯录已满,无法添加!!" << endl;
  return;
 }
 else {
  string name;
  cout << "请输入姓名:" << endl;
  cin >> name;
  abs->personArray[abs->m_size].m_Name = name;
  int sex = 0;
  cout << "请输入性别(1 -> 男   2 ->女):";
  while (true) {
   cin >> sex;
   if (sex == 1 || sex == 2) {
    abs->personArray[abs->m_size].m_Sex = sex;
    break;
   }
   cout << "输入有误,请重新输入:" << endl;
  }
  int age = 0;
  cout << "请输入年龄:";
  
  while (true) {
   cin >> age;
   if (age > 0 && age < 120) {
    abs->personArray[abs->m_size].m_Age = age;
    break;
   }
   cout << "输入有误,请重新输入:" << endl;
  }
  
  string phone;
  cout << "请输入联系电话:";
  cin >> phone;
  abs->personArray[abs->m_size].m_Phone = phone;
  
  string address;
  cout << "请输入家庭地址:";
  cin >> address;
  abs->personArray[abs->m_size].m_Addr = address;
  
  abs->m_size++;
  cout << "添加成功" << endl;
  system("pause");
  system("cls");
 }
}



void showPerson(struct Addressbooks *abs)
{
 if (abs->m_size == 0) {
  cout << "当前记录为空!!!" << endl;
 }
 else {
  for (int i = 0; i < abs->m_size; i++) {
   cout << "姓名:\t" << abs->personArray[i].m_Name << "\t";
   cout << "性别:\t" << (abs->personArray[i].m_Sex == 1 ? "男" : "女") << "\t";
   cout << "年龄:\t" << abs->personArray[i].m_Age << "\t";
   cout << "电话:\t" << abs->personArray[i].m_Phone << "\t";
   cout << "地址:\t" << abs->personArray[i].m_Addr << endl;
  }
 }
 system("pause");
 system("cls");
}



int isExist(Addressbooks * abs, string name) {
 for (int i = 0; i < abs->m_size; i++) {
  if (abs->personArray[i].m_Name == name) {
   return i;
  }
 }
 return -1;
}  



void deletePerson(Addressbooks * abs) {
 cout << "请输入要删除的联系人" << endl;
 string name;
 cin >> name;
 int ret = isExist(abs, name);
 
 if (ret != -1) {
  for (int i = ret; i < abs->m_size; i++) {
   abs->personArray[i] = abs->personArray[i + 1];
  }
  abs->m_size--;
  cout << "删除成功" << endl;
 }
 else {
  cout << "查无此人" << endl;
 }
 system("pause");
 system("cls");
}



void findPerson(Addressbooks * abs) {
 cout << "请输入要查找的联系人:";
 string name;
 cin >> name;
 int ret = isExist(abs, name);
 if (ret != -1) {
  cout << "姓名" << abs->personArray[ret].m_Name << "\t";
  cout << "性别" << abs->personArray[ret].m_Sex << "\t";
  cout << "年龄" << abs->personArray[ret].m_Age << "\t";
  cout << "电话" << abs->personArray[ret].m_Phone << "\t";
  cout << "地址" << abs->personArray[ret].m_Addr << endl;
 }
 else {
  cout << "查无此人" << endl;
 }
 system("pause");
 system("cls");
}



void modifyPerson(Addressbooks * abs) {
 cout << "请输入要修改的联系人:";
 string name;
 cin >> name;
 int ret = isExist(abs, name);
 if (ret != -1) {
  string name;
  cout << "请输入姓名:" << endl;
  cin >> name;
  abs->personArray[ret].m_Name = name;
  
  cout << "请输入性别:" << endl;
  cout << "1 ---- 男" << endl;
  cout << "2 ---- 女" << endl;
  int sex = 0;
  while (true) {
   cin >> sex;
   if (sex == 1 || sex == 2) {
    abs->personArray[ret].m_Sex = sex;
    break;
   }
   cout << "输入错误,请重新输入性别 1 / 2 :" << endl;       
  }
  
  cout << "请输入年龄:";
  int age = 0;
  cin >> age;
  abs->personArray[ret].m_Age = age;
  
  cout << "请输入联系电话:";
  string phone;
  cin >> phone;
  abs->personArray[ret].m_Phone = phone;
  
  cout << "请输入家庭住址:";
  string addr;
  cin >> addr;
  abs->personArray[ret].m_Addr = addr;
  
  cout << "修改成功!" << endl;  
  }
  else {
  cout << "查无此人" << endl;
 }
 system("pause");
 system("cls");
}




void cleanPerson(Addressbooks * abs) {
 string flag = "no";
 while (flag == "no") {
  cout << "你真的选择清空联系人吗?" << endl;
  cout << "please input yes or no :";
  cin >> flag;
  if (flag == "yse") {
  
  }
  else if(flag == "no"){
   goto END;
  }
  else {
   "输入错误,请重新输入:";
  }
 }
 abs->m_size = 0;
 cout << "通讯录已清空" << endl;
END:
 system("pause");
 system("cls");
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值