仓库管理系统c语言程序设计报告
C语言数据结构课程设计报告库存管理系统

XXXXXXX学院XXXXXX 系数据结构课程设计报告书项目名称:家电库存管理系统班级学号:XXXXXXXXXX学生姓名:XXXXX指导老师:XXX完成时间:日X月X 2011年成绩评定:老师签字:25/ 1目录第一章软件设计需求分析..1………………………………………………………………第二章系统分析与设计.................1.................................................................. 2.1 设计分析.. (1)…………………………………………………………………………...1 设计理念2.1.1…………………………………………………………………………...1 设计框架2.1.22.2 详细设计 (2)………………………………………………………………………...2 主要流程图2.2.1………………………………………………………………………2 数据存储结构 2.2.2………………………………………………………………………2 主函数的设计2.2.3………………………………………………………………........3 录入函数的设计2.2.4 …………………………………………………………………....4 查询函数的设计2.2.5…………………………………………………………………....6 删除函数的设计2.2.6 (7)更改函数的设计2.2.7第三章软件测试....8....................................................................................3.1 .......................................................................8函数模块的设计.. (8)添加记录函数的测试 3.1.1……………………………………………………………………8 查询函数的测试3.1.2 (10)删除函数的测试3.1.33.2 文件模块的测试 (10)…………………………………………………………………..10 文件读取的测试3.2.1 (11)文件写入的测试3.2.2第四章软件使用说明书 (13)第五章软件设计总结 (13)第六章参考文献 (13)第七章附录…................................................................. (1425)/ 2第一章软件需求分析说明家电已成为每家每户的必需品,家里的家电种类越来越多。
仓库管理系统数据结构课程设计c语言

一、概述仓库管理系统是管理仓储物品的重要工具,通过合理的数据结构设计,能够高效地管理仓库中的物品进出、库存等情况。
本文旨在设计一个基于C语言的仓库管理系统数据结构,以实现对仓库的有效管理和操作。
二、需求分析1. 仓库管理系统需要能够实现对仓库中不同类型物品的管理,包括物品的入库、出库、库存查询等功能。
2. 系统需要能够对不同的物品进行分类管理,包括对物品的编号、名称、规格、数量等信息的记录和管理。
3. 系统需要具备对物品进行盘点的功能,能够及时更新库存信息。
4. 系统需要实现对仓库内物品的结构化管理,确保物品的存储和检索的高效性和准确性。
三、数据结构设计1. 仓库管理系统主要涉及的数据结构包括:仓库、物品、库存等。
2. 仓库:仓库可以使用链表进行组织,每个节点存储一个仓库的信息,包括仓库的编号、名称、位置区域等。
3. 物品:物品可以使用结构体进行定义,包括物品的编号、名称、规格、数量等信息。
4. 库存:库存可以通过哈希表进行管理,将物品的编号作为关键字,实现对库存的快速查询和插入操作。
四、系统模块设计1. 入库模块:用于向仓库中添加物品,并更新库存信息。
2. 出库模块:用于从仓库中移除物品,并更新库存信息。
3. 查询模块:用于对仓库中的物品和库存信息进行查询。
4. 盘点模块:用于对仓库进行物品的盘点和库存的更新。
五、算法设计1. 入库算法:当向仓库中添加新物品时,需要判断物品是否已存在,若存在则更新数量,若不存在则添加新物品。
2. 出库算法:当从仓库中移除物品时,需要判断库存是否充足,若充足则更新数量,若不足则提示库存不足。
3. 查询算法:通过哈希表和链表进行查询,实现高效的物品和库存信息查询。
4. 盘点算法:遍历仓库中的物品,对库存信息进行更新。
六、系统实现1. 使用C语言编写主程序,包括对仓库的管理和操作。
2. 根据数据结构设计和算法设计,实现对仓库的物品和库存的管理。
3. 使用文件存储来实现对仓库信息的持久化,确保系统重启后数据不丢失。
仓库管理系统《C++程序设计》课程设计

