基于线性表的图书信息管理实验报告1.docVIP

  • 828
  • 0
  • 约2.18千字
  • 约 7页
  • 2018-02-27 发布于河北
  • 举报

基于线性表的图书信息管理实验报告1.doc

基于线性表的图书信息管理实验报告1.doc

北 京 林 业 大 学 13学年—14学年第 1学期 数据结构C 实验报告书 专业: 电子信息科学与技术 班级: 电子131 姓名: 潘林 学号: 131114119 实验地点: 北林学研N09 任课教师: 孟伟 实验题目: 基于线性表的图书信息管理 实验环境: Visual C++ 实验目的: 1、掌握线性表的定义; 2、掌握线性表的基本操作,如建立、查找、插入和删除等。 (一)实现方法 1. 所用数据结构的定义及其相关说明(相关结构体或类的定义及其含义) //定义图书表 typedef struct { int no; //书号 char name[20]; //书名 int price; //书价 }Book; //单链表的建立 typedef struct LNode { Book data; //数据域 struct LNode *next; //指针域 }LNode,*LinkList; 2.自定义函数的名称及其功能说明 void creatlist_L(LinkList L, int n); //根据指定图书个数,逐个输入图书信息 int Getlem_L(LinkList L,int i, int e); //根据指定的位置可返回相应的图书信息(书号,书名,定价) void LocateElem_L(LinkList L, string name); //根据书名进行查找,返回此书的书号和定价 void ListInsert_L(LinkList L,int i,char k); // 插入到表中指定的位置 void ListDelete_L(LinkList L,int d); // 删除指定位置的图书记录 void Number(LinkList L); //计数 void Limbo(LinkList L,int option) ; //选择功能 void Function(LinkList L); //友好的提示 3.主要功能算法的时间复杂度 (2)链表 函数名称 时间复杂度 void LocateElem_L(LinkList L) O(n) void Number(LinkList L) void Limbo(LinkList L,int option) O(n) O(n) void creatlist_L(LinkList L, int n) O(n) void Function(LinkList L) O(n) int Getlem_L(LinkList L,int i, int e) O(n) void ListInsert_L(LinkList L,int i) O(n) void ListDelete_L(LinkList L,int d) O(n) 4. 实验任务书中要求画的流程图 (1)链表插入的流程图 (二)实验结果 粘贴程序的实际运行测试结果并加以文字说明 (1) 根据指定图书个数,逐个输入图书信息; (2) 根据书名进行查找,返回此书的书号和定价; (3) 根据指定的位置可返回相应的图书信息(书号,书名,定价); (4) 给定一个图书信息,插入到表中指定的位置 (5) 删除指定位置的图书记录; (6) 统计表中图书个数。 (三)结论分析 1. 问题与解决方法 1)在实现链表int Getlem_L(LinkList L)时,思路有误区,首先该函数实现“按序号查找”功能,我没有搞清应该命令书号(书的位置)还是命令书的名字来执行该函数,后来我选择通过命令其输入书的位置来查找书。 2)最普遍的问题是虽然学会了算法,但是我的语法基础不扎实经常出现错误,之后通过与同学、老师交流慢慢了解C++的语句用法。 3)在实现void LinstDelete_L函数时,由于未意识到删除结点前应该储存结点,导致算法出错。最后查找书时,发现结点需先用一个已定义的结点来储存该结点地址,再使上一个结点指针指向该结点指针域。 2. 收获和体会 本次实验收获非常大!由于大一厌恶编程,

文档评论(0)

1亿VIP精品文档

相关文档