《数据结构》课程设计报告--商品货架管理系统

合集下载

数据结构课程设计---商品管理软件

数据结构课程设计---商品管理软件

数据结构课程设计一.程设计课题:商品管理软件1.要求:以有序链表结构表示某家电商场的库存模型。

提/进货时,需对链表进行维护。

每个工作日结束后,应将该链表以文件形式保存;每日营业前,应从文件中恢复该有序链表结构。

2.设计基础:①.基于c++语言的控制台应用程序;(本文略)②.基于C# .net的带友好界面的实用软件(V1.0);③.基于链表结构的内部数据结构;3.初步构思:①程序实现以下功能a.将库存以文件的形式保存在硬盘,每日打开文件时读取b.允许操作员进行商品入库出库等操作;c.将每日的操作内容记录并以文本形式保存,方便以后查询;d.以各种关键词检索库存商品;e.显示当前所有库存。

②程序的功能模块:i.读文件的类ReadFile,封装好接口供程序调用,单独成文件Readfile.cs;ii.存文件的类SavetoFile,封装好接口供程序调用,单独成文件SavetoFile.cs;iii.商品类Good,记录单个商品的信息,单独成文件Good.cs;iv.商品链表类GoodList,记录整个库存的信息,并封装好排序等操作,单独成文件GoodList;二.算法思想描述:程序执行流程图:程序具体描述:①程序读入文件-338332457(“Goodfile”的散列值),若不存在,系统自动创建一个空文件;②用户选择适当的操作,比如出库,用户只需要输入相应货物的名称或者编号,出库数量,系统会自动计算好金额;入库时,系统会自动添加商品编号(当前最大编号加1),用户输入各方面信息,商品可以入库;商品查询时,用户选择检索方法,并输入相应关键字,可以找到该商品的目前库存信息;日操作记录即系统会记录每天的入库和出库情况,并将每日记录分开记载(文件名为日期名的散列值),若该日不存在记录,系统自动创建一空文件;显示所有库存即显示当前库存中的所有商品文件;③系统有一个显示当前时间的小功能,该程序和操作系统时间同步;关键算法如下:ReadFile类(writefile类似):class ReadFile{StreamReader sr;public StreamReader SR{get{return sr;}}public ReadFile(string x){string FileInfo = x.GetHashCode().ToString();try{sr = new StreamReader(FileInfo, Encoding.GetEncoding("GB2312"));}catch(FileNotFoundException){MessageBox.Show("未检测到记载文件,系统将创建");StreamWriter sw = new StreamWriter(FileInfo);sw.Write("");sw.Flush();sw.Close();sr = new StreamReader(FileInfo, Encoding.GetEncoding("GB2312")); }}public void Close(){sr.Close();}}商品入库的主要代码(出库类似):Good thisgood = new Good(thisname, thisno, thisprice, thisnumber);//string NewGoodString;MessageBox.Show("商品入库成功", "成功");TodayWork += DateTime.Now.ToShortTimeString()+"商品入库成功!";TodayWork += " 商品名称:" + thisname.ToString() + " 商品编号:" + thisno.ToString() + " 商品价格:" + thisprice.ToString() + " 商品数量:" + thisnumber.ToString() + "\r\n" + "\r\n";ThisList.AddtoLine(thisgood);SavetoFile TodayInfo = new SavetoFile(DateTime.Now.ToLongDateString()); //附加TodayInfo.Save(TodayWork);File.Delete("GoodInfo".GetHashCode().ToString()); //删除原来的SavetoFile Storage = new SavetoFile("GoodInfo"); //重写Storage.Save(ThisList.WholeInfo);TodayWork = "";三.程序结构:本程序中所有遇到的类为:其中第一排四个为系统生成,第二排的由自己写。

数据结构课程设计_仓库库存管理系统

数据结构课程设计_仓库库存管理系统

库存物品信息管理1、设计目的:利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

通过课程设计,巩固和加深对线性表、栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性实际问题的基本能力。

