前言:
而今小伙伴们对“c语言通讯录系统”大约比较关怀,看官们都想要剖析一些“c语言通讯录系统”的相关文章。那么小编在网摘上网罗了一些关于“c语言通讯录系统””的相关资讯,希望同学们能喜欢,大家一起来了解一下吧!基于C++的通讯录管理系统设计(初版)
要求:
1,具有添加联系人功能
2,具有删除联系人功能
3,具有修改联系人功能
4,具有查找联系人功能
5,具有清空所有联系人功能
注意:此次设计主要是为了让大家巩固一下C语言相关知识点(如:结构体,指针的使用),同时也熟悉C++基础语法,为今后的单片机开发或嵌入式开发打下更好的软件编程基础。因此编写的程序并不涉及文件操作等知识点。
此次设计在B站(UP主:逗比小憨憨)最近直播讲解过。
以下是源码:(还需自己进一步完善和调试,基本功能已实现)
#include "Address_Book_Management_System.h"//display menu functionvoid Show_Menu(void){ cout << "****** 1,添加联系人 ******" << endl; cout << "****** 2,显示联系人 ******" << endl; cout << "****** 3,删除联系人 ******" << endl; cout << "****** 4,查找联系人 ******" << endl; cout << "****** 5,修改联系人 ******" << endl; cout << "****** 6,清空联系人 ******" << endl; cout << "****** 7,退出通讯录 ******" << endl;}//添加联系人int Add_Person(struct AddressList *addperson){ if (addperson->size == MAX) { cout << "通讯录已满 无法添加" << endl; return -1; } else { //添加联系人 string name; cout << "请输入欲添加联系人的名字:" << endl; cin >> name; addperson->person_arr[addperson->size].name = name; cout << "请输入欲添加联系人的性别:" << endl; cout << "6 ---- 男" << endl; cout << "9 ---- 女" << endl; int gender; for(;;) { cout << "请输入欲添加联系人的性别:" << endl; cin >> gender; if((gender == 6) || (gender == 9)) { addperson->person_arr[addperson->size].gender = gender; break; } else { cout << "输入有误,请重新输入!!!" << endl; } } int age; for(;;) { cout << "请输入欲添加联系人的年龄:" << endl; cin >> age; if((age >= 1) && (age <= 150)) { addperson->person_arr[addperson->size].age = age; break; } else { cout << "输入有误,请重新输入!!!" << endl; } } string phone_num; for(;;) { cout << "请输入欲添加联系人的联系电话:" << endl; cin >> phone_num; if( phone_num.length() == 11) { addperson->person_arr[addperson->size].phone_num = phone_num; break; } else { cout << "输入有误,请重新输入!!!" << endl; } } string addr; cout << "请输入欲添加联系人的地址:" << endl; cin >> addr; addperson->person_arr[addperson->size].addr = addr; } cout << "<添加联系人成功>" << endl; /*cout << "测试" << endl; cout << "您添加的信息为:" << endl; cout << addperson->person_arr[addperson->size].name << addperson->person_arr[addperson->size].gender << addperson->person_arr[addperson->size].age << addperson->person_arr[addperson->size].phone_num <<addperson->person_arr[addperson->size].addr << endl;*/ addperson->size ++;//名单+1 system("pause"); system("cls");//清屏 return 0;}//显示通讯录int Dispaly_Person(const struct AddressList *addperson){ if(addperson->size == 0) { cout << "当前通讯录为空" << endl; } else { for(int i = 0; i < addperson->size; i ++) { cout << "通讯录名单人员" << i+1 << endl; cout << "姓名:" << addperson->person_arr[i].name << '\t'; cout << "性别:" << (addperson->person_arr[i].gender == 6 ? "男": "女") << '\t'; cout << "年龄:" << addperson->person_arr[i].age << '\t'; cout << "电话:" << addperson->person_arr[i].phone_num << '\t'; cout << "地址:" << addperson->person_arr[i].addr << endl; } } system("pause"); system("cls");//清屏 return 0;}//main menu functionint Main_Menu(void){ struct AddressList addresslist; addresslist.size = 0; int select = 7;//select show menu while(1) { Show_Menu(); cout << "请选择功能:" << endl; cin >> select; switch(select) { case 1: Add_Person(&addresslist); break; //1,添加联系人 case 2: Dispaly_Person(&addresslist); break; //2,显示联系人 case 3: Del_Person(&addresslist); break; //3,删除联系人 case 4: LookUp_Menu(&addresslist); break; //4,查找联系人 case 5: Modify_Person(&addresslist); break; //5,修改联系人 case 6: Clean_AddressList(&addresslist); break; //6,清空联系人 case 7: cout << "通讯录管理系统已退出" << endl; return 0;//7,退出通讯录 default:break;//非法操作 } }}/* 函数名:根据人名 检测联系人 描述: 如果存在联系人,则返回具体位置 否则,则返回-1 注意:关于通讯录中同名的情况,这里不加考虑*/int Check_Person_Name(const struct AddressList *addperson ,string name){ int i = 0; int flag = MAX + 1; for(i; i < addperson->size; i ++) { if(name == addperson->person_arr[i].name) { flag = i; break;//测试 //return i; } } //测试 if (i <= addperson->size) { cout << "通讯录名单人员" <<endl; cout << "姓名:" << addperson->person_arr[flag].name << '\t'; cout << "性别:" << (addperson->person_arr[flag].gender == 6 ? "男": "女") << '\t'; cout << "年龄:" << addperson->person_arr[flag].age << '\t'; cout << "电话:" << addperson->person_arr[flag].phone_num << '\t'; cout << "地址:" << addperson->person_arr[flag].addr << endl; return flag;//没查到 } else { return -1; }}//删除联系人void Del_Person(struct AddressList *addperson){ int ret = -1; cout << "进入删除联系人功能,谨慎操作!!!" << endl; cout << "请输入您要删除的联系人的姓名:" << endl; string name; cin >> name; ret = Check_Person_Name(addperson,name); if(ret == -1) { cout << "查无此人" << endl; } else//查到 { for(int i = ret; i < addperson->size; i++) { addperson->person_arr[i] = addperson->person_arr[i + 1] ; } addperson->size --; cout << "删除成功" << endl; } system("pause"); system("cls");//清屏}int Check_Person_Age(const struct AddressList *addperson ,int age){ return 0;}int Check_Person_Gender(const struct AddressList *addperson ,int gender){ return 0;}int Check_Person_Phone_num(const struct AddressList *addperson ,string phone_num){ return 0;}int Check_Person_Addr(const struct AddressList *addperson ,string addr){ return 0;}//查找联系人小菜单int LookUp_Menu(const struct AddressList *addperson){ int select = 0; while(true) { cout << "****** 1,按名字查找 ******" << endl; cout << "****** 2,按性别查找 ******" << endl; cout << "****** 3,按年龄查找 ******" << endl; cout << "****** 4,按电话查找 ******" << endl; cout << "****** 5,按地址查找 ******" << endl; cout << "****** 6,退出查找功能 ******" << endl; cout << "请选择功能:" << endl; cin >> select; switch(select) { case 1: { string name; cout << "请输入待查找联系人的名字:" <<endl; cin >> name; if(Check_Person_Name(addperson,name));//not modify break; } case 2://not modify { int gender; cout << "请输入待查找联系人的性别:" <<endl; cin >> gender; Check_Person_Gender(addperson,gender); break; } case 3: { int age; cout << "请输入待查找联系人的年龄:" <<endl; cin >> age; Check_Person_Age(addperson,age); break; } case 4: { string phone_num; cout << "请输入待查找联系人的电话:" <<endl; cin >> phone_num; Check_Person_Phone_num(addperson,phone_num); break; } case 5: { string addr; cout << "请输入待查找联系人的地址:" <<endl; cin >> addr; Check_Person_Addr(addperson,addr); break; } case 6: { cout << "退出查找功能" << endl; system("pause"); system("cls");//清屏 return 0;//7,退出通讯录 } default:break;//非法操作 } select = 0; system("pause"); system("cls");//清屏 } system("pause"); system("cls");//清屏 return 0;}//修改联系人信息,根据姓名进行修改void Modify_Person(struct AddressList *addperson ){ int ret; struct Person temp; string name; cout << "进入通讯录修改模式" << endl; cout << "输入欲修改信息的名字:"<< endl; cin >> name; ret = Check_Person_Name(addperson,name); if(ret == -1) { cout << "查无此人,无法进行信息修改!!!" << endl; return ; } else { cout << "通讯录中查到此人" << endl; cout << "请输入修改相关信息:"<< endl; cout << "请输入修改后的姓名:"<< endl; //string name; cin >> temp.name; //addperson->person_arr[ret].name = name; cout << "请输入修改后的性别:"<< endl; //int gender; cin >> temp.gender; //addperson->person_arr[ret].gender = gender; cout << "请输入修改后的年龄:"<< endl; //int age; cin >> temp.age; //addperson->person_arr[ret].age = age; cout << "请输入修改后的电话:"<< endl; //string phone_num; cin >> temp.phone_num; //addperson->person_arr[ret].phone_num = phone_num; cout << "请输入修改后的地址:"<< endl; //string addr; cin >> temp.addr; //addperson->person_arr[ret].addr = addr; cout << "修改后的信息如下:" << endl; cout << "姓名:" << temp.name << '\t' << "性别:" << temp.gender<< '\t' << "年龄:" << (temp.age == 6 ?"男":"女")<< '\t' << "电话号码:" << temp.phone_num<< '\t' << "地址:" <<temp.addr << endl; cout << "是否确认修改" << endl; int enter = 0; cout << "1,确认修改" << endl; cout << "其它键取消" << endl; cin >> enter; if(enter == 1) { addperson->person_arr[ret] = temp; cout << "修改成功" << endl; } else { cout << "取消修改" << endl; } } system("pause"); system("cls");//清屏 }//清空通讯录void Clean_AddressList(struct AddressList *addperson){ int method = 0; cout << "请选择清空方式:" << endl; cout << "1,物理清空" << endl; cout << "2,逻辑清空" << endl; cin >> method; if(method == 1) { //物理清空 cout << "此功能暂时无法使用" << endl; } else if(method == 2) { addperson->size = 0;//逻辑清空 cout << "通讯录已清空" << endl; } else cout << "输入有误" << endl; system("pause"); system("cls");//清屏}
#ifndef __Address_Book_Management_System_H#define __Address_Book_Management_System_H#include <iostream>#include <string>using namespace std;struct Person{ string name; //姓名 int gender; //性别 int age; //年龄 string phone_num; //电话号码 string addr; //住址};#define MAX 100 //通讯录中最大的数量struct AddressList { struct Person person_arr[MAX];//通讯录名单 int size;//通讯录当前记录的个数};void Show_Menu(void);int Add_Person(struct AddressList *addperson);int Dispaly_Person(const struct AddressList *addperson);int Main_Menu(void);int Check_Person_Name(const struct AddressList *addperson ,string name);void Del_Person(struct AddressList *addperson);int Check_Person_Age(const struct AddressList *addperson ,int age);int Check_Person_Gender(const struct AddressList *addperson ,int gender);int Check_Person_Phone_num(const struct AddressList *addperson ,string phone_num);int Check_Person_Addr(const struct AddressList *addperson ,string addr);int LookUp_Menu(const struct AddressList *addperson);void Modify_Person(struct AddressList *addperson);void Clean_AddressList(struct AddressList *addperson);#endif
#include "Address_Book_Management_System.h"int main(){ Main_Menu(); system("pause"); return 0;}
更多精彩内容:
微信公众号 或 今日头条号 或 B站 搜索并关注 “逗比小憨憨”
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #c语言通讯录系统