C++小作业001

C++小作业001,第1张

#include
#include
using namespace std;

#define MAX_SIZE    1000    

typedef  struct {
	string m_Name;//姓名
	string m_Sex;//性别
    int m_Age;//年龄
    string m_Num;//电话号码
	string m_Addr;//地址
}Person;
typedef struct {
     Person b[MAX_SIZE];//结构数组
	 int m_Siz;//当前人数
} Sqlist;


//封装一个函数,显示 *** 作菜单
void showMenu()
{
	cout << "1、添加联系人" << endl;
	cout << "2、显示联系人" << endl;
	cout << "3、删除联系人" << endl;
	cout << "4、查找联系人" << endl;
	cout << "5、修改联系人" << endl;
	cout << "6、清空联系人" << endl;
	cout << "0、退出通讯录" << endl;
}

//封装一个函数,实现联系人的添加
void addperson(Sqlist* a)//写法的含义是,创建一个指针变量a来接受传递的地址
{
	if (a->m_Siz == MAX_SIZE)
	{
		cout << "超出上限,请清空不必要的联系人或联系管理员人员进行修改" << endl;
		return ;
	}
	else
	{   
		//添加名字
		string name;
		cout << "请输入联系人的姓名" << endl;
		cin >> name;
		a->b[a->m_Siz].m_Name = name;
		//添加性别
		string sex;
		cout << "请输入联系人的性别" << endl;
		cin >> sex;
		a->b[a->m_Siz].m_Sex = sex;
		//添加年龄
		int age;
		cout << "请输入联系人的年龄" << endl;
		cin >> age;
		a->b[a->m_Siz].m_Age = age;
		//添加电话号码
		string num;
		cout << "请输入联系人的电话号码" << endl;
		cin >> num;
		a->b[a->m_Siz].m_Num = num;
		//添加家庭住址
		string address;
		cout << "请输入联系人的家庭住址" << endl;
		cin >> address;
		a->b[a->m_Siz].m_Addr = address;
		//更新此刻通讯录的人数
		(a->m_Siz)++;
		//提示用户添加已成功
		cout << "添加成功" << endl;
		//实现清屏
		system("pause");//请按任意键继续
		system("cls");
	}
}
//封装一个函数,显示所有的联系人
void showperson(Sqlist* a) 
{
	if (a->m_Siz == 0)
	{
		cout << "当前的记录为空,请添加联系人!" << endl;
	}
	else
	{
		for (int i = 0;i < a->m_Siz;i++)
		{
			cout << "姓名:" << a->b[i].m_Name << "/t";
			cout << "性别:" << a->b[i].m_Sex << "/t";
			cout << "年龄:" << a->b[i].m_Age<< "/t";
			cout << "电话号码:" << a->b[i].m_Num<< "/t";
			cout << "家庭住址:" << a->b[i].m_Addr << endl;
		}
	}
	system("pause");
	system("cls");
}
//封装函数,判断该联系人是否存在
int ifexit(Sqlist* a,string name)
{
	for (int i = 0;i < a->m_Siz;i++)
	{
		if (a->b[a->m_Siz].m_Name == name)
		{
			return i;
		}
		else
		{
			return -1;
		}
	}

}
//封装一个函数,实现用户输入联系人名字而后删除的功能
void deleteperson(Sqlist* a)
{
	string name;
	cout << "请输入想要删除联系人的姓名" << endl;
	cin >> name;
	int ret = ifexit(a, name);
	if (ret == -1) {
		cout << "查无此人" << endl;
	}
	else {
		for (int i = ret;i < a->m_Siz;i++)
		{
			a->b[i] = a->b[i + 1];
		}
		a->m_Siz--;
		cout << "删除成功" << endl;
	}
	system("pause");
	system("cls");
}
//封装一个函数,查找某个联系人的信息
void search(Sqlist *a)
{
	string name;
	cout << "请输入想要删除联系人的姓名" << endl;
	cin >> name;
	int ret = ifexit(a, name);
	if (ret == -1) {
		cout << "查无此人" << endl;
	}
	else {
		cout << "已找到此人" << endl;
		cout << "姓名:" << a->b[ret].m_Name << "/t";
		cout << "性别:" << a->b[ret].m_Sex << "/t";
		cout << "年龄:" << a->b[ret].m_Age << "/t";
		cout << "电话号码:" << a->b[ret].m_Num << "/t";
		cout << "家庭住址:" << a->b[ret].m_Addr << endl;
		
	}
	system("pause");
	system("cls");

}
//封装一个函数,修改某个联系人的信息
void change(Sqlist* abs)
{
	cout << "请输入联系人的姓名" << endl;
	string name;
	cin >> name;
	int ret = ifexit(abs, name);
	if (ret == -1)
	{
		cout << "查无此人!" << endl;
		return;
	}
	else
	{
		//姓名
		cout << "请修改姓名" << endl;
		string Cname;
		cin >> Cname;
		abs->b[ret].m_Name = Cname;
		//性别
		cout << "请修改性别" << endl;
		string Csex;
		cin >> Csex;
		abs->b[ret].m_Sex = Csex;
		//年龄
		cout << "请修改年龄" << endl;
		int Cage = 0;
		cin >> Cage;
		abs->b[ret].m_Age = Cage;
		//电话号码
		cout << "请修改电话号码" << endl;
		string Cnum;
		cin >> Cnum;
		abs->b[ret].m_Num;
		//家庭住址
		cout << "请修改家庭住址" << endl;
		string Cadd;
		cin >> Cadd;
		abs->b[ret].m_Addr;
		//提示修改成功
		cout << "您已修改成功!" << endl;
	}
	system("pause");
	system("cls");
}
//封装一个函数,实现清空联系人的操作
void clean(Sqlist* abs)
{
	abs->m_Siz = 0;
	cout << "已实现清空!" << endl;
	system("pause");
	system("cls");
}






int  main()
{
	//创建一个通讯录结构变量
	Sqlist a;
	//初始化结构体变量
	a.m_Siz = 0;
	while (true)
	{

		showMenu();
		int select = 0;//定义一个用户输入的变量
		cin >> select;
		//考虑的方案是,在case里面调用函数
		
		switch (select)
		{
		case 1: //添加联系人  
			addperson(&a);//采用传地址的方式,实现修改实参的目的
			break;
		case 2: //显示联系人
			showperson(&a);
			break;
		case 3: //删除联系人
			deleteperson(&a);
			break;
		case 4: //查找联系人
			search(&a);
			break;
		case 5: //修改联系人
			change(&a);
			break;
		case 6: //清空联系人
			clean(&a);
			break;
		case 0: //退出通讯录
			cout << "欢迎您的下次使用!" << endl;
			system("pause");
			return 0;
			break;
		default:
			break;
		}

	}
	system("pause");
	return 0;
 }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/676520.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存