2、设计内容和要求:①、要求物品出库、入库信息管理,浏览、修改物品信息;②、物品信息按名称和代码存放,在程序出错时自动返回主页面③、可以按物品名称物品代码来查询物品信息,即在主菜单中增加查询功能选项,输入代码或名称即可显示;④、可以修改、删除某库存物品信息。

二、运行环境(软、硬件环境)软件环境:Vc6.0编程软件运行平台: Win32硬件:普通个人PC机三、算法设计的思想1、输入物品信息函数:Add(Link l)基本思想: 根据物品代码(code)来输入物品信息,如果代码已存在,则按ENTER键返回主页面;如果代码不存在,则继续输入物品名称、物品数量、物品等级;若继续输入,就直接输入代码等信息,若返回上一级,就按“0”键,调用main(),返回主界面。

2、物品出库函数:Del(Link l)基本思想: 根据输入的代码或名称,如果不存在该物品,就输出“不存在该物品”;然后输出是用代码出库或者名称出库,在选择操作后,输出该物品对应的信息,若输入“0”,则调用main(),返回主界面。

3、查看库存物品信息函数:Qur(Link l)基本思想:根据输入的信息判断有无该商品信息,如果没有该信息,则输出“你输入的信息有误”,有该物品,则输出该物品对饮的代码、名称、数量等信息,按enter键返回主界面。

4、删除物品信息函数:Del(Link l)基本思想:根据用户键入的选择,如果没有该物品信息,则输出没有改物品;调用该函数Del(Link l),如果存在该物品,则输出该物品及信息已成功修改,然后用户键入任意键返回主界面。

商品仓库管理系统(数据库设计)

商品仓库管理系统(数据库设计)

数据库原理课程设计仓库管理系统第一章绪论1.1课题背景介绍1.1.1课题开发背景商品库存管理系统是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以商品库存管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统人工的方式管理仓库中的各种物资设备,这种管理方式存在着许多缺点,如:效率低、另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对物资信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

因此,开发这样一套商品库存管理软件成为很有必要的事情。

1.1.2课题开发意义大多数库存管理理论认为,库存是物理上和逻辑上库房库位的所有有形和无形物料极其价值的总和,具体包括成品、原材料、在制品、在途品、生产前物料、备品备件等。

虽然持有一些库存是必要的,过量的库存却非但没有用处而且占用了资金。

占用的资金对于公司发展、新产品开发等都是非常需要的;减少资金占用还可以大大减少来自银行贷款的利息和风险。

对那些采购量特别大、采购件市场价格有波动的物料库存,加强库存管理效果更为明显。

因此,平衡公司库存投资与其它资金需求至关重要。

随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于每个企业来说,随着企业规模的不断扩大,产品数量的急剧增加,所生产产品的种类也会不断地更新与发展,有关产品的各种信息量也会成倍增长。

面对庞大的产品信息量,如何有效地管理库存产品,对这些企业来说是非常重要的,库存管理的重点是销售信息能否及时反馈,从而确保企业运行效益。

【最新精选】《数据结构》课程设计报告_商品货架管理系统

【最新精选】《数据结构》课程设计报告_商品货架管理系统

