Scott3 2020-11-06 15:01 采纳率: 0%
浏览 34

通讯录管理系统程序有BUG

通讯录管理系统

 

1、系统需求

通讯录是一个可以记录亲人、好友信息的工具。

本教程主要利用C++来实现一个通讯录管理系统

系统中需要实现的功能如下:

  • 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人

  • 显示联系人:显示通讯录中所有联系人信息

  • 删除联系人:按照姓名进行删除指定联系人

  • 查找联系人:按照姓名查看指定联系人信息

  • 修改联系人:按照姓名重新修改指定联系人

  • 清空联系人:清空通讯录中所有信息

  • 退出通讯录:退出当前使用的通讯录

  • #include<iostream>
    using namespace std;
    #define MAX 1000
    
    //设计联系人结构体
    struct Person
    {
    	string m_Name;
    	int m_Sex; //1 男 2 女
    	int m_Age;
    	string m_Phone;
    	string m_Addr;
    };
    
    //设计通讯录结构体
    struct Addressbooks
    {
    	//通讯录中保存的联系人数组
    	struct Person personArray[MAX];
    
    	//通讯录中当前记录的联系人个数
    	int m_Size;
    };
    
    //1.添加联系人
    void addPerson(Addressbooks* abs)
    {
    	//判断通讯录是否已满,若果满了就不再添加
    	if (abs->m_Size == MAX)
    	{
    		cout << "通讯录已满,无法添加!" << endl;
    		return;
    	}
    	else
    	{
    		//添加具体联系人
    		//姓名
    		string name;
    		cout << "请输入姓名:" << endl;
    		cin >> name;
    		abs->personArray[abs->m_Size].m_Name;
    
    		//性别
    		cout << "请输入性别:" << endl;
    		cout << "1 --- 男 " << endl;
    		cout << "2 --- 女 " << endl;
    		int sex = 0;
    		
    		while (true)
    		{
    			//如果输入的是1或2,可退出循环,
    			//否则输入有误,重新输入
    			cin >> sex;
    			if (sex == 1 || sex == 2)
    			{
    				abs->personArray[abs->m_Size].m_Sex;
    				break;
    			}
    			cout << "输入错误,请重新输入!" << endl;
    		}
    
    		//年龄
    		int age = 0;
    		cout << "请输入年龄:" << endl;
    
    		while (true) //若年龄超出实际可能的范围,要重新输入,否则赋值后退出循环
    		{
    			cin >> age;
    			if (age < 0 || age>120)
    			{
    				cout << "输入错误,请重新输入!" << endl;
    			}
    			else
    			{
    				abs->personArray[abs->m_Size].m_Age = age;
    				break;
    			}
    		}
    
    		//电话
    		string phone;
    		cout << "请输入联系电话:" << endl;
    		cin >> phone;
    		abs->personArray[abs->m_Size].m_Phone = phone;
    
    		//住址
    		string address;
    		cout << "请输入家庭住址:" << endl;
    		cin >> address;
    		abs->personArray[abs->m_Size].m_Addr;
    
    		//更新通讯录人数
    		abs->m_Size++;
    
    		cout << "添加成功" << endl;
    
    		system("pause");
    		system("cls"); //清屏
    	}
    }
    
    //2.显示所有联系人
    void showPerson(Addressbooks* abs)
    {
    	//判断通讯录中人数是否为0,若是,提示记录为空
    	//否则显示联系人的信息
    	if (abs->m_Size == 0)
    	{
    		cout << "当前记录为空" << endl;
    	}
    	else
    	{
    		for (int i = 0; i < abs->m_Size; i++)
    		{
    			cout << "姓名:" << abs->personArray[i].m_Name << "\t";
    			cout << "性别:" << (abs->personArray[i].m_Sex == 1 ? "男" : "女") << "\t";
    			cout << "年龄:" << abs->personArray[i].m_Age << "\t";
    			cout << "电话:" << abs->personArray[i].m_Phone << "\t";
    			cout << "住址:" << abs->personArray[i].m_Addr << endl;
    		}
    	}
    	system("pause");
    	system("cls"); //清屏
    }
    
    //菜单界面
    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;
    }
    
    int main()
    {
    	//创建通讯录结构体变量
    	Addressbooks abs;
    	//初始化通讯录中当前人员个数
    	abs.m_Size = 0;
    
    	int select = 0;
    
    	while (true)
    	{
    		//调用菜单
    		showMenu();
    
    		cin >> select;
    
    		switch (select)
    		{
    		case 1: //添加联系人
    			addPerson(&abs); //利用地址传递,可以修饰实参
    			break;
    		case 2: //显示联系人
    			showPerson(&abs);
    			break;
    		case 3: //删除联系人
    			break;
    		case 4: //查找联系人
    			break;
    		case 5: //修改联系人
    			break;
    		case 6: //清空联系人
    			break;
    		case 0: //退出通讯录
    			cout << "欢迎下次使用" << endl;
    			system("pause");
    			return 0;
    			break;
    		default:
    			break;
    		}
    	}
    
    	system("pause");
    	return 0;
    }

    这是一个通讯录管理系统项目及其要实现的功能和我写的代码。还没写完,目前只写了显示菜单(及主框框)、添加联系人、显示联系人、推出通讯录的功能。可为什么我在调试的时候发现,无论添加联系人时输入的是1还是2,显示出来的性别都是“女”,而且住址添加不进去。

  • 注:我是C++小白,比0基础强不到哪儿去,目前在传智播客上找了免费的教程自学,可我看教程中老师的

    标题

    代码也是这么写的,他调试起来却没有问题啊?对了,他用的是VS2017,我是VS2019.上图是VS发的警告

  • 写回答

1条回答 默认 最新

  • 嵌入式小白萌新 2020-11-06 18:20
    关注

    所以你是不能运行?

    (在头文件下再加一个#include<string>)

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算