#include /* 头文件 */ #include // 包含最常用的系统函数 #include // 关于字符数组的函数定义的头文件
#include // 控制台输入输出
//定义结构体
struct tongxunlu /* 定义通讯录结构体变量 */
{
char xingming[20] 。 /* 定义输入名字的数组 */ char dianhua[20] 。 /* 定义输入电话号码的数组 */ char dizhi[40] 。 /* 定义输入地址的数组 */
} txl[100] 。 //默认 100 个数据
int n=0 。 //记录数据联系人数量
FILE *fp 。 /* 定义文件 */ //程序用到的所有函数 void zhucaidan() 。 /* 主菜单函数 */
void zengjia() 。 /* 增加联系人函数 */
void readfile() 。 /* 文件中读入函数 */
void writefile() 。 /* 文件中写入函数 */
void xiugai() 。 /* 修改联系人函数 */
void xiugai_xingming() 。 /* 姓名修改 */
void xiugai_dianhua() 。 /* 电话号码修改 */ void chazhao() 。 /* 查找联系人函数 */
void chazhao_xingming() 。 /* 按姓名查找 */
void chazhao_dianhua() 。 /* 按号码查找 */ void shanchu() 。 /*删除联系人函数 */
void shanchu_quanbu() 。 /* 全部删除 */
void shanchu_dange()。 /* 单个删除 */ void xianshi() 。 /* 号码显示 */ //程序主函数模块六
void main() /* 主函数 main*/
{ readfile() 。 /* 读入文件 */ while(1) /* 循环(永远进行) */ {
zhucaidan() 。 /* 调用主菜单函数 */
}
}
//读取文件函数部分开始模块七
void readfile(){{通讯录
void readfile()
{
{
通讯录 .txt","r"))==NULL) /*
以只读方式打开判定文件是否为空
*/
printf("\n\t\t\t 通讯录文件不存在 ")。 /* 判断结论 */ if ((fp=fopen(" 同通讯录 .txt","w"))==NULL) /* 只写方式判断 */ {
printf("\n\t\t 建立失败 ")。 /* 为空结论 */ exit(0) 。 /* 退出*/
}
else /* 不为空则执行 else*/
{
TOC \o "1-5" \h \z printf("\n\t 欢迎使用通讯录管理系统 ")
printf("\n\t 通讯录文件已建立") 。
printf("\n\t 按任意键进入主菜单 ") 。 printf("\n\t") 。
getch()。 return 。
}
exit(0) 。
}
fseek(fp,0,2) 。 /* 文件位置指针移动到文件末尾 */
if (ftell(fp)>0) /* 文件不为空 */
{
rewind(fp) 。 /* 文件位置指针移动到文件开始位置 */
for (n=0 。
!feof(fp) && fread(&txl[n],sizeof(struct tongxunlu),1,fp)
。 n++)
printf("\n\t-
欢迎使用通讯录管理系统
I.Obeat 版
") 。
printf("\n\t
文件导入成功
") 。
printf("\n\t
按任意键返回主菜单
")。
printf("\n\t-
") 。
getch()。 return。
}
printf("\n\t
?----欢迎使用通讯录管理系统 I.Obeat版
") 。
printf("\n\t
文件导入成功 ") 。
printf("\n\t
通讯录文件中无任何纪录") 。
printf("\n\t
按任意键返回主菜单 ")。
printf("\n\t
") 。
getch()。 return。
}
//读取文件函数结束
//文件主菜单函数开始模块六
void zhucaidan()
{
char c。
system("cls") 。
printf("\n\t\t|——欢迎您使用通讯录管理系统I.Obeat版-----1")。
printf("\n\t\t| 1- 添