# 仓库管理
## 提交课程设计相关内容要求
提交的成果的内容必须由以下 4 个部分组成:
源程序:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);
程序的说明文件:(保存在.txt 中)在说明文档中应该写明上交程序所在的目录,上交程序的主程序文件名,如果需要安装,要有程序的安装使用说明;
课程设计报告:(保存在 word 文档中,文件名要求按照"团队名称-课程设计报告"起名,如文件名为"绿巨人-课程设计报告".doc )按照本文档格式逐项填写,具体每项填写要求见正文。报告的排版要求:排版要求:行间距:1.25 倍(段落/多倍行距);纸型:A4;页眉,页脚,页边距:采用默认值;页码:Times New Roman,小五,靠右。
答辩 PPT。
题目与要求(左对齐,宋体粗四号)
问题描述(左对齐,宋体粗小四号)
详细叙述所要实现的题目中的问题(宋体,小四)
某电子公司仓库中有若干批次的同一种电脑,按价格、数量来存储。
初始化 n 批不同价格电脑入库;
出库:销售 m 台价格为 p 的电脑;
入库:新到 m 台价格为 p 的电脑;
盘点:电脑的总台数,总金额,最高价,最低价,平均价格。
注:每个数据元素含有价格与数量;同一价格的电脑存储为一个数据元素,
同时数据结构采用循环链表的结构。
本系统涉及的知识点
描述本设计所采用的数据结构的逻辑结构(宋体,小四)
循环链表的结构:
整个结构体中数据域包括 serial, sum, price 三个变量;
指针域为指向结构体自身的指针 struct Node *pNext。
## 功能要求
叙述所要实现的题目的功能(宋体,小四)
功能列表:
初始化
显示
入库
出库
盘点数据
返回登录界面
显示之前保存的信息
保存信息
功能设计
数据结构定义
定义本设计所采用的数据结构的存储结构(宋体,小四)
```c++
// 数据结构
typedef struct Node {
int serial; // 节点的数据域
int sum;
double price;
struct Node *pNext; // 指向结构体自身的指针
} node, *pNode;
```
模块图
画出功能模块图(图中的文字用宋体,小五)
![](https://www.writebug.com/myres/static/uploads/2022/3/12/8597a5eda33dbe15978cba5012617d37.writebug)
## 功能代码
内容:分模块(函数)叙述其功能;模块中使用的各变量的类型及作用;设计过程;并列出该模块(函数)的代码。(宋体,小四)
其中,在和链表相关的函数里,变量 i,j 都是循环变量,serial,sum,price 对应于电脑的批次数,数量和价格;
变量 length 是循环链表的长度,pHead ,pTail 为头指针,尾指针,p_new 为指向新增节点的指针。
链表创建函数
```c++
pNode CreateCcLinkList() {
int i, length, serial = 0, sum = 0;
double price = 0;
pNode pTail = NULL, p_new = NULL;
pNode pHead = (pNode)malloc(sizeof(node));
if (NULL == pHead) {
printf("内存分配失败!\n");
exit(OVERFLOW);
}
pHead->serial = 0;
pHead->sum = 0;
pHead->price = 0;
pHead->pNext = pHead;
pTail = pHead;
printf("请输入电脑的总批次数:");
scanf("%d", &length);
for (i=0; i < length; i++) {
p_new = (pNode)malloc(sizeof(node));
if (NULL == p_new) {
printf("内存分配失败!\n");
exit(OVERFLOW);
}
printf("请第%d次输入,电脑的批次数,数量和价格:(数字之前请用空格隔开)", i + 1);
scanf("%d %d %lf", &serial, &sum, &price);
p_new->serial = serial;
p_new->sum = sum;
p_new->price = price;
p_new->pNext = pHead;
// 这里一定是pHead,因为最后一个节点总是指着头节点
pTail->pNext = p_new;
pTail = p_new;
}
return pHead;
}
```
链表遍历函数
```c++
void TraverseCcLinkList(pNode pHead) {
int i = 1;
pNode pt = pHead->pNext;
printf("| 序号 | 批次 | 数量 | 价格 |\n");
while (pt != pHead) {
printf("|%4d |", i);
printf("%4d |", pt->serial);
printf("%4d |", pt->sum);
printf(" %.2f |", pt->price);
putchar('\n');
i++;
pt = pt->pNext;
}
}
```
判断链表是否为空
```c++
int IsEmptyCcLinkList(pNode pHead) {
if (pHead->pNext == pHead)
return 1;
else
return 0;
}
```
计算链表的长度
```c++
int GetLengthCcLinkList(pNode pHead) {
int length = 0;
pNode pt = pHead->pNext;
while (pt != pHead) {
length++;
pt = pt->pNext;
}
return length;
}
```
向链表中插入节点
```c++
int InsertEleCcLinkList(pNode pHead, int pos, int serial, int sum, double price) {
pNode p_new = NULL;
printf("请输入电脑的序号、批次数、数量和价格:(数字之前请用空格隔开)");
scanf("%d %d %d %lf", &pos, &serial, &sum, &price);
if (pos > 0 && pos < GetLengthCcLinkList(pHead) + 2) {
p_new = (pNode)malloc(sizeof(node));
if (NULL == p_new) {
printf("内存分配失败!\n");
exit(OVERFLOW);
}
while (1) {
pos--;
if (0 == pos)
break;
pHead = pHead->pNext;
}
p_new->serial = serial;
p_new->sum = sum;
p_new->price = price;
p_new->pNext = pHead->pNext;
pHead->pNext = p_new;
return 1;
} else
return 0;
}
```
从链表中删除节点
```c++
int DeleteEleCcLinkList(pNode pHead, int pos) {
pNode pt = NULL;
if (pos > 0 && pos < GetLengthCcLinkList(pHead) + 1) {
while (1) {
pos--;
if (0 == pos)
break;
pHead = pHead->pNext;
}
pt = pHead->pNext->pNext;
free(pHead->pNext);
pHead->pNext = pt;
return 1;
} else
return 0;
}
```
## 主函数
变量说明:
pos 为循环链表中节点的位置,
flag 为标记变量。
```c++
int main() {
int pos, serial, sum, flag = 0;
double price;
pNode pHead; // 声明一个结构体指针
node num[50]; // 最多存储电脑的批次数
confirm(num); // 登录函数
for(;;)
{
switch(menu_select())
{
case 1:
printf("初始化n批不同价格电脑入库:\n");
pHead = CreateCcLinkList();
if (!pHead)
printf("创建失败!");
else
printf("创建成功!");
mytime();
break;
case 2:
printf("显示电脑各批次信息:\n");
TraverseCcLinkList(pHead);
mygetchar();
break;
case 3:
printf("入库:\n");
flag = InsertEleCcLinkList(pHead, pos, serial, sum, price);
if (flag)
{
printf("插入数据成功!\n");
TraverseCcLinkList(pHead);
mygetchar();
}
else
printf("插入数据失败!\n");
break;
case 4:
printf("出库:\n");
flag = IsEmptyCcLinkList(pHead);
if (flag)
printf("循环链表为空,不能进行删除操作!\n");
else
{
printf("请输入要删除的电脑的序号:");
scanf("%d", &pos);
flag = DeleteEleCcLinkL
没有合适的资源?快使用搜索试试~ 我知道了~
基于C语言实现仓库管理系统【100011995】
共131个文件
doc:42个
cpp:39个
ppt:19个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 63 浏览量
2023-04-25
09:33:00
上传
评论
收藏 5.55MB ZIP 举报
温馨提示
某电子公司仓库中有若干批次的同一种电脑,按价格、数量来存储。初始化 n 批不同价格电脑入库;出库:销售 m 台价格为 p 的电脑;入库:新到 m 台价格为 p 的电脑;盘点:电脑的总台数,总金额,最高价,最低价,平均价格。
资源推荐
资源详情
资源评论
收起资源包目录
基于C语言实现仓库管理系统【100011995】 (131个子文件)
main.cpp 7KB
单链表的实现.cpp 7KB
图的邻接表存储源文件.cpp 6KB
图的邻接表(遍历拓扑排序).cpp 6KB
二叉树操作.cpp 6KB
图的邻接矩阵存储及最小生成树.cpp 6KB
整型二叉树(求WPL,N1,N2).cpp 5KB
图的邻接表(创建输出).cpp 5KB
图的邻接矩阵.cpp 5KB
图的邻接矩阵(Prim算法).cpp 4KB
动态顺序表的实现.cpp 4KB
多项式的加法.cpp 4KB
图的邻接矩阵(minnum函数).cpp 4KB
栈的应用源文件.cpp 4KB
顺序栈的实现的源文件1(初始化,创建,显示).cpp 4KB
哈希查找源文件.cpp 3KB
图的邻接矩阵存储(菜单+函数).cpp 3KB
图的邻接矩阵(创建显示).cpp 3KB
3赫夫曼树(WPL,凹入显示).cpp 3KB
循环链表表示队列源文件.cpp 2KB
利用菜单实现学生成绩管理.cpp 2KB
赫夫曼树的构造及赫夫曼编码.cpp 2KB
单链表的实现源文件12(创建及输出).cpp 2KB
test.cpp 2KB
图的邻接矩阵(菜单).cpp 2KB
1二叉树菜单.cpp 1KB
哈希查找(菜单).cpp 1KB
动态顺序表源文件0(菜单).cpp 1KB
1赫夫曼树源文件(主函数).cpp 1KB
结构体数组源文件0(菜单).cpp 1KB
单链表的实现源文件0(菜单).cpp 1KB
括号匹配源文件.cpp 1KB
teststack.cpp 1KB
尾插法创建单链表.cpp 860B
数组的输入输出源文件.cpp 612B
数制转换源文件.cpp 387B
test.cpp 284B
第6章递归函数.cpp 200B
testformat.cpp 90B
第7章作业题.doc 404KB
2015-2016-1数据结构联考试卷(A卷)答案.doc 219KB
2016考研计算机专业大纲.doc 149KB
湖北省计算机类专业人才培养合作联盟联合考试《数据结构》A卷.doc 142KB
湖北省计算机类专业人才培养合作联盟联合考试《数据结构》B卷.doc 141KB
2015-2016-1数据结构联考试卷(B卷).doc 92KB
2015-2016-1数据结构联考试卷(B卷)答案.doc 90KB
课程教纲_马宁_数据结构(2016秋).doc 87KB
2015-2016-1数据结构联考试卷(A卷).doc 79KB
第9章作业题.doc 75KB
蓝色天空-课程设计报告.doc 60KB
第6章作业题一.doc 41KB
第2章作业题目及答案.doc 40KB
实验4顺序栈的应用.doc 36KB
第6章作业题二.doc 34KB
实验5二叉链表实现二叉树.doc 34KB
第3章作业题目及答案.doc 33KB
实验1利用菜单实现学生成绩管理.doc 31KB
实验2动态顺序表的实现.doc 31KB
实验3单链表的实现.doc 31KB
实验6无向网的邻接矩阵存储与最小生成树的实现.doc 30KB
赫夫曼树的构造及赫夫曼编码.doc 30KB
第13周数据结构课外学习单.doc 30KB
第15周数据结构课外学习单.doc 30KB
实验7有向图的邻接表的存储.doc 29KB
第14周数据结构课外学习单.doc 29KB
第4周数据结构课外学习单.doc 29KB
第12周数据结构课外学习单.doc 28KB
第11周数据结构课外学习单.doc 28KB
第1章作业题目及答案.doc 28KB
第2周数据结构课外学习单.doc 28KB
第10周数据结构课外学习单.doc 28KB
第7周数据结构课外学习单.doc 28KB
第1周数据结构课外学习单.doc 28KB
第5周数据结构课外学习单.doc 28KB
关于计算机职业资质考试.doc 24KB
多项式加法的实现.doc 24KB
实验8哈希表的实现.doc 24KB
第9周数据结构课外学习单.doc 23KB
第3周数据结构课外学习单.doc 23KB
第8周数据结构课外学习单.doc 23KB
~$3单链表的实现.doc 162B
湖北省计算机类专业人才培养合作联盟联合考试《数据结构》A卷答案.docx 42KB
湖北省计算机类专业人才培养合作联盟联合考试《数据结构》B卷答案.docx 42KB
关于指向函数类型的指针作形参.docx 13KB
尾插法创建单链表.exe 129KB
谢谢.gif 162KB
CircularLinklist.h 3KB
stack.h 2KB
Stack.h 1KB
Queue.h 1KB
LICENSE 1KB
README.md 31KB
赫夫曼编码.png 49KB
主菜单.PNG 13KB
列表化显示.PNG 11KB
登录界面.PNG 9KB
1-9aa87ed4046e26c563a3e9d3c84de9b3.png 9KB
功能列表.png 9KB
查询.PNG 8KB
DS课程设计演示报告.ppt 3.59MB
共 131 条
- 1
- 2
资源评论
神仙别闹
- 粉丝: 2687
- 资源: 7649
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功