一、引言

设计此程序(仓库管理系统,以下简称仓管)为了促进掌握 C/C++ 的基础语法知识,提高阅读、编写 C/C++ 程序的能力,掌握用 C 语言解决具体问题的一般方法和步骤,并在调试程序的过程中,提高解决问题的能力,为进一步学习其他语言打好基础。

此程序的需求如下:

建立严格的仓管系统,严格管理物资的出入库。

以名字、类型/品类、唯一识别码(name,type,id)作为每样在架货品的识别方式,并予以输入。

以唯一识别码(id)为凭据完成出库。

输出在架货品列表。

以 名字、类型/品类 (name,type)搜索在架货品,并返回在架数量与在架货品的唯一码列表。

以唯一识别码(id)搜索在架货品,并返回此在架货品的相关信息。

二、系统设计

2.1 系统结构图

2.2 系统流程图

2.3 API(MIB.h)

三、系统实现

MIB.h Damo
  • 主界面

  • 入库界面,输入货品名字与货品类型与货品 ID,API 可以按需接入外部输入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-juwzYr9D-1654394574493)(https://www.writebug.com/myres/static/uploads/2022/6/4/65e4c3be3af4c46c579e0ec5c32fa376.writebug)]

  • 列表,自动列表

  • 查找物品,以货品名与货品类型查找相对 ID

  • 查找 ID,以货品 ID 查找相对货品名与货品类型

  • 出库

3.1 源码

/*本源码按照GPL开源协议开源,最终著作权属于本人*/

3.1.1 MIB.h

# pragma once
# include <iostream>
# include <vector>
# include <map>
using namespace std;
class goods
{
public:long G_id;string G_name;string G_type;goods(string name, string type, long id){G_id = id;G_type = type;G_name = name;}
};
class wareHouseMIB
{
private:map<string, string> Findgoods_type()//搜索货品类型{map<string, string> typ;int a = 0;for (vector<goods>::iterator i = goods_.begin(); i != goods_.end(); i++){typ[i->G_type] = i->G_type;a++;}return typ;}
public:vector<goods> goods_;int Input(string name, string type, long id){if (Findgoods(id) == -1)goods_.push_back(goods(name, type, id));elsecout << "输入失败" << endl << "ID所指向的货物已在架,请检查ID输入" << endl;return 0;}int Findgoods(string name, string type){int count_ = 0;for (int i = 0; i < goods_.size(); i++){if (goods_[i].G_name == name && goods_[i].G_type == type){cout <<"   "<< goods_[i].G_id<<endl;count_++;}}cout << "所寻货品在架" << count_ << "件" << endl;return count_;}int Findgoods(){return goods_.size();}int Findgoods(long id){for (int i = 0; i < goods_.size(); i++){if (goods_[i].G_id == id)return i;}return -1;}int outWare(long id){int i = Findgoods(id);if (i >= 0){goods_.erase(goods_.begin() + i);return 1;}return 0;}void OutgoodsList(){map<string, string> typ = Findgoods_type();for (map<string, string>::iterator i = typ.begin()++; i != typ.end(); i++){cout << i->first << endl;for (vector<goods>::iterator j = goods_.begin(); j != goods_.end(); j++){if (i->first == j->G_type){cout << "    " << j->G_name << "   " << j->G_id << endl;}}}}
};

3.1.2 Main.cpp

# include <iostream>
# include <vector>
# include <map>
# include "MIB.h"
using namespace std;
int main()
{wareHouseMIB MIB;string name, type;long id;int a = 0;while (true){cout << "---------------------------------------------" << endl;cout << "目前在架共:"<<MIB.Findgoods() << endl;cout << "1、入库" << endl << "2、出库" << endl << "3、列表" <<endl<<"4、查找物品"<<endl<<"5、查找ID"<< endl;cout << "---------------------------------------------" << endl;cout << "个人制作\n" << "刘旅诚 @JoyerLiu为本程序著作权持有者\n" << "本程序以学习为主,按照GPL开源免费\n";cout << "---------------------------------------------" << endl;cout << "输入选项:";cin >> a;cout << "---------------------------------------------" << endl;switch (a){case 1:cout << "入库" << endl;cout << "请输入 name type id(空格隔开" << endl;cin >> name >> type >> id;MIB.Input(name, type, id);cout << "完成输入 " << name << " " << type << " " << id << endl;break;case 2:cout << "出库/删除" << endl;cout << "请输入 id:" ;cin >> id;MIB.outWare(id);break;case 3:cout << "列表" << endl;MIB.OutgoodsList();break;case 4:cout << "查询物品" << endl;cin >> type >> name;MIB.Findgoods(type,name);break;case 5:cout << "查询ID" << endl;cin >> id;if (MIB.Findgoods(id) != -1)cout << MIB.goods_[MIB.Findgoods(id)].G_name<<" "<< MIB.goods_[MIB.Findgoods(id)].G_type << endl;elsecout << "未找到该物品或该物品未上架" << endl;break;}}
}

四、总结

使用 C/C++ 完成了基本仓库管理系统的编写,调试过程中未出现死循环或内存泄漏的 Bug。本次的设计只能算是完成了基础功能,包括出库入库与数据查询功能,但并未有附加功能以及数据库接口。

通过这次课题使我巩固了我的编写程序的能力,使我对数据结构的构建有了更深的认知。
cout << “未找到该物品或该物品未上架” << endl;
break;
}
}
}


