C语言通讯录系统实现,供大家参考,具体内容如下

需求分析:

利用文件读,写的方法

实现增加通讯录联系人信息

实现删除通讯录联系人信息

实现查找通讯录联系人信息

实现修改通讯录联系人信息

实现查看现有通讯录联系人信息

代码实现:

// main.c

// C语言通讯录实现

//

// Created by Brisinga on 15/10/14.

// Copyright © 2015年 yan. All rights reserved.

//

#include

#include

#define LEN 10

#define NAMELEN 22

#define TELLEN 12

//*************结构体变量定义****************

//定义联系人的个数

int contactCount = 0;

//定义结构体

typedef struct{

//定义联系人姓名

char name[NAMELEN];

//定义联系人电话

char tel[TELLEN];

}Person;

//初始化联系人数组

Person contact[LEN];

//定义文件名

charchar *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 charchar * 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(){

//定义文件指针

FILEFILE *fp = fopen(path,"r");

//判断通讯录是否存在

if (fp!=NULL) {

//如果存在

//1.读取联系人个数

fread(&contactCount,sizeof(contactCount),fp);

//2.读取每一个联系人nts

for (int i=0; i

fread(&contact[i],sizeof(Person),fp);

}

}else{

//如果不存在

//创建通讯录

fp = fopen(path,"wb");

//写入当前联系人的个数

fwrite(&contactCount,fp);

}

fclose(fp);

}

//校验输入是否合法

