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