前言
虽然发布这么简单的逻辑代码有点羞耻,但是千里之行,始于足下。记录吾c++学习过程。
通信录管理系统
就是简单的对数组的添加,修改,删除等操作来模拟通讯录管理系统。根据用户输入1、2、3、4、5、6、0进行交互。
主程序
执行文件
#include <iostream>
#include <string>
#include "mail_list.h"
using namespace std;
int main() {
/*
1 添加联系人
2 显示联系人
3 删除联系人
4 查找联系人
5 修改联系人
6 清空联系人
0 退出通讯录
*/
show_menu();
bool flag = true;
struct Mail_list mailList;
while (flag){
int select = 0;
cout << "请输入你的选择!" << endl;
cin >> select;
switch (select) {
case 1:{
add_person(&mailList);
break;
}
case 2:{
show_mail_list(mailList);
break;
}
case 3:{
cout << "请输入你要删除的联系人姓名:" << endl;
string name;
cin >> name;
del_person(mailList, name);
break;
}
case 4:{
cout << "请输入你要查找的人姓名:" << endl;
string name;
cin >> name;
find_person(mailList, name, true);
break;
}
case 5:{
cout << "请输入要修改的联系人姓名:" << endl;
string name;
cin >> name;
modify_person(mailList, name);
break;
}
case 6:{
clear_person(mailList);
break;
}
case 0:{
flag=false;
cout << "退出" << endl;
break;
}
default:{
flag= false;
cout << "please input right select value!, value range is 0~6" << endl;
break;
}
}
}
return 0;
}
头文件
定义函数声明、类和结构体。
#include <iostream>
#include <string>
using namespace std;
#define MAX 100
struct Person{
string name;
string sex;
int age;
int telephone_number;
string address;
};
struct Mail_list{
struct Person person_array[MAX];
int m_size=0;
};
void show_menu();
void add_person(Mail_list * mailList);
void show_mail_list(Mail_list mailList);
int find_person(Mail_list mailList, string name, bool show= false);
void del_person(Mail_list & mailList, string name);
void modify_person(Mail_list & mailList, string name);
void clear_person(Mail_list & mailList);
源文件
具体的函数实现
//
// Created by 安超 on 2021/8/12.
//
#include "mail_list.h"
#include <iostream>
#include <string>
using namespace std;
#define MAX 100
void show_menu(){
cout << "1 添加联系人" << endl;
cout << "2 显示联系人" << endl;
cout << "3 删除联系人" << endl;
cout << "4 查找联系人" << endl;
cout << "5 修改联系人" << endl;
cout << "6 清空联系人" << endl;
cout << "0 退出通讯录" << endl;
}
void add_person(Mail_list * mailList){
if (mailList->m_size == MAX){
cout << "通讯录已满,无法添加!" << endl;
return;
}
else{
string name;
string sex;
int age;
int telephone_number;
string address;
cout << "请输入姓名:" << endl;
cin >> name;
cout << "请输入性别:" << endl;
cin >> sex;
cout << "请输入年龄:" << endl;
cin >> age;
cout << "请输入电话号码:" << endl;
cin >> telephone_number;
cout << "请输入地址:" << endl;
cin >> address;
mailList->person_array[mailList->m_size].name=name;
mailList->person_array[mailList->m_size].sex=sex;
mailList->person_array[mailList->m_size].age=age;
mailList->person_array[mailList->m_size].telephone_number=telephone_number;
mailList->person_array[mailList->m_size].address=address;
mailList->m_size++;
cout << name <<"添加成功!" << endl;
}
}
void show_mail_list(Mail_list mailList){
if(mailList.m_size == 0){
cout << "通信录为空!" << endl;
}
else{
for(int i=0; i<mailList.m_size; i++){
cout << "**************************************" << endl;
cout << "姓名:" << mailList.person_array[i].name << endl;
cout << "性别:" << mailList.person_array[i].sex << endl;
cout << "年龄:" << mailList.person_array[i].age << endl;
cout << "电话号码:" << mailList.person_array[i].telephone_number << endl;
cout << "地址:" << mailList.person_array[i].address << endl;
cout << "**************************************" << endl;
}
}
}
int find_person(Mail_list mailList, string name, bool show){
if(mailList.m_size==0){
cout << "通信录为空,您要找的人不存在!"<< endl;
return -1;
}
else{
for(int i=0; i<mailList.m_size; i++){
if(name==mailList.person_array[i].name){
cout << "查有此人!" << endl;
if(show){
cout << "查询到的信息:" << endl;
cout << "**************************************" << endl;
cout << "姓名:"<< mailList.person_array[i].name << endl;
cout << "性别:"<< mailList.person_array[i].sex << endl;
cout << "年龄:"<< mailList.person_array[i].age << endl;
cout << "电话号码:"<< mailList.person_array[i].telephone_number << endl;
cout << "地址:"<< mailList.person_array[i].address << endl;
cout << "**************************************" << endl;
}
return i;
}
}
}
cout << "查无此人!" << endl;
return -1;
}
void del_person(Mail_list & mailList, string name){
int index = find_person(mailList, name);
if(index != -1){
for(int i=index; i<mailList.m_size; i++){
mailList.person_array[index] = mailList.person_array[index+1];
}
cout << "删除成功!" << endl;
mailList.m_size--;
}
}
void modify_person(Mail_list & mailList, string name){
int index = find_person(mailList, name);
if(index != -1){
cout << "请输入修改后的姓名:" << endl;
string new_name;
cin >> new_name;
mailList.person_array[index].name = new_name;
cout << "请输入修改后的性别:" << endl;
string new_sex;
cin >> new_sex;
mailList.person_array[index].sex = new_sex;
cout << "请输入修改后的年龄:" << endl;
int new_age;
cin >> new_age;
mailList.person_array[index].age = new_age;
cout << "请输入修改后的电话号:" << endl;
int new_tel;
cin >> new_tel;
mailList.person_array[index].telephone_number= new_tel;
cout << "请输入修改后的住址:" << endl;
string new_address;
cin >> new_address;
mailList.person_array[index].address= new_address;
}
}
void clear_person(Mail_list & mailList){
mailList.m_size=0;
cout << "通讯录已清空!"<< endl;
}
总结
写这些逻辑虽然不费脑子,但是费体力,所以必须记录,为了能学好c++,keep going!