Java学习笔记7(简易的超市库存管理系统示例)
用以前学过的知识,可以简单地做一个超市库存管理系统:
定义一个商品类:
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(简易的超市库存管理系统示例)的更多相关文章
- java全栈day07---Eclipse开发工具 超市库存管理系统
前六天我们都是用Notepad++来编写java程序,通过DOS命令来运行,我们发现这样比较繁琐,那么我们今天就用一个工具Eclipse来开发java Eclipse的下载安装 * A: Eclips ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
随机推荐
- opencv批处理提取图像的特征
____________________________________________________________________________________________________ ...
- 解决 ASP.NET Core Hangfire 未授权(401 Unauthorized)
相关文章:ASP.NET Core 使用 Hangfire 定时任务 ASP.NET Core Hangfire 在正式环境发布之后,如果访问 http://10.1.2.31:5000/hangfi ...
- springMVC学习总结(一)快速入门
springMVC学习总结(一)快速入门 一.初步认识 springMVC执行流程 主要组件 DispatcherServlet(中央控制器) 配置在web.xml中的前端控制器,客户端请求的入口,调 ...
- 聊聊js中的typeof
内容: 1.typeof 2.值类型和引用类型 3.强制类型转换 typeof 官方文档:typeof 1.作用: 操作符返回一个字符串,指示未经计算的操作数的类型. 2.语法: typeof ope ...
- redis的事务(简单介绍)
1.简单描述 redis对事务的支持目前还是比较简单.redis只能保证一个client发起的事务中的命令是可以连续的执行,而中间不会插入其他client的命令.由于redis是但现场来处理所有cli ...
- SDWebimage如何获取缓存大小以及清除缓存
sdwebimage如何获取缓存大小以及清除缓存 1.找到SDImageCache类 2.添加如下方法: - (float)checkTmpSize { float totalSize = 0; ...
- ImportError: No module named 'request'
使用系统自带的Python 2.7执行python时出现ImportError: No module named 'request'这样的报错,这是系统自带的Python没有requests库,这里可 ...
- jquery如此强大,为什么还要写原生呢?
这是一个伪标题,其实是一篇年终总结. 在这家公司一年多,蛮多收获的.大部分来自自己,小部分来自公司. 做前端开发到现在,我觉得可以分为两部分. 前半部分做项目用原生js,jquery以及各种基于jq的 ...
- iOS UI特效
1.iOS特效 a.对应APP中的基本动作分三类: 1.指向性动效(滑动,弹出等) 2.提示性动效(滑动删除,下拉刷新等) 3.空间扩展(翻动,放大等) b.这类动效在设计过程中需要主意几点: 1.系 ...
- iOS 用户密码 数字字母特殊符号设置 判断
//直接调用这个方法就行 -(int)checkIsHaveNumAndLetter:(NSString*)password{ //数字条件 NSRegularExpression *tNumRegu ...