- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计报告
组号:201
设计名称:1)简单个人电话号码查询系统
2)哈希表设计
struct record
{
char name[20];
char phone[20];
char mailbox[20];
}people[60];
2、程序设计组成框图
3、详细设计
1、主函数
函数功能:对写入文件函数及主菜单函数进行调用。实现主菜单的显示
函数类型:未调用参数,且无返回值。
函数调用关系描述:调用主菜单函数及写入文件函数,实现主菜单的显示。
2、从文件导入函数
函数功能:判断文件是否存在,存在进行导入,不存在进行文件导入。
函数类型:未调用参数,且无返回值。
算法说明(流程图表示)
主菜单函数
函数功能:输出主菜单,并利用多分枝选择结构调用各功能函数。
函数类型:未调用参数,且无返回值。
算法说明:利用多分枝选择结构实现程序中各程序之间的转换和方便用户进行选择。调用各功能函数。
添加记录函数
函数功能:电话本为空时,实现电话本中信息的创建;电话本不为空时,实现电话本信息的添加。
函数类型:未调用参数,且无返回值。
算法说明:,从键盘输入联系人的姓名和电话、邮箱等信息,应用系统printf函数输出,scanf函数输入,继续添加——递归调用添加记录函数
5、显示所有函数
函数功能:遍历输出电话本中的所有信息。
函数类型:未调用参数,且无返回值。
算法说明:(流程图表示)
6、修改菜单函数
函数功能:显示修改菜单,实现修改函数与主菜单之间的转换。
函数类型:未调用参数,且无返回值。
算法说明:实现主函数与修改函数之间的转换,多分支选择结构调用删除函数及主菜单函数。
修改函数
函数功能:实现电话本中记录的修改。
函数类型:未调用参数,且无返回值。
算法说明:(流程图表示),进行继续修改时递归调用修改函数。
查询菜单函数
函数功能:显示查询菜单,实现查询函数与主菜单之间的转换。
函数类型:未调用参数,且无返回值。
算法说明:实现主函数与查询函数之间的转换,多分支选择结构调用查询函数及主菜单函数。
查询函数
函数功能:实现对电话本中指定记录(按姓名)的查询。
函数类型:未调用参数,且无返回值。
算法说明:(流程图表示)
删除菜单函数
函数功能:显示删除菜单,实现删除函数与主菜单之间的转换。
函数类型:未调用参数,且无返回值。
算法说明:实现主函数与删除函数之间的转换,多分支选择结构调用删除函数及主菜单函数。
删除函数
函数功能:实现对指定记录(按姓名)的删除操作。
函数类型:未调用参数,且无返回值。
算法说明:(用流程图表示)继续删除则递归调用删除函数。
排序菜单
函数功能:显示排序菜单,实现排序函数与主菜单之间的转换。
函数类型:未调用参数,且无返回值。
算法说明:实现主函数与排序函数之间的转换,多分支选择结构调用排序函数及主菜单函数。
排序函数
函数功能:对电话本中已经存在的函数实现按电话号码的排序。
函数类型:未调用参数,且无返回值。
算法说明:(流程图表示)
写入文件函数
函数功能:显示文件中信息并保存文件
函数类型:未调用参数,且无返回值。
算法说明:通过输出文件中的信息,判断是否信息已经全部存入文件中。
调试分析
一)测试数据:
主菜单
2、修改菜单及修改函数
查询菜单和查询函数
4、删除菜单和删除函数
排序菜单和排序函数
6、显示所有函数
时间复杂度
主菜单函数:O(1)
增加联系人函数:每次添加记录的时间复杂度为O(1)(继续添加时进行了递归调用)。
修改函数:每次进行修改的时间复杂度为O(n)(继续修改时进行了递归调用)。
查询函数:O(n)
删除函数:O()
排序函数:O()
写入文件函数:O(n)
显示所有函数:O(n)
三)存在的问题及解决设想
存在的问题:
多分枝选择结构较多应用,一开始没有注意函数声明问题,以致很多函数在其他函数中被调用出错。
解决办法:在函数最前面对所有函数全部进行声明。
个别函数中if...else语句对应问题和括号匹配有问题。
解决办法:小组中成员团结协作,仔细检查,解决了这些错误。
核心源程序清单和执行结果
核心源程序
附件一
执行结果:同调试分析。
分析与讨论
本次个人电话本系统的设计,我小组主要使用的方法包括多分枝选择结构实现菜单项以及递归调用函数进行继续操作,其中调试过程中出现的种种问题都在我们的合作商量下共同解决,这充分体现了在课程设计中团队协作的重要性,同时我们的电话本系统编写的程序还比较稚嫩,在很多方面都需要继续改进和提高。
二、哈希表设计
3、详细设计
1、初始化函数
函数功能:对姓名表进行初始化,获取哈希表的
文档评论(0)