用以前学过的知识,可以简单地做一个超市库存管理系统:

定义一个商品类:

public class FruitItem {
int ID;
String name;
double price;
int number;
double money;
}

然后:

import java.util.ArrayList;
import java.util.Scanner; public class Shop { public static void main(String[] args) {
ArrayList<FruitItem> array = new ArrayList<FruitItem>();
init(array);
while (true) {
mainMenu();
int choose = chooseFunction();
switch (choose) {
case 1:
showFruitList(array);
break;
case 2:
addFruit(array);
break;
case 3:
deleteFruit(array);
break;
case 4:
updateFruit(array);
break;
case 5:
return;
default:
System.out.println("输入的序号不存在");
break;
}
}
} public static void updateFruit(ArrayList<FruitItem> array){
System.out.println("您选择的是修改功能");
System.out.println("请输入商品编号:");
Scanner sc = new Scanner(System.in);
int ID = sc.nextInt();
for (int i = 0; i < array.size(); i++) {
FruitItem item =array.get(i);
if(item.ID==ID){
System.out.println("请输入新的商品编号:");
item.ID = sc.nextInt();
System.out.println("请输入新的商品名称:");
item.name = sc.next();
System.out.println("请输入新的商品价格:");
item.price = sc.nextDouble();
System.out.println("商品修改成功");
return;
}
}
System.out.println("您输入的编号不存在");
} public static void deleteFruit(ArrayList<FruitItem> array){
System.out.println("您选择的是删除功能");
System.out.println("请输入商品的编号:");
Scanner sc = new Scanner(System.in);
int ID = sc.nextInt();
for (int i = 0; i < array.size(); i++) {
FruitItem item = array.get(i);
if(item.ID == ID){
array.remove(i);
System.out.println("删除成功");
return;
}
}
System.out.println("您输入的编号不存在"); } public static void addFruit(ArrayList<FruitItem> array) {
System.out.println("您选择的是添加商品功能");
Scanner sc = new Scanner(System.in);
System.out.println("请输入商品的编号:");
int ID = sc.nextInt();
System.out.println("请输入商品的名字:");
String name = sc.next();
System.out.println("请输入商品的单价:");
double price = sc.nextDouble();
FruitItem item = new FruitItem();
item.ID = ID;
item.name = name;
item.price = price;
array.add(item);
} public static void showFruitList(ArrayList<FruitItem> array) {
System.out.println();
System.out.println("==========商品库存清单==========");
System.out.println("商品编号 商品名称 商品单价");
for (int i = 0; i < array.size(); i++) {
FruitItem item = array.get(i);
System.out.println(item.ID + " " + item.name + " " + item.price);
}
} public static void init(ArrayList<FruitItem> array) {
FruitItem f1 = new FruitItem();
f1.ID = 9527;
f1.name = "香蕉";
f1.price = 3.0;
FruitItem f2 = new FruitItem();
f2.ID = 9008;
f2.name = "苹果";
f2.price = 5.6;
FruitItem f3 = new FruitItem();
f3.ID = 9879;
f3.name = "橘子";
f3.price = 6.6;
array.add(f1);
array.add(f2);
array.add(f3);
} public static void mainMenu() {
System.out.println();
System.out.println("==========欢迎光临某某超市==========");
System.out.println("1:货物清单 2:添加货物 3:删除货物 4:修改货物 5:退出");
System.out.println("请您输入要操作的功能序号");
} public static int chooseFunction() {
Scanner sc = new Scanner(System.in);
return sc.nextInt();
}
}

Java学习笔记7(简易的超市库存管理系统示例)的更多相关文章

  1. java全栈day07---Eclipse开发工具 超市库存管理系统

    前六天我们都是用Notepad++来编写java程序,通过DOS命令来运行,我们发现这样比较繁琐,那么我们今天就用一个工具Eclipse来开发java Eclipse的下载安装 * A: Eclips ...

  2. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  3. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  4. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  5. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  6. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  7. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  8. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  9. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

随机推荐

  1. FSharp 调用 Oracle.ManagedDataAccess.dll

    FSharp 调用 Oracle.ManagedDataAccess.dll 1.Oracle.ManagedDataAccess.dll 的下载地址.好像如今必需要注冊才干下载. 即使是 64 位系 ...

  2. android:自己定义组合控件Weight(高仿猫眼底部菜单条)

    在我们实际开发其中.会碰见一些布局结构类似或者同样的界面.比如应用的设置界面.tabbutton界面等. 这时候.对于刚開始学习的人来说,xml里面一个个绘制出来也许是最初的想法.可能随着经验的积累, ...

  3. git for c#,子文件的加入

    private static void SubDirFile() { string wkDir = @"E:\DotNet2010\单位project\Git.Client\lib2Test ...

  4. JS获取字符对应的ASCII码

    有时候会需要用到字符的ASCII码,一时之间调试时可能会忘记字符与ASCII码对应的数字. 最近喜欢用浏览器控制台直接跑JS代码,将这个代码直接贴到浏览器控制台,即可调试(谷歌浏览器快捷键 ctrl+ ...

  5. 小白的Python之路 day2 字符编码和转码

    字符编码和转码 详细文章: http://www.cnblogs.com/yuanchenqi/articles/5956943.html http://www.diveintopython3.net ...

  6. MySQL时间操作的系统函数用法

    我要查询获得当天凌晨30分的datetime值的方式:select ADDDATE(CURDATE(), INTERVAL TIME_TO_SEC(TIMEDIFF("00:30:00&qu ...

  7. ABP前端使用阿里云angular2 UI框架NG-ZORRO分享

    一.前言 前段时间写博客分享和介绍了阿里云的UI框架NG-ZORRO(博客请查看:http://www.cnblogs.com/donaldtdz/p/7892960.html),结合近段时间对.Ne ...

  8. 用C#写入Excel表并保存

    想用C#操作Excel表,首先要做一些准备工作. 如果要操作 microsoft office Excel 2003表,就需要引入Microsoft office 11.0 object librar ...

  9. 使用SplitContainer来实现隐藏窗口的部分内容(转)

    有两种方法: (1) Splitter:比较老的方法 (2) SplitContainer:比较新的方法 最终界面如下: 方法一:使用Splitter实现 (1) 在窗口中添加一个Panel控件,即P ...

  10. scala-Future和Promise

    首先说明同步与异步,阻塞与非阻塞的问题: Asynchronous vs. Synchronous A method call is considered synchronous if the cal ...