java新手的第一个小东西,或许小东西都算不上=。 =
import java.util.ArrayList;
import java.util.Scanner;
/**
* 系统类
*
* @author Administrator
*
*/
public class Systems {
private Scanner input = new Scanner(System.in);
private Database db = new Database();
//用户数据库
private ArrayList<Users> usersList = db.getUsersList();
//商品数据库
private ArrayList<Goods> goodsList = db.getGoodsList();
//登录用户
Users user = null;
//购物车信息
private ArrayList<Goods> shoppingCart = new Database().getShoppingCart();
/**
* 显示主菜单
*/
public int getMainMenu() {
System.out.println("****************** 欢迎使用大神超市管理系统 ******************");
System.out.println("****************** 【1】 用 户 登 录 ******************");
System.out.println("****************** 【2】 用 户 注 册 ******************");
System.out.println("****************** 【3】 退 出 系 统 ******************");
System.out.print("请输入编号选择功能: ");
return input.nextInt();
}
/**
*显示二级菜单
*/
public int getSecondMenu(){
System.out.println("****************** 【1】 查看购买商品 ******************");
System.out.println("****************** 【2】 查看购物车信息 ******************");
System.out.println("****************** 【3】 在线冲值 ******************");
System.out.println("****************** 【4】 添加商品 ******************");
System.out.println("****************** 【5】 返回上一级菜单 ******************");
System.out.print("请输入编号选择功能: ");
return input.nextInt();
}
/**
* 用户登录
*/
public boolean login(){
System.out.print("请输入帐号: ");
String name = input.next();
System.out.print("请输入密码: ");
String password = input.next();
//标记 false 表示不存在
boolean flag = false;
//遍历用户数据库 , 查找该用户是否存在
for(Users u : usersList){
if( u.getName().equals(name) && u.getPassword().equals(password) ){
this.user = u;
//修改标记
flag = true;
}
}
return flag;
}
/**
* 用户注册
*/
public void register(){
//输入新账号
System.out.print("请输入新帐号: ");
String name = input.next();
//标记
boolean flag = true;
for(Users i : usersList){
if(i.getName().equals(name)){
//修改标记
flag = false;
}
}
//判断
if(flag){
System.out.print("请输入密码: ");
String password = input.next();
usersList.add(new Users(name,password));
System.out.println("注册成功!"+name+"欢迎您!");
//this.user.setName(name);
//this.user.setPassword(password);
usersList.add(new Users(name,password));
this.mainLogic();
}else{
System.out.println("注册失败 !");
this.register();
}
}
/**
* 显示所有商品信息
*/
public void showAllGoods(){
System.out.println("商品ID****商品名****单价****库存******\n");
for(Goods g : goodsList){
System.out.println( g.getID()+"\t"+g.getName()+"\t"+g.getPrice()+"\t"+g.getStock());
}
}
/**
* 购买
*/
public void buy(){
this.showAllGoods();
System.out.print("请输入需要购买的商品ID(输入 0 返回上级菜单):");
int goodsID = input.nextInt();
if(goodsID == 0){
this.secondLogic();
}
boolean flag = false;
//克隆
Goods good = null;
//现在购买的商品的信息
Goods gs = null;
for(Goods g : goodsList){
if( g.getID() == goodsID ){
flag = true;
gs = g;
good = new Goods(g.getID(),g.getName(),g.getPrice(),0);
}
}
if(flag){
System.out.print("请输入要购买的商品数量:");
int count = input.nextInt();
if(count > gs.getStock()){
System.out.println("库存不足,请重新购买!\n");
this.buy();
}else{
double total = gs.getPrice()*count;
if(total > user.getBalance()){
System.out.println("余额不足,请重新购买!\n");
this.buy();
}else{
System.out.println("购买成功,账户余额"+(user.getBalance()-total)+"元!"+"本次花费"+total+"元!");
//扣费
user.setBalance(user.getBalance()-total);
//更新商品列表
gs.setStock(gs.getStock()-count);
/**
* 将购买信息加入购物车
* 判断该次购买商品是否为第一次加入购物车,是则直接调用setStock(count)方法
* 否则 setStock(count+getStock())
*/
boolean flag2 = true;
for(Goods g : shoppingCart){
if(g.getID() == goodsID){
flag2 = false;
g.setStock(g.getStock()+count);
}
}
if(flag2){
good.setStock(count);
shoppingCart.add(good);
}
this.buy();
}
}
}else{
System.err.println("您输入的商品ID不存在,请重新输入!\n");
this.buy();
}
}
/**
* 查看购物车信息
*/
public void showShoppingCart(){
System.out.println("用户名***********余额*******");
System.out.println(user.getName()+"\t\t"+user.getBalance());
System.out.println("商品ID****商品名****单价****库存******\n");
for(Goods g : shoppingCart){
System.out.println(g.getID()+"\t"+g.getName()+"\t"+g.getPrice()+"\t"+g.getStock());
}
System.out.print("输入任意键返回上级:");
String temp = input.next();
this.secondLogic();
}
/**
* 在线充值
*/
public void recharge(){
System.out.print("请输入充值金额:");
double m = input.nextDouble();
user.setBalance(m + user.getBalance());
System.out.print("充值成功,是否继续充值:(yes/no)");
String ys = input.next();
if(ys.equalsIgnoreCase("yes".trim())){
this.recharge();
}else{
this.secondLogic();
}
}
/**
* 添加商品
*/
public void addGoods(){
/**
* 选择添加商品类型:1.已存在商品(只添加数量)
* 2.不存在商品(添加ID,商品名,价格,数量)
*/
System.out.println("请选择要添加的商品类型:【1】已存在的商品。【2】不存在的商品");
int choose = input.nextInt();
switch(choose){
case 1:
//已存在的商品
this.existGoods();
break;
case 2:
//不存在数据库中的商品
this.unexistGoods();
break;
default:
System.err.println("输入错误!请重新输入");
this.addGoods();
}
}
/**
* 已存在的商品
*/
public void existGoods(){
System.out.println("请输入商品名:");
String goodName = input.next();
//判断商品名是否存在
boolean flag = true;
for(Goods g : goodsList){
if(goodName.equalsIgnoreCase(g.getName().trim())){
flag = false;
System.out.println("请输入添加商品数量:");
int count = input.nextInt();
g.setStock(g.getStock()+count);
}
}
if(flag){
System.out.print("商品不存在,请重新输入!");
this.existGoods();
}
System.out.print("商品添加成功,是否继续添加(yes/no):");
String temp = input.next();
if(temp.equalsIgnoreCase("yes".trim())){
this.addGoods();
}else{
this.secondLogic();
}
this.showAllGoods();
}
/**
* 不存在的商品
*/
public void unexistGoods(){
//新商品名
System.out.print("请输入商品名:");
String goodName = input.next();
//新商品价格
System.out.print("请输入商品价格:");
double goodPrice = input.nextDouble();
//新商品数量
System.out.print("请输入商品数量:");
int goodStock = input.nextInt();
int goodsID = goodsList.size()+1;
goodsList.add(new Goods(goodsID,goodName,goodPrice,goodStock));
System.out.println("添加成功,是否继续添加:(yes/no)");
String ys = input.next();
if(ys.equalsIgnoreCase("yes".trim())){
this.addGoods();
}else{
this.secondLogic();
}
}
/**
* 核心逻辑控制方法
*/
public void mainLogic() {
// 启动主菜单
int id = this.getMainMenu();
// 判断
switch (id) {
case 1:
//用户登录
if( this.login() ){
System.err.println("欢迎" + this.user.getName() + "登录成功 !");
//this.getSecondMenu();
this.secondLogic();
}else{
System.err.println("登录失败 !");
}
break;
case 2:
//用户注册
this.register();
break;
case 3:
System.err.println("退出系统 , 谢谢使用 !");
//退出系统
System.exit(0);
break;
default:
System.err.println("您输入的编号无效 , 请重新输入 !\n");
//开始递归
this.mainLogic();
break;
}
}
/**
* 二级菜单操作控制
*/
public void secondLogic () {
int id = this.getSecondMenu();
switch(id){
case 1:
this.buy();
break;
case 2:
this.showShoppingCart();
break;
case 3:
this.recharge();
break;
case 4:
this.addGoods();
break;
case 5:
this.mainLogic();
break;
default:
System.out.println("输入错误!");
this.secondLogic();
}
}
}
/**
* 用户对象
* @author Administrator
*/
public class Users {
//帐号
private String name;
//密码
private String password;
//用户账户余额
private double balance = 100;
//构造器
public Users() {
}
public Users(String name, String password) {
this.name = name;
this.password = password;
}
public Users(String name, String password, double balance) {
this.name = name;
this.password = password;
this.balance = balance;
}
//getter , setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
public class Goods {
//商品编号
private int ID;
//商品名
private String name;
//价格
private double price;
//存量
private int stock;
//构造器定义
public Goods() {
}
public Goods(int iD, String name, double price, int stock) {
ID = iD;
this.name = name;
this.price = price;
this.stock = stock;
}
//getter , settet;
public int getID() {
return ID;
}
public void setID(int iD) {
ID = iD;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getStock() {
return stock;
}
public void setStock(int stock) {
this.stock = stock;
}
}
import java.util.ArrayList;
/**
* 数据库类
* @author Administrator
*/
public class Database {
//模拟用户数据库
private ArrayList<Users> usersList = new ArrayList<Users>();
//模拟商品数据库
private ArrayList<Goods> goodsList = new ArrayList<Goods>();
//购物车
private ArrayList<Goods> shoppingCart = new ArrayList<Goods>();
/**
* 构造器
* @return
*/
public Database(){
//添加一条默认用户数据
Users users = new Users("admin","admin");
usersList.add(users);
//添加一条默认商品数据
goodsList.add(new Goods(1,"苹果",5.0,1000));
goodsList.add(new Goods(2,"牙刷",3,100));
goodsList.add(new Goods(3,"梨子",4,1000));
goodsList.add(new Goods(4,"节操",99999,0));
goodsList.add(new Goods(5,"甲胺磷",24,20));
goodsList.add(new Goods(6,"肥皂",5,300));
goodsList.add(new Goods(7,"衬衫",100,20));
goodsList.add(new Goods(8,"酸奶",2.5,2000));
goodsList.add(new Goods(9,"iphone",5000,3));
}
public ArrayList<Users> getUsersList() {
return usersList;
}
public void setUsersList(ArrayList<Users> usersList) {
this.usersList = usersList;
}
public ArrayList<Goods> getGoodsList() {
return goodsList;
}
public void setGoodsList(ArrayList<Goods> goodsList) {
this.goodsList = goodsList;
}
public ArrayList<Goods> getShoppingCart() {
return shoppingCart;
}
public void setShoppingCart(ArrayList<Goods> shoppingCart) {
this.shoppingCart = shoppingCart;
}
}
public class SystemTest {
public static void main(String[] args) {
//启动系统
Systems system = new Systems();
system.mainLogic();
}
}
转载于:https://blog.51cto.com/ministone/1437594
java新手的第一个小东西,或许小东西都算不上=。 =相关推荐
- Satwe楼板能用弹性模计算吗_PKPM学习笔记,或许半辈子都能用上
原标题:PKPM学习笔记,或许半辈子都能用上 01裂缝与挠度 裂缝,模型里计算裂缝是按矩形截面计算弯矩,而不考虑翼缘影响,实际上翼缘影响是很大的,也就是说模型计算出的结果裂缝偏大,一般梁支座裂缝不考虑 ...
- 短视频制作小技巧,配音字幕都要跟上,做好细节才能成功
短视频制作小技巧,配音字幕都要跟上,做好细节才能成功 短视频的大概制作方法相信大家都是心知肚明的,但是如果想要做好一个可以细分引流的短视频,却并不容易.那么今天我们就来分享几个短视频制作的小技巧,配音 ...
- 现在JAVA工程师真是太卷了,招聘要求十条都算少的了
现在JAVA工程师真是太卷了,招聘要求十条都算少的了. 要会各种框架 要会各种设计模式 要会各种缓存和消息机制 要精通各种数据库 要会大数据 要会云计算 要有高并发经验 还要会各种中间件. 首先公司开 ...
- 二战字节跳动成功上岸,准备了小半年,拿27k也算不上很高吧~
先说下我基本情况,本科不是计算机专业,现在是学通信,然后做图像处理,可能面试官看我不是科班出身没有问太多计算机相关的问题,因为第一次找工作,字节的游戏专场又是最早开始的,就投递了,投递的是测试开发岗, ...
- 张旭升20162329 2006-2007-2 《Java程序设计》第一周学习总结
20162329 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 通过打书上的代码熟悉了Java编程的基本过程 教材学习中的问题和解决过程 1.因为我的虚拟机 ...
- 虞小约的Java之旅第一天(Java的基本格式)
文章目录 ---------序章--------- @虞小约的Java之旅 ---------第一章--------- *1.1.1 java的基本格式* 知识点: ---------序章------ ...
- java 怎么让一个jlabel和一个jtextfield在一行_今天小哥大家分享一下Java编程语言的第一个程序应该怎么样去写...
哈喽,各位朋友们大家周六好!我是你们的老朋友90小哥爱数码! 那么,今天小哥要和大家伙儿分享这篇文章的主要内容依然是和Java编程语言有关系,大家都知道在上几篇的文章当中呢小哥分别给大家介绍了Java ...
- java基础-宇宙第一YWM:入门java看书小发现
##java基础-宇宙第一YWM:书籍入门java 今天看了head first设计模式,其实从学Java基础开始就挺喜欢head first系列,而言很多前辈也都推荐过这两本,大家有空也可以看看.( ...
- 走进java编程之第一课-超详细笔记-适合新手收入
首先看下本次课程的内容,要有耐心往下看哟~ 什么是移动互联网呢? 移动互联网,就是将移动通信和互联网二者结合起来,成为一体.是指互联网的技术.平台.商业模式和应用与移动通信技术结合并实践的活动的总称. ...
最新文章
- 华为云大数据存储的冗余方式是三副本_大数据入门:HDFS数据副本存放策略
- 小谈 Java 单元测试
- 开放搜索查询分析服务架构解读
- Hulu直播服务难点解析(三):关键收获
- redis实战之使用redis实现排行榜
- 中国人自己的框架——蚂蚁金服RPC框架结构分析
- Java PriorityQueue poll()方法与示例
- python可以进行矩阵运算吗_python能做MATLAB等价的矩阵运算吗?
- flash游戏代码_Flash正式宣告死亡,4399游戏还能玩么——从没有所谓的千秋万代...
- 云运维服务方案说明书
- Android下载文件常见错误解决方法
- 如何删除(插入)word表格下一页的空白页
- 数据挖掘——关联分析基础介绍(上)
- 英飞凌硅麦焊接注意事项
- MySQL-数据表创建命令
- 2021爱智先行者—数量遗传学 第一章 数量遗传学概论
- [Asp.Net Core]NET5跨平台的本质
- 信息爆炸的时代怎样来读书
- GitHub上Stars最多的10个Python项目
- 记录一次详细在线加密PDF解密过程
热门文章
- AndroidStudio_开发工具调试入门---Android原生开发工作笔记70
- Sharding-JDBC(实现读写分离)_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记014
- Netty工作笔记0045---Netty模型梳理
- IntelliJ Idea学习笔记005---intellij idea build时出现Artifact contains illegal characters的解决
- SpringCloud工作笔记042---SpringCloud RestFul接口中跨域问题_这个解决方式不太完美,每个接口上都要加
- 杭电2066一个人的旅行(spfa)
- ll按时间排序和查看目录下文件数
- cocos2d-x之Box2d初试
- centos7 菜鸟第一天--输入法在哪
- java中的Vector的用法