欢迎来到天天文库
浏览记录
ID:42541146
大小:423.98 KB
页数:12页
时间:2019-09-17
《一、课程设计目的》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、、课程设计冃的较深入地理解算法和数据结构的概念、掌握数据结构与算法的实现方式,比较不同数据结构和算法的特点,根据实际问题的不同选择相应的数据结构。通过课程设计,提高用计算机解决实际问题的能力,提高独立实践的能力,将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力。提高适应实际,实践编程的能力。在实际的编程和调试综合试题的基础上,把高级语言程序设计的思想、编程巧和解题思路进行总结与概括,通过比较系统地练习达到真正比较熟练地掌握计算机编程的基本功,为后续的学习打下基础。了解-•般程序设计的基本思路与方法。二、课程设计题目(问
2、题)描述与要求问题描述:运用C语言设计一个通讯录管理系统,可以进行通讯录信息的录入、查询、删除、列表、储存、读取等功能。功能要求:具有以下功能模块:录入功能能够在原有数据的基础上添加新的数据;查询功能能够按照姓名从现有数据中搜索指定数据;删除功能:能够按照姓名删除现有数据中的指定数据;列表功能:能够将现有数据全部显示岀来;储存功能:能够将数据保存起来以便以后使用;读取功能:能够将原有的数据调出來以便使用。能够提供基本的错误处理。三、系统分析与设计系统总体设计:由于此程序须经常再原有数据的基础上添加、删除、修改原有结构,所以整体采用双链表
3、的数据结构。程序开始运行后,主程序分为三部分:1、显示欢迎界面2用一个do循环,循环体内为两部分:显示程序主菜单和检测操作项选择。根据操作项选择转入到相应的功能模块,完成后返回主程序。如果操作选择不是退出,则继续执行此循环体。若选择的操作为退出,则跳出循环。3结束操作,包括屏幕、内存清理等操作。系统总体框架流程:▼结束系统详细设计:主函数先用printf语句显示由字符组成的欢迎界面然后由系统getch函数暂停程序执行按任意键进入放入do循环内的由printf输出的主菜单,然后提示输入操作选择根据输入的值进入switch语句选择分支程序。
4、选择为1时,调用Enter输入功能:在循环体中首先显示当前己经存在的数据个数,然后显示提示:输入要操数据,依次为姓名、电话、邮编、然后检测是否继续输入。如果继续输入,重复执行循环体。如果停止输入,则退出循环。返回主程序。选择为2时,调用Delete删除功能:先检测数据库是否为空,若空,显示出错信息,若不为空,提示输入要删除的数据的姓名;然后遍历双链表,检测到和符的项目,删除节点,修改前后节点指针,释放空间。显示操作结果,然后返回主程序。选择为3时,调用Search检索功能:先检测数据库是否为空,若空,显示出错信息,若不为空,提示输入要检
5、索的数据的姓名;然后遍历双链表,检测到相符的项目。输岀结果。选择为4时,调用List列表功能先检测数据库是否为空,若空,显示出错信息,若不为空,遍历双链表,输岀每个数据项。选择为5时,调用Load读取功能,先提示输入要读取的文件名,然后释放原有双链表的空间,然后读取头文件,再读取其余节点,修改头尾节点,链表长度。选择为6时,调用功能Save存盘功能,先检测数据库是否为空,若空,显示出错信息,若不为空提示输入要储存的文件名,依次存入每项数据。选择为7时,退出循环。选择为8时,显示帮助菜单。数据结构:包括三个结构体:1结构体data包括要储
6、存的姓名、电话、邮编数据项。2结构体dNode包data项、指向此dNode节点前后节点的指针、3结构体adLinklist包括指向双链表头尾节点的指针及双链表的数据长度。关键算法的流程:(Enter模块)源程序如下:/*程序说明与类型定义*/f■丄■kL#kL#kL#rJrprywrywrp•卜•卜rj*rj*•卜•卜•卜•卜rj*rj*rj*rj%rj*rj*rj*rj^rj^■評rj^♦評rj^♦評rj*rj*rj*rj*rj*//*通讯录管理系统包括六大模块*//*ENTER加入一个新的数据*//*DELETE删除一个原有的数据
7、*//*SEARCH查询已有的数据*//*LIST列出所有的数据*/产SAVE存盘*//*LOAD读取*/#include#include#include/*包涵头文件*/#ineludestructAddress/*定义数据项*/charname[10];charphone[10];charpostcost[10];};structdNode{structAddressdata;structdNode水prior;structdNode木next;};stru
8、ctadLinklist{structdNode水head;structdNode*rear;intlength;};/*定义节点*//*定义双链表*/Enter(structadLinklist*stu)
此文档下载收益归作者所有