主要实现模拟一个通信录的操作,通过命令删除通讯录、添加通讯录和查找某个人的电话号码。
原理很简单,就是单链表的删除、插入和查找的实现。
需要注意的是,输入的处理。要获取一行带有空格的字符串并将其赋值给一个string类变量,需先定义一个 char temp[1000] 数组,然后gets(temp),然后 string str = temp;
下面是代码:
#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
class record{//记录类
public:
string Name;
int phoneNum;
};
record phonebook[1000]={"",-1};//通讯录数组
class order{//命令类
public:
string opt;//命令操作符
string name;//命令参数1
int num;//命令参数2
public:
bool CheckOrder();//检查命令是否合法,合法返回真,不合法返回假
};
bool order::CheckOrder()
{
if(opt == "ClearContactBook"&&name==""&&num==-1)
return true;
else if(opt == "AddCard"&&name!=""&&num!=-1)
return true;
else if(opt == "SearchCard"&&name!=""&&num==-1)
return true;
else return false;
}
order input;//定义存储命令的对象
int ClearBook()
{
for(int i=0;(phonebook[i].Name)!="";i++)
{
phonebook[i].Name="";
phoneb