欢迎来到天天文库
浏览记录
ID:6380497
大小:214.00 KB
页数:15页
时间:2018-01-12
《通讯录系统——数据结构课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构课程设计通讯录目录1、课程设计的目的:12、需求分析:11.要求:12.详细功能:13、课程设计报告内容:11.通讯录管理系统调用关系图:12.设计结构体及函数表:23.实现主程序和各模块的调用关系:24、详细设计:31.各个操作的算法实现:32.程序清单:(见附录)45、参考文献:56、部分运行结果界面:51.调试分析:72.调试中遇到的问题:77、总结:88、附录:(程序)8141、课程设计的目的:用〈〈数据结构〉〉中的双向链表作数据结构,结合C语言基本知识。编写一个通讯录管理系统。以把所学数据结
2、构知识应用到实际软件开发中去。了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风;2、需求分析:1.要求:(1)设计一个实用的小型通讯录,用双向链表做数据结构,编写一个通讯录管理系统实现通讯录信息的输入、添加、显示、以姓名做关键字进行查找、删除信息等功能。(2)每条信息至少
3、包含:姓名、街道、城市、邮编、国家等信息。2.详细功能:A.载入文件load():将磁盘中可能存在的文件载入到内存中。A.信息输入enter():系统将提示输入新纪录所需信息,信息包含:姓名、街道、城市、邮编、国家。B.信息删除del():首先提示用户输入要删除的纪录姓名,然后调用删除函数,删除该纪录的相关资料,支持重名选择删除和循环删除。C.查找search():提示用户输入要查找的姓名,然后系统调用查找函数查找,接着系统使用相关命令输出查到的全部信息。D.显示全部display():将内存中的纪录内容全部
4、输出,包括未保存到磁盘的记录项。E.保存save():将操作结果实时保存到磁盘文件txl.txt中,完成后返回到主菜单界面。F.退出系统exit(0):直接退出系统,不保存修改。3、课程设计报告内容:1.通讯录管理系统调用关系图:141.设计结构体及函数表:(1)结构体:structrecord{charname[20];charstreet[20];charcity[20];chareip[20];//邮编charstate[20];}people[500];//500个记录,可修改structpnode{
5、recorddata;structpnode*next,*prior;//双循环链表};typedefpnode*linklist;(2)函数目录表:voidmainmenu();//主菜单voidsearchmenu();//查询菜单voidenter();//添加新纪录voidsearch();//按条件搜索记录voiddisplay();//显示全部记录voidload();//载入文件voidsave();//写入文件voiddel();//删除记录voidlistinsert();//插入结点函数v
6、oidinitlist();//初始化链表函数2.实现主程序和各模块的调用关系:voidmain()//主函数{initlist();//初始化链表load();//载入文件listinsert();//增设新节点while(1)mainmenu();//进入主菜单,有非法输入仍停留在主菜单}voidmainmenu()//主菜单{菜单界面;printf("%c",ch=getch());switch(ch){14case'1':enter();break;case'2':searchmenu();break
7、;case'3':del();break;case'4':save();break;case'5':exit(0);default:mainmenu();}}voidsearchmenu()//查询菜单{查询菜单;printf("%c",ch=getch());switch(ch){case'1':display();break;case'2':search();break;case'3':mainmenu();break;}}4、详细设计:1.各个操作的算法实现:(1)链表初始化voidinitlist()
8、//链表初始化函数{l=(linklist)malloc(sizeof(pnode));//动态申请内存l->next=l;l->prior=l;}(2)载入可能存在的通讯录文件voidload()//装载已有文件信息{//无文件,新建立文件……;……;//已有文件,导入文件……;……;}(3)增加新结点voidlistinsert()//增加新结点{//插入新结点,读入内存信息……;……;}(4)
此文档下载收益归作者所有