# 四、总结使用 C/C++ 完成了基本仓库管理系统的编写,调试过程中未出现死循环或内存泄漏的 Bug。本次的设计只能算是完成了基础功能,包括出库入库与数据查询功能,但并未有附加功能以及数据库接口。通过这次课题使我巩固了我的编写程序的能力,使我对数据结构的构建有了更深的认知。

基于C语言设计的仓库管理系统(小超市)相关推荐

  1. 基于C语言设计的学籍管理系统

    基于C语言设计的学籍管理系统 系统意义以及主要功能: 本系统能对学生学号,姓名,所在系,班级这些基本信息进行管理,并具有以下功能: 具有学生信息输入功能 具有学生信息删除功能 具有学生信息修改功能 具 ...

  2. 基于C语言设计的像素小鸟小游戏

    资源下载地址:https://download.csdn.net/download/sheziqiong/85672935 一.设计目的 掌握定义函数,并熟练使用各函数 实现各函数模块的调用 学会将静 ...

  3. 基于C语言设计的植物大战僵尸小游戏

    资源下载地址:https://download.csdn.net/download/sheziqiong/86763979 资源下载地址:https://download.csdn.net/downl ...

  4. 基于c语言的物业管理系统设计,基于C#语言的小区物业管理系统的设计与实现

    摘要: 随着人们生活水平和消费水平的不断提高,人们在追求物质生活的同时,更注重生活的质量,小区物业管理作为一种服务行业,与人们的生活息息相关,是人们生活质量的最基本需求.因此,小区物业管理系统的研究和 ...

  5. 学校图书管理系统基于c语言源代码,基于C语言的学校图书管理系统参考.doc

    基于C语言的学校图书管理系统参考 本科学生毕业论文(设计) 题目(中 文):基于C语言的学校图书管理系统(英 文):School Library Management System Based on ...

  6. c语言学校系统,基于C语言的学校书管理系统.doc

    基于C语言的学校书管理系统 本科学生毕业论文(设计) 题目(中 文):基于C语言的学校图书管理系统(英 文):School Library Management System Based on C L ...

  7. c语言张宗杰,《基于C语言的学校图书管理系统》.doc

    本科学生毕业论文(设计) 题目(中 文):基于C语言的学校图书管理系统(英 文):School Library Management System Based on C Language姓 名 学 号 ...

  8. 基于C语言设计符号表

    基于C语言设计符号表 c-语言的语法描述 系统设计 符号表的实现 符号表采用了哈希表的形式,可以方便地查找.插入和删除,但是问题也随之而来,就是符号的作用于较难跟踪.很有可能同一名称的变量在不同作用于 ...

  9. 基于C语言设计的小型图形软件系统

    资源下载地址:https://download.csdn.net/download/sheziqiong/85648846 资源下载地址:https://download.csdn.net/downl ...

  10. 基于C语言设计的换乘指南打印系统

    基于C语言设计的换乘指南打印系统 题目 上海的地铁交通络已经基本成型,建成的地铁多条,站点上百个,现需建个换乘指南打印系统,通过输起点站和终点站,打印出地铁换乘指南,指南内容包括起点站.换乘站.终点站 ...

最新文章

  1. 实现双击IE9的Tab键关闭当前页面的功能
  2. EMC_AutoStart5.4安装配置之五
  3. java反射机制的调用
  4. SDUT-3362 数据结构实验之图论六:村村通公路
  5. Ubuntu16.04LTS下搭建强化学习环境gym、tensorflow
  6. WebService系列之使用Axis获取天气预报数据
  7. ASP.NET Web API中实现版本
  8. STM32F7xx —— 输出
  9. 在wince中添加微软的雅黑字体
  10. @hotmail.com 账户添加别名,重命名到@outlook.com 一系列问题,顺道附上个人解决方法
  11. Android 开机优化
  12. 实战Node—幼教平台项目重构和优化
  13. win7共享文件夹设置无密码
  14. 4.致远插件的初使用 1Rest远程调用项目介绍
  15. 【计算机视觉】opencv靶标相机姿态解算1之基本概念(空间旋转、旋转轴)
  16. vue3---dayjs-入门及常用方法
  17. 电脑主板为什么不取消电池?
  18. java-从date中获取年份
  19. 如何用AE导出程序员可以复用的Json代码
  20. java 判断文件名合法_java用正则方法验证文件名是否合法

热门文章

  1. kindle刷机ttl_“免费” PHICOMM 斐讯 K2路由器TTL刷机全纪录
  2. MODIS数据下载——订单模式下载tif影像
  3. 读react.js小书 中组件的render的方法(从零学react)
  4. 五步搞定Java性能调优(附超全技能图谱)
  5. # 安卓手机启动黑阈服务
  6. 运筹学笔记 网络计划
  7. 年仅30岁!腾讯游戏程序员毛星云意外身故。。。
  8. 基于arduino uno + WS2812b RGB灯带单一颜色跑马灯控制程序
  9. 华为的人才体系:任正非这样管理19万员工
  10. yb3防爆电机型号含义_YBX3防爆电机