实验报告1

北 京 林 业 大 学

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.主要功能算法的时间复杂度

4. 实验任务书中要求画的流程图

(1)链表插入的流程图

(二)实验结果

粘贴程序的实际运行测试结果并加以文字说明

(1) 根据指定图书个数,逐个输入图书信息;

(2) 根据书名进行查找,返回此书的书号和定价;

(3) 根据指定的位置可返回相应的图书信息(书号,书名,定价);

(4) 给定一个图书信息,插入到表中指定的位置

(5) 删除指定位置的图书记录;

(6) 统计表中图书个数。

(三)结论分析

1. 问题与解决方法

1)在实现链表int Getlem_L(LinkList L)时,思路有误区,首先该函数实现“按序号查找”功能,我没有搞清应该命令书号(书的位置)还是命令书的名字来执行该函数,后来我选择通过命令其输入书的位置来查找书。

2)最普遍的问题是虽然学会了算法,但是我的语法基础不扎实经常出现错误,之后通过与同学、老师交流慢慢了解C++的语句用法。

3)在实现void LinstDelete_L函数时,由于未意识到删除结点前应该储存结点,导致算法出错。最后查找书时,发现结点需先用一个已定义的结点来储存该结点地址,再使上一个结点指针指向该结点指针域。

 2. 收获和体会

本次实验收获非常大!由于大一厌恶编程,尚未适应电子学科,我的C语言和C++基础差。调节心态后,认真听讲了数据结构C,学习很多算法,发现其算法的逻辑可以应用在生活各个方面,用处很大!最重要的是操控电脑编程成就感很大!以上是我的感性认识。

通过该实验我学会了线性表链的操作,更加深刻认识线性表的用法,同时也对数据的存储结构有了更深刻的认识。

3. 尚存在的问题

  格式不是很美观。

 

第二篇:1.1 实验报告(1)

实    验    报    告

实验名称   2 数字脉冲分配器和步进电机调速控制及数字 PWM 发生器和直流电机调速控制                                 

相关推荐