《数据结构》课程设计报告2014-2015学年第二学期《数据结构》课程设计报告题目:个人电话号码查询系统专业:、班级:、姓名:、指导教师:、成绩:计算机与信息工程系2014年12月15日学号《数据结构》课程设计报告目录1设计内容及要求.................................................................................................11.1课程设计目的..........................................................................................11.2设计内容及要求......................................................................................12概要设计.............................................................................................................22.1设计功能..................................................................................................22.2个人电话号码查询系统功能说明图......................................................22.3个人电话号码查询各模块调用关系......................................................33设计过程或程序代码.........................................................................................33.1管理系统功能模块设计..........................................................................33.2数据结构及各模块分析..........................................................................43.2.1基本数据类型(结构体)..........................................................43.2.2附助常量,变量...........................................................................43.2.3函数...............................................................................................44设计结果与分析.................................................................................................54.1整体大纲..................................................................................................54.2启动程序截图,代码..............................................................................64.2.1代码分析.......................................................................................64.3进入主菜单截图,代码..........................................................................84.3.1代码分析.......................................................................................84.4新添记录截图,代码..............................................................................94.4.1新添模块代码............................................................................104.5查找记录截图,代码............................................................................114.5.1代码分析.....................................................................................124.6删除记录截图,代码............................................................................134.6.1代码分析.....................................................................................134.7保存文件,不保存文件........................................................................164.8总结........................................................................................................165参考文献...........................................................................................................17《数据结构》课程设计报告11设计内容及要求1.1课程设计目的通过设计一个《个人电话号码查询系统》,进一步熟悉C中的概念、基本知识和技能利用所学的基本知识和技能解决简单的面向对象的程序设计问题。了解系统开发的需求分析、层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C的理解与VisualC++环境的使用:逐步熟悉程序设计的方法,并养成良好的编程习惯。1.2设计内容及要求编写一个个人电话号码查询系统把所学数据结构知识应用到实际软件开发中。设计内容:本系统应完成一下几方面的功能:1)输入信息enter();2)显示信息display();3)查找以姓名作为关键字search();4)删除信息delete();5)存盘save();6)装入load();设计要求:1)每条信息至包含:姓名(NAME)电话(TELL)地址(CITY)QQ几项;2)作为一个完整的系统,应具有友好的界面和较强的容错能力。3)上机能正常运行,并写出课程设计报告。《数据结构》课程设计报告22概要设计2.1设计功能A.添加:系统将提示用户输入新添加人员信息,输入到文件中,人员信息数据包括姓名(name),电话(tell),城市(city),QQ。B.删除:首先由用户输入要删除的人员的姓名,然后调用删除函数,删除该人员的所有相关资料.C.显示所有人员信息:该功能将显示已经保存的所有人员的姓名,街道,城市,邮编及国家.D.查询:可由用户输入要查找的人员姓名,然后系统用查找函数查找,接着系统使用相关文件命令输出所查找的人员的全部信息.E:退出系统:关闭通讯录管理系统。2.2个人电话号码查询系统功能说明图图1《数据结构》课程设计报告32.3个人电话号码查询各模块调用关系图23设计过程或程序代码3.1管理系统功能模块设计新添联系人模块查询菜单模块删除联系人模块保存退出模块不保存退出模块《数据结构》课程设计报告43.2数据结构及各模块分析3.2.1基本数据类型(结构体)structrecord//定义结构体record{charname[20];chartel[20];charcity[20];charQQ[20];}student[500];structslnode//定义一个双向链表{recorddata;structslnode*next;structslnode*prior;};3.2.2附助常量,变量typedefslnode*linklist;//双向链表指针linklistl;//定义链表intnum=0;//个人信息数量控制FILE*fp;//文件指针,控制文件读写3.2.3函数voidmainmenu();//主菜单voidsearchmenu();查找记录菜单voidenter();//具体输入记录《数据结构》课程设计报告5voidsearch();//具体查找记录voiddisplay();//具体显示记录voidload();//导入文件voidsave();//保存文件voiddelet();//删除记录voidlistinsert();//插入链表voidinitlist();//初始化4设计结果与分析4.1整体大纲可以分成六大模块,对模块一一分析,采用,截图,代码解释进行说明,输入信息模块,显示信息模块,查找以姓名作为关键模块,删除信息模块,存盘模块,装入模块;《数据结构》课程设计报告64.2启动程序截图,代码图34.2.1代码分析voidload()//从文件导入{if((fp=fopen(student.bin,rb))==NULL)//打开文件进行读的操作{printf(\n\t\t********************\n);printf(\n\t\t个人通讯录文件不存在\n);printf(\n\t\t********************\n);printf(\n\n);if((fp=fopen(student,wb))==NULL){printf(\n\t\t**建立失败**);exit(0);}《数据结构》课程设计报告7else{printf(\n\t\t正在建立.............);printf(\n);printf(\n\t\t个人通讯录文件建立完毕);printf(\n\t\t按任意键进入主菜单);getch();return;}exit(0);}fseek(fp,0,2);if(ftell(fp)0){rewind(fp);for(num=0;!feof(fp)&&fread(&student[num],sizeof(structrecord),1,fp);num++);printf(\n\t\t文件导入成功);printf(\n\t\t按任意键返回主菜单);getch();return;}printf(\n\t\t文件导入成功);printf(\n\t\t通讯录文件中无任何纪录);printf(\n\t\t按任意键返回主菜单);getch();return;}《数据结构》课程设计报告84.3进入主菜单截图,代码图44.3.1代码分析voidmainmenu()//主菜单{charchoic;system(cls);printf(\n\t\t***************欢迎进入个人通讯录查询系统***************);printf(