通讯录管理系统

#include<iostream>
#include<string>

using namespace std;

#define  MAX  1000

/*
通讯录管理系统(功能介绍):
***   添加联系人 : 向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址),最多纪录1000人
***   显示联系人 : 显示通讯录中所有联系人信息
***   删除联系人 : 按照姓名进行删除指定联系人信息
***   查找联系人 : 按照姓名查找指定联系人信息
***   修改联系人 : 按照姓名更新修改指定联系人信息
***   清空联系人 : 清空通讯录中所有联系人信息
***   退出通讯录 : 退出当前使用的通讯录
*/

//   设计联系人结构体
struct person {
	string m_name;          //            姓名
	int m_sex;             //            性别   1-男; 2-女
	int m_age;             //            年龄
	string m_phone;        //             电话
	string m_address;          //            地址
};

//   设计通讯录结构体
struct address_books {
	struct person  personArr[MAX];              //   通讯录中联系人数组保存联系人数据
	int  m_num;                               //   通讯录中当前联系人个数
};

//   菜单显示界面封装函数
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;
}


//    添加联系人函数
void addperson(address_books * abs) {

	//       判断通讯录是否已满
	if (abs->m_num >= MAX) {
		cout << " 通讯录已满 , 无法添加联系人 !" << endl;
		return;
	}
	else {

		cout << " 请输入联系人姓名 : " << endl;
		string name;
		cin >> name;
		abs->personArr[abs->m_num].m_name = name;

		cout << " 请输入联系人性别 : " << endl;
		cout << " # 1-男性   ;  # 2-女性 " << endl;
		int sex ;
		while (true) {
			cin >> sex;
			if (sex == 1 || sex == 2) {
				abs->personArr[abs->m_num].m_sex = sex;
				break;
			}
			cout << " 输入有误 , 请重新输入 !" << endl;
		}

		cout << " 请输入联系人年龄 : " << endl;
		int age;
		cin >> age;
		abs->personArr[abs->m_num].m_age = age;

		cout << " 请输入联系人联系方式 : " << endl;
		string phone;
		cin >> phone;
		abs->personArr[abs->m_num].m_phone = phone;

		cout << " 请输入联系人家庭住址 : " << endl;
		string address;
		cin >> address;
		abs->personArr[abs->m_num].m_address = address;

		abs->m_num++;                          		//  更新通讯录人数   
		cout << " 该联系人添加成功 !" << endl;
		system("pause");
		system("cls");
	}
}


//   显示联系人函数
void showperson(address_books * abs) {
	                //     判断通讯录是否为空
	if (abs->m_num == 0) {
		cout << " 通讯录此时为空,不存在任何联系人 " << endl;
	}
	else {
		for (int i = 0; i < abs->m_num; i++) {
			cout << " 姓名 :" << abs->personArr[i].m_name << "\t";
			cout << " 性别 :" << (abs->personArr[i].m_sex == 1 ?  "男" : "女" )<< "\t";
			cout << " 年龄 :" << abs->personArr[i].m_age << "\t";
			cout << " 联系方式 :" << abs->personArr[i].m_phone << "\t";
			cout << " 家庭住址 :" << abs->personArr[i].m_address << "\t" << endl;
		}
	}
	system("pause");
	system("cls");
}

//    检测联系人是否存在函数
int matchingperson(address_books * abs , string name) {
	for (int i = 0; i < abs->m_num; i++) {
		if (abs->personArr[i].m_name == name) {
			return i;                    //    找到联系人,则返回联系人所在编号
		}
	}
	return -1;                //     遍历结束 未找到,返回-1   
}

//    删除联系人功能函数
void deleteperson(address_books * abs) {
	cout << " 请输入您要删除的联系人姓名 :" << "\t";
	string name;
	cin >> name;
	int ret = matchingperson(abs, name);
	if ( ret != -1) {
		for (int i = ret; i < abs->m_num; i++) {
			//     数据迁移操作
			abs->personArr[i] = abs->personArr[i + 1];
		}
		abs->m_num--;
		cout << " 删除成功 ! " << endl;
	}
	else {
		cout << " 查无此人 !" << endl;
	}
	system("pause");
	system("cls");
}

//   查找联系人函数
void findperson(address_books * abs) {
	cout << " 请输入您要查找的联系人姓名 : " << endl;
	string name;
	cin >> name;
	int ret = matchingperson(abs, name);
	if (ret != -1) {
		cout << " 姓名 :" << abs->personArr[ret].m_name << "\t";
		cout << " 性别 :" << (abs->personArr[ret].m_sex == 1 ? "男" : "女") << "\t";
		cout << " 年龄 :" << abs->personArr[ret].m_age << "\t";
		cout << " 联系方式 :" << abs->personArr[ret].m_phone << "\t";
		cout << " 家庭住址 :" << abs->personArr[ret].m_address << "\t" << endl;
	}
	else {
		cout << "  查无此人 ! " << endl;
	}
	system("pause");
	system("cls");
}

