C++ 实验三 NO.2 微信的朋友圈:1.请设计一个Friend类,用来读信息到结构体数组中;2.并设计一个Master类,能够满足以下四个功能的朋友圈信息管理

//******************************************************************************************** 
//*程序作者:冰糖  
//*完成日期:2019年3月15日
//*章    节:实验三
//*题    号:习题2 
//*题    目:通过我们所熟悉手机社交软件--微信的朋友圈,其中朋友的信息都存储到相应的结构体中:
//*          struct friends
//*          {
//*              char name[20];//存储朋友姓名
//*              char sex;//f or m
//*          	  int age;
//*          	  char telephone[21];
//*          	  char email[20];
//*          	  char birthday[20];
//*          	  int counte;//邮件的记录
//*          	  char tmessage[500];//存储短信内容
//*          	  int countp;//电话记录
//*          	  char emessage[500];
//*          };
//*          要求:
//*          1)请设计一个Friend类,用来读信息到结构体数组中;
//*          2)并设计一个Master类,能够满足以下四个功能
//*             的朋友圈信息管理。需要满足:
//*          a.添加功能
//*          	   作为主人登录时,添加一个朋友的基本信息,包括姓名,性别,年龄,电话,邮箱,生日等,并选择要添加的分组。
//*          b.删除功能
//*                作为主人登录时,按分组和姓名对一个朋友的信息进行删除。
//*          c.修改功能
//*                作为主人登录时,按分组和姓名对一个朋友的信息进行修改。
//*          d.显示功能
//*                作为主人登录时,按分组有条理显示某一组内所有朋友的基本信息,
//*                包括姓名,性别,年龄,电话,邮箱,生日等。
//********************************************************************************************* 
#include<iostream>
#include<string.h>
using namespace std;
int i=0;
struct friends
{
    char name[20];//存储朋友姓名
    char sex;//f or m
	int age;
	char telephone[21];
	char email[20];
	char birthday[20];
	int counte;//邮件的记录
	char tmessage[500];//存储短信内容
	int countp;//电话记录
	char emessage[500];
};
friends fri[100]; 
class Friend
{
	private:
		int group;                                  //记录分组 
	public:
		Friend(friends &fri)
		{
			cout<<"请选择你要添加到的分组(序号):"<<endl;
			cin>>group;
			cout<<"请输入姓名:"<<endl; 
			cin>>fri.name;
			cout<<"请输入年龄:"<<endl;
			cin>>fri.age;
			cout<<"请输入性别:"<<endl;
			cin>>fri.sex;
			cout<<"请输入电话号码:"<<endl;
			cin>>fri.telephone;
			cout<<"请输入邮箱地址:"<<endl;
			cin>>fri.email;
			cout<<"请输入生日:"<<endl;
			cin>>fri.birthday;
		}
		int getgroup()
		{
			return group;
		}
		void setgroup(int a)
		{
			group=a;
		} 
		
};
Friend *people[100];
class Master
{
	public:
		void addInfo()                                       //四个功能函数 
		{
			people[i]=new Friend(fri[i]);
			i++;
			cout<<"新建联系人成功!"<<endl;
		}
		void deleteInfo();
		void edit();
		void showlist();
};
void Master::deleteInfo()
{
	char nameNew[20];
	int j,groupNew;
	cout<<"请输入要删除的联系人信息:"<<endl;
	cout<<"姓名:";
	cin>>nameNew;
	cout<<"分组:";
	cin>>groupNew;
	for(j=0;j<i;j++)
	{
		if((strcmp(nameNew,fri[j].name)==0)&&(people[j]->getgroup()==groupNew))
		{
			for(int k=j;k<i;k++)
			{
				people[k]=people[k+1];
				fri[k]=fri[k+1];
			}
			delete people[i];
			cout<<"删除朋友信息成功!"<<endl;
			break;
		}
	}
	if(j==i)                                                                //没有找到 
	{
		cout<<"没有找到该朋友!"<<endl;
	}
	i--; 
}
void Master::edit()
{
	char nameNew[20];
	int j,groupNew;
	cout<<"请输入要修改的联系人信息:"<<endl;
	cout<<"姓名:";
	cin>>nameNew;
	cout<<"分组:";
	cin>>groupNew;
	for(j=0;j<i;j++)
	{
		if((strcmp(nameNew,fri[j].name)==0)&&(people[j]->getgroup()==groupNew))
		{
			int a;
			cout<<"请选择你要修改到的分组(序号):"<<endl;
			cin>>a;
			people[j]->setgroup(a);
			cout<<"请输入修改姓名:"<<endl; 
			cin>>fri[j].name;
			cout<<"请输入修改年龄:"<<endl;
			cin>>fri[j].age;
			cout<<"请输入修改性别:"<<endl;
			cin>>fri[j].sex;
			cout<<"请输入修改电话号码:"<<endl;
			cin>>fri[j].telephone;
			cout<<"请输入修改邮箱地址:"<<endl;
			cin>>fri[j].email;
			cout<<"请输入修改生日:"<<endl;
			cin>>fri[j].birthday;
			cout<<"修改成功!"<<endl; 
		}
	}
	if(j==i)                                                                //没有找到 
	{
		cout<<"没有找到该朋友的相关信息!"<<endl;
	}
	i--; 	
 } 
void Master::showlist()
{
	int j,groupNew;
	cout<<"请输入要显示信息的分组:"<<endl;
	cin>>groupNew;
	for(j=0;j<i;j++)
	{
		if(people[j]->getgroup()==groupNew)
		{
			cout<<"姓名:"<<fri[j].name<<endl;
			cout<<"年龄:"<<fri[j].age<<endl; 
			cout<<"性别:"<<fri[j].sex<<endl;
			cout<<"电话:"<<fri[j].telephone<<endl;
			cout<<"电子邮箱:"<<fri[j].email<<endl;
			cout<<"生日:"<<fri[j].birthday<<endl;
			cout<<endl;
		}
	}
	if(j==i)                                                                //没有找到 
	{
		cout<<"没有找到相关信息!"<<endl;
	}
	i--; 
}
void menu(Master master);
int main()
{
	Master master;
	while(1)
	{
		menu(master);
	}
	return 0;
} 
void menu(Master master)
{
	int choice;
	while(1)
	{
	cout<<endl;
	cout<<"请选择您想要进行的操作:"<<endl;
	cout<<" 1:添加一个朋友的基本信息"<<endl;
	cout<<" 2:对一个朋友的信息进行删除"<<endl;
	cout<<" 3:对一个朋友的信息进行修改"<<endl; 
	cout<<" 4:按分组显示某一组内所有朋友的基本信息"<<endl;
	cout<<" 5:退出系统"<<endl;
	cin>>choice;
	if((choice<=5) && (choice>=1))
	{
		switch(choice)
		{
		case 1:master.addInfo();
		break;
		case 2:master.deleteInfo();
		break;
		case 3:master.edit();
		break;
		case 4:master.showlist();
		break;
		case 5: exit(0);
		break;
		}
	}
	else
	{
		cout<<"您的输入有误,请重试!\n";
		continue;
	}
	}
}
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值