C大数据结构课程设计报告材料——图书收藏夹

上传人:龙*** 文档编号:133825318 上传时间:2020-05-30 格式:DOC 页数:38 大小:948KB
返回 下载 相关 举报
C大数据结构课程设计报告材料——图书收藏夹_第1页
第1页 / 共38页
C大数据结构课程设计报告材料——图书收藏夹_第2页
第2页 / 共38页
C大数据结构课程设计报告材料——图书收藏夹_第3页
第3页 / 共38页
C大数据结构课程设计报告材料——图书收藏夹_第4页
第4页 / 共38页
C大数据结构课程设计报告材料——图书收藏夹_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《C大数据结构课程设计报告材料——图书收藏夹》由会员分享,可在线阅读,更多相关《C大数据结构课程设计报告材料——图书收藏夹(38页珍藏版)》请在金锄头文库上搜索。

1、实用计算机科学与通信工程学院课程设计报告课程数据结构A课程设计课题名称收藏夹的设计学生姓名李威学号3140608011专业班级软件1401指导教师王 新 胜成绩评定表作业质量评分分析能力(30分)总体功能分析逻辑结构分析存储结构分析设计能力(30分)系统功能设计存储结构设计算法设计与编码创新能力(10分)设计思路新颖,所设计的功能有扩展,有创新意识写作能力(10分)文字通顺,用词规范,叙述清晰,有条理性,格式、绘图、表格、插图等规范准确团队合作评价(20分)团队成员沟通,个人职责履行总分教师签名特别说明1. 无故缺席或请假未获批准擅自离开达到3次或课程设计上机时间内做与课程设计无关的事情达到3

2、次,课程设计成绩为0分;2. 课程设计抄袭者,课程设计成绩为0分。文案目录1. 课题简介和设计要求1(1)收藏夹系统的实现:1(2)分工:12. 总体设计13. 详细设计33.1 结点类型的设计33.2 采用的逻辑结构33.3采用的存储结构43.4相关算法41.总体流程图52.分功能流程图54. 编码134.1 数据结构定义134.2 程序实现15Book.h15FV.h16收藏夹.cpp275. 测试295.1 测试用例295.2 程序运行结果30主目录:30图书列表:30收藏图书:31显示收藏:31删除图书:32查询收藏:32清空收藏:33按价格排序:33按收藏时间排序:346. 收获与体

3、会34文案数据结构课程设计1. 课题简介和设计要求目前有一些著名的网上图书购买系统,比如当当网、亚马逊等,他们都有收藏夹和购物车的功能,通过收藏夹可以把你感兴趣的图书添加到收藏夹,可以直接把想购买的图书添加到购物车,也可以从收藏夹中把准备购买的图书加入购物车,等等功能。现在请你利用已经学到的程序设计和数据结构等课程的相关知识模拟实现具有收藏夹和购物车功能的系统。题目如下: (1)收藏夹系统的实现:(1) 能收藏一本图书,并记录收藏时间。图书的信息包括图书号(是唯一的)、书名、作者、出版社、出版时间、价格。(2) 能按照图书号查询显示收藏夹中图书的相关信息。(3) 能按照收藏时间的先后显示输出所

4、收藏的所有图书的相关信息。(4) 能按照价格的大小显示输出收藏夹中的所有图书的相关信息。(5) 可以把不想收藏的某一本指定图书号的图书移出收藏夹。(2) 分工:邢志康负责所有图书的索引,收藏夹的添加和清空以及收藏夹与单链表同步。李威负责收藏夹的显示、删除,按书号查询图书以及按价格或收藏时间排序。Book结点和主程序文件为了方便分工是我们共同完成的,我们设计了一些符号构成的方块界面方便操作。在我负责的模块中,我设计了按照是(y)否(任意键)来操作的判断语句方便用户,并且为了防止错误操作引起程序出错做了一些错误操作的反馈语句用来提示用户,并且运用goto语句实现了各功能之间的切换。2. 总体设计整

