ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:133.28KB ,
资源ID:9495666      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9495666.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c++通讯录设计郭海军.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c++通讯录设计郭海军.docx

1、c+通讯录设计郭海军 计算机科学与技术学院C高级语言程序设计课程设计报告 ( 2014 / 2015 学年 第 1 学期)学生姓名: 郭海军 学生专业: 计算机科学与技术专业 学生班级: 计算机16302班学生学号: 201326040207指导教师: 李建伟 2015年1月9日计算机科学与技术学院课程设计任务书课程设计名称C高级语言程序设计课程设计课程设计题目 小型通讯录程序学生姓名郭海军专业班级计算机132602班学号201326040207课程设计任务内容问题描述 设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和

2、数字混合编码。电话号码可由字符和数字组成 基本要求 (1)系统以菜单方式工作(2)信息录入功能(3)信息浏览功能(4)信息查询功能(5)信息修改功能(6)系统退出功能测试要求 (1) 具有添加,查询和删除功能、 (2) 能正常运行、设计简便的小型通讯录程序、 指导老师:李伟健 时 间: 2015 年 1 月 12日 计算机科学与技术学院课程设计成绩评审表课程设计名称C高级语言程序设计课程设计课程设计题目 小型通讯录软件学生姓名郭海军专业班级计算机132602班同组人学号 201326040207指导教师设计成绩评价内容签 字: 时 间: 2015 年 1 月 12 日 (1)设计问题描述与分析

3、一问题描述 世界的发展天翻地覆,而作为社会主角的我们之间的联系可为更加密切,因此,人与人之间的联系很重要,发展的快,事情固然也就多,这时就需要引入我们的通讯录帮忙了,所以,通讯录的需求是我们现当代所不可缺少的东西。使用专业的流程图绘制框架图,让通讯录中各个版块都能够清晰的展现在系统中,增删查改也是必须的品质之一,一切为服务大众。二问题分析(1)保存通讯录。输入联系人的姓名、电话号码、家庭详细地址等,并将它们一一存放在对应的数组当中去。(2)显示通讯录:将记录联系人姓名、电话号码的数组中的数据一一输出到屏幕上供使用。(3)查询通讯录。分别按联系人姓名和联系人的电话号码进行查询,查询时将输入的联系

4、人信息通过循环与相应数组成员一一进行比较。(4)修改通讯录。输入需要修改记录的联系人姓名,通过循环查找到该记录后,再输入新数据替代原有数据。(5)添加通讯录。判断输入的电话号码是否重复,若不重复再将输入的信息添加到对应的数组中每输入一组数据,记录数增1。(6)删除通讯录。分别按联系人姓名和电话号码进行删除 (2)算法设计与流程图(1)功能模块图 图(1)(2)查询联系人流程图 NO YES YES NO (3)程序设计编码与测试(1)程序代码:#include #include #include #include #define N 100 void input();/添加新用户函数 void

5、 amend();/修改用户信息函数 void delete_client();/删除用户信息函数 void demand_client();/用户信息查询函数 void collect_telephone();/用户信息汇总函数 void save_client(struct telephone message);/保存函数 void demand_name();/按用户名查询 void demand_telephone();/按电话号码查询 struct telephone char client_name20; char client_address30; char client_tel

6、ephone15; ; /添加新用户函数 void input() struct telephone message; char reply=y; char save=y; while (reply=y) printf(用户姓名:); scanf(%s,message.client_name); printf(电话号码:); scanf(%s,message.client_telephone); save_client(message); printf(要继续吗?(y/n):); scanf( %c,&reply); printf(按任意键返回主菜单n); getchar(); getchar

7、(); /保存函数 void save_client(struct telephone message) FILE *fp; fp=fopen(message.dat,a+); if (fp!=NULL) fwrite(&message,sizeof(struct telephone),1,fp); else printf(n打开文件时出现错误,按任意键返回n); getchar(); return; fclose(fp); /修改用户信息函数 void amend() struct telephone message; FILE *fp; char amend_name20; char re

