通讯录系统设计C++语言课程设计

上传人:jiups****uk12 文档编号:40029793 上传时间:2018-05-22 格式:DOC 页数:30 大小:1.36MB
返回 下载 相关 举报
通讯录系统设计C++语言课程设计_第1页
第1页 / 共30页
通讯录系统设计C++语言课程设计_第2页
第2页 / 共30页
通讯录系统设计C++语言课程设计_第3页
第3页 / 共30页
通讯录系统设计C++语言课程设计_第4页
第4页 / 共30页
通讯录系统设计C++语言课程设计_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《通讯录系统设计C++语言课程设计》由会员分享,可在线阅读,更多相关《通讯录系统设计C++语言课程设计(30页珍藏版)》请在金锄头文库上搜索。

1、海南大学C+语言程序设计报告- 0 -通讯录系统设计通讯录系统设计学号:学号:2012121614310019姓名:刘婵姓名:刘婵通讯录系统设计- 1 -2014 年年 7 月月 5 日星期三日星期三 一一 题目内容的提出和描述题目内容的提出和描述 1.能够创建一个新的通讯录; 2.可以添加新的通讯通信息; 3.输入某个姓名,可以修改其信息; 4.录入某个姓名,可以删除其信息; 5.可以对已录入的信息进行排序; 6.可以显示全部通讯录信息; 二功能描述二功能描述首先简述选题意义、设计目标与要实现的系统功能描述。通讯录是大家日常生活中经常用到的系统,我选择这个课题就是为了体现 C+的实用性,整个

2、程序的设计目标是:直观、实用性强、可以满足日常需要。整个系统实现了:通讯录初始化、添加、删除、排序、修改、全部显示几大功能。三、程序设计与实现三、程序设计与实现1. 程序结构此处描述预期实现系统的设计方案或功能设计的组成结构。绘制一个系统程序组成框图,如图 1.所示。海南大学C+语言程序设计报告- 2 -图 1. 通讯录管理系统程序功能组成框图2. 数据描述核心的数据结构是:结构体。我将结构体成员分别定义姓名(name)、地址(address)、电话(telno)、QQ 四种信息。每种信息的数据类型均为字符型。结构体数据采用数组存储系统使用的核心数据结构。3. 功能模块设计此处描述所有自定义函

3、数的函数名、函数功能、参数说明及算法描述。画出主要函数规范流程图(或 N-S 图。应包括分支和循环控制的结构,一个流程图即可)。每个函数按如下方式说明。(1) 函数名:main函数功能:实现程序主体进行入口参数:无参数通讯录系统设计- 3 -出口参数:无参数算法描述:通过选择来实现多种函数功能及程序主体运作(2) 函数名:da_kai_wenjian函数功能:打开或建立文件入口参数:文件指针出口参数:无算法描述:检测文件是否存在,如果不存在则建立文件、(3) 函数名:Menu函数功能:输出字符以及提示语言入口参数:无出口参数:无算法描述:通过字符输出来美化屏幕 (4) 函数名:Create函数

4、功能:建立一个新的通讯录,或覆盖原有通讯录 入口参数:无出口参数:无算法描述:通过循环结构,不断要求用户输入数据,并存储到文件中(5)函数名:Add函数功能:添加一条新的通讯信息 入口参数:无出口参数:无算法描述:先将数据存储到一个新定义的结构体内,然后加到原有结构体数组后(6)函数名:Find函数功能:通过用户输入的名称,查找相应的记录,查找失败提示。 入口参数:无出口参数:无海南大学C+语言程序设计报告- 4 -算法描述:先从文件读取有多少记录,然后开始利用循环结构查找 。(7)函数名:Alter函数功能:通过用户输入的名称,查找相应的记录,并且对其修改 入口参数:无出口参数:无算法描述:

5、先从文件读取并查找记录,然后开始利用对其进行修改。(8)函数名:Delete函数功能:通过用户输入的名称,查找相应的记录,进行删除处理。 入口参数:无出口参数:无算法描述:先从文件读取并查找记录,然后开始通过覆盖方式删除。(9)函数名:List函数功能:显示所有记载的记录。 入口参数:无出口参数:无算法描述:先从文件读取有多少记录,然后开始利用循环结构逐个显示 。(10)函数名:sort函数功能:将所有的通讯记录排序并显示。 入口参数:无出口参数:无算法描述:先从文件读取有多少记录,然后开始利用循环结构用冒泡法排序 。(11)函数名:ge_shi 系列函数函数功能:通过输出各种符号来美化界面。

6、 入口参数:无出口参数:无算法描述:利用循环结构对符号进行多次输出 。通讯录系统设计- 5 -图 2. 主函数流程图二、 详细流程图海南大学C+语言程序设计报告- 6 -开始While判断请输入您的选择对不起,您输入的选择错误,请重新输入进入主菜单menu()三、通讯录系统设计- 7 -开始While检测文件是否存在请输入您的选择新建文件打开文件开始Printf 显示菜单SwitchCase ACase BCase CCase DCase ECase FCase GCreate()函数Add()函数Find()函数Alter()函数Delete()函数List()函数Sort(pa ixu)(

7、)函数结束海南大学C+语言程序设计报告- 8 -四、通讯录系统设计- 9 -海南大学C+语言程序设计报告- 10 -通讯录系统设计- 11 -海南大学C+语言程序设计报告- 12 -通讯录系统设计- 13 -源文件#include #include#include /字符串操作头文件#include#include“touwenjian.h“ /为缩短代码长度,定义头文件GRTXL p1100,paixu100; /p1 数组为常用数组,实时存储通讯录数据,paixu 数组只在排序时使用void main() char choice,yes_no;system(“color f4“); /为了