5、个系统准备实现的功能有9个,分别是所有图书的索引、收藏夹与单链表的同步、收藏夹添加图书、收藏夹的清空、收藏夹的显示、收藏夹图书的删除、按书号查询图书、收藏夹按照价格排序、收藏夹按照添加时间排序。由图可以明确的看出9大功能的实现与总体系统的关系,其中“收藏夹与单链表同步”这个模块是程序内置的,不需要用户操作,也就是说整个程序完成了8个用户使用的功能,即图书索引、收藏图书、显示收藏、删除收藏、查询收藏、清空收藏、按价格排序、按收藏时间排序。收藏夹系统所有图书的索引收藏夹与单链表同步收藏夹添加图书收藏夹的清空收藏夹的显示收藏夹图书的删除按书号查询图书收藏夹按照价格排序收藏夹按照添加时间排序图1 收藏

6、夹总体系统模块各功能的含义如下:(1)图书索引:给出了整个图书馆的目录以及图书的编号、名字、作者、出版社、出版日期、图书价格。方便用户进行查找、添加收藏和浏览。(2)收藏图书:用户将图书添加到收藏夹的功能若编号不存在,则返回“!该图书不存在!”;若图书已经在收藏夹内,则返回“!该书已在收藏夹!”;若打不开收藏目录,则返回“目录打不开”;若打不开收藏夹,则返回“收藏夹打不开”。添加时获取当地时间,并给出添加成功的提示.(3)显示收藏:按照先后顺序输出已经收藏的图书所有信息,包括图书的编号、名字、作者、出版社、出版日期、图书价格和收藏时间。(4)删除图书:输入一本图书的编号来删除图书收藏夹中与该编

7、号相同的图书,如果没有这本书,则输出“收藏夹不存在这本书”;如果删除成功,则返回“删除成功”。用户可以在该界面看到收藏夹中已有的图书,并且可以反复操作删除多个图书。(5)查询收藏:用户可以输入一本图书的编号来查询收藏夹中与该图书编号相同的图书,若收藏夹中没有这本图书,则返回“!收藏夹里没有这本书请重新输入!”;若操作成功,则返回“您要查询的图书为:”和图书的编号、名字、作者、出版社、出版日期、图书价格和收藏时间。(6)清空收藏:进入该操作会出现方框提示框(输入Y确定删除,任意键不删除),输入Y并输入回车键进行清空操作,若操作失败,则返回“找不到收藏夹”;若操作成功,则返回“收藏夹已清空”(7)

8、价格排序:将用户收藏的图书按照价格从小到大进行排序,方便用户的购买和查询,若排序成功则自动返回菜单界面。(8)按收藏时间排序:将用户收藏的图书按照收藏的时间进行排序,为了方便排序使用了一个长整型函数来存储格林尼治时间(秒),避免了多次比较,降低了复杂度,操作成功则直接返回主菜单界面。3.详细设计3.1 结点类型的设计对图书设计了Book结点,数据成员包含了收藏时间、图书号(是唯一的)、书名、作者、出版社、出版时间、价格。还包含了用于排序的格林尼治时间。成员函数包含一个缺省构造函数和一个构造函数。用图表可以清晰的展现出来:结点的名字数据成员数据成员的类型数据成员的含义BookNOint图书的编号

9、Booknamestring图书名Bookautherstring作者Bookpublisherstring出版社Booktime2Int数组出版日期BookPriceint价格BookTime6Int数组年月日时分秒Book*next指针后继结底BookTlong格林尼治时间表1结点的数据成员如图所示,前七个数据成员存储了图书的总体信息,后继结点是为了向空链表添加结点和数据,格林尼治时间单纯的为了排序方便。构造函数执行的同时对各个数据成员进行赋值并且存入线性表中,同时后继结点后移,每创建一个结点则执行同样的操作。析构函数释放构造函数使用的空间,避免造成空间的浪费。3.2 采用的逻辑结构该系统

