源码
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <windows.h>
#include <cstdlib>
using namespace std;
int n=0; //定义全局变量 存储电话联系人个数
struct phone_info //定义结构体 存储联系人信息
{
char name[20]; //姓名
char phone[20]; //电话
char type; //分类
char email[20]; //邮箱
struct phone_info *next; //指向下一个节点的指针
};
/*-----错误函数-----*/
//所需参数:无
//函数功能:显示错误信息
//返回参数:无
void error()
{
printf("代码错误\n\n");
system( "pause ");
}
/*-----输出函数-----*/
//所需参数:链表头指针
//函数功能:输出链表中的联系人信息
//返回参数:无
void output(struct phone_info *head)
{
struct phone_info *p1=head,*p2;
system("cls"); //清屏
if(head==NULL) //如果当前链表头指针为空
{
printf("当前没有任何联系人信息\n\n");
system( "pause ");
return; //返回
}
printf("电话联系薄(共%d条信息)\n\n",n);
for(;;)
{
p2=p1->next;
printf("姓名:%s\n",p1->name);
printf("电话:%s\n",p1->phone);
if(p1->type=='A'||p1->type=='a')
printf("类别:办公类\n");
else if(p1->type=='B'||p1->type=='b')
printf("类别:个人类\n");
else
printf("类别:商务类\n");
printf("邮箱:%s\n",p1->email);
printf("\n");
if(p1->next==NULL) //如果当前指针所指向的结构体中next指向空则链表输出完毕
break; //返回
p1=p2;
}
}
/*-----新增函数-----*/
//所需参数:链表头指针
//函数功能:新增联系人信息 并自动添加到链表末尾
//返回参数:链表头指针
struct phone_info *new_info(struct phon