通讯录问题
来源:互联网 发布:淘宝如何开企业店铺 编辑:程序博客网 时间:2024/05/02 02:11
#include<iostream>
using namespace std;
#include<stdlib.h>
#include<string.h>
typedef struct LNode{
char name[20];
char telephone[11];
struct LNode *next;
}LNode, *LinkList;
//通讯录的创建
void CreateList_L(LinkList &L,int n)
{
//建立带头结点的单链线性表L.
LinkList q,p;
cout<<"******通讯录链表的建立******"<<endl;
L=(LinkList)malloc(sizeof(LNode));
q=L;
L->next=NULL; //先建立一个带头结点的单链表
for(int i=1;i<=n;i++)
{
cout<<"请输入第"<<i<<"个人的姓名和电话号码:"<<endl;
p=(LinkList)malloc(sizeof(LNode));//生成新结点
cin>>p->name;
cin>>p->telephone;
p->next=q->next;
q->next=p;
q=p
}
}//CreateList_L
//通讯者结点的插入
void ListInsert_L(LinkList &L)
{
LinkList p,s;
int i,j=0;
p=L;
s=(LinkList)malloc(sizeof(LNode));
s->next=NULL;
cout<<"请输入通讯者结点插入的位置:";
cin>>i;
cout<<"请输入该通讯者的姓名和电话号码:"<<endl;
cin>>s->name>>s->telephone;
while(p&&j<i-1)
{
p=p->next;
j++;
}
s->next=p->next;
p->next=s;
}
//通讯录的查询
void ListQuery_L(LinkList &L)
{
//在带头结点的单链线性表L中查询第i个位置的元素,即第i个人的姓名和电话号码
LinkList p;
p=L;
int i,j=0;
cout<<"***通讯者结点的查询***"<<endl;
cout<<"请输入要查询的位置i:";
cin>>i;
while(p&&j<i-1)
{
p=p->next;
++j;
}//寻找第i-1个结点
p=p->next;
cout<<"您要查询的人的姓名为:"<<p->name<<endl;
cout<<"您要查询的人的电话号码为:"<<p->telephone<<endl;
}//ListQuery_L
//通讯录的删除
void ListDelete_L(LinkList &L)
{
//在带头结点的单链线性表L中删除第i个位置的元素
LinkList q,p;
p=L;
int i,j=0;
cout<<"***通讯者结点的删除***"<<endl;
cout<<"请输入要删除结点的位置i:";
cin>>i;
while(p->next&&j<i-1) //寻找第i个结点,并令p指向其前趋
{
p=p->next;
++j;
}
q=p->next;
p->next=q->next;
free(q);
cout<<"删除成功"<<endl;
}//ListDelete_L
//通讯录的输出
void ListOutput_L(LinkList &L)
{
LinkList p;
int i=1;
p=L->next;
cout<<"**********通讯者的输出********"<<endl;
while(p)
{
cout<<"第"<<i<<"个人的姓名:"<<p->name<<endl;
cout<<"电话号码:"<<p->telephone<<endl;
i++;
p=p->next;
}
}
//通讯录的退出
void Esc(){
cout<<"****退出管理系统*****"<<endl;
cout<<"********欢迎下次再来********"<<endl;
}//Esc
//创建主控菜单程序
//1.通讯录链表的建立
//2.通讯者结点的插入
//3.通讯者结点的查询
//4.通讯者结点的删除
//5.通讯录链表的输出
//0.退出管理系统
void main()
{
int i=1,choose,n;
LinkList L;
cout<<"***********欢迎进入通讯录管理主菜单程序*********"<<endl;
cout<<"1.通讯录链表的建立"<<endl;
cout<<"2.通讯者结点的插入"<<endl;
cout<<"3.通讯者结点的查询"<<endl;
cout<<"4.通讯者结点的删除"<<endl;
cout<<"5.通讯录链表的输出"<<endl;
cout<<"0.退出管理系统"<<endl;
while(i)
{
cout<<"请选择功能菜单里的功能(0-5):";
cin>>choose;
switch(choose)
{
case 0:Esc();i=0;break;
case 1:cout<<"请输入您想输入元素的个数:";
cin>>n;
CreateList_L(L, n);break;
case 2:ListInsert_L(L);break;
case 3:ListQuery_L(L);break;
case 4:ListDelete_L( L);break;
case 5:ListOutput_L(L);break;
default:cout<<"您的输入范围不在0-5,请重新输入:"; break;
}
}
}
- 通讯录问题
- iOS 通讯录问题
- iOS获取通讯录问题
- OUTLOOK的通讯录导入问题
- iOS 9 通讯录崩溃问题
- Android6.0通讯录权限问题
- 通讯录
- 通讯录
- 通讯录
- 通讯录
- 通讯录
- 通讯录
- 通讯录
- 通讯录
- 通讯录
- 通讯录
- 通讯录
- 通讯录
- inline与宏的区别
- 电容知识及其储能延时方法
- 八皇后问题
- 有关GridView(VSTS08)中bind DropDownlist
- 系统边界划分—触发条件”、“数据流分析”测试对象分析模式
- 通讯录问题
- 开始工作了
- Web Service Composition Current Solutions and Open Problems阅读摘要
- HP大中华区总裁孙振耀撰文谈职业和人生
- 形参中的数组传递的是数组的首地址
- Linux开机启动过程分析
- 北京影响力网球教练
- An Integrated QoS, Security and Mobility Framework for Delivering Ubiquitous Services Across All IP-based Networks-泛读摘要
- Vector || ArrayList 如何选择