数据结构课程设计49040

上传人:xins****2008 文档编号:110935234 上传时间:2019-11-01 格式:DOC 页数:26 大小:188.50KB
返回 下载 相关 举报
数据结构课程设计49040_第1页
第1页 / 共26页
数据结构课程设计49040_第2页
第2页 / 共26页
数据结构课程设计49040_第3页
第3页 / 共26页
数据结构课程设计49040_第4页
第4页 / 共26页
数据结构课程设计49040_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《数据结构课程设计49040》由会员分享,可在线阅读,更多相关《数据结构课程设计49040(26页珍藏版)》请在金锄头文库上搜索。

1、课程设计(论文)题 目: 通讯录管理系统 学 院: 数力系 专 业: 数学与应用数学 班 级: 06-1 学 生 姓 名: 学 生 学 号: 指 导 教 师: 张太发 2008 年 7 月 4 日 数据结构 课程设计任务书姓名学号指导教师张太发设计题目通讯录管理系统理论要点1:利用链表结构来建立通讯录管理系统,熟悉和运用线性表的链式存储结构。 2:利用链表的插入、删除进行通讯录中相应操作。设计目标1:利用链表编写程序,实现通讯录中建立、插入、查询、删除、输出、退出。2:给出问题的测试和调试程序,并对结果进行分析。研究方法步骤1:根据电话簿管理系统特点,决定选用链表这种数据结构来作为组成电话号码

2、数据库的基本框架。2:用模块化程序设计理念,对各个功能定义不同函数,分块处理,这样有利于后期调试及今后对功能的完善。3:设计程序的整体功能结构(整体算法的描述)。预期结果成功的建立出通讯录管理系统并成功运行。计划与进步的安排6.30-7.1 两天去图书馆整理资料并上网查询一些的相关内容。7. 2-7.4 三天整理资料并接受指导编写并调试程序。7. 5-7.6 两天编写课程设计的论文并写出总结报告。参考资料1:C语言程序设计 谭浩强著 清华大学出版社;2:数据结构(C语言版)严蔚敏、吴伟民著 清华大学出版社;3:数据结构课程设计案例精编 李建学、李光元、吴春芳著 清华大学出版社; 填写时间200

3、8年7月5日 目 录1摘要.12课程设计题目.2 2.1问题描述和分析. .2 2.2概要设计. .3 2.3详细设计. .4 2.4调试分析. .11 2.5程序使用说明. .11 3结果与分析.12 4通讯录管理系统的源代码.123数据结构课程设计1摘 要根据通讯录管理系统特点及所给题目中的建议,决定选用链表这种数据结构来作为组成电话号码数据库的基本框架。链表是最简单也是最常用的一种动态数据结构。它是对动态获得的内存进行组织的一种结构。选用链表有如下特点:1即用即申请,不会造成内存空间的浪费;2是数据之间既有独立性,又便于数据的相互联系;3便于数据的添加及删除等优点。与静态数据结构相比在插

4、入、删除等方面,动态数据结构大大节省了运行时间提高了运行的效率,使操作更方便更快捷。用模块化程序设计理念,对各个功能定义不同函数,分块处理,这样有利于后期调试及今后对功能的完善。利用有关于链表的一系列操作完成通讯录中的各项操作,如:建立、插入、查询、删除、输出、退出。利用其进行程序编写并通过调试得出可运行的程序完成本次数据结构课程的课程设计题目。关键字:动态数据结构,链表,模块化程序设计,算法,程序2 课程设计题目:通讯录管理系统2.1 问题描述和分析问题描述:随着经济的快速发展,手机已经成为人们日常生活中进行通讯不可或缺的重要组成部分,然而如何清楚掌握自己亲人、朋友、各种服务行业以及自己工作

5、上的同事、客户的电话号码,已经成为我们首当其冲要解决的问题。纸张有着悠久的历史,而且有的人习惯于纸介质的记忆,但是厚厚的一摞名片或者是纸质的通讯录,在人们使用时其不方便性也越来越被人关注。因此如何能很好的储存电话号码,和能很快速的找到号码已经成为这个飞速发展的社会和生活的需要。虽然我们的手机功能日益强大,越来越多的手机已经有很大的内存和很强大的存储功能,但是一旦手机丢失,对于普通手机来讲。其中存储的电话号码也将随之消失,所以能好好利用现在越来越普及的计算机帮我们进行很好的备份以及查找是一个很好的选择。要利用好计算机,就需要好的程序的支持,所以我利用这次机会来设计一个简单的通讯录管理系统。它能很

