您的位置:首页 > 编程语言 > C语言/C++

用c语言实现的简单通讯录

2018-01-25 16:51 274 查看
需求制作一个电子通讯录,通过该通讯录能存入好友ID 号、姓名(英文)、手机号码、家庭住址、公司电话。模块主界面:主要显示软件功能。A)添加好友信息。B)列表好友信息。(包含排序功能)C)搜索好友D)删除好友添加好友:用户输入 INSERT 命令后,让用户输入好友信息。添加成功或失败都需要提示用户列表好友:用户输入 DISPLAY 命令后,好友信息升序排列。搜索好友:用户输入 SEARCH 命令后,让用户输入将要搜索好友姓名查询。如果未搜索到请友好提示。如果搜索到,显示出该好友信息。删除好友:用户输入 DELETE 命令后,让用户输入将要删除好友姓名删除,如果存在同名的多个好友,则列表出,所有同名的好友信息,让用户通过输入 ID 号删除。提示用户删除成功。用c语言实现简单通讯录的一些常用功能1.添加好友2.列出好友(排序)3.搜索好友4.删除好友
#ifndef __INFORMATION_H__
#define __INFORMATION_H__

#define FALSE -1
#define TRUE  0
#define N   20

typedef struct _Adress
{
int ID;                 //好友ID
char Name
;           //姓名(英文)
char Phone_Num
;     //手机号
char Home_Address
;   //家庭住址
char Company_Tell
;   //公司电话
struct _Adress *next;
}NODE;

typedef NODE * PNode;

//菜单界面
void Menu();

//创建一个链表
PNode create_list();

//添加好友信息( 尾插法插入好友信息)
int Add_Friend(PNode h);

//列出好友(升序排列)
int Friend_Information(PNode h);

//通过输入好友姓名搜索并显示该好友的信息
int Search_Friend(PNode h ,char *name);

//删除好友
int Delete_Friend(PNode h ,char *name);

#endif
#include "information.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
PNode create_list(){PNode list = (NODE *)malloc(sizeof(NODE)/sizeof(char));if(list == NULL)return NULL;
list->next = NULL;

return list;
}void Menu(){system(“clear”);printf(“\t**********************************************\n”);printf(“\t~ 欢迎使用通讯 ~\n”);printf(“\t~ ~\n”);printf(“\t~ 1>>>>>添加好友 ~\n”);printf(“\t~ 2>>>>>列出好友 ~\n”);printf(“\t~ 3>>>>>搜索好友 ~\n”);printf(“\t~ 4>>>>>删除好友 ~\n”);printf(“\t~ 5>>>>>退出 ~\n”);printf(“\t~ ~\n”);printf(“\t~ ~\n”);printf(“\t**********************************************\n”);printf(“\t~ ~\n”);printf(“\t~ ~\n”);printf(“\t提示:请输入对应数字选择相应功能 \n”);}//尾插法插入好友信息int Add_Friend(PNode h){if(h == NULL)return FALSE;
PNode p = (PNode)malloc(sizeof(NODE)/sizeof(char));
if(p == NULL)
return FALSE;
p->next = NULL;

system("clear");
printf("\t*********添加好友信息*********\n");

printf("\t您的好友的ID:");
scanf("%d",&p->ID);
printf("\n");

printf("\t您的好友的姓名:");
scanf("%s",p->Name);
printf("\n");

printf("\t您的好友的手机号:");
scanf("%s",p->Phone_Num);
printf("\n");

printf("\t您的好友的家庭住址:");
scanf("%s",p->Home_Address);
printf("\n");

printf("\t您的好友的公司电话:");
scanf("%s",p->Company_Tell);
printf("\n");

PNode tmp = h;
while(tmp->next)
{
tmp = tmp->next;
}
tmp->next = p;

return TRUE;
}//列出好友int Friend_Information(PNode h){int count = 0;int tmp;int i,j;
PNode p = h->next;
printf("***************好友信息****************\n");

if(p == NULL)
{
printf("没有好友。\n");
}

while(p)
{
count++;
p = p->next;
}