10、采取了线性表逻辑结构。因为每本图书都有图书号(是唯一的)、书名、作者、出版社、出版时间、价格和收藏时间等数据,分开存放和定义非常复杂,采用线性表可以将这些数据同时存入一个结点中,避免了复杂的操作;线性表的存储结构分为顺序存储结构和链式存储结构。使用顺序存储结构进行操作来调用各个数据,操作起来容易出错并且操作非常复杂。为了提高程序准确程度和便捷性最后我们采用了线性表的链式结构逻辑结构来编程。3.3采用的存储结构该系统采用了线性表的链式存储结构。将一个线性表存储到计算机中,可以采用许多不同的方法,其中既简单又自然的是顺序存储方法,即将线性表中的元素逐个存放于数组的一些连续的存储单元中。在这种表示方

11、式下,容易实现对表的遍历。要在表的尾部插入一个新元素,也很容易。但是要在表的中间位置插入一个新元素,就必须先将其后面的所有元素都后移一个单元,才能腾出新元素所需的位置。执行删除运算的情形类似。如果被删除的元素不是表中最后一个元素,则必须将它后面的所有元素前移一个位置,以填补由于删除所造成的空缺。而链式存储结构不要求存储位置,只是按照指针来进行操作调用,总体来说,该系统最适用于链式存储结构结构。dataheadnextdatanextdatanext null3.4相关算法1.总体流程图图2总体流程图2.分功能流程图void List();/图书索引图书索引:给出了整个图书馆的目录以及图书的编号

12、、名字、作者、出版社、出版日期、图书价格。方便用户进行查找、添加收藏和浏览。图3List()算法流程图void Updata();/收藏夹与单链表同步收藏夹与单链表同步:将收藏夹中的数据同步到单链表中,让用户打开程序就能看到已收藏的内容,这样可以避免每次打开程序都要重新收藏。图4Updata()算法流程图void Clear();/将收藏夹清空清空收藏:进入该操作会出现方框提示框(输入Y确定删除,任意键不删除),输入Y并输入回车键进行清空操作,若操作失败,则返回“找不到收藏夹”;若操作成功,则返回“收藏夹已清空”图5Clear()算法流程图void Add();/添加收藏图书:用户将图书添加到

13、收藏夹的功能若编号不存在,则返回“!该图书不存在!”;若图书已经在收藏夹内,则返回“!该书已在收藏夹!”;若打不开收藏目录,则返回“目录打不开”;若打不开收藏夹,则返回“收藏夹打不开”。添加时获取当地时间,并给出添加成功的提示.图6Add()算法流程图void Show();/显示显示收藏:按照先后顺序输出已经收藏的图书所有信息,包括图书的编号、名字、作者、出版社、出版日期、图书价格和收藏时间。图7Show()算法流程图void Delete();/删除删除图书:输入一本图书的编号来删除图书收藏夹中与该编号相同的图书,如果没有这本书,则输出“收藏夹不存在这本书”;如果删除成功,则返回“删除成功

14、”。用户可以在该界面看到收藏夹中已有的图书,并且可以反复操作删除多个图书。图8Delete()算法流程图void Query();/根据书名号查询收藏夹中的某一本书查询收藏:用户可以输入一本图书的编号来查询收藏夹中与该图书编号相同的图书,若收藏夹中没有这本图书,则返回“!收藏夹里没有这本书请重新输入!”;若操作成功,则返回“您要查询的图书为:”和图书的编号、名字、作者、出版社、出版日期、图书价格和收藏时间。图9Query()算法流程图void Porder();/ 按照价格排序价格排序:将用户收藏的图书按照价格从小到大进行排序,方便用户的购买和查询,若排序成功则自动返回菜单界面。图10Porder()算法流程图void Torder();/按照收藏时间排序按收藏时间排序:将用户收藏的图书按照收藏的时间进行排序,为了方便排序使用了一个长整型函数来存储格林尼治时间(秒),避免了多次比较,降低了复杂度,操作成功则直接返回主菜单界面。图11Torder()算法流程图4. 编码4.1 数据结构定义【提示】包括类名、数据

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

当前位置:首页 > 学术论文 > 大学论文

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