您的当前位置:首页正文

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

2022-01-24 来源:客趣旅游网
基于线性表的图书信息管理c语⾔,基于线性表的图书信息管理实验报告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)voidListInsert_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. 收获和体会本次实验收获⾮常⼤!

因篇幅问题不能全部显示,请点此查看更多更全内容