8、美化文件,定义颜色da_kai_wenjian(); /检测文件是否存在,否则建立/检测文件是否存在,否则建立doMenu();printf(“请选择您要执行的操作:n“);scanf(“%c“,fflush(stdin);for(;(choiceH) printf(“对不起,您输入的选择错误,请重新输入!n“);printf(“请选择您要执行的操作:n“);scanf(“%c“,fflush(stdin);printf(“n“);switch(choice)海南大学C+语言程序设计报告- 14 -case A:Create();break;case B:Add();break;case C:

9、Find();break;case D:Alter();break;case E:Delete();break;case F:List();break;case G:sort(paixu);break;case H:printf(“*感谢您的使用*n“);printf(“制作人:刘婵,欢迎大家批评指正!n“);exit(0);break;case a:Create();break;case b:Add();break;case c:Find();break;case d:Alter();break;case e:Delete();break;case f:List();break;case g

10、:sort(paixu);break;case h:printf(“*感谢您的使用*n“);printf(“制作人:刘婵,欢迎大家批评指正!n“);exit(0);break;default:printf(“输入有误!请重新输入n“);break;printf(“是否继续进行通讯录操作 ( Y or N?) n“);printf(“请输入指定的选项“);doscanf(“%c“,fflush(stdin);while(yes_no!=Y通讯录系统设计- 15 -while(yes_no=Y|yes_no=y); /初始化void da_kai_wenjian() /打开或建立文件函数 FILE

11、 *fp;int TOTAL;int i;if(fp=fopen(“total“,“rb“)=NULL) fp=fopen(“total“,“wb“);TOTAL=0;fputc(TOTAL,fp);TOTAL=fgetc(fp);fclose(fp);if(fp=fopen(“tongxunlu“,“rb“)=NULL)fp=fopen(“tongxunlu“,“wb“);elsefor(i=0;i100;)通讯录系统设计- 17 - printf(“对不起,您输入的选择错误,请重新输入!n“);printf(“请选择您要执行的操作:n“);scanf(“%d“,fflush(stdin);

12、for(i=0;i0) temp=paixuj;paixuj=paixuj+1;paixuj+1=temp;for(i=0;iTOTAL;i+)printf(“%10st%10st%10st%10stn“,paixui.name,paixui.address,paixui.telno,paixui. QQ);void ge_shi1(x,y) /三种格式输出,美化程序 int i;for(i=0;ix;i+)通讯录系统设计- 25 -printf(“%c“,y); void ge_shi2(x) int i;for(i=0;ix;i+)printf(“ “); void ge_shi3(x)

13、int i;for(i=0;ix;i+)printf(“-“); void ge_shi4(x) int i;for(i=0;ix;i+)printf(“|“); void ge_shi5() ge_shi2(2);ge_shi4(1);ge_shi2(2); void ge_shi6() ge_shi4(1);ge_shi2(53);ge_shi4(1); 设计难点与解决方法主要的问题在于如何能够在程序关闭后仍然可以知道记录的条数,并且保证每次修改记录后,都会记录在文件中。所以我设计了一个文件专门记录存放数据的数量,来保证每个函数的正常运转。海南大学C+语言程序设计报告- 26 -在程序完成

14、后,发现程序过大,我就采取了二进制文件的存储方法,精简程序,使得程序运行更加快捷。四、设计效果与不足之处以下是部分程序截屏:通讯录系统设计- 27 -海南大学C+语言程序设计报告- 28 -该程序部分算法还是过于繁琐,没有体现出精炼的特点。还有就是功能还是过于少,没有完全发挥出所学的知识。部分函通讯录系统设计- 29 -数存在功能的局限性:例如在查找函数中,仅有日常使用的按函数查找,实际应用中会产生不便。需要进一步改进的是:美化界面的函数、查找函数的多样性及对于非法输入的屏蔽。五、对本课程学习体会及建议学习 C+,最重要的就是上机实践,而我们由于条件限制,实践比较少,对于C+的精华理解不深,编写的程序还是太少,造成学习上的缺憾。建议能够在书上多一点程序实例,来让我们体会相关的知识,掌握更多的方法。附录:程序使用说明此部分的目的是让使用者能够获得正确的程序运行结果,防止出现一旦未按设计者要求输入,将导致不可预料的程序退出,无法考核设计者完整设计情况,因此程序使用说明也是一个重要环节,要求说明的清楚、简介、条理性强。说明内容如下:(1) 程序运行环境:是 VC+文件夹设置:所有文件均放置在同一文件夹中:“刘婵 20121614310019”(2) 文件组成说明:在自定义的头文件中,主要放置了一些函数的声明,用户定义类型等,以简便主程序。(3) 操作说明:在程序运行中,所有需要

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号