通讯录管理系统(C++)

news/2024/10/22 2:52:16/
#include<iostream>
#include<string>
using namespace std;
#define MAX 1000
struct Person {string m_Name; //姓名string m_Sex; //性别:1男 2女string m_Age; //年龄string m_Phone; //电话string m_Addr; //住址
};
struct Addressbooks {Person personArray[MAX];//通讯录中的联系人int m_Size;//通讯录人数个数
};//菜单界面
void showMenu()
{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;
}
//添加联系人信息;
void addPerson(Addressbooks* abs) {if (abs->m_Size > MAX) {cout << "通讯录已满";return;}string name, sex , telephon, address, age;cout << "请输入姓名:" << endl;cin >> name;cout << "请输入性别:" << endl;cin >> sex;cout << "请输入年龄:" << endl;cin >> age;cout << "请输入电话:" << endl;cin >> telephon;cout << "请输入住址:" << endl;cin >> address;abs->personArray[abs->m_Size].m_Name = name;abs->personArray[abs->m_Size].m_Sex = sex;abs->personArray[abs->m_Size].m_Age = age;abs->personArray[abs->m_Size].m_Phone = telephon;abs->personArray[abs->m_Size].m_Addr = address;abs->personArray[abs->m_Size].m_Name = name;abs->personArray[abs->m_Size].m_Name = name;abs->m_Size++;//通讯录人数加一cout << "添加成功!"<<endl;
}
//显示联系人
void showPerson(Addressbooks* abs){if (abs->m_Size <= 0) {cout << "通讯录为空"<<endl;return;}for (int i = 0; i < abs->m_Size; i++) {cout << endl << abs->personArray[i].m_Name << " " << abs->personArray[i].m_Sex << " " << abs->personArray[i].m_Age << " " << abs->personArray[i].m_Phone << " " << abs->personArray[i].m_Addr << endl;}
}
//判断联系人是否存在
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) {string name;cout << "请输入删除联系人姓名:";cin >> name;int i = isExist(abs, name);//存在则返回联系人存储位置if (i==-1) {//不存在cout << endl << "删除联系人不存在" << endl;return;}//联系人存在for (int j = i + 1; j < abs->m_Size; j++) {abs->personArray[j - 1] = abs->personArray[j];//后面联系人向前移动实现删除}abs->m_Size--;cout <<endl<<"删除成功" << endl;
}
//查找联系人
void findPerson(Addressbooks* abs) {string name;cout << "请输入查找联系人:";cin >> name;int i = isExist(abs, name);//存在则返回联系人存储位置if (i == -1) {cout << endl << "查找联系人不存在" << endl;return;}else {cout << endl << abs->personArray[i].m_Name << " " << abs->personArray[i].m_Sex << " " << abs->personArray[i].m_Age << " " << abs->personArray[i].m_Phone << " " << abs->personArray[i].m_Addr << endl;}
}
//修改联系人
void modifyPerson(Addressbooks* abs){string name;cout << "请输入修改联系人姓名:";cin >> name;int i = isExist(abs, name);//存在则返回联系人存储位置if (i == -1) {cout << endl << "修改联系人不存在" << endl;return;}cout << "请选择修改选项:1.姓名 2.性别 3.年龄 4.电话 5.地址" << endl;int xuan;cin >> xuan;cout << "请输入新的信息:";string xx;cin >> xx;switch (xuan){case 1: {abs->personArray[i].m_Name = xx;break;}case 2: {abs->personArray[i].m_Sex = xx;break;}case 3: {abs->personArray[i].m_Age = xx;break;}case 4: {abs->personArray[i].m_Phone = xx;break;}case 5: {abs->personArray[i].m_Addr = xx;break;}default: {cout << "输入错误";return;}}cout << "修改成功" << endl;
}
//清空所有联系人
void cleanPerson(Addressbooks* abs)
{abs->m_Size = 0;cout << "通讯录已清空" << endl;system("pause");system("cls");
}
int main() {Addressbooks abs;//创建一个通讯录abs.m_Size = 0;//初始化通讯录人数while (1) {showMenu();cout << "请输入操作:";int select;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;return 0;}default:break;}cout << "回车继续";cin.get();//回车再清屏cin.get();//回车再清屏system("cls");}cin.get();return 0;
}

http://www.ppmy.cn/news/784481.html

相关文章

计算机语言输入不见了,电脑输入法不见了怎么处理 输入法修复方法

电脑输入法图标不见了怎么办&#xff1f;依次介绍几种解决方法&#xff0c;具体操作步骤如下&#xff1a; 一、右击任务栏空白处-工具栏-语言栏即可。 二、打开文字服务 1、单击开始&#xff0c;单击控制面板&#xff0c;然后双击“区域和语言选项”。 2、在语言选项卡上的“文…

windows11电脑右下角没有输入法解决方法

打开windows11电脑的设置选项&#xff0c;点击高级键盘设置&#xff0c;勾选使用桌面语言栏选项&#xff0c;点击保存就能在右下角找到输入法了&#xff0c;还可以尝试打开运行窗口&#xff0c;输入ctfmon.exe命令回车&#xff0c;这样就能快速打开输入法啦。 windows11电脑右…

Unity游戏C# dll注入

案例游戏下载 首先在网上下载个游戏案例&#xff0c;我就以Captain Molly游戏为例。 这个游戏玩家默认生命值有5点&#xff0c;咱们通过dll注入修改为10点。 dnSpy 我使用dnSpy来查看Unity游戏生成的dll代码&#xff0c;当然你们也可以使用其他工具。 Unity游戏脚本代码最终…

c# 文件夹选择 , 文件选择

c# 文件夹选择 &#xff0c; 文件选择 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; namespace Test07 { public partial cla…

半导体器件基础03:普通二极管

说在开头&#xff1a;关于光电效应&#xff08;2&#xff09; 爱因斯坦推导出了方程&#xff1a;(1/2)*mV hv - P&#xff1b;(1/2)*mV是激发出的电子的最大动能&#xff0c;hv是单个量子的能量&#xff0c;而P是激发出电子需要的最小能量&#xff08;简称&#xff1a;入场费&…

2023全国特种作业操作证低压电工试卷一[安考星]

该模拟试题来源于安考星公众号 1、雷电后造成架空线路产生高电压冲击波&#xff0c;这种雷电称为直击雷。 正确答案&#xff1a;错误 参考解析&#xff1a;雷电后造成架空&#xff0c;线路产生高电压叫&#xff1a;“感应电压”&#xff0c;或者“雷电过电压”。 直击雷&#…

2022年焊工(高级)考试模拟100题及在线模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2022年电工&#xff08;技师&#xff09;上岗证题目为电工&#xff08;技师&#xff09;上岗证题库考前必练习题目&#xff01;2022电工&#xff08;技师&#xff09;操作证考试题及答案依据电工&#xff08;技师&…

2021年电工(中级)考试总结及电工(中级)考试技巧

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 电工&#xff08;中级&#xff09;考试总结是安全生产模拟考试一点通生成的&#xff0c;电工&#xff08;中级&#xff09;证模拟考试题库是根据电工&#xff08;中级&#xff09;最新版教材汇编出电工&#xff08;中…