
通讯录信息系统的管理
知识方面需要熟练掌握链表相关的算法知识即可完成相关系统
了解更多数据结构实验报告方面的内容
点击链接有惊喜在等你哦
#include
#include
#include
#include
typedef struct { //通讯录结点类型
char num[5]; //编号
char name[9]; //姓名
char sex[3]; //性别
char phone[13]; //电话
char addr[31]; //地址
} DataType;
typedef struct node { //结点类型定义
DataType data; //结点数据域(注意存放的是上面结构体的数据类型)
struct node *next; //结点指针域
} ListNode,*LinkList;
LinkList head;//头指针
ListNode *p;//用作更新新的节点使用
//函数说明
int menu_select();
LinkList CreateList();//通讯录链表的建立
void InsertNode(LinkList head,ListNode *p);//插入
ListNode *ListFind(LinkList head);//查询联系人
void DelNode(LinkList head);//删除节点
void PrintList(LinkList head);//输出所有联系人
int main()
{
printf("******************************\n");
printf("** 欢迎使用通讯录 **\n");
printf("**--------------------------**\n");
printf("** **\n");
printf("** 0. 创建通讯录 **\n");
printf("** 1. 添加联系人信息 **\n");
printf("** 2. 查询联系人信息 **\n");
printf("** 3. 删除联系人信息 **\n");
printf("** 4. 输出联系人信息 **\n");
printf("** 5. 退出 **\n");
printf("** **\n");
printf("******************************\n");
int m=menu_select();
head=(LinkList)malloc(sizeof(ListNode));
while(m!=5) {
if(m==0){
head=CreateList();
printf("创建成功\n");
}
if(m==1){
InsertNode(head, p);
}
if(m==2){
LinkList s=(LinkList)malloc(sizeof(ListNode));
printf("请输入联系人姓名:");
s=ListFind(head);
if(s){
printf("联系人的基本信息:%s %s %s %s %s\n",s->data.num,s->data.name,s->data.sex,s->data.phone,s->data.addr);
}
else{
printf("Not Found\n");
}
}
if(m==3){
DelNode(head);
}
if(m==4){
PrintList(head);
}
m=menu_select();
}
printf("退出管理系统\n");
return 0;
}
int menu_select()
{
int n;
scanf("%d",&n);
return n;
}
LinkList CreateList()
{
LinkList L=(LinkList)malloc(sizeof(ListNode));
L->next=NULL;
return L;
}
void InsertNode(LinkList head,ListNode *p)
{
p=(LinkList)malloc(sizeof(ListNode));
while(head->next!=NULL)
{
head=head->next;
}
printf("请输入联系人的基本信息:");
scanf("%s%s%s%s%s",p->data.num,p->data.name,p->data.sex,p->data.phone,p->data.addr);
p->next=head->next;
head->next=p;
}
ListNode *ListFind(LinkList head)
{
char Name[10];
scanf("%s",Name);
while(head->next)
{
head=head->next;
if(strcmp(head->data.name,Name)==0)
return head;
}
return NULL;
}
void DelNode(LinkList head)
{
char Name[10];
printf("请输入要删除的联系人姓名:");
scanf("%s",Name);
while(head->next)
{
if(strcmp(head->next->data.name,Name)==0){
head->next=head->next->next;
break;
}
head=head->next;
}
}
void PrintList(LinkList head)
{
while(head->next){
head=head->next;
printf("联系人的基本信息:%s %s %s %s %s\n",head->data.num,head->data.name,head->data.sex,head->data.phone,head->data.addr);
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)