【最新精选】《数据结构》课程设计报告_商品货架管理系统05级普本《数据结构课程设计》――《交通咨询系统》设计报告湖北第二师范学院课程设计报告课程名称:数据结构课程设计设计题目: 商品货架管理系统系别: 计算机科学系专业: 软件工程组别: 蔡桥利,阳乐,邱东明,郝耀峰学生姓名: -- 学号: --起止日期: 2013年 12 月 7 日~2013年 12月21日指导教师: 宋婉娟教研室主任:第 1 页共 30 页05级普本《数据结构课程设计》――《交通咨询系统》设计报告目录一、课程设计目的...................................................................... ............................... 3 二、问题描述...................................................................... ...................................... 3 三、需求分析...................................................................... ...................................... 3 四、概要设计............................................................................................................ 3 五、详细设计...................................................................... .. (4)六、测试分析...................................................................... ...................................... 7 七、使用说明...................................................................... ...................................... 9 八、测试数据...................................................................... (10)九、源程序清单 ..................................................................... ................................. 10 十、模块说明...................................................................... (19)第 2 页共 30 页05级普本《数据结构课程设计》――《交通咨询系统》设计报告一(课程设计目的通过实习,了解并初步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。

数据结构 课程设计 库存管理系统

数据结构 课程设计 库存管理系统

学号数据结构课程设计设计说明书库存管理系统起止日期:2011年1月10 日至2011 年1月15日学生姓名班级成绩指导教师(签字)电子与信息工程系2011年1 月15日天津城市建设学院课程设计任务书2010—2011学年第1学期电子与信息工程系软件工程专业班级课程设计名称:数据结构课程设计设计题目:库存管理系统完成期限:自2011 年12 月12 日至2011 年12 月16 日共 1 周设计依据:c++程序设计要求:熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。

主要内容:1)问题描述试设计一库存管理系统,产品信息包括产品编号、名称、价格、数量等(产品编号不重复)。

2) 基本要求该系统应具有以下功能:1、产品信息录入功能(产品信息用文件保存)--输入?2、产品信息浏览功能--输出?3、产品入库4、产品出库5、查询和排序功能:1)按价格从大到小排序2)按名称查询6、产品信息删除、修改功能。

目录一、设计目的 (4)二、设计要求 (4)三、设计内容 (4)(1)需求分析 (4)(2)问题求解 (4)(3)总体设计 (5)(4)详细设计 (6)(5)关键源程序清单 (7)(6)执行结果: (12)四、参考文献 (15)一、设计目的熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。

