好文档 - 专业文书写作范文服务资料分享网站

淮海工学院-计算机工程学院-数据结构课程设计-通讯管理系统

天下 分享 时间: 加入收藏 我要投稿 点赞

淮 海 工 学 院 计算机工程学院

课程设计报告

设计名称: 数据结构课程设计

选题名称: 通讯录管理系统 姓 名: 学 号: 专业班级: 系 (院): 计算机工程学院 设计时间: 2012.12.24~2013.1.4 设计地点: 软件工程实验室、教室

指导教师评语: 成绩: 签名: 年 月 日 数据结构课程设计报告 第 1 页,共 页

1.课程设计目的 1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; 3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。 2.课程设计任务与要求: 任务 根据教材《数据结构-C语言描述》(耿国华主编)和参考书《数据结构题集(C语言版)》(严蔚敏、吴伟民主编)选择课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。 设计题目从任务书所列选题表中选取,每班每题不得超过2人。 学生自选课题 学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。学生自选课题需在18周前报课程设计指导教师批准方可生效。 要求: 1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2、.设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。 3、程序设计语言推荐使用C/C++,程序书写规范,源程序需加必要的注释; 4、每位同学需提交可独立运行的程序; 5 、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算); 6、课程设计实践作为培养学生动手能力的一种手段,单独考核。 数据结构课程设计报告 第 2 页,共 页

3.课程设计说明书 一 需求分析 该程序所做的工作是通讯录的管理系统,实现对联系人信息的添加、查询、浏览、删除、修改等功能。程序规定: (1)建立通讯薄,添加联系人的信息到此通讯薄,包括姓名、性别、城市、邮编、手机号、QQ号、Email; (2)查询功能,按姓名、手机号查询联系人信息; (3)其他功能:现有联系人信息的浏览、修改、删除。结果保存在文件中。 二 概要设计 ? 系统用到的抽象数据类型定义: 1. ADT LinearList{ 数据元素:D={ 关系:ai|ai?D0,i=1,2,…,n,n?0, D0为某一数据对象 } S?{?ai,ai?1?|ai,ai?1?D0,i?1,2,?,n?1}基本操作: (1) InitList(L); (2) DestroyList(L); (3) ClearList(L); (4) EmptyList(L); (5) ListLength(L); (6) Locate(L,e); (7) GetData(L,i); (8) InsList(L,i,e); (9) DelList(L,i,&e); }ADT LinearList ? 系统中子程序及功能要求: 1. InitList(L):初始化联系人的线性表。 2. CreatSeq(L,n):建立一个顺序存储的线性表。 3. InsList(L,i,e):插入联系人信息。 4. Add(L):添加联系人信息。 5. SeqSearch(l,k):顺序查找联系人信息。 6. NameSearch(L,k):按姓名查询联系人信息。 7. NumberSearch(L,k):按手机号查询联系人信息。 8. NameSort(r[],l):按姓名进行排序。 9. Display(r[]):浏览功能函数,按姓名显示所有联系人信息。 10.DelList(L,I,&e):删除联系人信息。 11.Modifymenu(r[],k):修改联系人信息。 12.mainmenu():主菜单,包含添加、查询、浏览、删除、修改、退出功能。 13.searchmenu():查询菜单,包括按姓名、手机号查询和返回主菜单功能。 14.Output(r[],i):输出某联系人的信息; ? 各程序模块之间的调用关系(子程序编号见上): 主函数可调用子程序12 数据结构课程设计报告 第 3 页,共 页 子程序12可调用子程序4、13、9、10、11 子程序4可调用子程序2、3、8、9 子程序13可调用子程序6、7 子程序9可调用子程序8 子程序10可调用子程序9 子程序11可调用子程序9 三 详细设计 ? 添加算法的伪代码描述如下: void InitList(SeqList L)/*初始化线性表 { 线性表长度赋值为0; } void CreatSeq(SeqList L,int n)/*建立一个线形表 { 输出建立联系人的个数; 输入个数; for(i=0;i<联系人;i++) 输入联系人的姓名、性别、城市、邮编、手机号、QQ号、Email; 线性表长度赋为n; } int InsList(SeqList *L,int i,RecordType r[]) { if(i<0||(i>L->last+1)) { 输出插入位置i不合法; 返回ERROR; } if(L->last>=maxsize) { 输出表已满无法插入; } for(k=L->last;k>=i-1;k--) k位置的信息移到k+1上; 赋i-1上的值为输入的信息; 表长+1; } int Add(SeqList L,) {调用函数CreatSeq(L)得到一个联系人表; 调用函数NameSort(r[],l)对联系人信息进行排序; 调用函数Display(r[])输出当前联系人的信息; 输出请输入添加的联系人的信息; 输入添加的联系人的信息; 调用函数InsList (&L,i,r)添加联系人; 数据结构课程设计报告 第 4 页,共 页 调用函数NameSort(r[],l)对联系人信息进行排序; 调用函数Display(r[])输出当前联系人的信息; } int SeqSearch(SeqList L,KeyType k) { 赋记录表[0]的关键值等于k; i=表长; while([i]关键值不等于k) i--; 返回(i); } void NameSearch(SeqList L) { 输出请输出要查找的联系人的姓名; 输入联系人的姓名char name[]; 调用函数SeqSearch(L,name)得到联系人在表的位置a; if(a==0) 输出该联系人不存在; else 调用函数Output(); } void NumberSearch(SeqList L) { 输出请输出要查找的联系人的手机号; 输入联系人的手机号int phone; 调用函数SeqSearch(L,phone)得到联系人在表的位置a; if(a==0) 输出该联系人不存在; else 调用函数Output(); } void NameSort(RecordType r[],int length) { for(i=2;i<=length;i++) { r[i]作哨兵; j=i-1; while(哨兵的关键值

淮海工学院-计算机工程学院-数据结构课程设计-通讯管理系统

淮海工学院计算机工程学院课程设计报告设计名称:数据结构课程设计选题名称:通讯录管理系统姓名:学号:专业班级:
推荐度:
点击下载文档文档为doc格式
8yz1a4dwiy8qp21137z0
领取福利

微信扫码领取福利

微信扫码分享