C++实现电话薄管理系统

实现的功能如下:

  1. 增加电话号码;
  2. 删除电话号码;
  3. 显示电话号码信息;
  4. 查找(按手机号码、按联系人);
  5. 修改(修改联系人信息);
  6. 其他功能(自行设计)。
  7. #include<iostream>
    #include<algorithm>
    #include<string.h>
    #include<iomanip>
    #include<stdlib.h>
    #include<vector>
    #include<fstream>
    #include<windows.h>
    using namespace std;
    class People{
    	public:
    		void toString();
    		void SetName(char n[]);
    		void Setid(int id);
    		void SetSex(char sex[]);
    		void SetNumber(char num[]);
    		void SetAge(int age);
    		string GetName();
    		int    Getid();
    		string GetSex();
    		string GetNum();
    		int    GetAge();
            People(char na[],int id,char s[],char n[],int age); 
    		People(){}
    		~People(){}
    	protected:
    		char name[20]; //名字 
    		int id;        //编号 
    		char sex[10];  //性别 
    		char num[20];  //电话号码 
    		int age;       //年龄 
    };
    class Manager{
    	public:
    		void Add();
    		int Delete();
    		void Display();
    		void Modify(); 
    		void Search();
    		void ExitSystem();
    		void Sort();
    	private:
    		vector<People> p;
    };
    People::People(char na[],int id,char s[],char n[],int age)
    {
    	strcpy(name,na);
        this->id=id;
        strcpy(sex,s);
        strcpy(num,n);
        this->age=age;
    }
    void People::toString()
    {
    	cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"电话号码"<<"\t"<<"年龄"<<endl; 
    	cout<<id<<"\t"<<name<<"\t"<<sex<<"\t"<<num<<"\t"<<age<<endl; 
    }
    void People::SetName(char n[])
    {
    	strcpy(name,n);
    }
    void People::Setid(int id)
    {
    	this->id=id;
    }
    void People::SetSex(char s[])
    {
    	strcpy(sex,s);
    }
    void People::SetNumber(char n[])
    {
    	strcpy(num,n);
    }
    void People::SetAge(int age)
    {
    	this->age=age;
    }
    string People::GetName()
    {
    	return name;
    }
    int People::Getid()
    {
    	return id;
    }
    string People::GetSex()
    {
    	return sex;
    }
    string People::GetNum()
    {
    	return num;
    }
    int People::GetAge()
    {
    	return age;
    }
    void Manager::ExitSystem()
    {
    	cout<<"谢谢使用!";
    	exit(0);
    }
    void Manager::Add()
    {
    	char name[20]; 
    	int id; 
    	char sex[10];
    	char num[20];
    	long age;
    	cout<<"请输入姓名:";
    	cin>>name;
    	cout<<"请输入编号:";
    	cin>>id;
    	cout<<"请输入性别:";
    	cin>>sex;
    	cout<<"请输入电话号码:";
    	cin>>num;
    	cout<<"请输入年龄:";
    	cin>>age;
    	People m(name,id,sex,num,age);
    	p.push_back(m);
    	cout<<"添加成功!!!"<<endl;
    }
    int Manager::Delete()
    {
    	if(p.empty())
    	{
    		cout<<"Empty!"<<endl;
    		return 0;
    	}else
    	{
    	char name1[20];
    	cout<<"请输入需要删除的联系人姓名:";
        cin>>name1;
        for(int i=0;i<p.size();i++)
        {
        	if(name1==p[i].GetName())
        	{
        		p.erase(p.begin()+i);
        		i--;
        		cout<<"删除成功!"<<endl;
        		return 1;
    		}
    	}
        }
    	cout<<"未找到该联系人"<<endl;
    	return 0;
    }
    void Manager::Search()
    {
    	if(p.empty())
    	{
    		cout<<"Empty!"<<endl;
    		return;
    	}
    	cout<<"1.按手机号码查找按联系人"<<endl;
    	cout<<"2.按联系人查找"<<endl;
    	int m;
    	cin>>m;
    	if(m==1)
    	{
    		char number[20];
    		cout<<"请输入要查找的电话号码:";
    		cin>>number;
    		for(int i=0;i<p.size();i++)
    		{
    			if(p[i].GetNum()==number)
    				p[i].toString();
    		}
    	}else if(m==2)
    	{
    		char name[20];
    		cout<<"请输入要查找的姓名:";
    		cin>>name;
    		for(int i=0;i<p.size();i++)
    		{
    			if(p[i].GetName()==name)
    				p[i].toString();
    		}
    	}else
    		cout<<"输入有误,请重新输入"<<endl;
    }
    void Manager::Modify()
    {
    	if(p.empty())
    	{
    		cout<<"Empty!"<<endl;
    		return;
    	}
    	cout<<"请输入该联系人姓名:";
    	char name[20];
    	cin>>name;
    	for(int i=0;i<p.size();i++)
    	{
    		if(p[i].GetName()==name)
    		{
    			cout<<"请问您想修改什么信息??"<<endl;
    			cout<<"1.年龄"<<endl;
    			cout<<"2.性别"<<endl;
    			cout<<"3.电话号码"<<endl;
    			cout<<"4.编号"<<endl;
    			int m;
    			cin>>m;
    			if(m==1)
    			{
    				int age;
    				cout<<"请输入修改后的年龄:";
    				cin>>age;
    				p[i].SetAge(age);
    				cout<<"修改成功!"<<endl;
    			}else if(m==2)
    			{
    				char sex[10];
    				cout<<"请输入修改后的性别:";
    				cin>>sex;
    				p[i].SetSex(sex);
    				cout<<"修改成功!"<<endl;
    			}else if(m==3)
    			{
    				char number[20];
    				cout<<"请输入修改后的电话号码:";
    				cin>>number;
    				p[i].SetNumber(number);
    				cout<<"修改成功!"<<endl;
    			}else if(m==4)
    			{
    				int id;
    				cout<<"请输入修改后的编号";
    				cin>>id;
    				p[i].Setid(id);
    				cout<<"修改成功"<<endl;
    			}else
    			    cout<<"输入有误,请检查!"<<endl;
    		}
    	}
    }
    void Manager::Display()
    {
    	if(p.empty())
    	{
    		return;
    	}
    	else
    	{
    		cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"电话号码"<<"\t"<<"年龄"<<endl; 
    		for(int i=0;i<p.size();i++)
    		{
    			cout<<p[i].Getid()<<"\t"<<p[i].GetName()<<"\t"<<p[i].GetSex()<<"\t"<<p[i].GetNum()<<"\t"<<p[i].GetAge()<<endl;
    		}
    	} 
    }
    void Manager::Sort()
    {
    	if(p.empty())
    	{
    		cout<<"Empty!"<<endl;
    		return;
    	}
    	int i,j;
    	People g;
    	for(i=0;i<p.size()-1;i++)
    	{
    	    for(j=i+1;j<p.size();j++)
    	    {
    	        if(p[i].Getid()>p[j].Getid())
    			{
    				g=p[j];
    				p[j]=p[i];
    				p[i]=g;
    			}
    	    }
        }
        cout<<"排序成功!下面是排序结果"<<endl;
    }
    void menu()
    {
    	cout<<"**********电话号码簿管理系统**********"<<endl<<endl;
    	cout<<"1.增加电话号码"<<endl<<endl;
    	cout<<"2.删除电话号码"<<endl<<endl;
    	cout<<"3.显示联系人信息"<<endl<<endl;
    	cout<<"4.查找联系人"<<endl<<endl;
    	cout<<"5.修改联系人信息"<<endl<<endl;
    	cout<<"6.根据编号排序并输出"<<endl<<endl; 
    	cout<<"7.退出管理系统"<<endl<<endl;
    	cout<<"请输入你的选择:";
    }
    void HideCursor()
    {
    	CONSOLE_CURSOR_INFO cursor_info = {1, 0};
    	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
    }
    int main()
    {
    	system("color F9");
    	menu();
    	int m;
    	Manager mysystem;
    	do{
    		system("cls"); 
    		menu();
    		cin>>m;
    		switch(m)
    		{
    			case 1:
     mysystem.Add();
    	                system("pause");
    			        break;
    			case 2:  
    mysystem.Delete();
    			        system("pause");
    			        break;
    			case 3:  
    mysystem.Display();
    			        system("pause");
    			        break;
    			case 4:
     mysystem.Search();
    			        system("pause");
    			        break;
    			case 5: 
    mysystem.Modify();
    			        system("pause");
    			        break;
    			case 6:  
    mysystem.Sort();
    			        mysystem.Display();
    				    system("pause");
    				    break;
    			case 7:
    mysystem.ExitSystem();
    			        break;
    			default:
    cout<<"输入有误!请检查"<<endl; 
    			        system("pause");
    			        break;
    		}
    	}while(m!=-1);
    	return 0;
    }
    

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值