C++ programming "address book management system"

C++ programming "address book management system"

1. Overview of the article

	在C++语言学习过程中的初级阶段,通过编写一个小型功能系统,完善对程序语言的初步学习,是一个比较好
	的回顾和自检过程,本文章通过对C++程序课程学习,编写了简易的通讯录管理系统,供大家免费阅读。
	由于笔者能力有限,文章错误还请大家指正共同学习。

2. Code function

  • 1. Add a contact
  • 2. Display contacts
  • 3. Delete contacts
  • 4. Find contacts
  • 5. Modify contacts
  • 6. Clear contacts
  • 7. Exit the address book

3. Function structure diagram

insert image description here

4. Function realization

  • Contact structure
struct Person{
    
       
    
    string name;//姓名
    int sex;//性别
    int age;//年龄
    string number;//号码
    string address;//地址
};
  • address book structure
struct AddressBooks{
    
       
    
   struct Person personArray[MAX];
   int size;
}addressBooks;
  • main function
int main() {
    
       
    
    int condition=0;
    cout<<"欢迎使用通讯录系统!"<<endl;
    while (true){
    
       
    
        showMenu();
        cout<<"请输入操作数:"<<endl;
        cin>>condition;
        switch (condition) {
    
       
    
            case 1:
                addPerson(&addressBooks);
                break;
            case 2:
                showPerson(&addressBooks);
                break;
            case 3:
                deletePerson(&addressBooks);
                break;
            case 4:
                selectPerson(&addressBooks);
                break;
            case 5:
                changePerson(&addressBooks);
                break;
            case 6:
                clearPerson(&addressBooks);
                break;
            case 0:
                cout<<"通讯录系统退出成功!感谢您的使用";
                return 0;
                break;
            default:
                cout<<"请输入正确的操作数!"<<endl;
                break;
        }
    }
    return 0;
}

5. Program code appendix

#include <iostream>
using namespace std;
#define MAX 1000
/*
 * write by yuHeng
 * date:2020/3/10
 * */
//联系人结构体
struct Person{
    
       
    
    string name;
    int sex;
    int age;
    string number;
    string address;
};
//通讯录结构体
struct AddressBooks{
    
       
    
