C语言如何实现通讯录系统
作者
这篇文章将为大家详细讲解有关C语言如何实现通讯录系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
C语言通讯录系统实现,供大家参考,具体内容如下
需求分析:
利用文件读,写的方法
实现增加通讯录联系人信息
实现删除通讯录联系人信息
实现查找通讯录联系人信息
实现修改通讯录联系人信息
实现查看现有通讯录联系人信息
代码实现:
//main.c //C语言通讯录实现 // //CreatedbyBrisingaon15/10/14. //Copyright©2015年yan.Allrightsreserved. // #include<stdio.h> #include<string.h> #defineLEN10 #defineNAMELEN22 #defineTELLEN12 //*************结构体变量定义**************** //定义联系人的个数 intcontactCount=0; //定义结构体 typedefstruct{ //定义联系人姓名 charname[NAMELEN]; //定义联系人电话 chartel[TELLEN]; }Person; //初始化联系人数组 Personcontact[LEN]; //定义文件名 charchar*path="a.data"; //接收用户输入的编号 intno; //**************函数声明******************** //初始化声明 voidinit(); //校验声明 intisValid(intn,intmin,intmax); //添加联系人 voidaddContact(); //删除联系人 voiddeleteContact(); //修改联系人 voidupdateContact(); //查看所有联系人 voiddoList(); //搜索联系人 voidsearchContact(); //退出系统 voidquit(); //联系人写入文件 voidwriteFile(); //*************************************** intmain(intargc,constcharchar*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){ case1: //添加联系人 addContact(); break; case2: //删除联系人 deleteContact(); break; case3: //更新联系人 updateContact(); break; case4: //查看联系人 doList(); break; case5: //搜索联系人 searchContact(); break; case6: //退出 quit(); return0; default: break; } } return0; } //通讯录初始化 voidinit(){ //定义文件指针 FILEFILE*fp=fopen(path,"r"); //判断通讯录是否存在 if(fp!=NULL){ //如果存在 //1.读取联系人个数 fread(&contactCount,sizeof(contactCount),1,fp); //2.读取每一个联系人nts for(inti=0;i<contactCount;i++){ fread(&contact[i],sizeof(Person),1,fp); } }else{ //如果不存在 //创建通讯录 fp=fopen(path,"wb"); //写入当前联系人的个数 fwrite(&contactCount,sizeof(contactCount),1,fp); } fclose(fp); } //校验输入是否合法 intisValid(intn,intmin,intmax){ //如果输入的编号大于min小于max,则返回0 if(n>=min&&n<=max){ return0; } //否则返回1 printf("输入非法!\n"); return1; } //添加联系人 voidaddContact(){ //提示用户输入要添加联系人的姓名 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"); } } //删除联系人 voiddeleteContact(){ //显示联系人 doList(); intflag; //提示用户输入要删除联系人的编号 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(inti=no-1;i<contactCount-1;i++){ contact[i]=contact[i+1]; } } //contactCount-- contactCount--; //写文件 writeFile(); } }else //编号不合法,则退出 printf("编号不合法!\n"); return; } //修改联系人 voidupdateContact(){ //显示联系人 doList(); //提示用户输入要修改联系人的编号 printf("请输入要修改的联系人的编号:\n"); //接收用户输入的编号 scanf("%d",&no); //判断编号是否合法 intflag; 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; } } } //查看所有联系人 voiddoList(){ printf("显示所有联系人:\n"); printf("编号\t姓名\t电话\n"); for(inti=0;i<contactCount;i++){ printf("%d\t%s\t%s\n",i+1,contact[i].name,contact[i].tel); } } //搜索联系人 voidsearchContact(){ intflag=1; //接收用户输入的姓名 charsearchName[NAMELEN]; //接收用户输入的电话 charsearchTel[TELLEN]; //询问用户搜索方式 printf("请输入查找的方式:1.按姓名查找2.按电话号码查找\n"); //接收用户的搜索方式 scanf("%d",&no); if(no==1){ //请用户输入要查找的姓名 printf("请输入要查找到姓名:\n"); scanf("%s",searchName); for(inti=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; } } }elseif(no==2){ //请用户输入要查找的电话号码 printf("请输入要查找的电话号码:\n"); scanf("%s",searchTel); for(inti=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"); } } //退出系统 voidquit(){ printf("系统正在退出...\n"); printf("系统已经退出!\n"); } //联系人写入文件 voidwriteFile(){ //定义文件指针 FILEFILE*fp=fopen(path,"wb"); if(fp!=NULL){ //写入联系人个数 fwrite(&contactCount,sizeof(contactCount),1,fp); //写入每个联系人 for(inti=0;i<contactCount;i++){ fwrite(&contact[i],sizeof(Person),1,fp); } } fclose(fp); }
关于“C语言如何实现通讯录系统”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
目录
推荐阅读
0 条评论
本站已关闭游客评论,请登录或者注册后再评论吧~