这是一个大作业的预热和练手,找了一个黑马上的通讯录系统
代码如下
#include<bits/stdc++.h>
using namespace std;
//结构体区域
#define MAX 1000
//1.联系人结构体
struct person{
string name;
int sex;
int age;
string number;
string address;
};
//2.通讯录结构体
struct txl{
struct person personarr[MAX];
int size;//通讯录中的人数;
};
//函数区域
//开始菜单
void menu() {
cout<<"*****欢迎使用小高通讯录*****\n";
cout<<"********∞功能如下∞*********\n";
cout<<"********1.添加联系人********\n";
cout<<"********2.显示联系人********\n";
cout<<"********3.查找联系人********\n";
cout<<"********4.删除联系人********\n";
cout<<"********5.修改联系人********\n";
cout<<"********6.清空联系人********\n";
cout<<"********0.退出通讯录********\n";
cout<<"******666.隐藏笑话功能******\n";
}
//添加联系人函数
void addperson(txl *abs){
if(abs->size==MAX){
cout<<"通讯录人数已满,无法添加更多联系人\n";
return;
}
else
cout<<"请输入联系人的姓名:";
string name;
cin>>name;
abs->personarr[abs->size].name=name;
cout<<"请输入联系人性别(tip:1.为男性,2.为女性):";
int sex;
cin>>sex;
abs->personarr[abs->size].sex=sex;
cout<<"请输入联系人的年龄:";
int age;
cin>>age;
abs->personarr[abs->size].age=age;
cout<<"请输入联系人的电话号码:";
string number;
cin>>number;
abs->personarr[abs->size].number=number;
cout<<"请输入联系人的地址:";
string address;
cin>>address;
abs->personarr[abs->size].address=address;
cout<<"添加完成\n";
abs->size++;
}
//显示联系人函数
void showperson(txl *abs){
int count=1;
if(abs->size==0){
cout<<"通讯录中还没有联系人请先添加联系人\n";
return ;
}
else
for(int i=0;i<abs->size;i++){
cout<<count<<".";
cout<<"姓名: "<<abs->personarr[i].name<<"\n";
if(abs->personarr[i].sex==1)
cout<<" 性别: 男\n";
else
cout<<" 性别: 女\n";
cout<<" 年龄: "<<abs->personarr[i].age<<"\n";
cout<<" 电话号码:"<<abs->personarr[i].number<<"\n";
cout<<" 地址: "<<abs->personarr[i].address<<"\n";
count++;
}
}
//删除联系人函数
//检测联系人是否存在
int detect(txl* abs,string name){
for(int i=0;i<abs->size;i++){
if(abs->personarr[i].name==name)
return i;
}
return -1;
}
//删除函数
void deleteperson(txl *abs){
string name;
cout<<"输入您要删除的联系人的姓名:";
cin>>name;
int flag;
flag=detect(abs,name);
if(flag==-1){
cout<<"通讯录中没有这个联系人,请检查后重试\n";
}
else{
for(int j=flag;j<abs->size;j++){
abs->personarr[j]=abs->personarr[j+1];
}cout<<"删除成功\n";
abs->size--;
}
}
//查找联系人函数
void findperson(txl *abs){
string name;
cout<<"请输入你要查找的联系人:";
cin>>name;
int flag=detect(abs,name);
if(flag==-1)cout<<"抱歉,通讯录没有此人,请检查重试\n";
else{
cout<<"姓名:"<<abs->personarr[flag].name<<"\n";
if(abs->personarr[flag].sex==1)
cout<<" 性别: 男\n";
else
cout<<" 性别: 女\n";
cout<<" 年龄: "<<abs->personarr[flag].age<<"\n";
cout<<" 电话号码:"<<abs->personarr[flag].number<<"\n";
cout<<" 地址: "<<abs->personarr[flag].address<<"\n";
}
}
//修改联系人函数
void changeperson(txl *abs){
string name;
cout<<"输入你要修改的联系人的姓名:";
cin>>name;
int flag=detect(abs,name);
if(flag==-1)cout<<"通讯录中没有这个联系人,请检查姓名后重试\n";
else{
int what;
cout<<"输入想修改哪项信息:(1.姓名2.性别3.年龄4.电话号码5.地址6.不修改)";
cin>>what;
switch(what){
case 1 : {
string name1;
cout<<"输入修改后的姓名:";
cin>>name1;
abs->personarr[flag].name=name1;
}break;
case 2 : {
int sex1;
cout<<"输入修改后的性别(1.男2.女):";
cin>>sex1;
abs->personarr[flag].sex=sex1;
}break;
case 3 : {
int age1;
cout<<"输入修改后的年龄:";
cin>>age1;
abs->personarr[flag].age=age1;
}break;
case 4 : {
string number1;
cout<<"输入修改后的电话号码:";
cin>>number1;
abs->personarr[flag].number=number1;
}break;
case 5 : {
string address1;
cout<<"输入修改后的地址:";
cin>>address1;
abs->personarr[flag].address=address1;
}break;
case 6 : break;
}
}
}
//清空联系人函数
void cleanperson(txl *abs){
abs->size=0;
}
//主函数运行区域
int main(){
int choice;
txl abs;
abs.size=0;//初始化人数
while(1){
menu();
cin>>choice;
switch(choice){
case 1 ://添加
addperson(&abs);//用地址才能改变实参
system("pause");system("cls");
break;
case 2 ://显示
showperson(&abs);
system("pause");system("cls");
break;
case 3 ://查找
findperson(&abs);
system("pause");system("cls");
break;
case 4 ://删除
deleteperson(&abs);
system("pause");system("cls");
break;
case 5 ://修改
changeperson(&abs);
system("pause");system("cls");
break;
case 6 ://清空
cleanperson(&abs);
cout<<"清空完成NB";
system("pause");system("cls");
break;
case 0 :system("cls") ;cout<<"欢迎再次使用 Thank you";return 0;break;
case 666 : {
int num=0;
cout<<"输入你要的笑话编号共三个:";
cin>>num;
switch(num){
case 1 : cout<<"不好的东西,我自己屏蔽(记得重新输入666)\n";system("pause");system("cls");break;
case 2 : cout<<"不好的东西,我自己屏蔽(记得重新输入666)\n";system("pause");system("cls");break;
default: cout<<"不好的东西,我自己屏蔽\n";system("pause");system("cls");break;
}
}break;
}
}
}