p = h->next;
for(i = 0; i < count - 1; i++)
{
for(j = 0; j < count - i - 1; j++)
{
if(p->ID > p->next->ID)
{
tmp = p->ID;
p->ID = p->next->ID;
p->next->ID = tmp;
}
p = p->next;
}
p = h->next;
}

p = h->next;
while(p)
{
printf("****************************************\n");
printf("ID:%d\n 姓名:%s\n 手机号:%s\n 家庭住址:%s\n 公司电话:%s\n",p->ID,p->Name,p->Phone_Num,p->Home_Address,p->Company_Tell);
printf("****************************************\n");
p = p->next;
}

printf("\n");
return TRUE;
}//搜索好友int Search_Friend(PNode h,char *name){
PNode p = h;
PNode q = NULL;
int  flag = 0;

if((p != NULL)&&(p->next != NULL))
{
while(p->next)
{
q = p->next;
if((strcmp(q->Name,name) == 0)&&(q != NULL))
{
flag = 1;
printf("****************************************\n");
printf("该好友信息:\n ID:%d\n 姓名:%s\n 手机号:%s\n 家庭住址:%s\n 公司电话:%s\n",q->ID,q->Name,q->Phone_Num,q->Home_Address,q->Company_Tell);
printf("****************************************\n");
}
p = p->next;
}

}
if(flag != 1)
{
printf("没有该好友的信息\n");
}
return TRUE;
}//删除好友int Delete_Friend(PNode h, char *name){int count = 0;PNode p = h;PNode q = NULL;
printf("***************删除好友****************\n");
while(p->next)     //遍历所有结点
{
q = p->next;
if(strcmp(q->Name, name) == 0)
{
count++;
}
p = p->next;
}
printf("一共有%d个相同名字的信息 \n",count);
p = h;
if(count > 1)
{
Search_Friend(h, name);
//p = h;
int num;
printf("请输入你要删除的ID :  ");
scanf("%d",&num);

while((p != NULL)&&(p->next != NULL))
{
q = p->next;
if(q->ID == num)
{
p->next = q->next;
free(q);
printf("删除成功\n");
}
p = p->next;
}
}

if(count == 1)
{
while((p != NULL)&&(p->next != NULL))
{
q = p->next;
if(strcmp(q->Name, name) == 0)
{
p->next = q->next;
free(q);
printf("删除成功\n");
}
p = p->next;
}
}

if(count == 0)
{
printf("删除失败,没有该好友的信息\n");
}
return TRUE;
}
#include<stdio.h>#include"information.h"
int main(){int num;int num1;char name;PNode head = create_list();int j;while(1){Menu();scanf(“%d”,&num);
   switch(num){case 1:              //添加好友{Add_Friend(head);printf("\n");//for(j = 0;j < 3; j++)//{//  sleep(1);//  printf(".");//  fflush(stdout);//}printf("添加成功\n");printf("返回主界面请输入 1 :");scanf("%d",&num1);if(num1 == 1){break;}else{printf("输入有误,请重新输入。\n");scanf("%d",&num1);break;}break;}case 2:                      //列出好友{system("clear");Friend_Information(hea6bfad);printf("返回主界面请输入 1:");scanf("%d",&num1);if(num1 == 1){break;}else{printf("输入有误,请重新输入。\n");scanf("%d",&num1);break;}num = 0;break;}case 3:                       //查询好友{system("clear");printf("请输入你要查询好友的姓名:");scanf("%s",name);Search_Friend(head, name);printf("返回主界面请输入 1:");scanf("%d",&num1);if(num1 == 1){break;}else{printf("输入有误,请重新输入。\n");scanf("%d",&num1);break;}num = 0;break;}case 4:                           //删除好友{system("clear");printf("请输入你要删除好友的姓名:");scanf("%s",name);Delete_Friend(head, name);printf("返回主界面请输入 1:");scanf("%d",&num1);if(num1 == 1){break;}else{printf("输入有误,请重新输入。\n");scanf("%d",&num1);break;}num = 0;break;}case 5:                        //退出{system ("clear");return TRUE;}default:{system("clear");printf("输入有误!\n");printf("返回主界面请输入 1:");scanf("%d",&num1);if(num1 == 1){break;}else{printf("输入有误,请重新输入。\n");scanf("%d",&num1);break;}num = 0;break;}}}
}“`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 通讯录