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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

课程设计报告訾振恒.docx

1、课程设计报告訾振恒安徽理工大学数据结构课程设计说明书题目: 通讯录 院 系: 计算机科学与工程学院 专业班级: 电子仪器10-1班 学 号: 2010302936 学生姓名: 訾振恒 指导教师: 张柱 2011年 12月 20 日安徽理工大学课程设计(论文)任务书 计算机科学与工程学院 学 号2010302936学生姓名訾振恒专业(班级)电子10-1设计题目 通讯录设计技术参数系统平台:window7开发工具:Microsoft Visual C+ 6.0设计要求(1) 设每个记录有下列数据项:电话号码、用户名、地址;(2) 从键盘输入各记录,用单链表实现;(3) 采用单链表存储结构;(4)

2、查找并显示给定电话号码的记录;(5) 通讯录信息文件保存;(6) 要求人机界面友好,使用图形化界面;工作量课程设计报告要求不少于3000字。源程序要求不少于300行工作计划11月15日确定认知实习的题目为通讯录。11月16日到11月20日查找资料确定用单链表来存储实现。11月21日到12月5日进行代码编写。12月6日到12月10日进行调试和优化。12月11日到12月12日撰写报告。参考资料1何钦铭 颜晖.C语言程序设计.高等教育出版社,20082秦锋.数据结构.清华大学出版社,20113王娣. C语言程序开发范例宝典.人民邮电出版社出版社,2010指导教师签字教研室主任签字 2011年 11

3、月 8 日 学生姓名: 訾振恒 学号 2010302936 专业班级: 电子10-1 课程设计题目: 通讯录 指导教师评语: 成绩: 指导教师: 年 月 日安徽理工大学课程设计(论文)成绩评定表目录1 问题描述 12 需求分析 13 总体设计 23.1 通讯录单链表变量的定义 23.2 系统流程图 24 详细设计 34.1通讯录链表的建立 34.2 代码设计 45 总结 11参考文献 121 问题描述(1)题目内容:设计散列表实现通讯录查找系统。(2)基本要求:(a) 设每个记录有下列数据项:电话号码、用户名、地址;(b) 从键盘输入各记录,分别以电话号码为关键字建立单链表;(c) 采用单链表

4、存储结构;(d) 查找并显示给定电话号码的记录;(e) 通讯录信息文件保存;(f) 要求人机界面友好,使用图形化界面;(3)设计目的:通过本次课程设计,了解通讯录的一些基本功能。掌握利用单链表进行插入,查找,用头插法建立单链表。2 需求分析 经过本次的课程设计,我认为通讯录主要实现的功能如下:(1)添加信息:一个通讯录应该有其基本的添加功能。在程序设计时,我通过一个具有添加功能的函数,实现了个人信息的添加,如:姓名,电话号码,地址。(2)删除信息:当你不需要删除某条通讯录信息时,可以选择删除功能函数,即可完成,方便简单。(3)查找:一个通讯录应该具有令一基本功能就时查找,本设计时按电话号码为关

5、键字查找的,只要你输入要查找人的电话号码就可出来相应的个人信息。(4)打印:当你要输出通讯录中的全部信息时,只要选择打印函数,再执行后即可完成打印功能。(5)保存:通讯录删除或添加等功能时,都是需要保存的。所以每次操作完一个项目时,运行一次即可完成保存到文件的功能。(6)读取:选择读取功能函数,将保存到文件中的信息读到通讯录链表中。(7)退出:当你做完你要做的事情之后,就可以选择退出函数退出该界面。在这次设计中用到了一些变量和函数,例如init(),PrintList(),Insert(),Delete(),Search(),Save(),Load(),Create()等。3 总体设计3.1