int isValid(int n,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,contactCount)){

//编号合法

printf("确定要删除么?删除后将无法恢复!1.确定 0.取消\n");

scanf("%d",&flag);

if (flag) {

//如果要删除的联系人在末尾

if (no==contactCount) {

//则contactCount-1

contactCount--;

}else{

//如果要删除的联系人不在末尾

//移动数组元素

for (int i=no-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,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

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

if (!strcmp(searchName,contact[i].name)) {

printf("您查找的联系人为:\n");

printf("%d\t%s\t%s\n",contact[i].tel);

return ;

}else{

flag = 0;

}

}

}else if(no==2){

//请用户输入要查找的电话号码

printf("请输入要查找的电话号码:\n");

scanf("%s",searchTel);

for (int i=0; i

if (!strcmp(searchTel,contact[i].tel)) {

printf("您查找的联系人为:\n");

printf("%d\t%s\t%s\n",contact[i].tel);

return ;

}else{

flag = 0;

}

}

}else{

printf("非法输入!\n");

return ;

}

if (!flag) {

printf("很抱歉!小伙伴不在通讯录中!\n");

}

}

//退出系统

void quit(){

printf("系统正在退出...\n");

printf("系统已经退出!\n");

}

//联系人写入文件

void writeFile(){

//定义文件指针

FILEFILE *fp = fopen(path,"wb");

if (fp!=NULL) {

//写入联系人个数

fwrite(&contactCount,fp);

//写入每个联系人

for (int i=0; i

fwrite(&contact[i],fp);

}

}

fclose(fp);

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是编程之家为你收集整理的C语言实现通讯录系统全部内容,希望文章能够帮你解决C语言实现通讯录系统所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

通讯录标准化输入fread c语言,C语言实现通讯录系统相关推荐

  1. C语言标准化输入、输出字符

    C语言标准化输入.输出字符 一.scanf用到的格式字符: 1.%d:以十进制整数形式输入. 2.%i:以八进制.十进制.十六进制整数形式输入. 3.%u:输入以十进制无符号整型的数. 4.%o:输入 ...

  2. 【C语言进阶】C语言程序设计:动态通讯录(顺序表实现)

    目录 动态通讯录的实现 一.实验的目的和意义 二.实验内容描述 三.功能描述 四.数据结构 1.三大模块 2.结构设计 3.动态开辟 4.文件操作 5.主要函数 五.流程图及模块算法 1.Contac ...

  3. 用C语言编写简单的通讯录(大一课程作业)

    用C语言编写简单的通讯录(大一课程作业) 该系统概述: 因本人只学习了C语言的基础部分,所以编写该系统时只使用了一个C文件.存储通讯录信息以txt文件方式保存. 系统设计: 显示主菜单主函数:int ...

  4. c语言程序设计课程设计通讯录,《C语言程序设计》课程设计-通讯录系统(42页)-原创力文档...

    <C语言程序设计>课程设计 学 学 号:________ 姓 名:____ 指导教师:_________ 完成日期:2010.07.03 ______________学校______系__ ...

  5. 通讯录管理系统C语言课程设计大作业,c语言课程设计报告---通讯录管理系统.doc...

    c语言课程设计报告---通讯录管理系统.doc Yangtze University College of Arts and Science 学生实习手册 (课程设计报告) 学 部 理 工 学 部 专 ...

  6. [c语言]——C语言实现通讯录

    通讯录的c语言实现源代码 简单通讯录的实现还是包括三个源文件,test.c(实现通讯录主逻辑),txl.c(实现用到的各个函数),txl.h(存放txl中用到的各种头文件与声明). txl.h #if ...

  7. C语言小项目-《通讯录》(超详细讲解)

    加油加油!!! 文章目录 前言 一:静态库通讯录 1:通讯录介绍 1.1代码主体框架的介绍 1.2 要实现的功能 2:通讯录实现 2.1 通讯录的外部封装 2.1 创建通讯录 2.2 初始化通讯录 2 ...

  8. c语言通讯录程序线性表,数据结构(C语言)课设1——单位员工通讯录管理系统(线性表应用)...

    数据结构(C语言)课设1--单位员工通讯录管理系统(线性表应用) 题目要求: 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的手机号.及电子邮箱.其功能包括通讯录链表的建立.员工通讯信息 ...

  9. C语言课程设计:通讯录系统

    C语言课程设计:通讯录系统 [题目4]通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能.由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码.电话号码 ...

  10. c语言课程设计自动答题系统,C语言课程设计-单项选择题标准化考试系统设计.doc...

    PAGE 沈阳航空航天大学 课 程 设 计 报 告 课程设计名称:C语言课程设计 课程设计题目:单项选择题标准化考试系统设计 院(系): 计算机学院 专 业: 计算机科学与技术 班 级: 学 号: 姓 ...

最新文章

  1. Linux qfile中文文件名,QFile无法打开包含unicode字符的文件名
  2. CAN总线简明易懂教程(三)
  3. 微信新增“炸屎”功能,被好友玩坏了。。
  4. java泛型通配符和类型参数的范围
  5. android builder模式 插件,如何在Kotlin中实现Builder模式?
  6. JAVA构造函数是不是封装_Java 封装与构造函数
  7. Timer类 和 TimerTask类。一种有用计时器工具。可以每隔相同时间去执行某任务一次。
  8. oracle查看session阻塞,oracle查询blocking session阻塞情况
  9. linux+下c语言编程项目,精通UNIX下C语言编程与项目实践
  10. “安防+人工智能”,安企选择哪种抱大腿姿势才有出息?
  11. 如何能成为一名合格的前端开发工程师?
  12. 编程ING:人人都能学会程序设计
  13. Matlab中imnoise函数的用法
  14. After Effect弹性表达式的用法
  15. 透镜成像原理,眼球成像原理,小孔成像原理
  16. AS3动画效果常用公式
  17. python中合并excel表格
  18. 学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍
  19. android 混淆不混淆第三方jar,Android 第三方Jar包FastJson 代码混淆时的解决方法 - Android开发论坛 - 51CTO技术论坛_中国领先的IT技术社区...
  20. 《SpringBoot2.0 实战》系列-整合thymeleaf 实现模板文件转图片

热门文章

  1. Eclipse配置KEmulator
  2. linux远程ssh的端口映射,SSH端口映射
  3. 汇编语言王爽实验十三
  4. 新装的台式机新装WIN7系统启动时卡在开机动画如何解决?
  5. PIC单片机应用开发实践教程(五): 烧录器简介
  6. SAS Planet软件介绍与使用教程
  7. Android 直接生成实体类工具GsonFormat,一键生成实体类,对象;GsonFormat插件安装步骤gsonformatplus生成对象报错解决;jason,json
  8. pdf文档转换器绿色版
  9. TLS1.3---密钥的计算
  10. ubuntu安装vasp_Ubuntu常用软件的安装