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();

}

}

java新手的第一个小东西,或许小东西都算不上=。 =

时间: 2024-10-10 03:00:32

java新手的第一个小东西,或许小东西都算不上=。 =的相关文章

20145326蔡馨熠《Java程序设计》第一周学习总结

20145326蔡馨熠 <Java程序设计>第一周学习总结 教材学习内容总结 转眼间新的一学期终于开始了!为什么我这么期待呢?因为这学期可以上娄嘉鹏老师的java程序设计课,我不是什么电脑天才,之前c语言学得也不是特别好.可我就是对hdl和java特别感兴趣(之前在我的问卷调查报告里面提到过),并且寒假的时候在家里也预习了一部分java知识.第一周要求学习两个章节并作心得体会,虽然我早已看过前两章的知识,不过为了进一步巩固,我还是用了星期六一天的时间把第一章和第二章的知识从头到尾仔仔细细的看了

20145231 《Java程序设计》第一周学习总结

20145231 <Java程序设计>第一周学习总结 教材学习内容总结 Java三大平台Java SE,Java EE,Java ME.其中,Java SE是我们学习的基础. Java SE主要分为四个部分:JVM,JRE,JDK和JAVA语言. 思考题:Java不只是语言?答:根据以上所写就能知道,提到Java,Java语言只是其三大平台中的其中之一的一个组成部分,不可片面的将其与C语言作比较,认为只是一种语言. JCP与JSR.RI.TCK的关系:想要提议加入Java的功能或特性,必须以J

20172318 2016-2017-2 《Java程序设计》第一周学习总结

20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一些Java的基本命令,学会了会编译.运行.调试简单的Java程序 教材学习中的问题和解决过程 问题1:教程有很多专有词汇,有时候实际操作完全不会 问题1解决方案:问舍友和课代表解决大部分问题,剩下的靠百度 代码调试中的问题和解决过程 问题1:写了个小程序发现无法上传 问题1解决方案:没有用cd链接 问题2:使

201871010123-吴丽丽《面向对象程序设计(Java)》第一周学习总结

                                                                        201871010123-吴丽丽<面向对象程序设计(Java)>第一周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业要求在哪里  https://www.cnblogs.com/nwnu-daizh/p/11435127.html 作业要求目标 1.了解课程上课方式及老师教学

20145201 《Java程序设计》第一周学习总结

# 20145201 <Java程序设计>第一周学习总结 ## 教材学习内容总结 万事开头难,终于开始学习了Java.寒假的时候看到老师的要求确实有点慌,但是这周翻开书,从书本知识第一行学起,发现并不是自己想想中那么难,只要一步一个脚印,每周有自己的计划,并按照计划按部就班的完成,最后一定会拥有自己的小成果的. 1.1Java不只是语言 Java经过多年的版本更新后,最新的版本是Java SE8. 在java发展的过程中,它的应用领域越来越广,根据不同级别的应用开发区分了不同的应用版本,最终j

20145224-陈颢文 《Java程序设计》第一周学习总结

20145224 <Java程序设计>第一周学习总结 教材学习内容总结 通过第一周的学习让我对Java有了个初步的了解,知道了Java分为Java SE.Java EE.Java ME三大平台,其中Java SE是基础.Java的一大特点是它可以跨平台,而JVM对Java的跨平台提供了支持,它就类似于一个虚拟机,只要在当前平台安装了相应的JVM,Java程序就有了可以在此平台上运行的基础啦.JRE是Java的执行环境,在安装了JRE的计算机上就可以运行Java的程序了,当然光是可以跑代码对于程

Java在处理大数据的时候一些小技巧

转载自:http://soft.chinabyte.com/database/258/12609258.shtml 众所周知,java在处理数据量比较大的时候,加载到内存必然会导致内存溢出,而在一些数据处理中我们不得不去处理海量数据,在做数据处理中,我们常见的手段是分解,压缩,并行,临时文件等方法; 例如,我们要将数据库(不论是什么数据库)的数据导出到一个文件,一般是Excel或文本格式的CSV;对于Excel来讲,对于POI和JXL的接口,你很多时候没有办法去控制内存什么时候向磁盘写入,很恶心

Java学习记录第一章

学习Java第一章的记录,这一章主要记录的是Java的最基础部分的了解知识,了解Java的特性和开发环境还有Java语言的优缺点. 计算机语言的发展大概过程:机器语言--->汇编语言--->高级语言(面向过程的语言和面向对象的语言)总而言之就是从人类比较难识别的字符串向人类自然语言靠近使代码的可读性越来越高. Java的发展过程:1991年Sun公司为了抢占市场先机,成立了一个称为Green的项目小组,帕特里克.詹姆斯·高斯林.麦克·舍林丹和其他几个工程师一起组成的工作小组在加利福尼亚州门洛帕

Java新手练习项目、毕业设计项目源码下载

最近自己做了个技术博客网站,整理了一下学习java过程中做的例子和小项目,都放在了网站了提供下载,有新手入门的例子,也有java web例子,还有本人大学期间的毕业设计源码,都可以下载.地址:微儿博客-Java新手练习项目.毕业设计项目源码下载