二、设计要求(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。

凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩;(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;(4)认真编写课程设计报告。

三、设计内容(1)需求分析程序的功能、输入输出的要求1、从文件中加载数据;2、增加一个产品的信息;3、保存数据;4、显示所有产品的信息;5、删除某个产品的信息;6、用名称查找某个产品的信息;7、用编号查找某个产品的信息;8、退出。

数据结构课内实验报告模板-商品货架问题

数据结构课内实验报告模板-商品货架问题

*******数据结构课内实验报告题目:商品货架管理院系名称:计算机学院专业名称:软件工程专业班级:0901班学生姓名:*****学号(8位):*********一.需求分析程序设计的任务:商品货架可以看成是一个栈,栈顶产品的生产日期最早,栈底商品的生产日期最近。

上货时,需要倒货架,以保证生产日期较近的商品在较下的位置。

用队列和栈作为周转,实现上述管理过程。

(1)输入的形式和输入值的范围;输入的形式:请输入商品货物名称:请输入商品上架时间:是否继续输入(Y/N):请输入新增商品货物名称:请输入新增商品上架时间:是否继续输入(Y/N):输入值的范围:名称:字符串日期:整数(2)输出的形式;倒货架后商品的信息为:商品名称生产日期(3) 程序所能达到的功能;将商品信息顺序的放在一个栈中,新增商品放入另一个栈中,然后通过队列来进行一个倒货架的一个过程。

(3)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。

二. 概要设计本题采用了栈和队列数据结构,共采用二个栈和一个队列,实现了倒货架。

栈:先进后出队列:先进先出功能模块图以及各个模块的功能描述:重要函数:1.int add_goods(stack *add); 初始化新栈2.int push(stack *top); 入栈3.void Initstack(stack *top); 初始化一个带头结点的栈4.queue* enterqueue(stack *add,stack *top); // 将栈中元素入队列5.int Initqueue(queue *Q); 初始化队列6.void destroy(stack *add); 销毁栈,释放空间7.void enterstack(queue *newlinkqueue,stack * start,stack *top); // 将队列元素入栈8.void printgoods(stack *top); 打印栈中元素9.stack * printqueue(queue *Q); 打印队列中的元素,并将队列的队头指针,然后传参三.详细设计栈和队列的数据类型定义:#define N sizeof(stack)typedef struct goods_stack { //构造堆栈结构体long int date;char goods[80];struct goods_stack *next;}stack;typedef struct //队列{stack * front;stack * rear;}queue;核心算法:// 将栈中元素入队列queue * enterqueue(stack *add,stack *top){queue * new1;stack *temp;new1 = (queue *)malloc(sizeof(queue));Initqueue(new1);add = add->next;while(add)// 将add 中所有元素入队列queue 中去{temp = (stack *)malloc(N);strcpy(temp->goods,add->goods);temp->date = add->date;add = add->next;new1->rear->next =temp;new1->rear = temp;}destroy(&add); //销毁add栈中元素add =(stack *)malloc(N);Initstack(add);top = top->next;while(top)//将top栈中元素全部入栈到add 栈{temp = (stack *)malloc(N);strcpy(temp->goods,top ->goods);temp->date = top->date;top = top->next;temp ->next = add->next;//头插法入栈add ->next = temp;}add = add->next;while(add)//再次将add 中所有元素入队列queue 中去{temp = (stack *)malloc(N);strcpy(temp->goods,add->goods);temp->date = add->date;add = add->next;new1->rear->next =temp;new1->rear = temp;}// destroy(&top);//销毁top栈中元素;// destroy(&add);//销毁add栈中元素return new1;}// 将队列元素入栈void enterstack(queue *new1,stack * start,stack *top) {stack *temp;temp=(stack *)malloc(N);while(start!= new1->rear){strcpy(temp->goods,start->next->goods);temp->date=start->next->date;temp->next = top->next;//头插法入栈top->next = temp;start = start->next;temp=(stack *)malloc(N);}}四.时间复杂度分析本程序的时间复杂度:O(n)五.测试数据及运行结果1、正确的输入及其输出结果:以下是各商品的信息:倒货架后商品的信息为:2、错误的输入及其输出结果:输入时间时必须是数字,否则出错;输出数据时,必须按栈的顺序,否则结果混乱~~~六.调试情况,设计技巧及体会1.对自己的设计进行评价,指出合理和不足之处,提出改进方案;本设计达到了题目的要求,用了2个栈,1个队列,倒货到了好多次,实现了倒货架的过程。

商品货架管理—数据结构课程设计报告

商品货架管理—数据结构课程设计报告

商品货架管理—数据结构课程设计报告商品货架管理 1、需求分析:设计一个算法,每一次上货后始终保持生产日期越近的商品越靠近栈底。

求货架上剩余货物M、每天销售件数N、员工每天上货工作时间T,三者之间有何关系及T的最小值。

2、源程序:#include<iostream.h> #include"string.h"#include"stdio.h"const int maxsize=100; const int k=10;#define elemtype char typedef struct{int Month;int Day;int Year;}DATE;typedef struct{int num;DATE date;} Node;class seqstack{public:Node stack[maxsize]; int top;void inistack(){top=0;}void push(int x,int day,int month,int year) {if(top==maxsize)cout<<"货架已满"<<endl;else{top++;stack[top].num=x; stack[top].date.Day=day; stack[top].date.Month=month;stack[top].date.Year=year;}}void pop(){if(top==0)cout<<"货架已空"<<endl; elsetop--;}elemtype gettop() {if(top==0)cout<<"货架已空"<<endl; elsereturn top;}bool empty(){return top==0; }};void main(){seqstack c[k+1]; //存放k种商品的数组,用c[0]来做中介货架int Txq[k+1]; //第i种取货用的时间 int Txs[k+1]; //第i种上货用的时间 int Nx[k+1]; //第i种每天的销售数量 int N=0; //每天销售总量int Tx[k+1]; //第i种每天上货的总时间 int T=0; //每天上货用的总时间char yn='Y';for(int i=1;i<=k;i++){cout<<" ******************************"<<endl;cout<<" 商品货架管理系统"<<endl;cout<<" ******************************"<<endl;Node store[20];char year,month;int count; //货架上第i种商品的数目int x,d,m,y; //x为第i种商品的序号cout<<"请输入货架上第"<<i<<"种货物的详细信息:"<<endl; cout<<"(序号,生产日期(年、月、日如2006.2.13),现在货架上的存货数目,上货用时和取货用时)"<<endl;cin>>x>>y>>year>>m>>month>>d>>count>>Txs[i]>>Txq[i];Nx[i]=maxsize-count;cout<<"货架上还需上"<<i<<"货物"<<Nx[i]<<"件"<<endl;Tx[k]=Txs[i]*(maxsize+count)+2*Txq[i]*count;cout<<"该货架满货需要用时"<<Tx[k]<<endl;cout<<"是否要上货?(Y/N)"<<endl;cin>>yn;if(yn=='Y'||yn=='y'){int numbers,nian,yue,ri;cout<<"请输入要上货物的数目及生产日期(年、月、日)"<<endl; //上的是同一日期生产的货物cin>>numbers>>nian>>yue>>ri;if(numbers>maxsize-count){cout<<"要上的货物数目超出了货架的最大容量,请重新输入"<<endl; cin>>numbers>>nian>>yue>>ri;}for(int j=1;j<=numbers;j++){}}N+=Nx[i];T+=Tx[i];}cout<<"每天销售总量为:"<<N<<endl; cout<<"每天上货用的总时间为:"<<T<<endl; }3、测试结果:谢谢品读~。

商品货架管理--C++数据结构

商品货架管理--C++数据结构

商品货架管理--C++数据结构商品货架管理--C++数据结构一、介绍商品货架管理系统是用于管理商店货架上商品的一套软件系统。

本文档将介绍该系统的设计和实现,以及使用C++数据结构来实现该系统的方法。

主要包括以下几个方面内容。

二、需求分析在设计商品货架管理系统前,首先需要进行需求分析,明确系统的功能和目标。

需求分析包括以下几个方面:1.管理商品信息:包括商品的名称、价格、库存等信息。

2.管理货架信息:包括货架的编号、位置以及关联的商品。

3.添加和删除商品:能够通过系统添加新的商品,并且能够删除不再销售的商品。

4.购买和库存管理:用户能够购买商品,系统能够自动更新库存信息。

三、系统设计基于需求分析的结果,我们设计了如下的系统结构和数据结构。

1.商品类(Item):包含商品的名称、价格、库存等属性。

2.货架类(Shelf):包含货架的编号、位置等属性,以及关联的商品信息。

3.商品管理类(ItemManager):负责管理商品的增删查改等操作。

4.货架管理类(ShelfManager):负责管理货架的增删查改等操作。

5.库存管理类(InventoryManager):负责管理商品库存的增减等操作。

6.用户交互界面类(UserInterface):提供用户交互界面,接收用户的输入并调用相应的管理类。

四、系统实现根据系统设计,我们使用C++语言来实现商品货架管理系统。

以下是具体的实现步骤:1.定义商品类(Item):定义商品的属性和方法,包括名称、价格、库存等。

可以使用C++的类来实现。

2.定义货架类(Shelf):定义货架的属性和方法,包括编号、位置等。

可以使用C++的类来实现。

3.定义商品管理类(ItemManager):定义对商品进行增删查改等操作的方法。

可以使用C++的类来实现。

4.定义货架管理类(ShelfManager):定义对货架进行增删查改等操作的方法。

可以使用C++的类来实现。

5.定义库存管理类(InventoryManager):定义对商品库存进行增减等操作的方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告课程名称:数据结构课程设计设计题目:商品货架管理系统系别:计算机科学系专业:软件工程组别:学生姓名: -- 学号: --起止日期: 2013年 12 月 7 日~2013年 12月21日指导教师:教研室主任:目录一、课程设计目的 (3)二、问题描述 (3)三、需求分析 (3)四、概要设计 (3)五、详细设计 (4)六、测试分析 (7)七、使用说明 (9)八、测试数据 (10)九、源程序清单 (10)十、模块说明 (19)一.课程设计目的通过实习,了解并初步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。

二.问题描述设计、实现一个商品货架管理系统,实现商品出售,增加,查询(按商品代号,商品名字,生产日期),修改,输出过期商品,输出小于多少数量的商品。

三.需求分析printf("\t\t ******************************************\n");printf("\t\t ----------- 1.建立目前商品信息--------\n");printf("\t\t ----------- 2.添加商品--------\n");printf("\t\t ----------- 3.出售商品--------\n");printf("\t\t ----------- 4.查询商品--------\n");printf("\t\t ----------- 5.修改商品--------\n");printf("\t\t ----------- 6.显示所有商品信息--------\n");printf("\t\t ----------- 0.退出系统--------\n");printf("\t\t ******************************************\n\n");按序号依次实现功能。

四.概要设计• 4.1 系统用到的抽象数据类型定义:1、//定义结构体typedef struct node{int n; //商品代号char name[20]; //商品名称int date; //生产日期int validity; //保质期(天)int num; //商品数量struct node *next;}LiStack,*sqstack;基本操作:五、详细设计//输出所有商品p的名字、生产日期、保质期。

void print(sqstack p){sqstack L=(LiStack *)malloc(sizeof(LiStack));L=p->next;ifelse}//增加商品sqstack push(LiStack *top){}//创建一个存放商品信息的栈sqstack creat(){}//出售商品sqstack pop(LiStack *top){}//按序号查找商品void SequenceNumberF(LiStack *top){}//按商品名字查询商品void NameF(LiStack *top){}//按商品生产日期查找商品void ProductionDateF(LiStack *top){}//按商品数量查找商品,查找小于该数量的商品void NumberF(LiStack *top){}//date加validity,并返回date,到期时间。

int DateF(int date,int validity){}//查询过期商品信息void OverdueF(LiStack *top){}//查询商品void find(LiStack *top){}//修改商品sqstack update(LiStack *top){}void main(){LiStack *top;char i,j;top=(LiStack *)malloc(sizeof(LiStack));top->next=NULL;printf("\n\n\t\t------------欢迎使用商品货架管理系统------------\n"); while(1){printf("\t\t ******************************************\n");printf("\t\t ----------- 1.建立目前商品信息--------\n");printf("\t\t ----------- 2.添加商品--------\n");printf("\t\t ----------- 3.出售商品--------\n");printf("\t\t ----------- 4.查询商品--------\n");printf("\t\t ----------- 5.修改商品--------\n");printf("\t\t ----------- 6.显示所有商品信息--------\n");printf("\t\t ----------- 0.退出系统--------\n");printf("\t\t ******************************************\n\n");printf("\t\t\t请输入您的操作:");scanf("%s",&i);scanf("%c",&j);printf("\n\n");if(i == '0'){printf("\t\t\t退出成功,欢迎下次使用!\n");break;} else {switch(i){case '1':top=creat();break;case '2':top=push(top);break;case '3':top=pop(top);break;case '4':find(top);break;case '5':top=update(top);break;case '6':print(top);break;default:printf("\t\t\t输入错误,请选择正确的功能\n");}}}}六.测试分析按照附录中的测试数据,得出如下测试、分析结果:1、新建商品信息。

a/b/c/d2、增加商品。

f。

3、出售商品代号3,商品名称c,50个。

4、出售商品代号2,商品名称b,200个。

5、查询,按序号查询,输入1.6、查询,按商品名称查询,输入b。

7、查询,按生产日期查询,输入20131010.8、查询,输入小于数量200的商品。

9、查询,输出20131226时过期的商品。

10、修改商品。

修改商品代号为4的商品。

11、输出货架上的所有商品。

12、退出系统。

七.使用说明1、建立目前商品信息。

输入1,‘-1’表示结束。

按照提示依次输入商品代号、商品名称、生产日期、保质期、数量。

2、添加商品。

输入2,依次输入商品代号、商品名称、生产日期、保质期、数量。

3、出售商品。

输入3,显示所有商品,选择要出售的商品代号、数量,如果出售的数量小于等于该商品有的数量则显示出售成功。

否则显示出售失败。

4、查询商品。

输入4,选择1、2、3则按商品代号、名称、生产日期查询商品,选择4、5,则分别输出小于该数值的商品,输出过期商品。

5、修改商品信息。

输入5,输入修改商品代号,按照提示输入商品名称、生产日期,保质期,数量。

6、输入所有商品信息。

输入6,显示所有商品信息。

7、退出系统。

输入0,退出系统。

八.测试数据如,测分析六九.源程序清单#include<stdio.h>#include<stdlib.h>#include<string.h>//定义结构体typedef struct node{int n; //商品代号char name[20]; //商品名称int date; //生产日期int validity; //保质期(天)int num; //商品数量struct node *next;}LiStack,*sqstack;//输出所有商品p的名字、生产日期、保质期。

void print(sqstack p){sqstack L=(LiStack *)malloc(sizeof(LiStack));L=p->next;if(L==NULL)printf("货架为空。

\n");else{printf("代号\t商品名称\t生产日期\t\t保质期(天)\t\t数量(个)\n");while(L!=NULL){printf("%d",L->n);printf("\t%s \t\t",L->name);printf("%d \t\t",L->date);printf("%d \t\t",L->validity);printf("%d \t\t\n",L->num);p=L;L=p->next;}printf("\t***************************************\n");}}//增加商品sqstack push(LiStack *top){int validity,num,n;int date;char name[20];LiStack *temp=(LiStack *)malloc(sizeof(LiStack));printf("\t\t\t-----欢迎进入商品添加界面!-----\n");temp=(LiStack *)malloc(sizeof(LiStack));printf("\t增加商品的代号是:");scanf("%d",&n);printf("\t增加的商品名称是:");scanf("%s",name);printf("\t生产日期(年月日,如:20131215:)是:");scanf("%d",&date);printf("\t保质期(天)是:");scanf("%d",&validity);printf("\t数量(个):");scanf("%d",&num);temp->date=date;strcpy(temp->name,name);temp->num=num;temp->validity=validity;temp->n=n;if(top->next==NULL){temp->next=NULL;top->next=temp;}else{temp->next=top->next;top->next=temp;}printf("\t商品添加成功!\n");return (top);}//创建一个存放商品信息的栈sqstack creat(){int n,validity,num;char name[20];int date;LiStack *p;LiStack *top=(LiStack *)malloc(sizeof(LiStack));top->next=NULL;while(1){printf("\t请输入商品代号(int),代号为'-1'表示输入结束:");scanf("%d",&n);if(n<0) break;else{printf("\t请输入%d号——商品名称:",n);scanf("%s",name);printf("\t请输入%d号——生产日期(年月日,如20131215):",n);scanf("%d",&date);printf("\t请输入%d号——保质期(天):",n);scanf("%d",&validity);printf("\t请输入%d号——数量(个):",n);scanf("%d",&num);p=(LiStack *)malloc(sizeof(LiStack));p->date=date;p->validity=validity;strcpy(p->name,name);p->num=num;p->n=n;if(top->next==NULL){p->next=NULL;top->next=p;}else{p->next=top->next;top->next=p;}}}return(top);}//出售商品sqstack pop(LiStack *top){int n,num;LiStack *p,*L;p=(LiStack *)malloc(sizeof(LiStack));L=(LiStack *)malloc(sizeof(LiStack));printf("\t\t\t-----欢迎进入商品出售界面!-----\n");printf("\t----目前商品有:\n");print(top);printf("出售的商品代号是:");scanf("%d",&n);printf("出售的商品数量(个):");scanf("%d",&num);p=top->next;if(top->next==NULL){printf("货架为空,请先添加货物! \n");}else{while(p->next!=NULL){if(p->next->n==n){if(p->next->num<num){printf("出售商品数量小于原有数量,出售商品失败。

相关文档
最新文档