2.1总体思路
2.2流程图
库存管理系统的总层次图
物品信息管理层次图
2.3实现思路
首先,利用选择语句和循环语句的嵌套设计主程序,在主菜单中包含了对物品的处理,在主程序中调用各个实现程序;然后,输入物品的信息,在进行归类划分,利用类和编译预处理编写;最后,用全局变量记录添加物品的数量,利用类的实现进行物品的添加,物品的删除,查找,修改物品的信息,统计物品的数量。
根据当前的企业管理体制,一般的库存管理系统,总是根据所掌握的物资类别,相应分成几个模块来进行商品的出入库,库存盘点,以及对供销商的详细记录。为了加强关键物资、设备的管理,要定期掌握其储备,消耗情况,根据计划进行进货,使得各商品不会缺货,使物资设备的储备最佳。
因此有必要开发一套库存管理系统来提高企业工作效率, 而所使用的这套库存管理系统是企业生产经营管理活动中的核心,此系统必须可以用来控制合理的库存费用、适时适量的库存数量,使企业生产活动效率最大化。通过对这些情况的仔细调查,我们开发了下面的仓库库存管理系统。
cout<<"6.退出系统!"<<endl;
cout<<"*********************************************"<<endl;
cout<<"请输入你的选择:";
3.1功能模块划分
模块一:增加项目
按
任
意
键
返
回
此模块是为库存管理系统增加仓库的新商品信息。
运行界面如下:
模块二:显示全部项目
按
任
意
键
返
回
此模块是为仓库管理员提供仓库所有的商品的信息。
仓库管理系统c语言程序设计报告

信息科学与工程学院课程设计报告班级:通信一班〔学号〕:实验工程名称: c语言程序设计实验室(中心):信息科学与工程学院信息技术实验室指导教师:李益才实验完成时间: 2021 年 6 月 28 日一、题目仓库管理系统二、功能描述该系统将输入进系统的仓库中物品的根本信息〔包括货号、名称、单价、库存数量、品牌〕进行处理,可以进行:〔1〕、按物品价格降序输出、按库存数量升序排列。
〔2〕、修改制定物品的信息。
〔3〕、删除指定物品的信息。
〔4〕、在指定物品前或后再插入一个物品的信息。
〔5〕、统计同一种品牌的数量。
三、概要设计系统功能模块图四、详细设计1、结构的定义:数组结构体一共有两个:链表结构体一共有一个:struct information //物品信息机构struct information //物品信息机构{ {int Artnumber; int Artnumber;char goodsname[20]; char goodsname[20];float unitprice; float unitprice;int quantity; int quantity;char brand[20]; char brand[20];}; struct information *next; struct Mainfest //仓库信息机构};{ struct information *head; //头指针struct information data[Number];int Num;};struct Mainfest goods;2、各个函数的具体设计思想及流程图本系统一共九个函数:〔1〕void inputInformation(); //对仓库中所有物品的根本信息进行输入〔2〕void outputsort(); //按序输出数据〔3〕void modifyInformation(); //修改物品信息〔4〕void deleteInformation(); //删除物品信息〔5〕void insertInformation();//插入//插入物品信息〔6〕void statistics();// 统计//统计相同品牌的物品数量〔7〕void saveInfoToFile(); //文件输入到磁盘〔8〕void loadInfoFromFile(); //文件磁盘载入〔9〕void maon(); //主函数其中第七、八个为文件函数,进行文件的存储和载入。
C语言课程设计 仓库管理系统

《C语言程序设计》实训报告实训题目:仓库管理系统专业:班级:姓名:成绩:一:需求分析1:问题该系统所应包含的信息有以下一些:产品,仓库。
根据需求,该系统所应实现的功能有以下一些:输入密码进入操作界面产品入库,产品出库。
查询指定仓库编号的入库记录查询指定产品编号的入库记录查询指定入库时间的入库记录查询指定仓库编号的出库记录查询指定产品编号的出库记录查询指定出库时间的出库记录查询仓库中的产品是否过期可以在操作过程中修改密码2、系统采用C语言实现,开发环境为VC,可以运行在操作系统windows98及以上皆可。
3.运行要求1)可以进行随便操作,不受限制。
2)界面友好,操作方便,例如在进行产品出入库和查询时有提示操作。
二、总体设计1、系统流程设计根据系统要求,设计如下的系统流程2.系统模块设计如下,有三大基本功能:1.出库2.入库3.查询三:总体思路菜单显示:实现操作某功能时有相应的提示。
功能选择:每一种功能用相应的操作数字相对应。
产品出入库:在原有链表的基础上进行插入操作。
查询记录:调用对应的查询函数来实现。
四:详细设计1:定义结构体变量日期:struct warehouse{int wnum;char wname[20];char changename[20];}wh[5];产品:struct product{int pnum;char pname[20];char norms[10];}pr[10];链表:struct manage{int wnum;int pnum;char data[15];int number;int operate;struct manage *next;};为了能实现不受限制的产品出入库,采用链表的结构保存产品的信息,在增加产品出入库时,创建一个新的节点,将其插入到链表中,示意图如下。
2:模块化设计进入设计:以输入密码的方式进入,最多可输入三次,如果第三次输入错误,系统将自动退出。
仓库管理系统详细设计报告书(C含功能部分代码)

