用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语言使用结构体实现简单通讯录
- C语言 使用结构体实现简单的通讯录
- C语言实现的简单通讯录例子
- C语言实现简单通讯录
- 用C语言实现简单通讯录
- 【c语言】通讯录的简单实现文件版本(动态开辟内存)
- C语言 实现的简单手机通讯录系统
- C语言模拟通讯录系统的简单实现
- C语言实现的简单通讯录例子
- C语言————实现简单通讯录
- C语言实现的简单通讯录例子 - 乌鸟heart - 博客园
- C语言实现简单通讯录
- C语言实现简单的通讯录
- C语言实现简单的通讯录
- 【C语言】实现一个简单的通讯录
- 线程池技术个人理解以及c语言的简单实现
- C语言——简易的静态通讯录实现
- C语言简单实现扫雷
- 数据结构C语言之线性表简单实现
- C语言插入数字简单实现