面向过程的通讯录条目管理程序
题目:
![问题](https://img-blog.csdnimg.cn/29bf9e336bbe47b99fb291744ae6183c.png)
![主界面示例](https://img-blog.csdnimg.cn/fa125e7d55f14abbb28bba03432e4fbc.png)
采用结构体存储通讯录信息
struct commEntry
{
string name;
string tel;
string addr;
};
目录设计
void content(){
cout<<"==========================="<<endl;
cout<<"1.输入通讯录条目"<<endl;
cout<<"2.输出通讯录条目"<<endl;
cout<<"3.修改姓名"<<endl;
cout<<"4.修改电话"<<endl;
cout<<"5.修改地址"<<endl;
cout<<"6.增加条目"<<endl;
cout<<"7.删除条目"<<endl;
cout<<"8.查找信息"<<endl;
cout<<"0.退出"<<endl;
cout<<"============================"<<endl;
cout<<"请输入(0-8):";
}
通过被调函数实现各种功能
void content(); ///目录
void Input(commEntry&); ///输入条目
void print(commEntry); ///打印条目
void Rename(commEntry&); ///修改姓名
void Retel(commEntry&); ///修改电话
void Readdr(commEntry&); ///修改地址
采用switch…case语句实现功能的调用,全部代码展示:
#include<iostream>
using namespace std;
struct commEntry
{
string name;
string tel;
string addr;
};
void content(); ///目录
void Input(commEntry&); ///输入条目
void print(commEntry); ///打印条目
void Rename(commEntry&); ///修改姓名
void Retel(commEntry&); ///修改电话
void Readdr(commEntry&); ///修改地址
int main(){
system("chcp 65001");
int Key,i,n;
string Finame;
commEntry CE[100];
while(1){
content();
cin>>Key;
switch(Key) {
case 1: {
cout<<"请输入要管理的条目数量:";
cin>>n;
for(i=0;i<n;i++){
Input(CE[i]);
}
break;
}
case 2: {
for(i=0;i<n;i++){
print(CE[i]);
}
break;
}
case 3: {
cout<<"请输入要修改的姓名:";
cin>>Finame;
for(i=0;i<n;i++){
if(Finame==CE[i].name){
Rename(CE[i]);
break;
}
}
if(i>=n)
cout<<"Not Find!"<<endl;
break;
}
case 4: {
cout<<"请输入要修改的姓名:";
cin>>Finame;
for(i=0;i<n;i++) {
if(Finame==CE[i].name){
Retel(CE[i]);
break;
}
}
if(i<=n)
cout<<"Not Find!"<<endl;
break;
}
case 5: {
cout<<"请输入要修改的姓名:";
cin>>Finame;
for(i=0;i<n;i++){
if(Finame==CE[i].name)
Readdr(CE[i]);
}
if(i>=n)
cout<<"Not Find!"<<endl;
break;
}
case 6: {
cout<<"请输入要增加的条目数:";
cin>>i;
for(i=0;i<n;i++){
Input(CE[i]);
}
n+=i;
break;
}
case 7: {
cout<<"请输入要删除的姓名:";
cin>>Finame;
for(i=0;i<n;i++){
if(Finame==CE[i].name)
for(;i<n;i++){
CE[i].name=CE[i+1].name;
CE[i].tel=CE[i+1].tel;
CE[i].addr=CE[i+1].addr;
}
}
if(i<=n)
cout << "Not Find!" << endl;
else
n -= 1;
break;
}
case 8: {
cout<<"请输入需要查找的姓名:";
cin>>Finame;
for(i=0;i<n;i++)
{
if(Finame==CE[i].name)
print(CE[i]);
}
if(i<=n)
cout << "Not Find!" << endl;
break;
}
case 0:
return 0;
default: {
cout<<"Error!"<<endl;
break;
}
}
}
return 0;
}
void content(){
cout<<"==========================="<<endl;
cout<<"1.输入通讯录条目"<<endl;
cout<<"2.输出通讯录条目"<<endl;
cout<<"3.修改姓名"<<endl;
cout<<"4.修改电话"<<endl;
cout<<"5.修改地址"<<endl;
cout<<"6.增加条目"<<endl;
cout<<"7.删除条目"<<endl;
cout<<"8.查找信息"<<endl;
cout<<"0.退出"<<endl;
cout<<"============================"<<endl;
cout<<"请输入(0-8):";
}
void Input(commEntry& ce){
cout<<"Name:";
cin>>ce.name;
cout<<"Tle:";
cin>>ce.tel;
cout<<"Addr:";
cin>>ce.addr;
}
void print(commEntry ce){
cout<<"Name:"<<ce.name<<" Tel:"<<ce.tel<<" Addr:"<<ce.addr<<endl;
}
void Rename(commEntry& ce){
cout<<"New name:";
cin>>ce.name;
}
void Retel(commEntry& ce){
cout<<"New tel:";
cin>>ce.tel;
}
void Readdr(commEntry& ce){
cout<<"New addr:";
cin>>ce.addr;
}