实验项目XXXXX批发商商库存管理系统.doc_第1页
实验项目XXXXX批发商商库存管理系统.doc_第2页
实验项目XXXXX批发商商库存管理系统.doc_第3页
实验项目XXXXX批发商商库存管理系统.doc_第4页
实验项目XXXXX批发商商库存管理系统.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

合作实验项目 XXXXX批发商商库存管理系统每组人数3-4人一、 问题描述某商品批发商的仓库存放10种以上的商品(或零部件),每种商品作为一个结点构成有若干个结点的单链表存储于计算机中,链表每个结点存储某一价格的商品若干个。每天都有大量的批发业务,也需要定期进货,即需要对商品进行入库与出库处理。请设计出应用程序,实现库存管理,入库与出库的操作如下:(1)补货:原有商品价格为x,现在增加商品数量m;(2)进货:新价格为y的商品,加入仓库(单链表)中,数量为n;(3)出货:要提货价格为z的商品,数量是s。由于需要大量查询单链表的操作,使用有序单链表能够提高查询速度。二、 基本要求1、 选定一个主题,如某品牌型号汽车、超市、百货商店、杂货店,实地调查或者上网了解10 种以上的商品,制作一个表格,列出商品名称、单价,以供程序运行与测试使用。2、 设计商品类结点类型可参考如下的类设计,简化商品属性,以单价标识商品。/物品类(结点类型)public class Goods public int amount; /数量 public float price; /单价 public Goods() public Goods(int amount,float price) this.amount=amount; this.price=price;public String toString()return(物品单价 +price+ 数量为 +amount);3、 基本数据结构:a) 逻辑结构:线性b) 存储结构:带头结点的单链表4、 基本算法:课本链表的基本操作,课本P39-41, 其中Object在对象实例化时绑定为Goods类5、 程序功能:按库存管理功能分模块设计,菜单驱动,便于调试与分析。a) 初始化库存数据:输入不少于10种商品的数据。b) 进货:先查找是否有某一价格的商品有,增加其数量;无:确认是否要增加商品品种,是:增加结点;否:不作处理c) 出货:先查找是否有某一价格库存商品,有,且数量足够,出货;无或数量不足,不操作;d) 查询:按照给定的单价查询该商品的库存数量e) 输出:输出当前库存信息到屏幕和文本文件中6、 程序性能:对于输入能够进行容错处理;并提供友好的交互界面。7、 程序测试:设计合法、不合法的测试用例进行测试,要求测试尽可能覆盖各种情况。三、 建议工作分配:商品调查合作;理解商品结点类型设计合作;程序整体模块设计合作;理解程序设计合作;程序设计2-3人;测试2人;撰写实验报告1人。四、 提示:模块化设计的程序结构和部分参考程序/物品类public class Goods public int amount; /数量 public float price; /单价 public Goods() public Goods(int amount,float price) this.amount=amount; this.price=price;public String toString()return(物品单价 +price+ 数量为 +amount);public void query(LinkList lst)throws Exception/查询某单价的物品是否存在仓库Goods x=new Goods();int len;float pri;System.out.println(本仓库以物品单价为标识,每种单价对应一种物品,请输入要查询的物品单价:);Scanner sc = new Scanner(System.in);pri=sc.nextFloat();len=lst.length();for (int n=0; n0) System.out.println(请输入第一个物品的数量和种类);w=new Goods(sc.nextInt(),sc.nextFloat();lst.insert(0,w); /建立第一个结点,不需要查找插入位置for (m=1; m=len-1; +m) /建立其它结点,要先查找插入位置System.out.println(请输入第+(m+1)+一个物品的数量和种类);w=new Goods(sc.nextInt(),sc.nextFloat();for (n=0; n=lst.length()-1; n+) /查找插入位置x=(Goods)(lst.get(n); /取出一个结点值if (w.price=x.price)break; /查找完成:新结点应该插入在第n个结点位置if (w.price=x.price) /该价格的物品已经存在System.out.println(该品种本库已有,是否增加数量?(y表示增加数量));char yorn;yorn=sc.next().charAt(0);if (yorn=y|yorn=Y) x=(Goods)(lst.get(n); /准备更新物品链结点数据,先读出当前库存数据lst.remove(n); /准备更新物品链结点数据,先删除旧结点w.amount+=x.amount;/ 增加数量lst.insert(n,w); / 在原位置把结点插入回去else System.out.println(不增加物品数量,继续!);else /新价格的物品结点插入在第1个位置lst.insert(n,w);System.out.println(最新库存记录:);lst.display(); /输出存在记录void input_w(LinkList lst)throws Exception/进货Goods w, x;float pri; int m,n;char yorn;System.out.println(本仓库现有货品:);lst.display();/*以下请同学们补充完整*/void output_w(LinkList lst)throws Exception/出货Goods x;int m, n;float pri;char yorn;System.out.println(本店现有存货:);lst.display();/*以下请同学们补充完整*/public static void main(String args) throws Exception/ TODO Auto-generated method stubScanner sc = new Scanner(System.in);Goods a=new Goods();LinkList lst=new LinkList();int choice,flag=1;System.out.println(*库存信息管理系统*);System.out.println(现在初始化库存:);Sqltest s=new Sqltest();s.build(lst);do System.out.println(*库存信息管理系统*);System.out.println(请选择操作:);System.out.println(0 - 退出本系统);System.out.println(1 - 进货);System.out.println(2 - 出货);System.out.println(3 - 查询);System.out.println(请输入您的选择:); choice=sc.nextInt();switch (choice) case 0 : flag=0; break;case 1 : s.input_w(lst

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论