求大神帮注释一下这个程序,拜托了

这是一个通讯录的程序链接:http://pan.baidu.com/s/1i39yyET密码:zxjw... 这是一个通讯录的程序
链接:http://pan.baidu.com/s/1i39yyET 密码:zxjw
展开
 我来答
无法无天
2015-07-09 · 知道合伙人软件行家
无法无天
知道合伙人软件行家
采纳数:658 获赞数:1756
网络工程师

向TA提问 私信TA
展开全部
// 通讯录.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <string>  
#include <iostream> 

using namespace std;

class Contact_person      /*定义Contact_person类*/
{  
    private:  
        int ID;//该联系人的数字编号    
        string name;   //姓名
string tel;    //手机号
string remark;//remark为备注  
    public: 
        void assign(int id,string n,string t,string r)
{  
            ID=id;  
            name=n;  
            tel=t;  
            remark=r;  
        }  
void print()  /*打印通信录信息的成员函数*/
{  
            cout<< "名字  :" << name << endl;  
            cout<< "电话  :" << tel << endl;  
            cout<< "备注  :" << remark << endl;  
        }
string getName()
{
return name;  //返回姓名
}
string getTel()
{
return tel;   //返回手机号
}
string getRemark()
{
return remark;  //返回备注
}
}; 

class System{            /*类*/
private:
Contact_person p[100];
int count;
public:
System();
void add();
void showAll();
void searchName();
void searchTel();
void Updata();
void Delete();
};

System::System()
{
for(int i=0;i<100;i++)
{
p[i].assign(0,"0","0","0");
}
count=0;
}

void System::add()
{
string name,tel,remark;  
cout << "请输入电话" << endl;  
    cin >> tel;
for(int i=0;i<count;i++)
{
if(p[i].getTel()==tel)
return;   //如果号码相同,就结束该函数
}
    cout << "请输入联系人姓名" << endl;  
    cin >> name;  

    cout << "请输入备注"<< endl;  
    cin >> remark;
p[count].assign(count,name,tel,remark);
count++;
}

void System::showAll()
{
for(int i=0;i<count;i++)
{
p[i].print();  //打印通讯录信息
}
}

void System::searchName()
{
string Name;
cout<<"请输入名字:";
cin>>Name;
for(int i=0;i<count;i++)
{
if(p[i].getName()==Name)
{
p[i].print();  /*打印通过姓名查找到的通讯录信息*/
}
}
}

void System::searchTel()
{
string Tel;
cout<<"请输入电话号码:";
cin>>Tel;
for(int i=0;i<count;i++)
{
if(p[i].getTel()==Tel)
{
p[i].print();  /*打印通过手机号找到的通讯录信息*/
}
}
}

void System::Updata()  /*更新通讯录信息*/
{
char UpdataOption;
string Name;
string Tel;
string Remark;
cout<<"请输入修改的名字:";
cin>>Name;
for(int i=0;i<count;i++)
{
if(p[i].getName()==Name)  //查找到要更新信息的成员
{
p[i].print();
cout<<"是否更改(Y/C/N)(YES/CANCEL/NEXT)";
cin>>UpdataOption;
if (UpdataOption == 'Y' || UpdataOption == 'y')  /*更新通讯录成员信息*/
{
bool Flags=true;
while(Flags)
{
int Option;
cout<<"1.修改姓名"<<endl
<<"2.修改电话号码"<<endl
<<"3.修改备注"<<endl
<<"4.全部修改"<<endl
<<"5.退出"<<endl;
cout<<"请输入修改指令:";
cin>>Option;
switch(Option)
{
case 1:
cout << "请输入联系人姓名" << endl;  
cin >> Name;
p[i].assign(i,Name,p[i].getTel(),p[i].getRemark());
break;
case 2:
cout << "请输入电话" << endl;  
cin>>Tel;
p[i].assign(i,p[i].getName(),Tel,p[i].getRemark());
break;
case 3:
cout << "请输入备注"<< endl;  
cin>>Remark;
p[i].assign(i,p[i].getName(),p[i].getTel(),Remark);
break;
case 4:
cout << "请输入联系人姓名" << endl;  
cin >> Name;
cout << "请输入电话" << endl;  
cin>>Tel;
cout << "请输入备注"<< endl;  
cin>>Remark;
p[i].assign(i,Name,Tel,Remark);
break;
case 5:
Flags=false;
break;
default:
break;
}
}
}
else if (UpdataOption == 'N' || UpdataOption == 'n')  /*不更新该成员信息,则进入下一次循环*/
{
continue;
}
else
{
return;  //输入其他直接结束该函数
}
}
}
}

void System::Delete()  /*通过手机号删除该成员信息*/
{
string Tel;
char DeleteOption;
cout<<"请输入电话号码:";
cin>>Tel;
for(int i=0;i<count;i++)
{
if(p[i].getTel()==Tel)
{
p[i].print();
cout<<"是否删除(Y/N):";
cin>>DeleteOption;
if(DeleteOption=='Y'||DeleteOption=='y')
{
for(int j=i;j<count;j++)
{
p[j].assign(j,p[j+1].getName(),p[j+1].getTel(),p[j+1].getRemark());
}
count--;
}
else
{
break;
}
}
}
}

int main(int argc, char* argv[])  /*main函数*/
{
int option;
System *s=new System();
while(1)
{
cout << "***********************************" << endl;     /*打印UI*/
        cout<<"1 . 新建联系人" << endl;  
        cout<<"2 . 查找联系人" << endl;
cout<<"3 . 更改联系人" << endl;
cout<<"4 . 显示联系人" << endl;
cout<<"5 . 删除联系人" << endl;
        cout<<"6 . 退出" << endl ;  
        cout<<"  请输入指令:" << endl;  
        cout<<"***********************************" << endl; 
cin>>option;
switch(option)  //选择相应功能
{
case 1:
s->add();
break;
case 2:
int SearchOption;
cout<<"1.按姓名找"<<endl;
cout<<"2.电话号码查找"<<endl;
cout<<"请输入指令"<<endl;
cin>>SearchOption;
switch(SearchOption)
{
case 1:
s->searchName();
break;
case 2:
s->searchTel();
break;
default:
break;
}
break;
case 3:
s->Updata();
break;
case 4:
s->showAll();
break;
case 5:
s->Delete();
break;
case 6:
return 0;
default:
break;
}
}
return 0;
}
更多追问追答
追问

可以在这几处注释一下吗

追答
p[i].assign(i, Name, p[i].getTel(), p[i].getRemark());  /*成员函数,将传递的参数拷贝到你定义的变量p[i]里*/
/*或者说,将你输入的信息赋值到变量p[i]里*/
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
捐你妹8
2015-07-09 · TA获得超过638个赞
知道小有建树答主
回答量:351
采纳率:0%
帮助的人:369万
展开全部
你特意提出的第一个地方是表示将第i个联系人的信息设置成输入的参数值。
第二个地方是表示要修改姓名,但其他的都不修改,所以只姓名部分是输入的参数,但其他参数是原来的。
第三个地方是删除的时候将后面的联系人信息向前移动了一格。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式