数据结构实验:基于线性表的图书信息管理.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 基于 线性 图书 信息管理
- 资源描述:
-
X X X X X 大 学 11学年—12学年第2学期数据结构实验报告书 专 业: 班 级: 姓 名: 学 号: 实验地点: 计算中心B6机房 任课教师: 实验题目: 基于线性表的图书信息管理 实验环境: Visual Studio 6.0 实验目的: 1、掌握线性表的定义; 2、掌握线性表的基本操作,如建立、查找、插入和删除等。 实验内容: 1、必做 分别定义一个包含图书信息(书号,书名,定价)的顺序表和链表,使其具有如下功能: (1) 从给定的文件book.txt逐个读入图书信息; (2) 逐个显示图书表中所有图书的相关信息; (3) 统计表中图书个数; (4) 输出图书价格最高的图书信息(考虑可能有多个); (5) 计算所有图书的平均价格; (6) 根据书名进行查找,返回相应书名的图书的书号和定价(考虑重名情况); (7) 根据指定的位置,返回相应位置的图书的全部信息; (8) 给定一本图书相关信息,插入到表中指定的位置,将插入后的结果重新写入文件book.txt; (9) 删除指定位置的图书记录,将删除后的结果重新写入文件book.txt; (10) 将图书表信息逆序存储,将逆序的图书信息存入文件book_inverser.txt中。 2、选做 (1)按照图书价格进行排序,将排序的结果以格式(定价,书号,书名)存入文件book_sort.txt中。 (2)实现两个一元多项式的加法、减法、乘法运算。 实现方法、实验结果及结论分析等: (一)实现方法 1. 所用数据结构的定义及其相关说明(相关结构体或类的定义及其含义) //定义一个结构体Book struct Book //定义结构体 { char no[30]; //编码 char name[30]; //书名 int price; //价格 }; //顺序表的定义 typedef struct LNode //定义顺序表 { struct Book *elem; //指向数据元素的基地址 int length; //顺序表当前长度 }SqList; //链表的定义 typedef struct LNode //定义链表 { struct Book data; //数据域 struct LNode *next; //指针域 }LNode, *LinkList; //一元二次多项式的定义 typedef struct PNode { float coef; //参数 int expn; //指数 struct PNode *next; //指针域 }PNode, *Polynomial; 2. 自定义函数的名称及其功能说明 //函数声明(顺序表) Status InitList( SqList &L ); //顺序表初始化 void Input( SqList &L ); //输入函数 void Output( SqList L ); //输出函数 void Count( SqList L ); //输出数据长度函数 void pare( SqList L ); //比较价格函数 void Average( SqList L ); //求平均价格函数 void Search_name( SqList L ); //按名字查找图书信息函数 void Search_no( SqList L ); //按输入图书位置查找图书信息 void Insert( SqList &L ); //插入函数 void Delete( SqList &L ); //删除函数 void Inverse( SqList &L ); //逆转函数 //函数声明(链表) Status InitList( LinkList &L ); //初始化链表 void Input( LinkList &L ); //输入函数 void Output( LinkList &L ); //输出函数 void Count( LinkList L ); //输出数据个数的函数 void pare( LinkList L ); //比较价格函数 void Average( LinkList L ); //求平均价格函数 void Search_name( LinkList L ); //按照书名查找图书信息的函数 Status Search_no( LinkList L ); //按照输入位置查找图书信息 Status Insert( LinkList &L ); //插入函数 Status Delete( LinkList &L ); //删除函数 Status Inverse( LinkList &L ); //逆序函数 Status Sort( LinkList &L ); //排序函数 //函数声明(一元多项式) Status InitPolyn( Polynomial &P ); //初始化一元多项式 void CreatePolyn( Polynomial &P ); //创建一元多项式 void CopyPolyn( Polynomial &P1, Polynomial &P2 ); //一元多项式的拷贝 void AddPolyn( Polynomial &PA, Polynomial &PB ); //一元多项式相加函数 void MinusPolyn( Polynomial &PA, Polynomial &PB );//一元多项式相减 void MultiplyPolyn( Polynomial &Pa, Polynomial &Pb );//一元多项式相乘 3. 主要功能算法的时间复杂度 ⑴顺序表 函数名称 时间复杂度 Status InitList( SqList &L );//顺序表初始化 O(1) void Input( SqList &L );//输入函数 O(n) void Output( SqList L );//输出函数 O(n) void Count( SqList L ); //输出数据长度函数 O(1) void pare( SqList L );//比较价格函数 O(n) void Average( SqList L );//求平均价格函数 O(n) void Search_name( SqList L );//按照书名查找 O(n) void Search_no( SqList L );//按照输入位置查找 O(1) void Insert( SqList &L );//插入函数 O(n) void Delete( SqList &L );//删除函数 O(n) void Inverse( SqList &L ); O(n) ⑵链表 函数名称 时间复杂度 Status InitList( LinkList &L );//初始化链表 O(1) void Input( LinkList &L );//输入函数 O(n) void Output( LinkList &L );//输出函数 O(n) void Count( LinkList L );//输出数据个数的函数 O(1) void pare( LinkList L );//比较价格函数 O(n) void Average( LinkList L );//求平均价格函数 O(n) void Search_name( LinkList L );//按照书名查找 O(n) Status Search_no( LinkList L );//按照输入位置查找 O(n) Status Insert( LinkList &L );//插入函数 O(n) Status Delete( LinkList &L );//删除函数 O(n) Status Inverse( LinkList &L );//逆序函数 O(n) Status Sort( LinkList &L );//排序函数 O(n*n) ⑶一元多项式 函数名称 时间复杂度 Status InitPolyn( Polynomial &P );//初始化一元多项式 O(1) void CreatePolyn( Polynomial &P ); //创建一元多项式 O(n) void CopyPolyn( Polynomial &P1, Polynomial &P2 ); O(n) void AddPolyn( Polynomial &PA, Polynomial &PB ); O(m+n) void MinusPolyn( Polynomial &PA, Polynomial &PB ); O(m+n) void MultiplyPolyn( Polynomial &Pa, Polynomial &Pb ); O(m*n*m*n) 4. 实验任务书中要求画的流程图 ⑴链表根据指定位置进行查找的算法流程图 ⑵链表插入算法的流程图 (二)实验结果 1.顺序表 (1)菜单:当输入超出菜单所给的数字时出现提示 (2)输出函数:输出全部图书信息 (3)统计图书个数 (4)找出价格最高的图书,并输出其信息。当出现多个价格同时最高的图书时依然可以正确输出 (5)求出所有图书的平均价格 (6)按书名查找图书,并输出其信息;当没有此书时会有提示 (7)按照指定的位置查找图书信息,当输入非法时有提示 (8)在指定位置插入图书信息,当位置不合法或者空间不足时有提示 (9)删除指定位置的图书信息,当输入位置不合法是提示 (10)图书信息逆序 2. 链表 (1)当输入超出菜单所给选项的数字时有提示 (2)输出所有的图书信息 (3)统计图书个数 (4)查找价格最高的图书,如果有多本书同时为最高价可全部输出 (5)计算所有图书的平均价格 (6)按书名查找图书,可查找多本同名图书,当无查找书籍信息时有 提示 (7)按输入位置查找图书信息,当位置不合法是有提示 (8)在指定位置插入信息,当位置不合法是有提示 (9)删除指定位置的图书信息,当位置不合法是有提示 (10)将所有图书信息逆序 (11)将所有图书信息按照价格由高到低排序 3.一元多项式 (1)创建一元多项式 (2)弹出菜单,当输入错误选项时有提示,还有选项可以跳出菜单 (3)一元多项式相加 (4)一元多项式相减 (5)一元多项式相乘 (三)结论分析 1. 问题与解决方法 在写菜单的代码时,我设法让菜单能够循环,但是也要有出口,所以选择了一个循环;在选择菜单选项时,由于选项较多,用if语句进行选择会套用多层if语句,而且对于非选项的数字处理也较麻烦,于是我选择了switch语句。但是要菜单不断重复,只是在选择退出菜单选项时停止循环,所以我选择了while循环语句,并让条件永远为真,当保存选项的变量为退出菜单选项时,用break终止循环。 2. 收获和体会 在一元多项式乘法运算的编写中,遇到了几个困难,我通过调试,逐步跟踪数据的变化,找到了出错位置,并及时改正。这让我进一步体会到了多重循环及判断语句套用时应注意的细节,以及指针的再次使用重赋值问题。与此同时,我对于调试也进一步熟悉起来,对于日后的程序编写检查错误积累了经验。 3. 尚存在的问题 对于步骤复杂的函数编写容易出错,程序的健壮性仍有欠缺,尤其是对于一元多项式的不同情况的问题应进一步改进。展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




数据结构实验:基于线性表的图书信息管理.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4006003.html