//     修改联系人函数
void changeperson(address_books * abs) {
	cout << " 请输入您要修改的联系人姓名 : " << endl;
	string name;
	cin >> name;
	int ret = matchingperson(abs, name);
	if (ret != -1) {
		cout << " 请输入修改后的姓名 :" << "\t";
		string name;
		cin >> name;
		abs->personArr[ret].m_name = name;
		cout << " 请输入修改后的性别 :" << "\t"  << "  # 1-男性   # 2-女性   " ;
		int  sex;
		cin >> sex;
		abs->personArr[ret].m_sex = sex;
		cout << " 请输入修改后的年龄 :" << "\t";
		int age;
		cin >> age;
		abs->personArr[ret].m_age = age;
		cout << " 请输入修改后的联系方式 :" << "\t";
		string phone;
		cin >> phone;
		abs->personArr[ret].m_phone = phone;
		cout << " 请输入修改后的家庭住址 :" << "\t";
		string address;
		cin >> address;
		abs->personArr[ret].m_address = address;
		cout << " 修改后的联系人信息为 :" << endl;
		cout << " 姓名 :" << abs->personArr[ret].m_name << "\t";
		cout << " 性别 :" << (abs->personArr[ret].m_sex == 1 ? "男" : "女") << "\t";
		cout << " 年龄 :" << abs->personArr[ret].m_age << "\t";
		cout << " 联系方式 :" << abs->personArr[ret].m_phone << "\t";
		cout << " 家庭住址 :" << abs->personArr[ret].m_address << "\t" << endl;
	}
	else {
		cout << "  查无此人 ! " << endl;
	}
	system("pause");
	system("cls");
}

//   清空联系人
void cleanperson(address_books * abs) {

	abs->m_num = 0;
	cout << " 通讯录已经清空 !" << endl;        //     逻辑清空
	system("pause");
	system("cls");
}

int main(){

	//  创建通讯录结构体变量
	struct address_books abs;
	abs.m_num = 0;

	int select = 1;

	while (select) {
		//    调用功能菜单显示函数
		show_Menu();              //   函数调用就不用写返回值类型了

		cin >> select;
		switch (select)
		{
		case 1:     //     1、  添加联系人
		    addperson(&abs);             //  利用地址传递,可以修饰实参
			break;
		case 2:     //     2、  显示联系人
			showperson(&abs);
			break;
		case 3:      //     3、  删除联系人
			deleteperson(&abs);
			break;
		case 4:      //     4、  查找联系人
			findperson(&abs);
			break;
		case 5:      //     5、  修改联系人
			changeperson(&abs);
			break;
		case 6:      //     6、  清空联系人
			cleanperson(&abs);
			break;
		case 0:      //     0、  退出通讯录菜单
			cout << "  欢迎下次使用 !" << endl;
			cin.get();
			break;
		default:
			cout << "  请选择正确的功能 !" << endl;
			break;
		}
	}
	
	cin.get();
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaWeb通讯录管理系统是一种基于JavaWeb技术开发的通讯录管理系统。它主要用于管理个人或企业的联系人信息,实现通讯录的增删改查功能。 该系统采用B/S架构,用户只需在浏览器中输入系统的URL地址即可访问系统,无需安装本地软件。同时,系统采用Java技术进行开发,具有良好的跨平台性和可移植性。 通讯录管理系统的主要功能包括: 1. 用户登录与身份验证:用户通过输入正确的用户名和密码进行登录系统系统对用户进行身份验证,以保证系统的安全性。 2. 通讯录信息的添加与修改:用户可以添加或修改联系人的信息,包括姓名、电话号码、电子邮件等信息。系统将存储、管理并维护这些联系人信息。 3. 通讯录信息的查询与展示:用户可以通过姓名或其他关键字进行查询,系统将根据查询条件进行联系人的检索,并将检索到的联系人信息展示给用户。 4. 通讯录信息的删除:用户可以删除不需要的联系人信息,系统将从数据库中删除相应的记录。 5. 导入与导出联系人信息:用户可以将联系人信息导入系统,或将系统中的联系人信息导出到本地,实现信息的灵活交互。 6. 用户管理:系统支持管理员对用户的管理,包括用户的注册、修改密码等功能。 总之,JavaWeb通讯录管理系统是一款功能强大、易于使用的通讯录管理工具,可以帮助用户高效地管理和维护联系人信息,提高工作效率和信息管理的便捷性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值