//商场类
public class Goods {
int no;    //编号
String name;  //商品名称
double price;  //商品价格
int number;  //商品数量

  //初始化数据方法
public void setData(int iNo, String sName, double dPrice, int iNumber) {
no = iNo;
name = sName;
price = dPrice;
number = iNumber;
} // 按格式输出
public void showGoods() {
System.out.println(no + "\t\t" + name
+ (name.getBytes().length > 10 ? "\t" : "\t\t") + price
+ "\t\t" + number);
}
}
//用户类
public class User { String username;  //用户名
String password;  //密码
String nickName;  //昵称// 购物车
Goods[] cart = new Goods[10];

  //显示用户信息方法
public void showInfo() {
System.out.println("用户名:\t" + username);
System.out.println("密码:\t" + password);
System.out.println("昵称:\t" + nickName);
}

  //购买商品 --> 传入商品参数
public void buyGoods(Goods goods) {
// 1.购物车中没有该商品
// 2.购物车中有了该商品
int index = searchGoodsByName(goods.no);
if (index != -1) {
// 购物车已经有了该商品,直接增加数量
cart[index].number += goods.number;
} else {
// 没有呢,就把他放入 第一个为null的位置
for (int i = 0; i < cart.length; i++) {
if (cart[i] == null) {
cart[i] = goods;
return;
}
}
System.out.println("商品已满,请清空购物车后,在来购买");
}
}

  //查找购物车是否有相同的商品
public int searchGoodsByName(int goodsNo) {
for (int i = 0; i < cart.length; i++) {
if (cart[i] == null)
return -1;
else if (goodsNo == cart[i].no) {
return i;
}
}
return -1;
}

  //显示商品
public void showGoods() {
System.out.println("商品编号\t\t商品名称\t\t商品价格\t\t库存");
for (int i = 0; i < cart.length; i++) {
if (cart[i] == null)
return;
cart[i].showGoods();   //调用商场的显示方法 显示商品
}
} // 返回购物车中需要的金额
public double getGoodsMoney() {
double sum = 0;
for (int i = 0; i < cart.length; i++) {
if (cart[i] == null)
break;
double value = cart[i].price * cart[i].number;
sum += value; }
return sum;
} // 清空购物车
public void clearCart() {
for (int i = 0; i < cart.length; i++) {
cart[i] = null;
}
}
}
import java.util.Scanner;

