资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
XXXX大学计算机与信息工程学院课程设计报告课程名称: 数据结构 专 业: 信息管理与信息系统 班 级: XXXX 学 号: 1234567890 姓 名: 张三 题 目: 通讯录管理系统 指导教师: 李四 2009年1月数据结构2008级 课程设计任务书班级XXXX姓名张三学号1234567890题目通讯录管理系统编写一个通讯录管理系统,完成输入、显示、查找、删除等功能。时间2009年1月102009年1月14日目的数据结构(英)是一门实践性很强的软件基础课程,为了学好这门课,每个学生必须完成在学习结束时完成一个较综合的实验。通过本课程的课程设计,要求在数据结构的选择和应用、算法的设计及实现等方面加深对课程基础内容的理解,同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。内容和要求在VC+开发环境下完成一个小型软件系统的开发(具体内容详见附件上的题目)。所设计的系统应包含输入输出等基本功能,针对要求解决的问题,考虑各种可能的数据结构,并且力求从中出最佳方案(必须连同算法一起考虑),确定主要的数据结构及全程变量。对引入的每种数据结构和全程变量要详细说明其功能、初值和操作特点。算法设计分概要设计和详细设计,概要设计着重解决程序的模块设计问题,这包括考虑如何把被开发的问题程序自顶向下分解成若干顺序模块,并决定模块的接口,即模块间的相互关系以及模块之间的信息交换问题.详细设计则要决定每个模块内部的具体算法,包括输入、处理和输出,相当于C语言的过程或函数设计。能够顺利调试通过并运行所编制的程序,并且能够读懂所选题目的源程序,讲解程序中的主要功能部分,以证明该程序不是其他人给编写的或从其他的书籍中原封不动照抄照搬。根据题目的基本需求,画出流程图,编写出相应程序,并写出详细的设计说明书,最后上机调试通过,并进行验收,交设计文档和程序的源代码。成绩 指导教师(签名):数据结构课程设计报告一、问题描述编写一个通讯录管理系统。本系统应完成一下几方面的功能:1)输入信息enter();2)显示信息display( );3)查找以姓名作为关键字 search( );4)删除信息delete( );5)存盘save ( );6)装入load( ) ;基本要求:1)每条信息至少包含 :姓名(NAME )街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项。2)作为一个完整的系统,应具有友好的界面和较强的容错能力。二、系统设计说明1、数据结构设计(1)系统用到哪些数据类型。系统用到的数据类型有:1、基本数据类型:整型、字符型;2、构造数据类型:数组、结构。(2)系统包括哪些功能模块,模块功能描述,各模块间的层次结构(即相互调用关系)以及模块之间的信息交换问题。系统由一个main函数、多个标准库函数和七个自定义函数组成。函数creat、display、search、append、modify、cancel由主函数main调用,goon函数被output、search、append、modify、cancel调用。首先读取一个通讯录名称,如果文件打开成功,则继续对文件进行各种操作。如果文件打开失败,则选择建立新的通讯录或者退出程序。选择建立新的通讯录,调用creat函数建立一个文件即新的通讯录,输入学生的信息,包括姓名、街道、城市、邮编和国家,保存在新建的通讯录中。然后选择1-5,分别调用display、search、append、modify、cancel函数完成相应的输出、查找、增添、修改和删除功能。每次调用函数如果改变了数据,结果都会保存在文件中。完成通讯录后选择0调用exit函数退出程序。2、算法设计各个模块内部的具体算法,包括输入、处理和输出,相当于C语言的过程或函数设计。整体算法描述:建立一个结构来存放学生信息,再将该结构存入文件中,按要求通过调用各个函数对文件内的数据进行操作及处理(程序图另附页)。各个分函数算法描述:由主函数调用creat函数建立一个新的文件用于存储通讯录。主函数void main调用 void display输出信息;主函数void main调用 void search查找学生记录;主函数void main调用 void append添加记录;主函数void main调用 void modify修改已有记录;主函数void main调用 void cancel进行删除操作。调用函数通过switch语句实现,先读取文件,将文件里的数据与所输入的数据对比,如果相等就进行相关操作,如果不相等回到主菜单。goon函数由各个分函数调用,用于判断上一步是否继续,若是则继续,若否则返回主菜单。主函数:void main()char m; char jian;FILE *fp; /* 文件指针 */ printf(n 尊敬的用户,您好!欢迎使用2009winter版简易通讯录!n);printf(n 请输入需要读取的文件名称:);scanf(%s,&filename);fp=fopen(filename,r+); if(fp=NULL) printf(n *提示:文件还不存在,是否建立新的通讯录?n);printf(n 是请按1,退出本通讯录请按除1以外任意键!n);printf(n 请输入您的选择:);scanf(%s,&jian); 调用函数建立新通讯录if(jian=49)creat();else printf(nn Polly感谢您的使用!再见!n);exit(0); if(fp) printf(n 提示:文件已经打开,正在导入记录.n); love :while(1) printf(n =); printf(n * 添加新的记录,请按1);主菜单显示 printf(n * 查找已有记录,请按2); printf(n * 修改已有记录,请按3); printf(n * 删除已有记录,请按4); printf(n * 输出已有记录,请按5); printf(n * 退出本通讯录,请按0); printf(n =);printf(n 请输入您的选择:); scanf(%s,&m); if(m=48&m=53) switch(m) case 49:goon();调用函数添加新记录if(z!=57) append();else goto love;break; case 50: goon();调用函数查找记录 if(z!=57) search();else goto love;break; case 51: goon();调用函数修改记录if(z!=57) modify();else goto love;break; case 52: 调用函数删除记录 goon();if(z!=57) cancel();else goto love;break; case 53: 调用函数输出记录 goon();if(z!=57) display();else goto love;break; case 48: printf(n *警告:您确定要退出吗?nn 退出,按0;n 不退出按任意非零键返回主菜单。n);printf( 请输入您的选择:); scanf(%s,&m); if(m=48)退出程序 printf(n Polly感谢您的使用!再见!n);exit(0); else goto love; printf(nn 操作完毕,请再次选择!);else错误提示printf(nn *选择错误,请选择0-5之间的整数!); 三、测试用例四、数据流程图1、系统整体的流程图开始打开或者建立新文件1 添加新的记录2 查找已有记录3 修改已有记录4 删除已有记录5 输出已有记录0 退出本通讯录返回主菜单或对数据操作后返回主菜单同上返回主菜单或退出程序同上同上同上2、具体算法的流程图开始打开文件失败调用create建立新通讯录成功表达式6表达式的值为16表达式的值为4表达式的值为5表达式的值为3表达式的值为2表达式的值为0调用cancel函数调用modify函数调用display函数调用search函数退出程序1结束表达式 调用append函数0 5 2 41 30 1 1继续6添加新记录并保存到文件 6表达式为1表达式为20 1 2
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号