c语言课程设计-双向链表(自学看不懂)之绝望 求大佬引路 感激涕零 20C

图片说明
问题:
1.操作1是不是要用文件?用一个文本文件记录
2.这个程序需不需要利用双向链表?
3.这个程序最好做几个结构体?
4.货物类型和货物入库之间存在什么关系??
5.好绝望呀呀呀呀
6.求大佬引路
7.感激涕零 无以为报

5个回答

程序怎么实现,取决于你的整体设计,你设计的操作逻辑驱动实际的程序设计.换言之,你需要先画好"蓝图".

针对你的问题:
1. 只要能读写数据就行,直接使用文件或者数据库都OK
2. 数据结构需要根据你设计的程序逻辑确定啊,是否用链表,单向或双向,完全取决于你的程序需求
3. 几个结构体,取决于你定义了几类逻辑实体(货物,仓库等)
4. 这个问题不需要问吧,只要好好学语文,应该不难理解题目
5. ...
6. ...
7. ...

1.操作1应该指的是界面显示,就是显示在界面上。无需文本了。

2.正常使用时需要用到数据库,此时无需链表,此时程序看起来更像一个管理系统。
但如果不需要数据库(就是程序每次起来,内容都是空的),则可以使用链表保存数据,此时程序看起来更像一个链表学习程序。
这一点要先明确,后面的内容跟这点要关。看你的内容,像是后面一种。后面按后一种介绍。

3.结构体要如下几个:
1)货物信息结构tProduct
包括:货物名秒、价格即可。所属类型可要可不要。
2)单个货物类型结构tSingleProdcutType
包括:类型名称、tProductList(存储tProduct的链表)。
3)货物类型信息,tProductType
包括:类型总数,tSingleProdcutTypeList(存储tSingleProdcutType的链表)

  1. 上面说的是结构体只是表示存储的样式,真正使用时,主要使用以下一个全局或成员变量: tProductType ltProductTypeIn 存储仓库的货物信息。

显示货物类型列表:
第一种做法:将 ltProductTypeIn 内的信息全部显示出来。包括:总数,一层链表内每个类型的名称,单个类型名称下二层链表内的每个货物。
第二种做法:无需显示第二层链表内的货物。只显示类型信息即可。
注:一层、二层链表,只是表示,链表内的单个结构内部还有链表了,好区分是哪个链表,并不是一种数据结构。

增加货物类型:
通过界面输入类型名称,在ltProductTypeIn内增加一个二层链表为空的节点,注意:要先查找,名称不能重复。

删除货物类型:
通过界面输入类型名称,在ltProductTypeIn内查找并删除一个节点。

货物入库:
通过界面输入tProduct信息及所属类型,先根据类型名称在ltProductTypeIn查找到应操作的类型节点,再在tProductList中增加一个货物的节点。
注意:第二步增加货物的节点时,要先查找。如名称存在,则比较价格,增加数量等;名称不存在时再增加。

货物出库:
货物入库的反操作。

库存显示:
显示货物类型列表的第一种做法。

weixin_41986182
weixin_41986182 正文有说了,我说的二层链表不是数据结构,仅表示链表内部的节点是一个结构,这个结构内部有个变量还是一个链表了。
一年多之前 回复
cara_celia
cara_celia 你好!二层链表不太懂
一年多之前 回复

链表结构和静态/动态链表

链表是一种常见的数据结构——与数组不同的是:

    1.数组首先需要在定义时声明数组大小,如果像这个数组中加入的元素个数超过了数组的长度时,便不能正确保存所有内容;链表可以根据大小需要进行拓展。

    2.其次数组是同一数据类型的元素集合,在内存中是按一定顺序连续排列存放的;链表常用malloc等函数动态随机分配空间,用指针相连。

链表结构示意图如下所示:



在链表中,每一个元素包含两个部分;数据部分和指针部分。数据部分用来存放元素所包含的数据,指针部分用来指向下一个元素。最后一个元素的指针指向NULL,表示指向的地址为空。整体用结构体来定义,指针部分定义为指向本结构体类型的指针类型。

静态链表需要数组来实现,即把线性表的元素存放在数组中。数组单元存放链表结点,结点的链域指向下一个元素的位置,即下一个元素所在数组单元的下标。这些元素可能在物理上是连续存放的,也有可能是不连续的,它们之间通过逻辑关系来连接——这就要涉及到数组长度定义的问题,实现无法预知定义多大的数组,动态链表随即出现。

动态链表指在程序执行过程中从无到有地建立起一个链表,即一个一个地开辟结点和输入各结点的数据,并建立起前后相连的关系。

在链表中,每一个元素包含两个部分;数据部分和指针部分。数据部分用来存放元素所包含的数据,指针部分用来指向下一个元素。最后一个元素的指针指向NULL,表示指向的地址为空。整体用结构体来定义,指针部分定义为指向本结构体类型的指针类型。

静态链表需要数组来实现,即把线性表的元素存放在数组中。数组单元存放链表结点,结点的链域指向下一个元素的位置,即下一个元素所在数组单元的下标。这些元素可能在物理上是连续存放的,也有可能是不连续的,它们之间通过逻辑关系来连接——这就要涉及到数组长度定义的问题,实现无法预知定义多大的数组,动态链表随即出现。

我刚写完一个关于企业管理的用的是数组,不是用链表的,同样是纯C语言,看你这个题目,我的思路是这样的:
1.先创建一个结构体,结构体的内容是关于货物的信息,包含:货物名称,货物价格和货物的类型等其他信息。

2.建立主菜单,就是上述的1,2,3,4,5,6,7。

3.建立子函数与,包含新建,添加,删除,显示,其中显示分为俩类,一种是库存显示,一种是类型显示,再把这些数据存到文件中,用文件进行
读取。新建就是对货物类型进行增加,删除就是减少,然后,添加就是货物入库,删除同时也是出库,出库了,文件中的数据就没有了。

对于你问的关于货物类型和货物入库的关系,我的理解是,货物类型就是货物有食品,生活用品,男生用的,女生用的等,货物入库就是向一个仓库
添加了一批货,就是增加了新的数据,而出库就是删除了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问