//商场系统
public class ShoppingManager { //用户数组
User[] users = new User[10];
//商品数组
Goods[] goods = new Goods[10];
Scanner input = new Scanner(System.in); //当前登录用户
User loginUser; // 显示menu之前,先初始化数据
public void init() {
goods[0] = new Goods();
goods[0].setData(10101, "海尔冰箱", 3999.9, 50);
goods[1] = new Goods();
goods[1].setData(10102, "格力冰箱", 2888.8, 50);
goods[2] = new Goods();
goods[2].setData(10103, "TCL冰箱", 3333.0, 100);
goods[3] = new Goods();
goods[3].setData(10104, "美的冰箱", 5100.5, 80);
goods[4] = new Goods();
goods[4].setData(10105, "海尔空调", 4622, 50);
goods[5] = new Goods();
goods[5].setData(10106, "格力空调", 1555, 70);
goods[6] = new Goods();
goods[6].setData(10107, "TCL空调", 2100.5, 30);
goods[7] = new Goods();
goods[7].setData(10108, "美的空调", 3355.5, 150);
goods[8] = new Goods();
goods[8].setData(10109, "小天鹅洗衣机", 2500, 30);
goods[9] = new Goods();
goods[9].setData(10110, "西门子冰箱", 3800, 80); // 预存用户 测试用的
User user = new User();
user.nickName = "李四";
user.username = "lisi";
user.password = "123456";
users[0] = user;
} //显示商场菜单
public void showMenu() {
// 初始化商品
init();
String choose = "";
do {
// 打印菜单系统
System.out.println("*****************国美电器*****************");
System.out.println("\t\t1.用户登录");
System.out.println("\t\t2.用户注册");
System.out.println("\t\t3.退出系统");
System.out.println("*****************国美电器*****************");
choose = input.next();
switch (choose) {
case "1":
userLogin(); //登录
break;
case "2":
userRegister(); //注册
break;
case "3":
System.out.println("退出系统成功!");
break;
default:
System.out.println("输入错误,请重新输入");
break;
}
} while (!choose.equals("3"));
// 退出系统
input.close();
} //用户注册
private void userRegister() {
System.out.print("请输入用户名:");
String name = input.next();
if (isDuplicationName(name)) {
System.out.println("用户名已存在!注册失败");
return;
}
// 没有重名
System.out.print("请输入密码:");
String password = input.next();
if (password.length() < 6) {
System.out.println("密码输入错误!注册失败");
return;
}
System.out.print("请输入昵称:");
String nickName = input.next();
if (addUser(name, password, nickName)) {
System.out.println("注册成功");
} else {
System.out.println("注册失败,用户已满!");
}
} //添加用户方法,判断用户数组中是否存在该用户
public boolean addUser(String username, String password, String nickname) {
User user = new User();
user.username = username;
user.nickName = nickname;
user.password = password;
for (int i = 0; i < users.length; i++) {
if (users[i] == null) {
users[i] = user;
return true;
}
}
return false;
} //判断用户名是否存在,返回ture或false
private boolean isDuplicationName(String name) {
for (int i = 0; i < users.length; i++) {
// 为空就跳出循环
if (users[i] == null)
break;
// 有重名
else if (users[i].username.equals(name))
return true;
}
return false;
} private void userLogin() {
System.out.print("请输入用户名:");
String username = input.next();
System.out.print("请输入密码:");
String password = input.next();
User user = login(username, password);
if (user == null) {
System.out.println("登录失败!");
} else {
// 下一级菜单
loginUser = user;
System.out.println("登录成功,你好:" + loginUser.nickName);
userMenu(); //用户菜单
}
} public User login(String username, String password) {
for (int i = 0; i < users.length; i++) {
if (users[i] == null)
return null;
else if (users[i].username.equals(username)
&& users[i].password.equals(password)) {
return users[i];
}
}
return null;
} // 用户登录后的菜单
public void userMenu() {
String choose = "";
do {
System.out.println("1.商品购买");
System.out.println("2.我的购物车");
System.out.println("3.个人信息");
System.out.println("4.注销");
choose = input.next();
switch (choose) {
case "1":
buyGoods(); //购买商品
break;
case "2":
showMyGoods(); //显示购物车
break;
case "3":
showUserInfo(); //显示用户信息
break;
case "4":
System.out.println("注销成功");
break;
default:
System.out.println("输入错误,请重新输入!");
break;
} } while (!choose.equals("4"));
} private void showUserInfo() {
loginUser.showInfo();
} //显示购物车
private void showMyGoods() {
System.out.println("********************购物车********************");
loginUser.showGoods();
// 开始付款
System.out.println("\t\t你购买的商品总价格为:" + loginUser.getGoodsMoney());
// 是否付款
if (loginUser.getGoodsMoney() == 0)
return;
System.out.println("是否付款?Y/N");
String choose = input.next();
if (choose.equalsIgnoreCase("y")) {
// 付款
System.out.println("输入实付金额:");
double money = input.nextDouble();
if (money < loginUser.getGoodsMoney()) {
System.out.println("输入的金额不够啊!");
} else {
double zero = money - loginUser.getGoodsMoney();
System.out.println("恭喜你付款成功,找您" + zero + "元");
loginUser.clearCart();
}
}
} private void buyGoods() {
System.out.println("********************商品购买*********************");
showGoodsList();
String choose = "";
while (!choose.equalsIgnoreCase("exit")) {
System.out.print("请输入需要购买的商品编号,输入exit后退出");
choose = input.next();
if (!choose.equalsIgnoreCase("exit")) {
// 购买商品
int index = getGoodsIndex(choose);
if (index == -1) {
System.out.println("没有该商品,请重新输入");
} else {
System.out.print("请输入商品数量:");
int number = input.nextInt();
// 判断由没有这么多库存
if (number <= goods[index].number) {
// 1.商城需要减少数量
// 2.购物车是增加
goods[index].number -= number;
// 用户买的商品
Goods good = new Goods();
good.setData(goods[index].no, goods[index].name,
goods[index].price, number);
loginUser.buyGoods(good);
System.out.println("购买成功");
} else {
System.out.println("商品不够了。。。");
}
}
}
}
// 显示购物车
showMyGoods();
} //显示商品列表
public void showGoodsList() {
System.out.println("商品编号\t\t商品名称\t\t商品价格\t\t库存");
for (int i = 0; i < goods.length; i++) {
Goods good = goods[i];
if (good == null)
return;
good.showGoods();
}
} // 判断购买的商品在数组中的位置
/**
*
* @param no
* 输入的商品编号
* @return 找到 返回索引号,没有找到返回-1
*/
public int getGoodsIndex(String no) {
// 将编号转成int
// int iNo = Integer.parseInt(sNo);
for (int i = 0; i < goods.length; i++) {
if ((goods[i].no + "").equals(no)) {
return i;
}
}
return -1;
} }
//测试类
public class Test { public static void main(String[] args) {
ShoppingManager manager = new ShoppingManager();
manager.showMenu();
}
}

