用C语言编写朋友通讯录软件

题目要求:编写朋友通讯录软件,实现添加、查找、删除、显示所有记录的功能。每条个人信息记录包括:姓名、性别、手机号、电子邮件、生日、爱好等。可根据实际通讯录情况编辑以上个人信息。
具体要求:
朋友通讯录信息存放在一个文件中(.txt),当进行添加、删除操作时,对应文件中的信息也发生相应的变化。

功能实现

#include<stdio.h>
#include<string.h>
#include<Windows.h>
typedef struct tongxunlu
{char name[30];char sex[20];char number[30];char email[30];char shengri[30];char hobby[30];struct tongxunlu *next;
}tong;
void ListInsert(tong *L, tong *p)//节点
{tong *q = L;p->next = NULL;while (q->next != NULL){q = q->next;}q->next = p;
}void ADD(tong *p)//添加
{struct tongxunlu *q, *n = p;struct tongxunlu *h = p->next;int flag = 0;system("cls");q = (struct tongxunlu*)malloc(sizeof(struct tongxunlu));q->next = NULL;printf("\t请输入你添加的用户的姓名,性别,电话,电子邮件,生日及爱好:\n");scanf("%s %s %s %s %s %s", q->name, q->sex, q->number, q->email, q->shengri, q->hobby);getchar();while (h != NULL){if (strcmp(h->number, q->number) == 0){flag = 1;printf("\t该账号已存在\n");Sleep(1000);ADD(p);break;}h = h->next;}while (n->next != NULL){n = n->next;}n->next = q;if (flag == 0){printf("\t添加成功\n");printf("\t 姓名,性别,电话,电子邮件,生日及爱好\n");printf("\t%s %s %s %s %s %s\n", q->name, q->sex, q->number, q->email, q->shengri, q->hobby);printf("\t按回车键返回菜单\n");}elseprintf("\t添加失败\n");getchar();menu(p);
}
void Dele(tong *p)//删除
{struct tongxunlu *q = p->next;struct tongxunlu *n = p;char num[20];int flag = 0;system("cls");printf("\t请输入你要删除的电话号码:");scanf("%s", num);while (q != NULL){if (strcmp(q->number, num) == 0){flag = 1;n->next = q->next;free(q);break;}n = q;q = q->next;}if (flag != 1){printf("\t无该用户信息\n");}else{printf("\t删除成功\n");}menu(p);
}
void chaxun(tong *p)//查找好友
{struct tongxunlu *n = p->next;char name[20];int flag = 0;system("cls");printf("\t欢迎进入联系人查询界面\n");printf("\t请输入客户名称:\n");scanf("%s", name);while (n != NULL){if (strcmp(n->name, name) == 0){flag = 1;printf("\t\t\t该用户信息:\t\n");printf("姓名  性别 电话号码  电子邮件  生日  爱好\n");printf("%s %s %s %s %s %s", n->name, n->sex, n->number, n->email, n->shengri, n->hobby);}n = n->next;}if (flag == 0){printf("\t无该用户信息\n");}menu(p);
}
void savetongxunluFile(tong *p)//文件保存
{FILE *fp;tong *q = p->next;if ((fp = fopen("tongxunlu.txt", "w")) == NULL){printf("不能打开此文件,请按回车键退出\n");exit(0);}while (p){fprintf(fp, "%s %s %s %s %s %s \n", p->name, p->sex, p->number, p->email, p->shengri, p->hobby);p = p->next;}fclose(fp);
}
void readtongxunluput(tong *p)//链表读取
{FILE *fp;tong *n;char name[30];char sex[20];char number[30];char email[30];char shengri[30];char hobby[30];fp = fopen("tongxunlu.txt", "r");if (fp == NULL){fp = fopen("tongxunlu.txt", "w+");}else{while (!feof(fp)){fscanf(fp, "%s %s %s %s %s %s \n", name, sex, number, email, shengri, hobby);n = (tong*)malloc(sizeof(tong));strcpy(n->name, name);strcpy(n->sex, sex);strcpy(n->number, number);strcpy(n->email, email);strcpy(n->shengri, shengri);strcpy(n->hobby, hobby);ListInsert(p, n);//插入新节点 }}fclose(fp);
}
void denglu(tong *p)//机主登陆
{char b[20], c[20];system("cls");printf("\t欢迎登录通讯录系统\n");printf("请输入账号和密码:\n");printf("\t账号:");scanf("%s", b);if (strcmp(b, "zcy123") != 0){printf("输入账号错误。");Sleep(1000);menu(p);}else{printf("\t密码:");scanf("%s", c);if (strcmp(c, "123456") != 0){printf("输入密码错误!");Sleep(1000);menu(p);}else{system("cls");menu(p);}}
}
void dayin(tong *p)//打印所有好友信息
{struct tongxunlu *n = p->next;system("cls");if (n == NULL){printf("\t暂无信息打印\n");}else{while (n != NULL){printf("姓名  性别 电话号码  电子邮件  生日  爱好\n");printf("%s %s %s %s %s %s\n", n->name, n->sex, n->number, n->email, n->shengri, n->hobby);n = n->next;}}menu(p);
}int menu(struct tongxunlu *p)//主菜单
{int z;printf("\t欢迎登录系统管理员界面\n");printf("\t 1.添加用户\n");printf("\t 2.删除用户\n");printf("\t 3.查找用户信息\n");printf("\t 4.显示所有记录信息\n");printf("\t 5.退出\n");scanf("%d", &z);switch (z){case 1:ADD(p); break;case 2:Dele(p); break;case 3:chaxun(p); break;case 4:dayin(p); break;case 5:savetongxunluFile(p); exit(0);default:printf("\t输入不合法\n");}
}
int main()
{struct tongxunlu *p;p = (struct tongxunlu*)malloc(sizeof(struct tongxunlu));p->next = NULL;readtongxunluput(p);denglu(p);system("pause");return 0;
}

代码可能还存在一些小瑕疵,希望能和大家一起交流。第一次写博客,多多支持。

简单的朋友通讯录软件相关推荐

  1. 一键清空朋友圈软件_微信清理朋友圈app下载-微信清理朋友圈下载v1.8.0 安卓版-西西软件下载...

    微信清理朋友圈app一款强大的微信清理工具,当你想要重置自己的微信号并删除所有的内容之时,又觉得一条条删太麻烦了,就可以用到这款神器工具,可以帮助你一键删除掉朋友圈内的所有内容,帮助你轻松的重置微信号 ...

  2. 会声会影2022试用版 智能、快速、简单的视频剪辑软件

    会声会影2022-智能.快速.简单的视频剪辑软件,会声会影的灵活性和易用性成就与众不同的视频剪辑体验, 备受高级用户和入门级用户的青睐. 会声会影让您享受丰富的视频剪辑功能,帮助您轻松创建您想要的影片 ...

  3. 用c语言设计通讯录软件下载,C语言编写的通讯录.doc

    C语言编写的通讯录.doc 1目 录一. 训练项目 2二. 训练目的 2三. 设计分析 2四. 设计方案 2五.实训 详细设计 3六. 使用说明 4七. 运行调试 4八. 训练心得 4九. 参考文献 ...

  4. Linux杂志排版软件,推荐!三款适合Linux电脑的简单好用流程图软件

    原标题:推荐!三款适合Linux电脑的简单好用流程图软件 在平常工作流程上,文字记录与图像思考,就像双剑合一,有举重若轻,事半功倍之效.因此,这篇文章为你整理几款我觉得好用的图表工具流程图,推荐给需要 ...

  5. 中小企业用户如何选择简单进销存软件?

    2019独角兽企业重金招聘Python工程师标准>>> 中小企业用户如何选择简单进销存软件? 中小企业应该怎样评估选择进销存软件的性价比,下面将简单的谈一谈自己的看法: 第一, 价格 ...

  6. Qt实现一个简单的编译器(软件生成器)

    Qt实现一个简单的编译器(软件生成器) 本文章只记录如何用Qt实现一个简单编译器,即点击本软件中的按钮便可在另一目录中生成一个新的软件(与本软件不冲突). 文章目录 Qt实现一个简单的编译器(软件生成 ...

  7. 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个扁平化风格css螃蟹图形~~适合初学者~超简单~ |前端开发|IT软件

    b站视频演示效果: [web前端特效源码]使用HTML5+CSS3+JavaScript制作一个扁平化风格css螃蟹图形~~适合初学者~超简单~ |前端开发|IT软件 效果图: 完整代码: <! ...

  8. 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个电风扇动画效果~适合初学者~超简单~ |前端开发|IT软件

    b站视频演示效果: [web前端特效源码]使用HTML5+CSS3+JavaScript制作一个电风扇动画效果~适合初学者~超简单~ |前端开发|IT软件 效果图: 完整代码: <!DOCTYP ...

  9. 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个影子~~适合初学者~超简单~ |前端开发|IT软件

    b站视频演示效果: [web前端特效源码]使用HTML5+CSS3+JavaScript制作一个影子特效~~适合初学者~超简单~ |前端开发|IT软件 效果图: 完整代码: <!DOCTYPE ...

最新文章

  1. php一次性执行多条sql_PHP循环执行多条SQL
  2. Android 点击应用外的Url拉起应用
  3. 如何从Angular的ActivatedRoute数据结构中获得运行时路由信息
  4. Ajax — 新闻列表
  5. php按时间分组的sql语句,(SQL语句)按指定时间段分组统计
  6. http状态码批量查询工具V2.0
  7. 构建“.NET研究” View 时可能用到的代理函数调用顺序
  8. Oracle Siebel CRM技术的前景
  9. linux group管理,LINUX-用户和组管理
  10. 论文常用出图软件(Matlab,XMind,Viso,ppt)以及格式选择(eps,svg,tif,png)
  11. 计算机主机hdmi接口是什么意思,hdmi接口有什么用,教您电脑hdmi接口有什么用
  12. 日记侠:如何提高朋友圈活跃度,给你5种实用方法
  13. AUI 滚动视图使用
  14. Oracle数据库,创建表并给表、字段添加注释.
  15. PKUWC2019纪中游记
  16. 优麒麟系统Ubuntu Kylin的网络配置
  17. WWDC————苹果全球开发者大会
  18. JQuery动画+事例
  19. android-sdk下载安装
  20. (20)typedef

热门文章

  1. Java程序设计——Swing UI 高级组件(三)
  2. ips和va哪个对眼睛好一点 ips和va屏幕哪个色彩好
  3. 【C++编程题】买房与选房(排序,模拟)
  4. 表格 table使用
  5. 思科网络安全 第二章测验答案
  6. python中系统找不到指定文件怎么办,Python“系统找不到指定的文件”
  7. vue--图片预览器(vant)+ 安卓返回键处理
  8. Git 忽略文件规则及设置
  9. 腾讯 AI Lab 2019 年度回顾
  10. 分层自动化测试体系模型