代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C
】
通讯录管理系统
作者:
PYX
/ 发布于
2013/1/8
/
505
?#include <stdio.h> #include <stdlib.h> #include <string.h> #include <memory.h> #define MAX_SIZE 100 struct student { char name[15]; char num[15]; char addr[15]; }stu[MAX_SIZE]; FILE *fp; int count; int loadfile(); //载入通讯录文件 void savefile(); //保存所有联系人 void input(); //添加联系人 void find(); //查找联系人 void updata(); //更新联系人 void deleteall(); //删除所有联系人 void deletename(); //按姓名删除单个联系人 void main() { int i; char a; char name[15]; loadfile(); do{ system("CLS"); printf("\n\n"); printf("\n\t\t┏━━━━━━━━━ 主菜单 ━━━━━━━━━┓"); printf("\n\t\t┃ ┃"); printf("\n\t\t┃**************** 1-新建联系人 ****************┃"); printf("\n\t\t┃ ┃"); printf("\n\t\t┃**************** 2-查找联系人 ****************┃"); printf("\n\t\t┃ ┃"); printf("\n\t\t┃**************** 3-更新联系人 ****************┃"); printf("\n\t\t┃ ┃"); printf("\n\t\t┃**************** 4-删除所有联系人 ************┃"); printf("\n\t\t┃ ┃"); printf("\n\t\t┃**************** 5-删除单个联系人 ************┃"); printf("\n\t\t┃ ┃"); printf("\n\t\t┃**************** 6- 退 出 ****************┃"); printf("\n\t\t┃ ┃"); printf("\n\t\t┗━━━━━━━━━━━━━━━━━━━━━━━┛"); printf("\n\t\t 请选择:"); a=getch(); switch(a) { case '1': system("CLS"); input(); break; case '2': system("CLS"); find(); break; case '3': system("CLS"); updata(); break; case '4': system("CLS"); deleteall(); break; case '5': system("CLS"); deletename(); break; case '6': printf("6\n\t\t "); exit(1); break; default: printf("\n\n\t\t 错误,请重新输入\n\t\t "); getch(); break; } }while(a!='6'); } int loadfile() { if((fp=fopen("address_list.txt","rb"))==NULL) //判断是否已有通讯录 { printf("\n\n\t\t\t通讯录未建立\n"); if((fp=fopen("address_list.txt","wb"))==NULL) printf("\n\n\t\t\t通讯录建立失败\n\n"); else { printf("\n\t\t\t正在建立新通讯录,请稍等···"); getch(); printf("\n\n\t\t\t通讯录建立成功\n\n"); printf("\n\t\t\t按任意键继续······"); getch(); count=0; return count; } } fseek(fp,0,2); //获取通讯录成员数目 if(ftell(fp)>0) { rewind(fp); for(count=0; !feof(fp)&&fread(&stu[count],sizeof(struct student),1,fp); count++); return count; } else { count=0; return count; } } void savefile() { int i; fp=fopen("address_list.txt","wb"); for(i=0;i<count;i++) { fwrite(&stu[i],sizeof(struct student),1,fp); } fclose(fp); } void input() { printf("\n\t\t\t输入联系人信息\n"); printf("\n\t\t\t**********************\n"); printf("\n\t\t\t姓 名:") ; scanf("%s",stu[count].name); printf("\n\t\t\t电话号码:"); scanf("%s",stu[count].num); printf("\n\t\t\t家庭住址:"); scanf("%s",stu[count].addr); printf("\n\t\t\t**********************\n"); count++; savefile(); printf("\n\t\t\t是否继续添加联系人?(y/n)"); if(getch()=='y') { system("cls"); input(); } return; } void find() { int j; char name[15]; fp=fopen("address_list.txt","rb"); if(count==0) { printf("\n\n\n\t\t\t通讯录中没有任何记录,请先添加联系人"); printf("\n\n\t\t\t按任意键继续······"); getch(); return; } printf("\n\t\t\t输入查找的姓名:"); //按姓名查找 scanf("%s",name); for(j=0;!feof(fp);j++) { fread(&stu[j],sizeof(struct student),1,fp); if(strcmp(name,stu[j].name)==0) { printf("\n\t\t\t**********************\n"); printf("\n\t\t\t 姓名:%s\n",stu[j].name); printf("\n\t\t\t 电话号码:%s\n",stu[j].num); printf("\n\t\t\t 地址:%s\n",stu[j].addr); printf("\n\t\t\t**********************\n"); fclose(fp); printf("\n\t\t\t按任意键继续······"); getch(); return; } } printf("\n\t\t\t未找到联系人,请重新查找\n"); printf("\n\t\t\t按任意键继续······"); getch(); fclose(fp); } void updata() { int i; char a,name[15]; fp=fopen("address_list.txt","rb"); if(count==0) { printf("\n\n\n\t\t\t通讯录中没有任何记录,请先添加联系人"); printf("\n\n\t\t\t按任意键继续······"); getch(); return; } printf("\n\t\t\t输入要更新的联系人姓名:"); scanf("%s",name); for(i=0;!feof(fp);i++) { fread(&stu[i],sizeof(struct student),1,fp); if(strcmp(name,stu[i].name)==0) { printf("\n\t\t\t你要更新的联系人“%s”的信息如下:",name); printf("\n\t\t\t****************************\n"); printf("\n\t\t\t 姓名:%s\n",stu[i].name); printf("\n\t\t\t 电话号码:%s\n",stu[i].num); printf("\n\t\t\t 地址:%s\n",stu[i].addr); printf("\n\t\t\t****************************\n"); printf("\n\t\t\t是否继续(y/n)"); if(getch()!='y') return; system("CLS"); printf("\n\t\t\t选择你要更新的选项"); printf("\n\t\t\t\t1- 姓 名 "); printf("\n\t\t\t\t2-电话号码"); printf("\n\t\t\t\t3- 地 址 "); printf("\n\t\t\t\t4- 返 回 "); printf("\n\t\t\t请选择:"); a=getch(); switch(a) { case '1': printf("1\n\t\t\t姓 名:"); scanf("%s",stu[i].name); break; case '2': printf("2\n\t\t\t电话号码:"); scanf("%s",stu[i].num); break; case '3': printf("3\n\t\t\t地址:"); scanf("%s",stu[i].addr); break; case '4': return; break; default: return; break; } system("cls"); printf("\n\t\t\t 您的修改结果为:"); printf("\n\t\t\t****************************\n"); printf("\n\t\t\t 姓名:%s\n",stu[i].name); printf("\n\t\t\t 电话号码:%s\n",stu[i].num); printf("\n\t\t\t 地址:%s\n",stu[i].addr); printf("\n\t\t\t****************************\n"); printf("\n\t\t\t 确认修改?(y/n)"); if(getch()!='y') return; savefile(); fclose(fp); printf("\n\n\t\t\t联系人更新完毕,按任意键返回······"); getch(); return; } } printf("\n\t\t\t未找到联系人,请重新查找\n"); printf("\n\t\t\t按任意键继续······"); getch(); fclose(fp); } void deleteall() { fp=fopen("address_list.txt","rb"); if(count==0) { printf("\n\n\n\t\t\t通讯录中没有任何记录,不用再删除"); printf("\n\n\t\t\t按任意键继续······"); getch(); return; } printf("\n\n\t\t\t联系人删除后不能恢复\n\n\t\t\t是否继续删除所有联系人(y/n): "); if(getch()!='y') return; fp=fopen("address_list.txt","wb"); count=0; savefile(); printf("\n\n\t\t\t已删除通讯录中所有联系人"); printf("\n\n\t\t\t按任意键继续······"); getch(); fclose(fp); } void deletename() { int i,j; char name[15]; fp=fopen("address_list.txt","rb"); if(count==0) { printf("\n\n\n\t\t\t通讯录中没有任何记录,不用再删除"); printf("\n\n\t\t\t按任意键继续······"); getch(); return; } printf("\n\t\t\t输入要删除的联系人姓名:"); scanf("%s",name); for(i=0;!feof(fp);i++) { fread(&stu[i],sizeof(struct student),1,fp); if(strcmp(name,stu[i].name)==0) { printf("\n\t\t\t你要删除的联系人“%s”的信息如下:",name); printf("\n\t\t\t****************************\n"); printf("\n\t\t\t 姓名:%s\n",stu[i].name); printf("\n\t\t\t 电话号码:%s\n",stu[i].num); printf("\n\t\t\t 地址:%s\n",stu[i].addr); printf("\n\t\t\t****************************\n"); printf("\n\t\t\t是否删除(y/n): "); if(getch()!='y') return; for(j=i;j<count-1;j++) { stu[j]=stu[j+1]; } count--; savefile(); printf("\n\n\t\t\t该联系人已经成功删除\n\n\t\t\t按任意键继续·····"); getch(); return; } } printf("\n\t\t\t未找到该联系人,请返回重新输入\n"); printf("\n\t\t\t按任意键继续······"); getch(); }
试试其它关键字
通讯录
同语言下
.
获取手机通讯录 iOS去除数字以外的所有字符
.
异步加载音乐等资源
.
交通罚单管理系统
.
freemark实现,简单的替换
.
计算斐波那契数列
.
base64解码 包括解码长度
.
图像显示
.
冒泡排序
.
输入十进制数,输出指定进制
.
链式栈
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
PYX
贡献的其它代码
(
1
)
.
通讯录管理系统
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3