8、ply=y; char found=y; char save=y; int size=sizeof(struct telephone); while (reply=y) found=n; fp=fopen(message.dat,r+w); if (fp!=NULL) system(cls); printf(n请输入要修改的姓名:); scanf(%s,amend_name); while (fread(&message,size,1,fp)=1) if (strcmp(amend_name,message.client_name)=0) found=y; break; if (found=y

9、) printf(=n); printf(n用户姓名:%sn,message.client_name); printf(n电话号码:%sn,message.client_telephone); printf(=n); printf(修改用户信息:n); printf(n用户姓名:); scanf(%s,message.client_name); printf(n电话号码:); scanf(%s,message.client_telephone); printf(n要保存吗?(y/n):); scanf( %c,&save); if (save=y) fseek(fp,-size,1); fwr

10、ite(&message,sizeof(struct telephone),1,fp); else printf(无此人信息!n); else printf(打开文件时出现错误,按任意键返回n); getchar(); return; fclose(fp); printf(要继续吗?(y/n):); scanf( %c,&reply); printf(按任意键返回主菜单n); getchar(); getchar(); /删除用户信息函数 void delete_client() struct telephone message100; / 源文件为struct telephone messa

11、geN; struct telephone temp_str; struct telephone delete_str; int i=0,j=0; char reply=y; char found=y; char confirm=y; char delete_name20; FILE *fp; while (reply=y) system(cls); fp=fopen(message.dat,r); if (fp!=NULL) i=0; found=n; printf(n请输入姓名:); scanf(%s,delete_name); while (fread(&temp_str,sizeof(

12、struct telephone),1,fp)=1) if (strcmp(delete_name,temp_str.client_name)=0) found=y; delete_str=temp_str; /查找要删除的记录 else messagei=temp_str; i+; /将其它无关记录保存起来 else printf(打开文件时出现错误,按任意键返回n); getchar(); return; fclose(fp); if (found=y) printf(=n); printf(用户姓名:%sn,delete_str.client_name); printf(电话号码:%sn

13、,delete_str.client_telephone); printf(=n); else printf(无此人信息,按任意键返回n); getchar(); break; printf(确定要删除吗?(y/n):); scanf( %c,&confirm); if (confirm=y) fp=fopen(message.dat,w); if (fp!=NULL) for(j=0;j3) printf(请输入1-6之间的整数n); printf(按任意键返回菜单n); getchar(); continue; if (choice=1) demand_name(); else if (c

14、hoice=2) demand_telephone(); /按用户名查询 void demand_name() struct telephone message; FILE *fp; char amend_name20; char reply=y; char found=y; while (reply=y) found=n; fp=fopen(message.dat,r+w); if (fp!=NULL) system(cls); printf(n请输入姓名:); scanf(%s,amend_name); while (fread(&message,sizeof(struct telepho

15、ne),1,fp)=1) if (strcmp(amend_name,message.client_name)=0) found=y; break; if (found=y) printf(=n); printf(用户姓名:%sn,message.client_name); printf(电话号码:%sn,message.client_telephone); printf(=n); else printf(无此人信息!n); else printf(打开文件时出现错误,按任意键返回n); getchar(); return; fclose(fp); printf(要继续吗?(y/n):); s

16、canf( %c,&reply); printf(按任意键返回主菜单n); getchar(); getchar(); /按电话号码查询 void demand_telephone() struct telephone message; FILE *fp; char telephone20; char reply=y; char found=y; while (reply=y) found=n; fp=fopen(message.dat,r+w); if (fp!=NULL) system(cls); printf(n请输入电话号码:); scanf(%s,telephone); while