6、通讯录单链表变量的定义char phone15char name30;char addr50; char city30;并通过L=(LNode *)malloc(sizeof(LNode)获取电话号码,姓名,地址,城市的内存空间。 操作集合:int CreateList(LinkList &L,int n);/创建通讯录int init(LinkList &L);/初始化通讯录单链表 int ListInsert(LinkList L,int i) ;/添加通讯录信息 int ListDelete(LinkList L) ;/删除 void ListSearch(LinkList L, cha

7、r x);/以姓名查找 void ListSave(LinkList L);/保存到指定的文件中void ListLoad(LinkList L);/从指定的文件中读取void PrintList(LinkList L);/将通讯录中的信息全部输出3.2 系统流程图系统流程图如图1所示。 图1 算法流程图4 详细设计4.1通讯录链表的建立链表是一个动态结构,他不需要事先分配空间,因此生成链表的过程,是一个节点逐个插入的过程。为了使建表方便,主要有头插法和尾插法两种建表方式。本次试验是采用头插法建立通讯录链表。int CreateList(LinkList &L,int n)LinkList p

8、;L = (LinkList) malloc (sizeof (LNode);L-next = NULL; / 先建立一个带头结点的单链表for (int i = 0; i n; i+) p = (LinkList) malloc (sizeof (LNode); /分配链表空间结点 cout(p-data).name); cout(p-data).phone); cout(p-data).addr); cout(p-data).city); p-next = L-next; L-next = p; / 插入return 0;4.2 代码设计(1)初始化单链表int init(LinkList

9、 &L) L=(LNode *)malloc(sizeof(LNode); /为链表分配内存空间 if(!L) return(ERROR); L-next=NULL; return OK;(2)添加通讯录信息信息 添加信息算法思想:通过键盘输入电话号码、姓名、地址、城市。再判断一下,如果表中已经有这信息时,退出,没有的话,就把该信息添加进去。int ListInsert(LinkList L,int i)LinkList p=L;LinkList q=(LinkList)malloc(sizeof(LNode); /为插入的变量分配结点空间int count=0;while(count!=i-

10、1) /利用循环查找要插入结点的位置p=p-next; count+;cout(q-data).name); cout(q-data).phone); cout(q-data).addr); cout(q-data).city); q-next=p-next; /修改结点前后指针完成插入p-next=q;return (0); 添加个人信息的界面如图1所示。图1添加信息界面(3)删除记录 删除算法思想:首先要确认删除的位置,并判断要删除的位置是否存在,利用循环结构进行进行查找删除的位置,若找到删除成功,否则删除失败。 int ListDelete(LinkList L) int i; cout

11、i;LinkList p=L;LinkList q;int count=0; while(count!=i-1) /利用循环查找要删除结点的位置 p=p-next; count+;q=p-next; /修改要删除结点前后指针完成删除p-next=q-next;return 0;删除信息的界面如图2所示。 图2 删除界面(4)查找 查找算法思想:输入要查找的姓名,利用循环结构,把通讯录中的的信息与所要查找的姓名比较,若找到则查找成功,否则查找失败。 void ListSearch(LinkList L, char x)LinkList p;p=L-next;while(p&strcmp(p-da

12、ta.name,x)!=0) /利用循环把要查询的姓名与已有信息相比较进行查找p=p-next; cout现在输出姓名n; coutdata.nameendl; cout现在输出号码n; coutdata.phoneendl; cout现在输出地址n; coutdata.addrendl; cout现在输出城市n; coutdata.citynext; while(p) /利用循环把通信录中的信息全部输出 cout现在输出姓名n; coutdata).nameendl; cout现在输出号码n; coutdata).phoneendl; cout现在输出地址n; coutdata).addre

13、ndl; cout现在输出城市n; coutdata).citynext; coutnext;FILE*fp;if(fp=fopen(f1.txt,a+)=NULL) /打开文件 coutcan not open filen; exit(0);coutdata.name,fp); fputs( ,fp); fputs(p-data.phone,fp); fputs( ,fp); fputs(p-data.addr,fp); fputs( ,fp); fputs(p-data.city,fp); fputs(n,fp); p=p-next;fclose(fp); /关闭文件getch();保存到