   struct Person personArray[MAX];
   int size;
}addressBooks;
//添加联系人
void addPerson(AddressBooks *p){
    
       
    
    if(p->size==MAX){
    
       
    
        cout<<"通讯录已满,无法添加"<<endl;
    }else{
    
       
    
        //姓名
        string names;
        cout<<"请输入姓名:"<<endl;
        cin>>names;
        p->personArray[p->size].name=names;
        //性别
        int index=0;
        cout<<"请输入性别1(男)/2(女):"<<endl;
        cin>>index;
        if(index==1||index==2){
    
       
    
            p->personArray[p->size].sex=index;
        }else{
    
       
    
            cout<<"输入错误,请重新添加!"<<endl;
            return;
        }
        //年龄
        int ages;
        cout<<"请输入年龄:"<<endl;
        cin>>ages;
        p->personArray[p->size].age=ages;
        //号码
        string numbers;
        cout<<"请输入号码:"<<endl;
        cin>>numbers;
        p->personArray[p->size].number=numbers;
        //地址
        string address;
        cout<<"请输入地址"<<endl;
        cin>>address;
        p->personArray[p->size].address=address;
        //更新通讯录人数
        p->size++;
        cout<<"添加成功!"<<endl;
//        system("pause");
//        system("cls");
 }
}
//显示联系人
void showPerson(AddressBooks *p){
    
       
    
    if(p->size==0){
    
       
    
        cout<<"通讯录为空,显示失败!"<<endl;
//        system("cls");
    }else{
    
       
    
        cout<<"姓名\t性别\t年龄\t号码\t住址\t"<<endl;
        for(int i=0;i<p->size;i++){
    
       
    
            cout<<p->personArray[i].name<<"\t"
                <<(p->personArray[i].sex==1?"男":"女")<<"\t"
                <<p->personArray[i].age<<"\t"
                <<p->personArray[i].number<<"\t"
                <<p->personArray[i].address<<endl;
        }
    }
}
//判断联系人是否存在
int isExist(AddressBooks *p,string name){
    
       
    
    for(int i=0;i<p->size;i++){
    
       
    
        if(p->personArray[i].name==name){
    
       
    
            return i;
        }//return -1;放在此次值判断一次!
    }
    return -1;
}
//删除联系人
void deletePerson(AddressBooks *p){
    
       
    
    if(p->size==0){
    
       
    
        cout<<"通讯录为空,删除失败!"<<endl;
    }else{
    
       
    
        string name;
        cout<<"请输入要删除联系人的姓名:"<<endl;
        cin>>name;
        if(isExist(&addressBooks,name)==-1){
    
       
    
            cout<<"联系人不存在,删除失败!"<<endl;
        }else{
    
       
    
            for(int i= isExist(&addressBooks,name);i<p->size;i++){
    
       
    
                p->personArray[i]=p->personArray[i+1];
            }
            cout<<"联系人删除成功!"<<endl;
            p->size--;
        }
    }
}
//查找联系人
void selectPerson(AddressBooks*p){
    
       
    
    if(p->size==0){
    
       
    
        cout<<"通讯录为空,查找失败!"<<endl;
    }else{
    
       
    
        string name;
        cout<<"请输入要查询联系人的姓名:"<<endl;
        cin>>name;
        int result= isExist(&addressBooks,name);
        if(result==-1){
    
       
    
            cout<<"联系人不存在!"<<endl;
        }else{
    
       
    
            cout<<"查找成功!信息如下:"<<endl;
            cout<<"姓名\t性别\t年龄\t号码\t住址\t"<<endl;
            cout<<p->personArray[result].name<<"\t"
                <<(p->personArray[result].sex==1?"男":"女")<<"\t"
                <<p->personArray[result].age<<"\t"
                <<p->personArray[result].number<<"\t"
                <<p->personArray[result].address<<endl;
        }
    }
}
//修改联系人
void changePerson(AddressBooks*p){
    
       
    
    if(p->size==0){
    
       
    
        cout<<"通讯录为空,修改失败!"<<endl;
    }else{
    
       
    
        string name;
        cout<<"请输入修改联系人的姓名:"<<endl;
        cin>>name;
        int result= isExist(&addressBooks,name);
        if(result==-1){
    
       
    
            cout<<"联系人不存在!"<<endl;
        }else{
    
       
    
            //名字
            cout<<"请重新输入"<<name<<"的名字:"<<endl;
            string names;
            cin>>names;
            p->personArray[result].name=names;
            //性别
            cout<<"请重新输入"<<name<<"的性别1(男)/2(女):"<<endl;
            int index=0;
            while (true){
    
       
    
                cin>>index;
                if(index==1||index==2){
    
       
    
                    p->personArray[result].sex=index;
                    break;
                }else {
    
       
    
                    cout << "输入错误,请重新输入!" << endl;
                }
            }
            //年龄
            cout<<"请重新输入"<<name<<"的年龄:"<<endl;
            int ages;
            cin>>ages;
            p->personArray[result].age=ages;
            //号码
            cout<<"请重新输入"<<name<<"的号码:"<<endl;
            string numbers;
            cin>>numbers;
            p->personArray[result].number=numbers;
            //地址
            cout<<"请重新输入"<<name<<"的地址:"<<endl;
            string address;
            cin>>address;
            p->personArray[result].address=address;
            cout<<"修改联系人成功!"<<endl;
        }
    }
}
//清空联系人
void clearPerson(AddressBooks*p){
    
       
    
    if(p->size==0){
    
       
    
        cout<<"通讯录为空,清空失败!"<<endl;
    }else{
    
       
    
        p->size=0;
        cout<<"通讯录清空成功!"<<endl;
    }
}
//显示功能菜单
/*
 * 1、添加联系人
 * 2、显示联系人
 * 3、删除联系人
 * 4、查找联系人
 * 5、修改联系人
 * 6、清空联系人
 * 7、退出通讯录
 *
 * */
void showMenu(){
    
       
    
    cout<<"1、添加联系人"<<endl;
    cout<<"2、显示联系人"<<endl;
    cout<<"3、删除联系人"<<endl;
    cout<<"4、查找联系人"<<endl;
    cout<<"5、修改联系人"<<endl;
    cout<<"6、清空联系人"<<endl;
    cout<<"0、退出通讯录"<<endl;
}
int main() {
    
       
    
    int condition=0;
    cout<<"欢迎使用通讯录系统!"<<endl;
    while (true){
    
       
    
        showMenu();
        cout<<"请输入操作数:"<<endl;
        cin>>condition;
        switch (condition) {
    
       
    
            case 1:
                addPerson(&addressBooks);
                break;
            case 2:
                showPerson(&addressBooks);
                break;
            case 3:
                deletePerson(&addressBooks);
                break;
            case 4:
                selectPerson(&addressBooks);
                break;
            case 5:
                changePerson(&addressBooks);
                break;
            case 6:
                clearPerson(&addressBooks);
                break;
            case 0:
                cout<<"通讯录系统退出成功!感谢您的使用";
                return 0;
                break;
            default:
                cout<<"请输入正确的操作数!"<<endl;
//                system("cls");
                break;


        }
    }
    return 0;
}

6. After the article


可根据本程序代码修改为其他功能系统,例如:图书信息管理系统,学生信息管理系统等,如果该文章对你有用 
给我点个免费的赞吧,同时欢迎码友评论。

Related Posts