17、(fread(&message,sizeof(struct telephone),1,fp)=1) if (strcmp(telephone,message.client_telephone)=0) found=y; break; if (found=y) printf(=n); printf(用户姓名:%sn,message.client_name); printf(电话号码:%sn,message.client_telephone); printf(=n); else printf(无此电话号码的有关信息!n); else printf(打开文件时出现错误,按任意键返回n); getcha

18、r(); return; fclose(fp); printf(要继续吗?(y/n):); scanf( %c,&reply); printf(按任意键返回主菜单n); getchar(); getchar(); /用户信息汇总函数 void collect_telephone() struct telephone message; FILE *fp; fp=fopen(message.dat,r); if (fp!=NULL) system(cls); printf(n用户姓名tt电话号码n); while (fread(&message,sizeof(struct telephone),1

19、,fp)=1) printf(n%-24s,message.client_name); printf(%-12sn,message.client_telephone); else printf(打开文件时出现错误,按任意键返回n); getchar(); return; fclose(fp); printf(按任意键返回主菜单n); getch(); void main() char choice10=; int len=0; while (choice0!=7) printf(t=ghj电话本号码查询系统=n); printf(tt 1、添加新联系人n); printf(tt 2、修改联系人

20、信息n); printf(tt 3、删除联系人信息n); printf(tt 4、联系人信息查询n); printf(tt 5、联系人信息汇总n); printf(tt 7、退出n); printf(t=n); printf(请选择(1-7):); scanf(%s,choice); len=strlen(choice); if (len1) printf(请输入1-6之间的整数n); printf(按任意键返回主菜单n); getchar(); getchar(); continue; switch (choice0) case 1: input(); break; case 2: amen

21、d(); break; case 3: delete_client(); break; case 4: demand_client(); break; case 5: collect_telephone(); break; default: break; (2)测试结果正常(演示结果如下): 图(1) 图(2) 图(三) (4)设计过程总结与分析 从刚开始的不只如何下手到最后看到自己的程序按自己的想法运行,心里头不时的有一种喜悦。这让我认识到书上和老师教的内容是有限的,要想掌握更多的知识我们必须多动脑,多思考,不断地靠自己去寻找资料去学习,同时我们还应向他人请教,与同学相互讨论,从而更深的理解

22、和运用结构化程序设计的思想和方法,掌握开发一个小型实用通讯系统的基本方法,提高了书写程序设计开发文档的能力。同时在软件的设计过程中遇到很多的困难。一次一次的调试失败下曾经想过要放弃。我最后还是让自己坚持啦下来,毫不畏惧困难,在同学的帮助与讲解下我总算是顺利完成软件的设计!虽然在调试程序遇到拉很多的困难,当软件调试成功时那种喜悦的感觉没有什么东西可以代替。在程序的编写过程中我发现我自己有很多的知识漏洞和缺陷,需要进一步努力学习来完善自己。而这次的程序实设计实验是对我们进入大学以来学习程序设计语言结果的一次大检验。自己动手,自己发现和解决问题。发现了自己的许多不足。平时没有掌握好的知识在这次实验中

23、彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习能够解决好它们。但是,收获还是不小的。当我抽到通讯录这个题目时,一开始想运用大量链表及指针来完成,但是在慢慢琢磨之后,除了链表本身特别难以外,我也觉得这个不一定要用链表,于是改变了编程思路。当然还有不少文件的读写问题,不过还是通过不断测试之后顺利解决了。其实,文件这个知识我们并没有学过,但通过看书,也可以得知,虽然说文件难以理解,但是比起链表来说,我觉得指针相对而言要容易很多,知识要记要背的东西比较多,因此这个程序我选择了用文件而不是用链表来解决。这一周的实践让我受益匪浅,在此我要感谢孜孜不倦指导我们的三位老师,感谢在我困惑时给我帮助的同学,感谢学校给我们一个这样动手动脑的机会,使我们在理论与实践相结合方面又得到了一次很好的锻炼,让我们得到很大的收获。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1