个人通讯录管理系统c文件在最后个人通讯录管理系统c语言编写获得优秀老师表扬的绝不雷同内容摘要:

和界面进行控制。 readfile()读取文件函数 其源代码如下: void readfile() { if((fp=fopen(c:\\通讯录 .txt,r))==NULL) /*以只读方式打开判定文件是否为空 */ { printf(\n\t\t\t 通讯录文件不存在 )。 /*判断结论 */ if ((fp=fopen(同通讯录 .txt,w))==NULL) /*只写方式判断 */ { printf(\n\t\t建立失败 )。 /*为空结论 */ exit(0)。 /*退出 */ } else /*不为空则执行 else*/ { 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) amp。 amp。 fread(amp。 txl[n],sizeof(struct tongxunlu),1,fp)。 n++)。 printf(\n\t欢迎使用通讯录管理系统 )。 printf(\n\t 文 件 导 入 成 功 )。 9 重庆科技学院《 C语言程序设计》课程设计报告 printf(\n\t 按任意键返回主菜单 )。 printf(\n\t)。 getch()。 return。 } printf(\n\t欢迎使用通讯录管理系统 )。 printf(\n\t 文 件 导 入 成 功 )。 printf(\n\t 通讯录文件中无任何纪录 )。 printf(\n\t 按任意键返回主菜单 )。 printf(\n\t)。 getch()。 return。 } 较难语句分析: ① if((fp=fopen(c:\\通讯录 .txt,r))==NULL) 以只读方式打开判定文件是否为空; ② fseek(fp,0,2)。 文件位置指针移动到文件末尾; ③ ftell(fp): 返回当前文件位置,也就是说返回 FILE指针当前位置; ④ rewind(fp)。 文件位置指针移动到文件开始位置; ⑤ feof(fp) 检测流上的文件结束符; ⑥ fread(amp。 txl[n],sizeof(struct tongxunlu),1,fp)。 n++) 从 fp 指向的文件中向txl [n]中读入一个( struct tongxunlu)类型的值并输出后面的判断文件是否存在,如果不存在,则显示通讯录文件不存在,如果文件为空,则显示建立失败;若建立成功,则显示通讯录文件已建立,然后利用 fseek(fp,0,2)。 将文件位置指针移动到文件末尾等 待输入。 writefile()联系人写入文件函数 函数源程序见下: void writefile() /*联系人写入文件 */ { int i。 if ((fp=fopen(c:\\通讯录 .txt,w))==NULL) { printf(\n\t\t文件打开失败 )。 } for (i=0。 in。 i++) { if (fwrite(amp。 txl[i],sizeof(struct tongxunlu),1,fp)!=1) { printf(\n\t\t写入文件错误 !\n)。 } } fclose(fp)。 /*关闭文件 */ printf(\n\t)。 /*输出提示信息 */ printf(\n\t\t通讯录文件已保存 )。 10 重庆科技学院《 C语言程序设计》课程设计报告 printf(\n\t\t谢谢使用,欢迎再次使用 !\n)。 printf(如果对本软件有疑问 ,请到我们官网 ()提出您的问题 ,我们将为您解答 .\n)。 printf(我们的软件有不足之处 ,欢迎到官网 ()反映,我们将努力改正 !)。 printf(\n\t\t按任意键退出程序 \n\t\t)。 /*输出完毕 */ exit(0)。 printf(\n\t)。 } 较难语句分析: ① fp=fopen(c:\\通讯录 .txt,w)) 以只写的方式打开c:\\ 文件赋予 fp; ② if (fwrite(amp。 txl[i],sizeof(struct tongxunlu),1,fp)!=1) 从 fp 指向的文件中向txl [n]中写入一个( struct tongxunlu)类型的值并输 出后面的 zengjia()增加联系人函数 其源程序如下: void zengjia() { printf(\n\t\t 请输入联系人信息 \n)。 printf(\n\t\t输入联系人姓名 :)。 scanf(%s,txl[n].xingming)。 /*键盘输入 */ printf(\n\t\t输入联系人电话号码 :)。 scanf(%s,txl[n].dianhua)。 printf(\n\t\t输入联系人地址 :)。 scanf(%s,txl[n].dizhi)。 n++。 /*统计个数 */ printf(\n\t\t 是否继续添加联系人 ?(Y/N):)。 /*是否继续输入联系人 .*/ if (getch()==?y?) zengjia()。 return。 } 功能分析: 调用 zengjia()函数后,就可以通过 txl[n]. xingming, txl[n].dianhua , txl[n].dizhi 数组从键盘上输入联系人的姓名,电话,地址,输入完毕后,系统会提示是否继续输入,输入 “y”后,则再次调用 zengjia()。 函数,如此循环,直到不输入联系人为止。 shanchu()删除函数主界面 原函数代码: void shanchu() { 11 重庆科技学院《 C语言程序设计》课程设计报告 char c。 if(n==0) /*如果通讯录中没有一个记录输出以下部分 */ { printf(\n\t\t对不起,文件中无任何纪录 )。 printf(\n\t\t按任意键返回主菜单 )。 getch()。 return。 } system(cls)。 /*清屏 */ printf(\n\t\t 删除菜单 )。 printf(\n\t\t| 1 删除所有 2 删除单个 |)。 printf(\n\t\t| 3 返回主菜单 |)。 printf(\n\t\t|)。 printf(\n\t\t请选择您所所要的服务: )。 c=getch()。 /*输入的赋予 choice*/ switch (c) { case ?1?:shanchu_quanbu()。 break。 case ?2?:shanchu_dange()。 break。 case ?3?:zhucaidan()。 break。 default:zhucaidan()。 break。 } } 函数功能分析: 通过界面上的数字选项,调用 shanchu_quanbu()、 shanchu_dange()。 和 zhucaidan()函数来实现不同的删除功能。 xianshi()显示和查询函数 函数源程序: void chazhao() { char c。 system(cls)。 printf(\n\t\t 显示和查询联系人 )。 printf(\n\t\t| 1逐个显示所有 2按姓名查询 |)。 printf(\n\t\t| 3按电话查询 4返回主菜单 |)。 printf(\n\t\t|)。 printf(\n\t\t请选择您所所要的服务: )。 c=getch()。 switch (c) { case ?1?:xianshi()。 break。 /*显示所有号码 */ case ?2?:chazhao_xingming()。 break。 /*调用按姓名查询函数 */ case ?3?:chazhao_dianhua()。 break。 /*调用按号码查询函数 */ case ?4?:zhucaidan()。 break。 /*主菜单 */ } } 12。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。