> # ♻️ 资源
> **大小:** 1.62MB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010021**](https://www.yuque.com/sxbn/ks/100010021)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87248076**](https://download.csdn.net/download/s1t16/87248076)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 1题目与要求
## 1.1问题描述
某电子公司仓库中有若干批次的同一种电脑,按价格、数量来存储。要求实现功能:
1. 初始化 n 批不同价格电脑入库;
2. 出库:销售 m 台价格为 p 的电脑;
3. 入库:新到 m 台价格为 p 的电脑;
4. 盘点:电脑的总台数,总金额,最高价,最低价,平均价格。
注:每个数据元素含有价格与数量;同一价格的电脑存储为一个数据元素。
## 1.2本系统涉及的知识点
仓库管理系统可以使用顺序表、有序表、单链表、有序循环链表等实现,本设计采用有序表实现。
所谓有序表,是指这样的线性表,其中所有的元素以递增或递减方式有序排列。
首先要指出的是,有序表是基于顺序表而延伸出来的一种数据结构,其共同点是用一组地址连续的存储单元依次存储线性表的数据元素。
其次,是有序表的独特之处,它其中的数据元素按照一定的顺序有序排列。仓库管理系统适合采用有序表,原因是可以按照商品的价格或数量进行有序
排列,方便用户比对价格、数量。
## 1.3功能要求
1. 初始化仓库:初始化 n 批不同型号的电脑入库;
2. 入库:新到 m 台价格为 p 的电脑;
3. 出库:销售 m 台价格为 p 的电脑;
4. 盘点仓库:列出仓库的关键数据:电脑的总台数、总金额、最高价、平均价格等;
按照有序表的特点以及所使用的编程语言(C++)的特性,本程序还提供了以下功能:
1. 查询某一型号的电脑的价格、数量;
2. 重新对仓库数据按照一定规则排序;
3. 导出仓库数据到外部文件;
4. 从外部文件导入数据,以初始化仓库。
# 2 功能设计
## 2.1数据结构定义
一、基本数据元素:电脑
```c
typedef struct computer { char type[50]; // 型号
double price; // 价 格
int number; // 数量
} Computer, ElemType;
```
基本数据元素电脑(Computer/ElemType)采用结构体表示,用于存储某一类电脑的信息:型号(type[50])、价格(price)、库存数量(number)。
二、数据结构:有序表
```c
typedef struct {
ElemType *elem; // 基地址
int length; // 当前有效数据的个数
int listsize; // 当前存储容量
bool isInit{false}; // 有序表是否已经初始化
int sortWay{1}; // 有序表的排序方式
} SqList;
```
数据结构有序表(SqList)由以下几个部分组成:
1. 数组指针 elem 指示有序表的基地址;
2. length 指示有序表的当前有效数据个数(长度);
3. listsize 指示有序表当前分配的存储空间大小,一旦因插入数据元素(Computer)而空间不足时,可进行再分配;
4. isInit 指示有序表是否已经初始化(即是否有一个确定的基地址);
5. sortWay 指示有序表的排序方式,按照值的不同,对应的有序表排序方式也不同。本程序具体设计了以下四种排序方式:1-按照价格升序、2-按照价格降序、3-按照数量升序、4-按照数量降序。
整体的数据结构如下图所示:
![Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.002.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1694577312638-8cda3169-3e57-4ebb-b343-c5ee762d99e5.png#averageHue=%236a6a6a&clientId=u0ec057f5-8cd7-4&from=paste&height=127&id=ua49c6abe&originHeight=159&originWidth=560&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=21265&status=done&style=none&taskId=u9c666ccc-0be9-4c04-9e4c-5a4cfde013d&title=&width=448)
图 1.1 有序表数据结构
## 2.2模块图
### 一、入库
入库有两种方式,一是在仓库中已有和待入库电脑型号相同的数据,此时, 检查给出的价格是否与仓库中一致,若一致,同意用户的入库操作。然后只需更改仓库中此种电脑型号的数量。
示意图如下:
![Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.003.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1694577328255-2b2e356e-9276-4082-a60d-58b9d5ed56c7.png#averageHue=%236f6b6b&clientId=u0ec057f5-8cd7-4&from=paste&height=158&id=udd64f7d4&originHeight=197&originWidth=494&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=29789&status=done&style=none&taskId=ua8f7575f-ab08-4d03-b2a1-bf4aca899a0&title=&width=395.2)
图 2.1 入库仓库中已有型号的电脑
第二种方式,入库一种新型号的电脑,则应该按照有序表的排序方式
(sortWay)在正确位置插入元素。示意图如下:
![Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.004.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1694577341990-9297860b-8b8a-4f57-849a-0583da9c08ed.png#averageHue=%23b9b4b4&clientId=u0ec057f5-8cd7-4&from=paste&height=108&id=ud2ea1002&originHeight=135&originWidth=534&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=31582&status=done&style=none&taskId=ufb05f656-15ee-4442-a21d-21f404ab7dc&title=&width=427.2)
图 2.2 入库一种新型号的电脑
### 二、出库
可以出库的前提是,在仓库中有待出库型号的电脑且仓库中的库存数量大于等于待出库数量。
第一类情况,待出库电脑的数量在库存中充足(即库存数量大于待出库数量),此时只需更改相应的数据元素。
示意图如下:
![Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.005.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1694577356497-f81a671a-9145-4e21-93bf-87edb064f888.png#averageHue=%23706d6d&clientId=u0ec057f5-8cd7-4&from=paste&height=154&id=ue4c7fa2b&originHeight=193&originWidth=501&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=27549&status=done&style=none&taskId=uf5e876ea-21be-419c-bdb4-9ae5bb24009&title=&width=400.8)
图 2.3 出库电脑数量充足
第二类情况,此种型号的电脑恰好全部出库完,则需要删除相应的数据元素。示意图如下:
![Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.006.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1694577367729-639eb2ce-437a-4e73-b8ae-73a5ebf66a72.png#averageHue=%23cfcccc&clientId=u0ec057f5-8cd7-4&from=paste&height=153&id=u1b227f87&originHeight=191&originWidth=522&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=36805&status=done&style=none&taskId=u13d5ca09-f5d3-4a02-b925-48157705852&title=&width=417.6)
图 2.4 此种型号的电脑恰好全部出库完
# 3 功能代码
## 3.1初始化动态顺序表
有序表的数据结构是基于顺序表实现的,所以在进行一切操作前,应当初始化一个空的动态顺序表。
代码如下:
```c
Status InitSqList(SqList &L, int n) {
auto listsize{((n / 10) + 1) * 10}; // 确定顺序表初始内存占用空间
L.elem = new ElemType[listsize]; // 分配基地址、顺序表内存
if (!L.elem) // 内存不足
return OVERFLOW;
L.length = 0; // 此时顺序表还没有元素,L.length 为 0
L.listsize = listsize; return OK;
}
```
有序表初始分配的内存空间(listsize)并没有简单采用一个常数大小(如 10
个 ElemType 字节),这样不用限制用户输�
没有合适的资源?快使用搜索试试~ 我知道了~
基于C++实现(控制台)仓库管理系统【100010021】
共26个文件
png:12个
jpeg:7个
cpp:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 56 浏览量
2022-12-06
14:41:30
上传
评论
收藏 1.62MB ZIP 举报
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100010021 某电子公司仓库中有若干批次的同一种电脑,按价格、数量来存储。要求实现功能: 初始化 n 批不同价格电脑入库; 出库:销售 m 台价格为 p 的电脑; 入库:新到 m 台价格为 p 的电脑; 盘点:电脑的总台数,总金额,最高价,最低价,平均价格。 注:每个数据元素含有价格与数量;同一价格的电脑存储为一个数据元素。
资源推荐
资源详情
资源评论
收起资源包目录
100010021-基于C++实现(控制台)仓库管理系统.zip (26个子文件)
gitmanager
数据结构课程设计报告.pdf 1.32MB
LICENSE 1KB
img
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.032.jpeg 35KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.031.jpeg 20KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.040.jpeg 36KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.038.png 50KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.037.jpeg 29KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.002.png 21KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.001.png 148B
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.036.jpeg 42KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.034.jpeg 37KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.039.png 20KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.030.jpeg 23KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.003.png 29KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.033.png 10KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.042.png 48KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.035.png 11KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.006.png 36KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.005.png 27KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.041.png 28KB
Aspose.Words.0a6b0ae3-965f-4b61-8dd3-79e98f34c8c0.004.png 31KB
Source-Code
sqlist.cpp 13KB
main.cpp 11KB
sqlist.h 2KB
info.txt 349B
README.md 31KB
共 26 条
- 1
资源评论
- m0_748945612023-01-24资源简直太好了,完美解决了当下遇到的难题,这样的资源很难不支持~
神仙别闹
- 粉丝: 2659
- 资源: 7638
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Semantic Color Palette 语义调色板Unity游戏开发插件资源unitypackage
- Low Poly Nature:Lush and Diverse Environments低聚自然郁郁Unity低多边形模型资源
- voc数据集是什么-我们如何使用voc数据集
- Edgar Pro-Procedural Level Generator程序关卡生成器Unity开发插件unitypackage
- 宝藏软件m3u8下载器\m3u8DL-CLI
- 三次样条插值的介绍-什么是三次样条插值原理
- http的一些相关介绍-对于我们来说什么是http
- 全卷积网络基于voc2012数据集简单pytorch实现
- pycharm的一些介绍-用于更好的学习python
- 基于C++的程序设计大赛天梯赛L2答案(天梯赛)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功