6、好的实现我们对于通讯录所希望的功能,增加记录、显示所有记录、按名字查找朋友的信息,能很好地协助我们的通讯信息的记录和使用,方便、快捷。问题分析:1. 设计程序的输入及输出输入1系统将提示输入应添加记录姓名,输入姓名后回车,系统提示输入应添加电话号码,输入电话号码后回车,系统提示输入应添加联系地址,输入联系地址回车系统返回初始页面.输入2 系统将显示所有记录,待你找到你要的电话号码后按任意键返回初始页面.输入3系统将提示输入您要查找的姓名,待输入姓名后按回车.如果找到您要的姓名,系统将提示记录找到了,显示姓名、电话号码、联系地址,按任意键返回初始页面。如果没有找到您要的姓名,系统将提示没有响应的

7、记录!按ENTER键继续或按任意键继续输入4系统将提示输入朋友的姓名以删除该记录,待输入姓名后。如果有该记录系统将提示记录找到了姓名:某某,电话号码:136*,联系地址:* 你确定要删除吗?(Y/N)确定删除按Y 否定删除按N 返回初始页面。如果没有该记录系统会自动返回初始页面。输入5系统将提示欢迎来到帮助栏,请选择代号。1:电话簿的功能 2:怎么清楚所有记录 3:在加入新的信息时,原来的信息还在吗 4:你操作时需要注意的事项! 5:退出 这时,输入1系统将会提示这是一个简单的电话簿,刚开始是一个空的电话本。你可以根据提示加入或删除记录,还可以根据需要显示和查询电话号码。按ENTER键继续。输

8、入2系统将会提示你只要删除文件Friend.dat或者退出程序释放储存空间,就可以删除所有记录了。按ENTER键继续。输入3系统将会提示当然啦,加入信息不会改变原来的信息。按ENTER键继续。输入4系统将会提示在查找和删除记录时,应该把要找的朋友的全名写好,否则将无法显示和操作。按ENTER键继续。输入5系统将直接返回初始页面。输入6系统将会提示 Press any key to continue ,按任意键将退出系统。 2.2 设计方案与概要设计1.通讯录管理系统的存储结构采用链表结构,各功能具有独立自定义函数,链表是最简单也是最常用的一种动态数据结构。它是对动态获得的内存进行组织的一种结构

9、。2.方案设计根据通讯录管理系统特点,决定选用链表这种数据结构来作为组成电话号码数据库的基本框架。3.设计程序的整体功能结构(整体算法的描述)1. 每一条记录包括一个人的姓名、电话号码、联系地址。2. 输入功能:可以循环记录的输入。3. 显示功能:完成全部记录的显示。4. 查找功能:完成按姓名查找电话记录,并显示。5. 排序功能:按录入的顺序进行排序。6. 保存功能:将电话记录保存在任何自定义的文件中 。7. 读取功能:将保存在文件中的电话记录读取出来。8. 有一个清晰美观界面来调用各个功能2.3 详细设计1.选择页面printf( 请选择代码(1,2,3,4,5,6):); scanf(%d

10、,&nChoice); HandleChoice_f(nChoice); /*接受用户的选择*/ while(nChoice!=6); return 0;2. 调用函数void HandleChoice_f(int nChoice) /*根据用户选择nChoice调用相应的函数*/ switch(nChoice) case 1: AddRecord_f(); break; case 2: DisplayList_f(); break; case 3: SearchByName_f(); break; case 4: DeleteRecord_f(); break; case 5: Help_f

11、(); break;3.利用printf进行函数的输出,scanf进行函数的输入,录入电话记录的的基本信息。void AddRecord_f() Node *strpNew;/*为新记录定义临时指针变量*/ strpNew=(Node *)malloc(sizeof(Node);/*开辟空间存放新记录数据*/ getchar(); printf(姓名:); gets(strpNew-szName); printf(电话号码:); gets(strpNew-szPhoneNum); printf(联系地址:); gets(strpNew-szAddress); InsertNode_f(strp

12、New); system(cls);4.插入 Node *InsertPoint_f(char *szName) /*根据新增记录的姓氏,返回其将插入的正确位置*/ char szTempName20; Node *strpTemp; int nTemp; if(strpHead-next!=NULL) strpCurrent=strpHead; strpTemp=strpCurrent-next; strcpy(szTempName,strpTemp-szName); nTemp=strcmp(szName,szTempName); while(nTemp0)&(strpCurrent-ne

13、xt!=NULL) strpCurrent=strpTemp; if(strpCurrent-next!=NULL) strpTemp=strpCurrent-next; strcpy(szTempName,strpTemp-szName); nTemp=strcmp(szName,szTempName); 5.查找 void SearchByName_f() char szSearch20; strpCurrent=strpHead; system(cls); getchar(); printf(n输入您要查找的姓名:); gets(szSearch); while(strpCurrent!=NULL)&(strcmp(strpCurrent-szName,szSearch)!=0) strpCurrent=str

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

当前位置:首页 > 大杂烩/其它

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