通讯录管理系统
来源:互联网 发布:linux 进程管理 编辑:程序博客网 时间:2024/05/20 21:22
#include "stdio.h"#include "string.h"#include "stdlib.h"typedef struct DATE{ char name[20]; char address[40]; char email_num[20]; char telephone_num[20]; struct DATE* pNext; } Date,*Pdate;void space(void);void init_printf(void);int main(void){ int get; Pdate phead; int flag=0; Pdate init_list(void); void show_booklist(Pdate ); void append_people(Pdate ); void delete_for_name(Pdate ); void delete_for_num(Pdate ); void delete_people(Pdate ); void found_for_name(Pdate ); printf("\t\t\t\t欢迎来到XXX通讯录\n"); init_printf(); while(scanf("%d",&get)==1){ if(get!=5&&flag==0){ if(get==6){ printf("拜拜!\n");exit(-2); }else{ printf("你输入的序号貌似哪里不对的样子~~~\n"); printf("请重新输入:\n"); } } else{ flag=1; switch(get){ case 1:show_booklist(phead);break; case 2:append_people(phead);break; case 3:delete_people(phead);break; case 4:found_for_name(phead);break; case 5:phead=init_list();break; } } }; return 0;}Pdate init_list(void){ //初始化整个工作薄 Pdate pTail; int i,len; Pdate phead=(Pdate)malloc(sizeof(Date)); if(phead==NULL){ printf("\t额,这是一个不应该出现的错误,你换台电脑吧~~~~\n"); exit(-1); } pTail=phead; pTail->pNext=NULL; printf("正在初始化整个电话薄\n"); printf("请输入你要创建的电话薄最大存储容量(PS:最多存放多少人的信息):\n"); scanf("%d",&len); space(); if(len>100){ printf("您的野心也忒大了点吧~~~写个小点的数吧~~~\n"); } else if(len<0){ printf("亲!!!您见过有负数数量的人类吗??我怀疑您是喵星球来的~~~\n"); } else{ printf("你将会创建一个存放有%d个人的电话薄\n",len); for(i=0;i<len;i++){ Pdate pNew=(Pdate)malloc(sizeof(Date)); if(pNew==NULL){ printf("额,这是一个不应该出现的错误,你换台电脑吧~~~~\n"); exit(-1); } printf("这是第%d个联系人",i+1); printf("请输入联系人的名字:"); scanf("%s",pNew->name); space(); printf("请输入联系人的地址:"); scanf("%s",pNew->address); space(); printf("请输入联系人的邮箱:"); scanf("%s",pNew->email_num); space(); printf("请输入联系人的电话号码:"); scanf("%s",pNew->telephone_num); space(); pNew->pNext=pTail->pNext; pTail->pNext=pNew; pTail=pNew; } printf("通讯录初始化完毕!\n"); init_printf(); } return phead;}void show_booklist(Pdate phead){ //显示通讯录姓名 Pdate p=phead->pNext; if(p==NULL){ printf("//////////////////////////////\n"); printf("没有任何记录.\n"); printf("//////////////////////////////\n"); }else{ printf("//////////////////////////////\n"); printf("\t姓名 \t地址 \t\t邮箱 \t\t电话\n"); while(p!=NULL){ printf("%10s\t%15s\t%15s\t%15s\n",p->name,p->address,p->email_num,p->telephone_num); p=p->pNext; } printf("//////////////////////////////\n"); } init_printf();}void append_people(Pdate phead){ //向后追加一个 Pdate pNew=(Pdate)malloc(sizeof(Date)); Pdate pTemp=phead; int i=0; while(pTemp->pNext!=NULL){ i++; pTemp=pTemp->pNext; } if(pNew==NULL){ printf("额,这是一个不应该出现的错误,你换台电脑吧~~~~\n"); exit(-1); } printf("这是第%d个联系人\n",i+1); printf("请输入新建联系人的名字:"); scanf("%s",pNew->name); space(); printf("请输入新建联系人的地址:"); scanf("%s",pNew->address); space(); printf("请输入新建联系人的邮箱:"); scanf("%s",pNew->email_num); space(); printf("请输入新建联系人的电话号码:"); scanf("%s",pNew->telephone_num); space(); pTemp->pNext=pNew; pNew->pNext=NULL; init_printf(); }void delete_people(Pdate phead){ //删除一个 int i; void delete_for_name(Pdate phead); void delete_for_num(Pdate phead); printf("你可以通过两种方式来删除联系人信息\n"); printf("1.通过联系人姓名 \t2.通过联系人电话号码\n"); printf("请输入你选择的方式:"); scanf("%d",&i); switch(i){ case 1:delete_for_name(phead);break; case 2:delete_for_num(phead);break; } init_printf();}void delete_for_name(Pdate phead){ //按姓名删除 Pdate pbefore=phead->pNext,pTemp=phead->pNext; Pdate pafter; char name[20]; if(phead->pNext==NULL){ printf("数据为空,不能执行删除命令!\n"); }else{ printf("请输入你要删除的姓名:"); scanf("%s",name); while(pTemp!=NULL&&strcmp(pTemp->name,name)!=0){ pTemp=pTemp->pNext; } if(pTemp==NULL){ printf("你要删除的人不存在!\n"); }else{ pafter=pTemp->pNext; if(pTemp==phead->pNext){ phead->pNext=pafter; }else{ while(pbefore->pNext!=pTemp){ pbefore=pbefore->pNext; } pbefore->pNext=pafter; } free(pTemp); } }}void delete_for_num(Pdate phead){ //按姓名删除 Pdate pbefore=phead->pNext,pTemp=phead->pNext; Pdate pafter; char name[20]; if(phead->pNext==NULL){ printf("数据为空,不能执行删除命令!\n"); }else{ printf("请输入你要删除的号码:"); scanf("%s",name); while(pTemp!=NULL&&strcmp(pTemp->telephone_num,name)!=0){ pTemp=pTemp->pNext; } if(pTemp==NULL){ printf("你要删除的人不存在!\n"); }else{ pafter=pTemp->pNext; if(pTemp==phead->pNext){ phead->pNext=pafter; }else{ while(pbefore->pNext!=pTemp){ pbefore=pbefore->pNext; } pbefore->pNext=pafter; } free(pTemp); } }}void space(void){ //去除输入之后的回车 while(getchar()!='\n') { continue; }}void init_printf(void){ //显示主目录 printf("请选择你需要的操作\n"); printf("1.查看通讯录中的信息\t\t\t2.新建联系人并添加\n"); printf("3.删除指定联系人\t\t\t4.查询指定联系人\n"); printf("5.初始化整个通讯录\t\t\t6.离开我~~~\n"); printf("你必须首先初始化整个通讯录,否则通讯录不能正常工作\n");}void found_for_name(Pdate phead){ char name[20]; Pdate temp=phead->pNext; printf("请输入查找的姓名:"); scanf("%s",name); while(temp!=NULL&&strcmp(temp->name,name)!=0){ temp=temp->pNext; } if(temp==NULL){ printf("////////////////////////////////////\n"); printf("木有这条记录\n"); } else{ printf("\t姓名 \t地址 \t\t邮箱 \t\t电话\n"); printf("%10s\t%15s\t%15s\t%15s\n",temp->name,temp->address,temp->email_num,temp->telephone_num); } init_printf();}
0 0
- 通讯录管理系统(原创)
- 通讯录管理系统
- 学生通讯录管理系统
- 通讯录管理系统
- 通讯录管理系统
- 通讯录管理系统
- 通讯录管理系统
- 《通讯录管理系统》
- 通讯录管理系统
- 通讯录管理系统设计
- 个人通讯录管理系统
- 【课程设计-通讯录管理系统】
- 通讯录个人管理系统
- python通讯录管理系统
- 通讯录管理系统(C语言版)
- 通讯录管理系统的下载
- 通讯录管理系统需求分析
- C语言通讯录管理系统
- 推荐算法概述
- vim寄存器
- 制式对照表NTSC制式和PAL制式下,QCIF,CIF,Half D1,D1的分辨率列表。
- 深入推荐引擎相关算法 – 协同过滤
- 探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探
- 通讯录管理系统
- leetcode第一刷_Populating Next Right Pointers in Each Node
- poj2421 MST(prim+临接表)
- Android Camera 使用小结
- JS获取屏幕大小---个人认为很有用,因此转载收藏之
- 用DirectSound在窗口中播放声音,可当窗口失去焦点后却不播放的解决办法
- 探索推荐引擎内部的秘密,第 3 部分: 深入推荐引擎相关算法 – 聚类
- c++模板元编程2
- 微信公平台的开发之初