JavaCore-OOP-1-最最基础的商品管理
2017-11-23 07:41
302 查看
话说
前面一系列框架,也许读者累了。其实,是笔者累了,换换口味吧。这段时间,重新体会一下OOP,回忆一下当年“初识”的感觉。
目标:
实现一个最最基本的库存管理。
用时:
快速:30min
中速:1H
慢速:1.5H
具体要求:
开发环境:Eclipse
前期用的是IDEA,这次也是换换口味,提示不够多也是好事。
目录
1、运行结果
2、实体类
3、核心代码
4、double类型保留指定位数
1、运行结果[/b]
2、实体类Goods
3、核心代码
GoodsManagement
4、double类型保留指定位数
这里面关于double类型保留指定位数,查了如下资料,自己敲了下,测试类如下:
感谢这位童鞋分享:http://blog.csdn.net/huaishuming/article/details/17752365
DoubleFormat
第一种方式感觉好用;后续几种目前没遇到。好了,这篇是很基础,不过,温故知新。
下期再会!
前面一系列框架,也许读者累了。其实,是笔者累了,换换口味吧。这段时间,重新体会一下OOP,回忆一下当年“初识”的感觉。
目标:
实现一个最最基本的库存管理。
用时:
快速:30min
中速:1H
慢速:1.5H
具体要求:
* 管理员能够进行的操作有3项(查看、修改、退出) * -------------库存管理------------ * 1.查看库存清单 * 2.修改商品库存数量 * 3.退出 请输入要执行的操作序号: 每一项功能操作, 采用方法进行封装,这样,可使程序的可读性增强。 * 选择: * 1. “查看库存清单”功能,则控制台打印库存清单 * 2.选择“修改商品库存数量”功能, 则对每种商品库存数进行更新 * 3.选择“退出”功能,则退出库存管理,程序结束
开发环境:Eclipse
前期用的是IDEA,这次也是换换口味,提示不够多也是好事。
目录
1、运行结果
2、实体类
3、核心代码
4、double类型保留指定位数
1、运行结果[/b]
2、实体类Goods
package com.hmc.yijian02; /** * *2017年11月22日 *User:Meice *下午5:25:36 */ public class Goods { private String goods_name; private double goods_size; private double goods_price; private int goods_count; public Goods() {} public Goods(String goods_name, double goods_size, double goods_price, int goods_count) { super(); this.goods_name = goods_name; this.goods_size = goods_size; this.goods_price = goods_price; this.goods_count = goods_count; } public void setGoods_name(String goods_name) { this.goods_name = goods_name; } public String getGoods_name() { return goods_name; } public void setGoods_size(double goods_size) { this.goods_size = goods_size; } public double getGoods_size() { return goods_size; } public void setGoods_price(double goods_price ) { this.goods_price = goods_price; } public double getGoods_price() { return goods_price; } public void setGoods_count(int goods_count) { this.goods_count = goods_count; } public int getGoods_count() { return goods_count; } }
3、核心代码
GoodsManagement
package com.hmc.yijian02; import org.junit.Test; import java.text.DecimalFormat; import java.util.Scanner; /** * *2017年11月22日 *User:Meice *下午5:24:59 */ public class GoodsManagement { /** * 管理员能够进行的操作有3项(查看、修改、退出),我们可以采用(switch)菜单的方式来完成。 * -------------库存管理------------ * 1.查看库存清单 * 2.修改商品库存数量 * 3.退出 请输入要执行的操作序号: 每一项功能操作, * 采用方法进行封装,这样,可使程序的可读性增强。 * 选择“1.查看库存清单”功能,则控制台打印库存清单 选择“ * 2.修改商品库存数量”功能, * 则对每种商品库存数进行更新 * 选择“3.退出”功能,则退出库存管理,程序结束 */ /** * 定义方法:1.查看库存清单 */ Goods goods_1 = new Goods("Lenovo",13.2,6999.99,0); Goods goods_2 = new Goods("Apple",14.0,8788.09,0); //GoodsManagement gm = new GoodsManagement(); @Test public void getStorgeList() { /*goods_1.setGoods_name("Lenovo"); goods_1.setGoods_size(13.2); goods_1.setGoods_price(6999.99); goods_1.setGoods_count(0); goods_2.setGoods_name("Apple"); goods_2.setGoods_size(14.0); goods_2.setGoods_price(8788.09); goods_2.setGoods_count(0);*/ System.out.println("=======================商品清单======================="); System.out.println("品名"+"\t"+"尺寸/寸"+"\t"+"价格/元"+"\t\t"+"库存/台"); System.out.println(goods_1.getGoods_name()+"\t"+goods_1.getGoods_size()+"\t"+goods_1.getGoods_price()+"\t\t"+goods_1.getGoods_count()); System.out.println(goods_2.getGoods_name()+"\t"+goods_2.getGoods_size()+"\t"+goods_2.getGoods_price()+"\t\t"+goods_2.getGoods_count()); System.out.println("库存总量为:"+(goods_1.getGoods_count()+goods_2.getGoods_count())+"台"); double totalPrice = ((goods_1.getGoods_count()*goods_1.getGoods_price())+(goods_2.getGoods_count()*goods_2.getGoods_price())); /** * 保留2位小数 */ DecimalFormat df = new DecimalFormat("#.00"); System.out.println("库存总价为:"+df.format(totalPrice) +"元"); } /** * 定义方法: 2.修改商品库存数量 */ public void updateGoodsCount() { System.out.println(goods_1.getGoods_name()+"原库存数量为:"+goods_1.getGoods_count()+";请输入要修改后的数量:"); int count1 = new Scanner(System.in).nextInt(); goods_1.setGoods_count(count1); System.out.println(goods_2.getGoods_name()+"原库存数量为:"+goods_2.getGoods_count()+";请输入要修改后的数量:"); int count2 = new Scanner(System.in).nextInt(); goods_2.setGoods_count(count2); System.out.println("恭喜您!修改成功!修改后清单如下:"); getStorgeList(); } /** * 定义方法:3、退出 */ public String exitGoodsManagement() { System.out.println("谢谢惠顾!后会有期~"); return "谢谢惠顾!"; } /** * 定义方法:用户名和密码权限: * */ public void qualifyCertain(String username,String password) { if("admin".equals(username) && "123".equals(password)) { updateGoodsCount(); }else { System.out.println("哈哈,您权限不足,请重新输入:您还有2次机会"); System.out.println("请重新输入用户名:"); String username2 = new Scanner(System.in).next(); System.out.println("请重新输入密码:"); String password2 = new Scanner(System.in).next(); if("admin".equals(username2) && "123".equals(password2)) { updateGoodsCount(); }else { System.out.println("哈哈,您权限不足,请重新输入:您还有1次机会"); System.out.println("请重新输入用户名:"); String username3 = new Scanner(System.in).next(); System.out.println("请重新输入密码:"); String password3 = new Scanner(System.in).next(); if("admin".equals(username3) && "123".equals(password3)) { updateGoodsCount(); }else { System.out.println("Sorry!权限已用完,请24小时候在操作~"); } } } } public static void main(String[] args) { //这里测试 boolean flag = true; GoodsManagement gm = new GoodsManagement(); while(flag) { System.out.println("================欢迎进入库存管理系统======================"); System.out.println(" 1.查看库存清单\n 2.修改商品库存数量\n 3.退出\n 查看功能,请输入对应序号:"); int choose = new Scanner(System.in).nextInt(); switch(choose) { case 1: gm.getStorgeList(); break; case 2: System.out.println("请输入用户名:"); String username = new Scanner(System.in).next(); System.out.println("请输入用户密码:"); String password = new Scanner(System.in).next(); gm.qualifyCertain(username, password); //gm.updateGoodsCount(); break; case 3: gm.exitGoodsManagement(); flag = false; break; default: System.out.println("输入有误,请重新输入奥:"); } } } /** * 测试遇到问题: * * 1、Exception in thread "main" java.lang.StackOverflowError * 原因是因为我要用不同对象,结果只new了一个对象。//GoodsManagement gm = new GoodsManagement(); * * 2、如何设置密码输入次数限制,不断判断,可否做成循环? * * 3、修改后数量后,并没有真正保存,如何保证修改后的保存下来? * GoodsManagement gm = new GoodsManagement();要放在循环外面,否则,每一次都New一个对象,那么设置的数量就无法保存。 * * 4、double类型如何只保留指定位数?DecimalFormat * */ }
4、double类型保留指定位数
这里面关于double类型保留指定位数,查了如下资料,自己敲了下,测试类如下:
感谢这位童鞋分享:http://blog.csdn.net/huaishuming/article/details/17752365
DoubleFormat
package com.hmc.yijian02; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; import org.junit.Test; /** * *2017年11月22日 *User:Meice *下午9:18:16 */ public class DoubleFormat { /** * 小数按照指定格式保留位数 */ double Pi = 3.1415926; /** * 法一:DecimalFormat 转换方便 */ public void testDoubleFormat01() { DecimalFormat df = new DecimalFormat("#.00"); System.out.println(df.format(Pi)); } /** * 法二:String.format */ public void testDoubleFormat02() { System.out.println(String.format("%.2f",Pi)); } /** * 法三:NumberFormat */ public void testDoubleFormat03() { NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(2); System.out.println(nf.format(Pi)); } /** * 法四:Java.Math * @param args */ public void testDoubleFormat04() { BigDecimal bd = new BigDecimal(Pi); double Pi2 = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); System.out.println(Pi2); } public static void main(String[] args) { DoubleFormat dFormat = new DoubleFormat(); dFormat.testDoubleFormat01(); dFormat.testDoubleFormat02(); dFormat.testDoubleFormat03(); dFormat.testDoubleFormat04(); } }
第一种方式感觉好用;后续几种目前没遇到。好了,这篇是很基础,不过,温故知新。
下期再会!
相关文章推荐
- JavaCore-OOP-4-图书管理系统(完善版V2)
- JavaCore-OOP-5-简易的【学生信息管理系统】
- JavaCore-OOP-3-图书管理系统(完善版)
- 「如莲春天」MIS基础框架(管理信息系统、Java技术、B/S结构)
- Java80商城系统第四节-商品分类和商品后台管理
- [零基础学JAVA]Java SE实战开发-37.MIS信息管理系统实战开发[文件保存](1) 推荐
- Java AWT基础及布局管理
- java swing mysql实现的仓库商品管理系统项目源码附带视频指导教程
- 黑马程序员--JAVA基础案例之交通灯管理系统
- core java 5~6(OOP & 高级语言特征)
- java基础--简单交通灯管理系统
- PHP基础示例:商品信息管理系统v1.1[转]
- [转]CoreJava学习笔记_Java语法基础
- 【备忘】北风网Java必备JAVA语言基础与OOP入门(骑士飞行棋门禁系统)
- linux基础简介 系统安装 常用命令 系统命令 软件管理 搭建Java服务器并进行远程管理
- Android内存基础——Java内存管理机制
- 黑马程序员———Java AWT基础及布局管理
- 纯Java编写的商品管理系统 List集合模仿数据库
- JavaWeb基础+oracle实现简单简单分页商品浏览与加入购物车系统
- 黑马程序员_java基础笔记(14)...交通灯管理系统_编码思路及代码