14、文件的信息界的面如图5所示。 图5保存到文件的界面(7)读取 void ListLoad(LinkList L)LinkList p;FILE*fp;L-next=NULL;if(fp=fopen(f1.txt,r+)=NULL) /打开文件coutcan not open filen; exit(1);coutdata.name,p-data.phone,p-data.addr,p-data.city); printf(%s%-10s%-10s%-10sn,p-data.name,p-data.phone,p-data.addr,p-data.city); if(!p) coutmemory

15、 malloc fail; return; fclose(fp); getch();读取到链表的信息界的面如图6所示。图6读取到链表的信息界面(9)退出退出的基本思想:选择0表示退出。然后按任意键退出。退出的面如图7所示。图7退出的界面5 总结 通过对数据结构这门课的学习,我了解到:“数据结构”在计算机科学中是一门综合性的专业基础课。数据结构的研究不仅涉及到计算机硬件(特别是编码理论、存储装置和存取方法等)的研究,而且和计算机软件的研究有着更密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题。在研究信息检索时也必须考虑如何组织数据,以便使查找和存取数据元素更为方便。可

16、以认为数据结构是介于数学、计算机硬件和计算机软件三者之间的一个核心内容,是从事计算机科学研究及其应用的科技工作者必须掌握的重要内容。经过这次课程设计,我体会到自己所学的东西太少了,很多都不知道。在进行文件保存和把文件读入到通讯录链表中时遇到了困难,经过多方咨询和查资料才解决。做这课程设计让我认识到仅仅看书是不够的,要经常动手写程序,上机调试是最重要的。在课程设计中我更体会到:一个好的程序应该是一个所占空间小、运行时间短、其他性能也好的算法。然而,实际上很难做到十全十美,原因是上述要求有时相互抵触。要节约算法的执行时间往往要以牺牲更多的存储空间为代价;而为了节省存储空间又可能要以更多的时间作为代

17、价。因此,只能根据具体情况有所侧重:如果程序的使用次数较少,则应该力求算法简明易懂,而易于转换为上机程序;如果程序反复多次使用,则应该尽可能选用快速的算法;如果待解决的问题数据量极大,机器的存储空间较小,则在编写算法时应该考虑如何节省空间。以后在编写程序时就应该注意到所编写程序的时间复杂度,以及是否运用了良好的算法,而不能只是象以前编写程序时单纯使用C+的知识,要充分考虑程序的性能,争取编写出更优良的程序来。只有经过长期的锻炼才能在编程能力上有一定的提高。参考文献1 何钦铭,颜晖.C语言程序设计.高等教育出版社,20082秦锋.数据结构.清华大学出版社,20113王娣. C语言程序开发范例宝典

18、.人民邮电出版社出版社,20104 王娣 韩旭等编著 C语言从入门到精通 清华大学出版社 20105 霍顿 著 杨浩 译C语言入门经典(第4版)清华大学出版社 20086 国家863中部软件孵化器 C语言从入门到精通 人民邮电出版社 20107 哈比森等著 C语言参考手册 机械工业出版社 20118 王敬华 林萍 张清国 编著 C语言程序设计教程(第二版)清华大学出版社 20099 戴晟晖等编著 从零开始学C语言 电子工业出版社 201110 詹春华 杨沙 主编 C语言程序设计教程 科学出版社 201111 汉利 科夫曼 著 潘蓉 等译 C语言详解 人民邮电出版社 201012 汤朵 吉米拜尔

19、 著 杨涛等 译 C程序设计语言(第2版新版)机械工业出版社 200413 彭伟 编著 C语言程序设计实训100例 电子工业出版社 200914 张红梅,于明.Visual C+程序设计实验教程.北京:中国铁道出版社,200615 严华峰等.Visual C+程序设计案例精编.北京:中国水利水电出版社,200416 Eugene Olafsen.MFC Visual C+6.0编程技术内幕.北京:机械工业出版社,200617 严蔚敏,吴伟民.数据结构(C语言版).北京:清华大学出版社,200118 陈向群.数据结构.北京:人民邮电出版社,200119王晓东.数据结构与算法设计.北京:电子工业出版社,200220胡学钢.数据结构.北京:高等教育出版社,2009

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

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