【黑马程序员】C语言—通讯录系统的实现
来源:互联网 发布:php 去除所有html标签 编辑:程序博客网 时间:2024/05/16 18:56
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
c语言通讯录系统实现:
需求分析:
利用文件读,写的方法
实现增加通讯录联系人信息
实现删除通讯录联系人信息
实现查找通讯录联系人信息
实现修改通讯录联系人信息
实现查看现有通讯录联系人信息
代码实现:
<span style="font-size:14px;">//// main.c// C语言通讯录实现//// Created by Brisinga on 15/10/14.// Copyright © 2015年 yan. All rights reserved.//#include <stdio.h>#include<string.h>#define LEN 10#define NAMELEN 22#define TELLEN 12//*************结构体变量定义****************//定义联系人的个数int contactCount = 0;//定义结构体typedef struct{ //定义联系人姓名 char name[NAMELEN]; //定义联系人电话 char tel[TELLEN];}Person;//初始化联系人数组Person contact[LEN];//定义文件名char *path = "a.data";//接收用户输入的编号int no;//**************函数声明********************//初始化声明void init();//校验声明int isValid(int n,int min,int max);//添加联系人void addContact();//删除联系人void deleteContact();//修改联系人void updateContact();//查看所有联系人void doList();//搜索联系人void searchContact();//退出系统void quit();//联系人写入文件void writeFile();//***************************************int main(int argc, const char * argv[]) { //通讯录初始化 init(); printf("通讯录初始化成功!\n"); while (1) { //定义界面 printf("**********************************\n"); printf("***********欢迎使用通讯录***********\n"); printf("***********1.添加联系人*************\n"); printf("***********2.删除联系人*************\n"); printf("***********3.修改联系人*************\n"); printf("***********4.查看所有联系人**********\n"); printf("***********5.搜索联系人*************\n"); printf("***********6.退出系统***************\n"); printf("**********************************\n"); //提示用户输入编号 printf("请输入要进行操作的编号:\n"); scanf("%d",&no); //判断输入是否合法 isValid(no, 1, 6); //判断用户的操作 switch (no) { case 1: //添加联系人 addContact(); break; case 2: //删除联系人 deleteContact(); break; case 3: //更新联系人 updateContact(); break; case 4: //查看联系人 doList(); break; case 5: //搜索联系人 searchContact(); break; case 6: //退出 quit(); return 0; default: break; } } return 0;}//通讯录初始化void init(){ //定义文件指针 FILE *fp = fopen(path, "r"); //判断通讯录是否存在 if (fp!=NULL) { //如果存在 //1.读取联系人个数 fread(&contactCount, sizeof(contactCount), 1, fp); //2.读取每一个联系人nts for (int i=0; i<contactCount; i++) { fread(&contact[i], sizeof(Person), 1, fp); } }else{ //如果不存在 //创建通讯录 fp = fopen(path, "wb"); //写入当前联系人的个数 fwrite(&contactCount, sizeof(contactCount), 1, fp); } fclose(fp);}//校验输入是否合法int isValid(int n,int min,int max){ //如果输入的编号大于min小于max,则返回0 if (n>=min&&n<=max) { return 0; } //否则返回1 printf("输入非法!\n"); return 1;}//添加联系人void addContact(){ //提示用户输入要添加联系人的姓名 printf("请输入要添加的联系人姓名:*注意姓名之间不能有空格\n"); //接收联系人姓名 scanf("%s",contact[contactCount].name); //提示用户输入要添加联系任的电话 printf("请输入要添加联系人的电话: *注意电话号码之间不能有空格\n"); //接收联系人电话 scanf("%s",contact[contactCount].tel); //询问是否确定添加 printf("确定要添加么?1.确定 0.取消\n"); scanf("%d",&no); if (no) { contactCount++; //写入文件 writeFile(); printf("添加成功!\n"); }}//删除联系人void deleteContact(){ //显示联系人 doList(); int flag; //提示用户输入要删除联系人的编号 printf("请输入要删除联系人的编号:\n"); //接收用户输入的编号 scanf("%d",&no); //判断编号是否合法 if(!isValid(no, 1, contactCount)){ //编号合法 printf("确定要删除么?删除后将无法恢复!1.确定 0.取消\n"); scanf("%d",&flag); if (flag) { //如果要删除的联系人在末尾 if (no==contactCount) { //则contactCount-1 contactCount--; }else{ //如果要删除的联系人不在末尾 //移动数组元素 for (int i=no-1; i<contactCount-1; i++) { contact[i]=contact[i+1]; } } //contactCount-- contactCount--; //写文件 writeFile(); } }else //编号不合法,则退出 printf("编号不合法!\n"); return ;}//修改联系人void updateContact(){ //显示联系人 doList(); //提示用户输入要修改联系人的编号 printf("请输入要修改的联系人的编号:\n"); //接收用户输入的编号 scanf("%d",&no); //判断编号是否合法 int flag; if (!isValid(no, 1, contactCount)) { //提示用户输入新的的联系人的姓名 printf("请输入新的姓名:*注意:姓名之间不能有空格\n"); //接收用户输入的姓名 scanf("%s",contact[no-1].name); //提示用户输入新的电话号码 printf("请输入新的电话号码:*注意:电话号码之间不能有空格\n"); //接收用户输入的电话号码 scanf("%s",contact[no-1].tel); //询问用户确定修改么? printf("确定要修改么?1.确定 0.取消\n"); scanf("%d",&flag); if (flag) { //写文件 writeFile(); printf("联系人修改成功!\n"); }else{ printf("编号不合法!!\n"); return ; } } }//查看所有联系人void doList(){ printf("显示所有联系人:\n"); printf("编号\t姓名\t电话\n"); for (int i=0; i<contactCount; i++) { printf("%d\t%s\t%s\n",i+1,contact[i].name,contact[i].tel); }}//搜索联系人void searchContact(){ int flag = 1; //接收用户输入的姓名 char searchName[NAMELEN]; //接收用户输入的电话 char searchTel[TELLEN]; //询问用户搜索方式 printf("请输入查找的方式: 1.按姓名查找 2.按电话号码查找\n"); //接收用户的搜索方式 scanf("%d",&no); if (no==1) { //请用户输入要查找的姓名 printf("请输入要查找到姓名:\n"); scanf("%s",searchName); for (int i=0; i<contactCount; i++) { if (!strcmp(searchName,contact[i].name)) { printf("您查找的联系人为:\n"); printf("%d\t%s\t%s\n",i+1,contact[i].name,contact[i].tel); return ; }else{ flag = 0; } } }else if(no==2){ //请用户输入要查找的电话号码 printf("请输入要查找的电话号码:\n"); scanf("%s",searchTel); for (int i=0; i<contactCount; i++) { if (!strcmp(searchTel,contact[i].tel)) { printf("您查找的联系人为:\n"); printf("%d\t%s\t%s\n",i+1,contact[i].name,contact[i].tel); return ; }else{ flag = 0; } } }else{ printf("非法输入!\n"); return ; } if (!flag) { printf("很抱歉!小伙伴不在通讯录中!\n"); } }//退出系统void quit(){ printf("系统正在退出...\n"); printf("系统已经退出!\n"); }//联系人写入文件void writeFile(){ //定义文件指针 FILE *fp = fopen(path, "wb"); if (fp!=NULL) { //写入联系人个数 fwrite(&contactCount, sizeof(contactCount), 1, fp); //写入每个联系人 for (int i=0; i<contactCount; i++) { fwrite(&contact[i], sizeof(Person),1, fp); } } fclose(fp);}</span>
1 0
- 【黑马程序员】C语言—通讯录系统的实现
- 黑马程序员-c语言-通讯录的实现
- 黑马程序员---c语言 通讯录的实现
- 黑马程序员-C语言下的通讯录
- 黑马程序员-c语言通讯录
- 黑马程序员——C基础---简易通讯录的实现
- c语言实现的通讯录系统
- 黑马程序员-----C语言学习之通讯录应用的代码实现
- 黑马程序员——c语言综合运用:通讯录
- 黑马程序员——C语言基础---通讯录
- c语言实现通讯录系统
- C语言——通讯录的实现
- 黑马程序员----C语言学习笔记之学习总结《通讯录》程序实现
- 黑马程序员--C语言自学笔记---15C语言版通讯录
- C语言实现通讯录管理系统
- 黑马程序员-C语言-管理系统细节实现
- C语言通讯录系统
- c语言实现----通讯录
- javaScript history对象
- pAdPt_-9 活动的生命周期[LogCat java关键字] 传递数据[Intent 静态变量 全局变量 剪切板]
- 【OC语法】Protocol协议的介绍
- C语言基本数据类型
- C语言基础--函数和结构体
- 【黑马程序员】C语言—通讯录系统的实现
- android 仿ios 键盘
- SpriteBuilder实现2D精灵光影明暗反射效果(一)
- CentOS7 初次安装记录(二)配置apache服务器
- java程序员第七课 java基础加强
- solr主从配置
- Hadoop分布式安装02
- centos7 关闭防火墙 获取外网IP
- iOS开发中数据持久化方案小结