数据结构 链表 通讯录

#include "stdafx.h"
#include "windows.h"
#include "iostream"

using namespace std;

typedef struct Pnode
{
	char Pname[21];
	char Pphone[12];
	char Psex[5];
	char Padd[21];
	Pnode *pNext;
}node,*Node;

int main(int argc,char *argv)
{
	void Init_(Node S);
	void Delete_(Node S);
	void EnList_(Node S);
	void OutList_(Node S);
	void InsertList_(Node S);

	int e;
	Node S=(Node)malloc(sizeof(node));

	MessageBox(NULL,TEXT("1:Input   2:Reading   3:Delete  4:Insert  5:Help"),
	TEXT("Prompt"),MB_OK|MB_ICONQUESTION);

	Init_(S);
	scanf("%d",&e);

	while(1)
	{
		if(e==1)
		{
			EnList_(S);scanf("%d",&e);system("cls");
		}
		else if(e==2)
		{
			OutList_(S);scanf("%d",&e);system("cls");
		}
		else if(e==3)
		{
			Delete_(S);scanf("%d",&e);system("cls");
		}
		else if(e==4)
		{
			InsertList_(S);scanf("%d",&e);system("cls");
		}
		else if(e==5)
		{
			MessageBox(NULL,TEXT("1:Input   2:Reading   3:Delete  4:Insert  5:Help"),
			TEXT("Prompt"),MB_OK|MB_ICONQUESTION);
			scanf("%d",&e);system("cls");
		}
	}
	return 0;
}

void Init_(Node S)
{
	S->pNext=NULL;
}

void EnList_(Node S)
{
	char c;
	Node q=S;
	while(1)
	{
		Node p=(Node)malloc(sizeof(node));
		puts("Name:");
		scanf("%s",&p->Pname);
		puts("Phone:");
		scanf("%s",&p->Pphone);
		puts("Sex:");
		scanf("%s",&p->Psex);
		puts("Address:");
		scanf("%s",&p->Padd);
		p->pNext=NULL;
		p->pNext=q->pNext;
		q->pNext=p;
		puts("Next?(Y/N):");
		getchar();
		c=getchar();

		if(c=='y')system("cls");
		else
		{
			system("cls");
			break;
		}
	}
}

void OutList_(Node S)
{
	Node p=S->pNext;
	puts("Name  Phone  Sex  Address");

	while(p)
	{
		printf("%s    %s   %s   %s\n",p->Pname,p->Pphone,p->Psex,p->Padd);
		p=p->pNext;
	}
}

void InsertList_(Node S)
{
	Node p=S;
	Node q=(Node)malloc(sizeof(node));

	puts("You want insert information");
	puts("Name:");
	scanf("%s",&q->Pname);
	puts("Phone:");
	scanf("%s",&q->Pphone);
	puts("Sex:");
	scanf("%s",&q->Psex);
	puts("Address:");
	scanf("%s",&q->Padd);
	q->pNext=NULL;

	while(p->pNext)
		p=p->pNext;
	q->pNext=p->pNext;
	p->pNext=q;
	MessageBox(NULL,TEXT("Success!"),TEXT("Debug"),MB_OK|MB_ICONASTERISK);
}

void Delete_(Node S)
{
	char ch[12];
	Node p=S;
	Node q;
	puts("You want delete name:");
	getchar();
	gets(ch);

	while(p->pNext)
	{
		if(strcmp(p->pNext->Pname,ch)==0)
		{
			q=p->pNext;
			p->pNext=q->pNext;
			MessageBox(NULL,TEXT("Success!"),TEXT("Debug"),MB_OK|MB_ICONASTERISK);
			break;
		}
		p=p->pNext;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值