Java电器商场小系统--简单的java逻辑的更多相关文章

  1. java基础学习02(简单的java程序)

    简单的java程序 一.完成的目标 1. 理解java程序的基本组成 2. 如何对程序代码进行注释 3. java标识符的命名规则 4. 了解java中的关键字 5. 使用java定义变量或声明变量 ...

  2. Java学习第一天之简单了解java语言及开发环境的安装

    一.初步了解Java语言 Java语言是由Sun公司的James Gosling创造的一门面向对象的高级语言. 2009年4月20日,Sun公司被Oracle以总价值约为74亿美元的价格收购,Java ...

  3. java客房管理小项目,适合java小白练手的项目!

    java客房管理小项目 这个客房管理小项目,适合java初学者练手.功能虽然不多,但是内容很齐全! 喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资料的也可以私 ...

  4. Java基础——第一个记事本代码与Java注释

    一 .使用记事本编辑java文件: 1.打开记事本,重命名文件名,文件拓展名“.java”.(必须要的,系统才能识别java文件) 2.编写一个简单的java代码: public class Hell ...

  5. Java消息系统简单设计与实现

    前言:由于导师在我的毕设项目里加了消息系统(本来想水水就过的..),没办法...来稍微研究研究吧..简单简单... 需求分析 我的毕设是一个博客系统,类似于简书这样的,所以消息系统也类似,在用户的消息 ...

  6. java小知识点简单回顾

    1.java的数据类型分为两种:简单类型和引用类型(数组.类以及接口).注意,java没有指针的说法,只有引用.简单类型的变量被声明时,存储空间也同时被分配:而引用类型声明变量(对象)时,仅仅为其分配 ...

  7. 【Java】Jsoup爬虫,一个简单获取京东商品信息的小Demo

    简单记录 - Jsoup爬虫入门实战 数据问题?数据库获取,消息队列中获取中,都可以成为数据源,爬虫! 爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!) 我们经常需要分析HTML网 ...

  8. JAVA配置&注解方式搭建简单的SpringMVC前后台交互系统

    前面两篇文章介绍了 基于XML方式搭建SpringMVC前后台交互系统的方法,博文链接如下: http://www.cnblogs.com/hunterCecil/p/8252060.html htt ...

  9. [Java 缓存] Java Cache之 DCache的简单应用.

    前言 上次总结了下本地缓存Guava Cache的简单应用, 这次来继续说下项目中使用的DCache的简单使用. 这里分为几部分进行总结, 1)DCache介绍; 2)DCache配置及使用; 3)使 ...

随机推荐

  1. SSO框架介绍前篇

    SSO全程是single sign on,即单点登录,是一种统一认证和授权机制.   单点登录,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其 ...

  2. 免费在线生成彩色带logo的个性二维码

          码工具网站提供免费的在线二维码生成服务,可以把网址.文本.电子邮件.短信.电话号码.电子名片.wifi网络等信息生成对应的二维码图片.你可以设置二维码图片的格式(png,jpg,gif). ...

  3. openvpn实现内网 映射到 外网

    openvpn实现内网 映射到 外网 场景介绍: 机器介绍 本地一台Ubuntu服务器A , 处于内网中 , 无外网IP 外网一台Ubuntu服务器B , 外网地址139.199.4.205 目标 : ...

  4. [UWP]用Shape做动画

    相对于WPF/Silverlight,UWP的动画系统可以说有大幅提高,不过本文无意深入讨论这些动画API,本文将介绍使用Shape做一些进度.等待方面的动画,除此之外也会介绍一些相关技巧. 1. 使 ...

  5. 弹性盒模型 flex box

    弹性盒子模型 布局方案 传统的布局方案大多采用div+css+float+position+display来实现,但是随着css3中弹性盒子模型的推出,在前端布局方案中就又多出了一项彪悍的选项. 而因 ...

  6. Chapter 7:Statistical-Model-Based Methods

    作者:桂. 时间:2017-05-25  10:14:21 主要是<Speech enhancement: theory and practice>的读书笔记,全部内容可以点击这里. 书中 ...

  7. ZooKeeper数据结构

    Time in ZooKeeper ZooKeeper跟踪时间的多种方式 1)Zxid:每个ZooKeeper状态变化将会接收到一个zxid(ZooKeeper Transaction Id)的时间戳 ...

  8. 正确地缩写 document.querySelector

    北京的夕阳,伴随淡淡的霾殇.从写字楼望去,光线是那么昏黄.没有孤雁,也没有霞光,遥想当年,还是 jQuery 独霸一方.那时的我们,写程序都习惯了使用 $,至少在对美元符号的喜爱上,与 PHP 达成了 ...

  9. ThinkPHP3.2 生成二维码

    下面是整合将phpqrcode整合到TP生成二维码就可以解决这个问题了.其实也很简单,使用方法如下:先下载附件解压至ThinkPHP/Extend/Vendor目录,目录不存在自己创建.      v ...

  10. window对象screen、history

    Window 对象属性 http://www.runoob.com/jsref/obj-window.html