《软件工程》期末大作业报告实验名称:仓库管理系统姓名:Xxxx学院:Xxx系:计算机专业:Xxxx学号:Xxxx指导教师:Xxxx实验地址:九章楼 N6实验日期:2010 – 2011学年第2学期仓库管理系统一、引言1、目的和背景仓库管理系统是一个企业单位不可缺少的一部分,它的容对于企业的决策者和管理者来说都是至关重要的,因此,仓库管理系统应该能够为用户提供充足的信息和快捷的查询手段,但一直以来人们使用传统的人工方式管理库存,这种管理方式存在着许多缺点,诸如效率低,性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学不断发展,其强大的功能已经被人们深刻认识,它已经进入了人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对产品库存信息进行管理,拥有着人工管理无法比拟的优点,它检索迅速、查找方便、可靠性高、存储量大、性好、寿命长、成本低等,可减少更多的人力物力,这些都能够极提高货品库存的管理效率,也是企业仓库管理科学化、正规化,与世界接轨的重要条件。
因此,开发一个仓库管理系统是很有必要的,具有其特有的技术意义和管理意义。
2、设计思想系统开发的总体任务是实现物品的入库操作、出库操作和提货单的管理,对供应商、提货单位的管理功能,以及对库存中物品数目的管理功能等。
它能能够为企业提供先进的业务信息管理解决方案,改进传统的工作方试,提高企业所经营物品的供、销、存的运转效率,缩短管理周期,减少因为重复操作而带来的人为差错,减轻管理人员的工作强度、降低管理成本。
二、需求分析1、功能需求:产品的信息的显示、删除、录入、修改、出库、结束和清屏。
显示:显示产品库存的所有信息。
删除:删除产品库存的所有信息。
录入:输入并保存产品的所有信息。
修改:可随机修改产品库存属性的信息出库:依据产品的出库数量,计算现在的库存量,更新出库数量。
C语言 仓库管理系统 设计报告
设计题目:仓库物资管理系统班级:网络0901班姓名:水土第一学号:***********完成日期:2010-9-9注意事项:免积分下载,还请亲们给个好评。
思密达目录1 课程设计目的和要求 (2)1.1 课程设计的目的: (2)1.2 课程设计的要求: (2)2 课程设计任务内容: (2)3 详细设计说明 (3)3.1 功能模块图: (3)3.2 数据结构设计: (4)3.3 功能模块设计: (5)4 软件使用说明: (6)5 课程设计心得与体会: (6)6 参考文献: (7)7 附录:部分程序清单: (7)1课程设计目的和要求1.1 课程设计的目的:通过一个学年的学习,对《c程序设计》这门课程之中所讲的知识有了一定的了解。
但是作为一名合格的大学生,不仅要认真阅读课本知识,还要通过上机实践来增强和巩固自己的知识。
特别是作为工科类学生,更要注重实践这一环节。
因为只有这样我们才能成为合格的计算机人材。
1.2 课程设计的要求:在实践过程之中,重要的是独立思考,这样,不仅有利于提高自己对知识的理解,还更有助于提高自己的实践动手能力。
与此同时,还应该注意主动与别人交流,这样便有利于就业之后与团队进行合作。
2课程设计任务内容:仓库管理系统是各个大型商店进行管理的重要组成部分,其内容较多,为了满足工作需求,要求设计的管理系统能够完成以下五种功能:1.创建库存记录文件。
根据提示输入若干电器的“电器名称、品牌名称(或生产厂家)、型号、库存数量、价值”等信息,并将信息保存至一个文件中。
2.物资入库管理,创建一个入库记录文件,每次有物资入库,则按入库记录要求输入“电器名称、品牌名称、型号、入库数量、单价、入库时间(年.月.日)、送货人姓名”等信息,并将该次的入库信息添加到文件中,同时修改相应的库存记录文件。
3.物资出库管理,创建一个出库记录文件,每次有物资出库,则按出库记录要求输入各项信息,并将该次的出库信息添加到文件中,同时修改相应的库存记录文件。
基于C#的仓库管理信息系统设计报告书
仓库管理信息系统设计报告一、设计简述在仓库管理信息系统中,需要从大量的日常仓库存取中提取相关信息,以反映库存情况.传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。
使用计算机可以高速,快捷地完成以上工作。
在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平.仓库管理信息系统是针对企业仓库货品的出入库登记和查询统计等方面工作而开发的管理软件,是一个非常实用的管理信息系统。
它可以针对各个仓库的实际需要,设定不同的仓库管理系统的功能,实现物资信息的登记、入库登记、出库登记等任务。
管理者可以通过相应的模块,对仓库里的物资的基本情况进行修改、删除和查询,对物资的入库和出库进行管理,对出入库的物资进行查询,并能生成相应的报表,对使用该系统的用户进行修改、添加等,查询等其他系统设计实现的管理系统能够正确有效地完成仓库管理的日常工作,并能够根据需要进行灵活的查询。
系统与数据库管理系统紧密结合,为仓库管理提供了功能较为强大的数据安全功能.二、设计目的仓库信息管理系统以计算机为工具,通过对出库、入库、库存等所需的信息管理,把管理人员从繁琐的数据计算处理中解脱出来,把仓库管理的井井有条,便于统计,结构清晰。
本课程设计目的是培养学生在Visual Studio。
NET开发环境下利用面向对象的编程语言C#开发一个Windows应用程序的能力。
通过开发一个功能完善具有实际价值的管理信息系统,让学生全面实践本课程所学的编程知识,包括对C#编程语言的掌握与应用、VS。
NET 开发环境下的各种工具的运用、Windows环境下的数据库编程、实际工程中数据结构和算法思想的基本实现等。
三、设计步骤1功能需求分析、系统总体结构设计,功能模块的划分、画出流程图.2数据库需求分析、画出E-R图。
3数据库的实现,要求最好使用SQL 2005(酌情使用ACCESS)4各个功能模块的设计及实现。
仓库管理系统(c语言)
仓库管理系统(c语言)仓库管理系统文档1·引言仓库管理系统是一种用于管理仓库库存、入库和出库等操作的软件系统。
本文档旨在描述仓库管理系统的设计与实现细节,以便开发人员进行开发和维护。
2·系统概述2·1 目标仓库管理系统的目标是提供一个高效、准确的仓库管理解决方案,以确保库存的可视化和及时管理。
2·2 功能仓库管理系统具备以下主要功能:●商品管理:包括商品信息的添加、编辑和删除。
●入库管理:包括商品入库记录的增加、查询和修改。
●出库管理:包括商品出库记录的增加、查询和修改。
●库存管理:包括库存数量的计算和更新。
●报表管理:包括出入库报表和库存报表。
3·系统设计3·1 数据库设计仓库管理系统的数据由以下表格组成:●商品表:包括商品ID、名称、价格等字段。
●入库记录表:包括记录ID、商品ID、入库数量、入库日期等字段。
●出库记录表:包括记录ID、商品ID、出库数量、出库日期等字段。
3·2 模块设计3·2·1 商品管理模块●添加商品:管理员可以添加新的商品到系统中,并输入商品的相关信息。
●编辑商品:管理员可以编辑已有的商品信息,包括商品名称、价格等。
●删除商品:管理员可以删除已有的商品信息。
3·2·2 入库管理模块●添加入库记录:管理员可以添加新的入库记录,包括选择商品、输入入库数量等。
●查询入库记录:管理员可以查询已有的入库记录,以便查看入库历史。
●修改入库记录:管理员可以修改已有的入库记录,包括修改入库数量、入库日期等。
3·2·3 出库管理模块●添加出库记录:管理员可以添加新的出库记录,包括选择商品、输入出库数量等。
●查询出库记录:管理员可以查询已有的出库记录,以便查看出库历史。
●修改出库记录:管理员可以修改已有的出库记录,包括修改出库数量、出库日期等。
3·2·4 库存管理模块●计算库存数量:根据入库和出库记录,系统可以计算当前商品的库存数量。
C语言仓库管理系统
C语言仓库管理系统题目是:设计一个简单的仓储管理系统,要求具有基本的操作功能:插入(添加)、删除、查找、修改和统计。
业务简介1.采购人员将采购物资清单交与财务人员,其中包含一些必要的数据.财务人员据此作帐,将数据记入,并开一张票据,交与采购人员实现物资入库.2.当有物资卖出时,即物资出库,财务人员会查阅目前此类货物的库存情况,如此类货物还有存量,且有不同的出价时,财务人员会根据情况,调出相应价的货物.由于市场行情时常波动,管理人员可能会据此对物资做出相应的调价.3.当货物出现问题,需要退给供货商,并把退还的货物名,数量,金额,记录下来.4.到一定时期的时候,例如月底,年终,需要将各种物资的出入库,库存金额整理出来,以便为管理人员提供详尽,可靠的数据,为下一步制定目标方案提供依据.2、1数据结构用4个结构数组(或链表)来存储下述4类信息,每类信息的每条记录用结构类型自定义:1.商品信息:商品编号、商品名、型号/规格、数量、进货价、销售价2.入库信息:入库编号、商品编号、入库商品名、入库数量、入库价格、总价3.出库信息:出库编号、商品编号、出库商品名、出库数量、出库价格、总价4.退货信息:退货编号、商品编号、退还货物名、退货数量、退货价格、总价2、2 设计要求5. 对以上每类信息建立数据结构6. 对以上每类信息进行插入操作7. 对以上每类信息进行删除操作8. 对以上每类信息进行修改操作9. 对以上每类信息进行查找操作(查找关键字用下划线标出)10. 数据统计;i. 统计入库商品的总数及总价:ii. 统计出库商品的总数及总价:iii. 统计仓库中现有商品的总数及总价格:#include <stdio.h>#include <string.h>struct product{char p_num[12]; char name[12];char spec[12];int amount;int price;int s_price;struct product *next; };struct product *head;struct in_product {char num[12];char p_num[12];int amount;int price;int t_price;struct in_product *next; };struct in_product *ihead;struct out_product{char num[12];char p_num[12];char name[12];int amount;int price;int t_price;struct out_product *next; };struct out_product *ohead;struct quit_product{char p_num[12];char name[12];int amount;int price;int t_price;struct quit_product *next;};struct quit_product *qhead;int init(){head=ihead=ohead=qhead=NULL;printf("0: Quit\n");printf("1: Enter the information of in product\n ");printf("2: Enter the information of out product\ n");printf("3: Enter the information of quit product \n");printf("4: Total the information of product\n"); }int menu(){printf("1:insert data\n");printf("2:delete data\n");printf("3:modify data\n");printf("4:select data\n");printf("Other to quit\n");}int menu2(){printf("0: Quit\n");printf("1: Enter the information of in product\n ");printf("2: Enter the information of out product\ n");printf("3: Enter the information of quit product \n");printf("4: Total the information of product\n"); }int insert_product(){struct product * p1,* p;p1=(struct product *)malloc(sizeof(struct produ ct));p=head;if (p==NULL)/*开始没有数据*/{printf("Enter the data of product\n");printf("Include the spbh,name,style,num,price,s ale_price of product\n");scanf("%s%s%s%d%d%d",&p1->p_num,&p1->name,&p1->spec,&p1->am ount,&p1->price,&p1->s_price);head=p1;head->next=NULL;return 0;}while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/p=p->next;p->next=p1;printf("Enter the data\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->am ount,&p1->price,&p1->t_price);p1->next=NULL;}int in_insert(){struct in_product * p1,* p;p1=(struct in_product *)malloc(sizeof(struct in_ product));p=ihead;if (p==NULL)/*开始没有数据*/{printf("Enter the data of in product\n");printf("Include the rkbh,spbh,name,number,pri ce,total_price\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->am ount,&p1->price,&p1->t_price);ihead=p1;ihead->next=NULL;return 0;}while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/p=p->next;p->next=p1;printf("Enter the data\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->am ount,&p1->price,&p1->t_price);p1->next=NULL;}int in_modify(){char m_num[12];struct in_product * p;p=ihead;printf("Enter the modify num\n");scanf("%s",&m_num);if (p==NULL)/*开始没有数据*/{printf("Sorry! No data can be found\n"); return 0;}while(p!=NULL){if (strcmp(p->num,m_num)==0){printf("Enter the new data without num\n"); scanf("%s%s%d%d%d",&p->p_num,&p->name,&p->amount,&p->price ,&p->t_price);printf("One data had modified\n");return 0;}p=p->next;}printf("Sorry! No num has found\n");}int in_select(){struct in_product * p;p=ihead;printf("Enter the select num\n");scanf("%s",&s_num);while(p!=NULL){if (strcmp(p->num,s_num)==0){printf("The data you want is:\n");printf(" %s %s %s %d %d %d\n",p->num,p->p_num,p->name,p->amount,p->pric e,p->t_price);return 0;}p=p->next;}printf("Sorry! No num has found\n");}int in_delete(){struct in_product * p1,* p;p=ihead;printf("Enter the delete num\n");scanf("%s",&d_num);if (p==NULL)/*开始没有数据*/{printf("No data can be found\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next==N ULL)/*链表只有一个数据,且是要删除的*/ {ihead=NULL;printf("One data has been deleted\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next!=N ULL)/*要删除的数据在链表的头上*/{ihead=ihead->next;printf("One data has been deleted\n");return 0;}while(p->next!=NULL){p1=p->next;if (strcmp(p1->num,d_num)==0){p->next=p1->next;printf("One data has been deleted\n");return 0;}p=p->next;}printf("Sorry! No num has found\n");}int out_insert(){struct out_product * p1,* p;p1=(struct out_product *)malloc(sizeof(struct ou t_product));p=ohead;if (p==NULL)/*开始没有数据*/{printf("Enter the data of out product\n"); printf("Include the ckbh,spbh,name,number,pri ce,total_price\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->am ount,&p1->price,&p1->t_price);ohead=p1;ohead->next=NULL;return 0;}while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/p=p->next;p->next=p1;printf("Enter the data\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->am ount,&p1->price,&p1->t_price);p1->next=NULL;}int out_modify(){char m_num[12];struct out_product * p;p=ohead;printf("Enter the modify num\n");scanf("%s",&m_num);if (p==NULL)/*开始没有数据*/{printf("Sorry! No data can be found\n"); return 0;}while(p!=NULL){if (strcmp(p->num,m_num)==0){printf("Enter the new data without num\n"); scanf("%s%s%d%d%d",&p->p_num,&p->name,&p->amount,&p->price ,&p->t_price);printf("One data had modified\n");}p=p->next;}printf("Sorry! No num has found\n");}int out_select(){char s_num[12];struct out_product * p;p=ohead;printf("Enter the select num\n");scanf("%s",&s_num);while(p!=NULL){if (strcmp(s_num,p->num)==0){printf("The data you want is:\n");printf(" %s %s %s %d %d %d\n",p->num,p->p_num,p->name,p->amount,p->pric e,p->t_price);}p=p->next;}printf("Sorry! No num has found\n");}int out_delete(){char d_num[12];struct out_product * p1,* p;p=ohead;printf("Enter the delete num\n");scanf("%s",&d_num);if (p==NULL)/*开始没有数据*/{printf("No data can be found\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next==N ULL)/*链表只有一个数据,且是要删除的*/ {ohead=NULL;printf("One data has been deleted\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next!=N ULL)/*要删除的数据在链表的头上*/{ohead=ohead->next;printf("One data has been deleted\n");return 0;}while(p->next!=NULL){p1=p->next;if (strcmp(p1->num,d_num)==0){p->next=p1->next;printf("One data has been deleted\n");return 0;}p=p->next;}printf("Sorry! No num has found\n");}int quit_insert(){struct quit_product * p1,* p;p1=(struct quit_product *)malloc(sizeof(struct q uit_product));p=qhead;if (p==NULL)/*开始没有数据*/{printf("Enter the data of quit product\n"); printf("Include the thbh,spbh,name,number,pri ce,total_price\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->am ount,&p1->price,&p1->t_price);qhead=p1;qhead->next=NULL;return 0;}while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/p=p->next;p->next=p1;printf("Enter the data\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->am ount,&p1->price,&p1->t_price);p1->next=NULL;}int quit_modify(){char m_num[12];struct quit_product * p;p=qhead;printf("Enter the modify num\n");scanf("%s",&m_num);if (p==NULL)/*开始没有数据*/{printf("Sorry! No data can be found\n"); return 0;}while(p!=NULL){if (strcmp(p->num,m_num)==0){printf("Enter the new data without num\n"); scanf("%s%s%d%d%d",&p->p_num,&p->name,&p->amount,&p->price ,&p->t_price);printf("One data had modified\n");return 0;}p=p->next;}printf("Sorry! No num has found\n");}int quit_select(){char s_num[12];struct quit_product * p;p=qhead;printf("Enter the select num\n");while(p!=NULL){if (strcmp(s_num,p->num)==0){printf("The data you want is:\n");printf(" %s %s %s %d %d %d\n",p->num,p->p_num,p->name,p->amount,p->pric e,p->t_price);return 0;}p=p->next;}printf("Sorry! No num has found\n");}int quit_delete(){char d_num[12];struct quit_product * p1,* p;p=qhead;printf("Enter the delete num\n");if (p==NULL)/*开始没有数据*/{printf("No data can be found\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next==N ULL)/*链表只有一个数据,且是要删除的*/ {qhead=NULL;printf("One data has been deleted\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next!=N ULL)/*要删除的数据在链表的头上*/{qhead=qhead->next;printf("One data has been deleted\n");return 0;}while(p->next!=NULL){p1=p->next;if (strcmp(p1->num,d_num)==0){p->next=p1->next;printf("One data has been deleted\n"); return 0;}p=p->next;}printf("Sorry! No num has found\n"); }int total(){int in_num=0,in_price=0;int out_num=0,out_price=0;int num=0,price=0;struct in_product *ip;struct out_product *op;struct product *p;ip=ihead;while(ip!=NULL){in_num+=ip->amount;in_price+=ip->t_price;ip=ip->next;}op=ohead;while(op!=NULL){out_num+=op->amount;out_price+=op->t_price;op=op->next;}p=head;while(p!=NULL){num+=p->amount;price+=p->s_price;p=p->next;}printf("The in product's total number and total price is:\n");printf("%d %d\n",in_num,in_price);printf("The out product's total number and tota l price is:\n");printf("%d %d\n",out_num,out_price);printf("The product's total number and total pri ce is:\n");printf("%d %d\n",num,price);}int in_case(){int choice;printf("The information of in product:\n"); while(1){printf("Enter the choice\n");scanf("%d",&choice);switch(choice){case 1: in_insert();insert_product();break; case 2: in_delete();break;case 3: in_modify();break;case 4: in_select();break;default: return 0;}menu();}}int out_case(){int choice;printf("The information of out product:\n"); while(1){printf("Enter the choice\n");scanf("%d",&choice);switch(choice){case 1: out_insert();break;case 2: out_delete();break;case 3: out_modify();break;case 4: out_select();break;default:return 0;}menu();}}int quit_case(){int choice;printf("The information of quit product:\n"); while(1){printf("Enter the choice\n");scanf("%d",&choice);switch(choice){case 1: quit_insert();break;case 2: quit_delete();break;case 3: quit_modify();break;case 4: quit_select();break;default: return 0;}menu();}}int main(){int choice;init();while(1){scanf("%d",&choice);switch(choice){case 0: return 0;case 1: menu();in_case(); break; case 2: menu();out_case();break; case 3: menu();quit_case();break; case 4:total();break;}menu2();}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
仓库管理系统c语言程序设计报告
信息科学与工程学院
课程设计报告
班级:通信一班
姓名(学号):
实验项目名称: c语言程序设计
实验室(中心):信息科学与工程学院信息技术实验室指导教师:李益才
实验完成时间:年 6 月 28 日
一、题目
仓库管理系统
二、功能描述
该系统将输入进系统的仓库中物品的基本信息(包括货号、名称、单价、库存数量、品牌)进行处理,能够进行:
(1)、按物品价格降序输出、按库存数量升序排列。
(2)、修改制定物品的信息。
(3)、删除指定物品的信息。
(4)、在指定物品前或后再插入一个物品的信息。
(5)、统计同一种品牌的数量。
三、概要设计
系统功能模块图
四、详细设计
1、结构的定义:
数组结构体一共有两个:链表结构体一共有一个:struct information //物品信息机构 struct information //物品信息机构
{ {。