JavaSE模拟完成商城项目

提示:完整项目在文章末尾,需要的可以自行下载

目录

项目模块

登录模块

思路 

实现 

注册模块

思路

账户管理模块

商品管理模块

商品购买模块

代码下载




项目模块

整个项目共有五个模块,分别是登录、注册、账户管理、商品管理以及商品购买模块

登录模块

思路 

  1. 创建静态数组,全局使用,初始化数组元素 定义数组,利用静态块初始化数据

  2. 输入用户名、密码和验证码,比对正确性,在空的元素要判断,防止空指针,

  3. 比对后的结果返回并分析结果

实现 

 创建静态数组,全局使用,初始化数组元素 定义数组,利用静态块初始化数据

static Account[] arr = new Account[10];
// 静态块
static {
    Account account1 = new Account("001", "admin", "管理员", "123", "1355555", "2023年1月4日");
    Account account2 = new Account("002", "test", "测试", "123", "1355553", "2023年12月4日");
    Account account3 = new Account("003", "allen", "阿伦", "123", "1355551", "2023年1月14日");
    arr[1] = account1;
    arr[0] = account2;
    arr[2] = account3;
}

输入用户名、密码和验证码,比对正确性,在空的元素要判断,防止空指针,

    public void login() {
        // 登录模块
        System.out.println("请输入用户名");
        String name = sc.next();
        System.out.println("请输入密码");
        String pwd = sc.next();
        // 调用验证码方法 获取验证码
        String code = VerificationCode.getCode();
        System.out.println("请输入验证码:" + code);
        // 输入的验证码
        String inputCode = sc.next();
        // 忽略大小写比较
        if (inputCode.equalsIgnoreCase(code)) {
            Account account = new Account();
            account.setAccountName(name);
            account.setAccountPwd(pwd);
            // 调用登录方法
            accountLogin = accountDaoImp.login(account);
            System.out.println(accountLogin != null ? "欢迎" + accountLogin.getAccountRealName() + "登录系统" : "登录失败");
        } else {
            System.out.println("验证码错误,请重新尝试");
        }
    }

验证码部分

public class VerificationCode {
	public static String getCode() {
		StringBuilder code = new StringBuilder();
		char[] arr = new char[62];
		for(int i=0;i<26;i++) {
			arr[i] = (char)(65+i);
		}
		for(int i=26;i<52;i++) {
			arr[i] = (char)(97+i-26);
		}
		for(int i=52;i<arr.length;i++) {
			arr[i] = (char)(48+i-52);
		}
		for(int i=1;i<=4;i++) {
			int index = (int)(Math.random()*arr.length);
			code.append(arr[index]);
		}
		return code.toString();
	}
}

 比对后的结果返回并分析结果

System.out.println("请输入用户名");
String name = sc.next();
System.out.println("请输入密码");
String pwd = sc.next();
Account accountLogin = new Account();
accountLogin.setAccountName(name);
accountLogin.setAccountPwd(pwd);
boolean result = accountDao.login(accountLogin);
System.out.println(result?"登录成功":"登录失败");

注册模块

思路

  1. 查询数组是否 有空的元素

  2. 如果有空的则赋值存储

  3. 没有空的则无法注册

  4. 在控制台输入内容,创建对象封装信息

// 注册方法
	public boolean register(Account account) {
		// 检查该用户名是否存在
		// 判断哪个数组位置是空 然后存储该对象
		for (int i = 0; i < arr.length; i++) {
			// 找到数组元素是空的
			if(arr[i]==null) {
				// 对空的位置赋值
				arr[i] = account;
				return true;
			}
		}
		return false;
	}

 在控制台输入内容,创建对象封装信息

Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名 真实名字 密码 电话 生日 ");
Account account = new Account(null, sc.next(), sc.next(), sc.next(), sc.next(), sc.next());
// 调用注册方法
AccountDao accountDao = new AccountDao();
System.out.println(accountDao.register(account)?"注册成功":"注册失败");

账户管理模块

  • 账户的增加(注册)模块

根据用户名判断用户是否存在


    /**
	 * 判断用户名是否存在
	 * @param accountName 用户名
	 * @return 用户存在/不存在
	 */
	boolean checkAccountName(String accountName);	


	@Override
	public boolean checkAccountName(String accountName) {
		for (Account account : arr) {
			if (account != null && account.getAccountName().equals(accountName)) {
				return false;
			}
		}
		return true;
	}

 用户添加

	/**
	 * 用户注册
	 * @param account 用户对象
	 * @return 注册成功/失败
	 */
	boolean register(Account account);

    /**
     * 注册方法
     */
    public void register() {
        System.out.println("请输入用户名 真实名字 密码 电话 生日 ");
        Account account = new Account(null, sc.next(), sc.next(), sc.next(), sc.next(), sc.next());
        // 判断该用户名是否已经使用
        if (accountDaoImp.checkAccountName(account.getAccountName())) {
            System.out.println(accountDaoImp.register(account) ? "注册成功" : "注册失败");
        } else {
            System.out.println("该用户名已存在,请重新尝试");
        }
    }
  • 账户的删除模块

根据用户id,判断用户是否存在

	/**
	 * 根据用户id判断用户是否存在
	 * @param id 用户id
	 * @return 用户存在/不存在
	 */
	boolean checkAccountId(String id);

	@Override
	public boolean checkAccountId(String id) {
		for (Account account : arr) {
			if (account != null && account.getAccountId().equals(id)) {
				return true;
			}
		}
		return false;
	}

账户删除

    /**
	 * 根据用户id进行删除
	 * @param id 用户id
	 * @return 用户信息删除成功/失败
	 */
	boolean delete(String id) ;

    /**
     * 删除
     */
    public void delete() {
        System.out.println("请输入要删除的账户id");
        String id = sc.next();
        if (accountDaoImp.checkAccountId(id)) {
            System.out.println(accountDaoImp.delete(id) ? "删除成功" : "删除失败");
        } else {
            System.out.println("该账户id不存在,请重新尝试");
        }
    }
  • 账户的修改模块
	/**
	 * 根据用户进行用户信息的修改
	 * @param account 用户
	 * @return 用户修改成功/失败
	 */
	boolean update(Account account);

    /**
     * 修改
     */
    public void update() {
        System.out.println("请输入要修改的账户id");
        String id = sc.next();
        if (accountDaoImp.checkAccountId(id)) {
            System.out.println("请输入要修改的账户密码 、真实名字、电话、生日");
            Account account = new Account();
            account.setAccountId(id);
            account.setAccountPwd(sc.next());
            account.setAccountRealName(sc.next());
            account.setAccountPhone(sc.next());
            account.setAccountBirthday(sc.next());
            System.out.println(accountDaoImp.update(account) ? "修改成功" : "修改失败");
        } else {
            System.out.println("该账户id不存在,请重新尝试");
        }
    }
  • 账户的查询模块
	/**
	 * 根据用户名查询用户
	 * @param key 用户名(关键字)
	 * @return 包含关键字的所有用户信息
	 */
	Account[] select(String key);

    /**
     * 查询
     */
    public void select() {
        System.out.println("请输入要查询的内容");
        String key = sc.next();
        Account[] arr = accountDaoImp.select(key);
        if (arr.length == 0) {
            System.out.println("没有满足条件的数据");
        } else {
            System.out.println("查询" + arr.length + "条数据满足条件");
            // 循环数组 显示数据
            View.printInfo(arr);
        }
    }

商品管理模块

  • 商品一览功能
	/**
	 * 一览数据
	 * @return 商品对象数组
	 */
	public Goods[] selectAll() {
		return arr;
	}
  • 商品增加功能
	/**
	 * 商品添加
	 * @param goods 商品对象
	 * @return 商品插入成功/失败
	 */
	public boolean insert(Goods goods) {
		for (int i = 0; i < arr.length; i++) {
			if (arr[i]==null) {
				arr[i] = goods;
				return true;
			}
		}
		return false;
	}
  • 商品删除功能
	/**
	 * 利用id查询是否存在
	 * @param goodsId 商品id
	 * @return 商品存在/不存在
	 */
	public boolean checkGoodsId(String goodsId) {
		for (Goods goods : arr) {
			if (goods != null && goods.getGoodsId().equals(goodsId)) {
				return true;
			}
		}
		return false;
	}

	/**
	 * 删除
	 * @param goodsId  要删除的商品id
	 * @return 商品删除成功/失败
	 */
	public boolean delete(String goodsId) {
		for (int i = 0; i < arr.length; i++) {
			if(arr[i]!=null&&arr[i].getGoodsId().equals(goodsId)) {
				arr[i] = null;
				return true;
			}
		}
		return false;
	}
  • 商品修改功能
	/**
	 * 商品信息修改
	 * @param goods 商品对象
	 * @return 修改成功/失败
	 */
	public boolean update(Goods goods) {
		for (Goods value : arr) {
			if (value != null && value.getGoodsId().equals(goods.getGoodsId())) {
				value.setGoodsName(goods.getGoodsName());
				value.setGoodsPrice(goods.getGoodsPrice());
				value.setGoodsWeight(goods.getGoodsWeight());
				value.setGoodsTime(goods.getGoodsTime());
				return true;
			}
		}
		return false;
	}
  • 商品查询功能
	/**
	 * 根据商品id查询商品
	 * @param goodsId 商品id
	 * @return 查询到的商品
	 */
	public Goods selectByGoodsId(String goodsId) {
		for (Goods goods : arr) {
			if (goods != null && goods.getGoodsId().equals(goodsId)) {
				return goods;
			}
		}
		return null;
	}

商品购买模块

  • 用户购买功能
	/**
	 * 用户购买商品的方法
	 * @param orderList 用户订单
	 * @param way 折扣方式
	 * @return 是否购买成功
	 */
	boolean buy(OrderList orderList,int way);

    public void buy(){
        // 展示商品信息
        goodsView.selectAll();
        // 选择要购买的信息
        System.out.println("请输入要购买的货物id");
        String goodsId = sc.next();
        GoodsDao goodsDao = new GoodsDao();
        // 判断商品是否存在
        Goods goods = goodsDao.selectByGoodsId(goodsId);
        if (goods!=null){
            System.out.println("请输入要购买的数量");
            double amount = sc.nextDouble();
            // 生成订单信息
            OrderList orderList = new OrderList();
            orderList.setAccount(AccountView.accountLogin);
            orderList.setGoods(goods);
            orderList.setAmount(amount);
            OrderListDao orderListDao = new OrderListDaoImp();
            //先计算打折
            System.out.println("请选择结账活动:1.VIP打折  2.满减活动");
            int input = sc.nextInt();
            if (orderListDao.buy(orderList,input)){
                System.out.println("购买成功");
                showOrderList();
            }else{
                System.out.println("购买失败");
            }
        }else{
            System.out.println("您要购买的货物不存在");
        }
    }
  • 账单查询功能
	/**
	 * 查询所有订单
	 * @return 订单对象数组
	 */
	OrderList[] selectAll();

	/**
	 * 查询所有订单
	 * @return 所有订单信息
	 */
	@Override
	public OrderList[] selectAll() {
		return arr;
	}


代码下载

百度网盘:链接:https://pan.baidu.com/s/1FE8vmjapXfPGvwnu8PFjWw?pwd=hwsa 

 

CSDN:https://download.csdn.net/download/weixin_47474875/87380893

摘要信息: 电子商城系统主要功能包括:用户注册、用户登录、用户查看商城商品、用户购买商品、用户查看购物车并且清空购物车、用户找回账户以及密码、管理员登录、管理员注册、管理员查看用户信息、管理员删除用户信息、管理员删除商品信息、管理员添加商品信息、管理员修改商品信息、退出登录等。 图形可视化界面运行下能够显示系统启动进度条,删除、添加、注册等相关操作时能够弹出窗口加以提示,退出登录或系统时能够做到单击确认退出按钮才退出登录或系统,能够对用户加以提示。 注册用户或是管理员、添加商品信息、购买商品、删除商品或是用户信息、修改商品信息等相关操作时能够判断有无该用户或是商品。 用户在购买商品的时候同时更新商品的库存数量,管理员删除管理员时可以做到同时删除用户的购买信息。 主要内容: 一、项目名称   基于JAVASE的电子商城系统 二、功能要求 1、用户注册 2、用户登录 3、用户查看商品列表 4、用户购买商品 5、用户查看购买商品列表 6、用户清空购物车 7、用户找回账户和密码 8、管理员登录 9、管理员注册 10、查看用户信息 11、查看商品信息 12、删除用户信息 13、删除商品信息 14、添加商品信息 15、修改商品信息 16、退出用户登录 17、退出管理员登录 18、退出商城 三、需求分析 该系统的用户是商城消费者和商城管理者,根据客户的要求,可以注册、登录、购物、查看购物车信息、找回账户和密码,管理员可以对商品信息进行增加、修改、删除操作,可以对用户进行查看和删除。 四、设计思想 1、在控制台与图形可视化界面下运行 2、使用Mysql数据库存取用户登录信息和商品信息 3、使用List存取商品购买信息 4、把程序分为多个类,多个类之间的互相调用。 5、用户或是管理员进行注册、登录时能够提供校验码。 6、用户或是管理员获取数据库信息时能够与数据库进行交互。 7、用户购物要做到简洁明了。 8、用户只需要身份证号码和邮箱地址就能找回账户和密码。 9、注册、删除、修改等操作要有信息提示。 10、用户、管理员进行操作时能够做到操作提示与用户名提示。 11、退出登录或是退出系统时能够做到让用户有所考虑。 五、具体实现   1、技术思路: 界面:基于控制台与图形可视化界面(Swing)实现用户的输入和输出。 程序流程:在函数中利用循环与递归 ,读取用户输入,调用模块实现各个子功能。 2、功能子模块划分: ① 注册模块 ② 登录模块 ③ 查看商品模块(查看商品列表,购买商品) ④ 查看购买商品信息 ⑤ 管理员登录(添加管理员信息,对商品信息进行查看、增加、 修改、删除,对用户信息进行查看、删除,删除用户信息 时能够做到同时删除消费记录) ⑥ 退出系统 六、运行截图 1、商城系统启动进度条(进度条能够做到动态加载): 2、商城主界面: 3、用户注册界面(填写注册信息不符合要求时能够弹窗提示、并 且判断用户名是否重复等): 4、用户登录界面(账户、密码不一致时能弹窗提示): 5、用户服务选择界面(能够提示用户名): 6、购买商品界面(能够判断输入的商品序号是否正确): 7、查看购物车界面(能够一键清空购物车): 8、查看商城商品信息界面: 9、管理员登录界面: 10、找回账户与密码界面: 11、管理员服务选择界面: 12、添加管理员界面: 13、查看用户信息界面: 14、删除用户信息界面: 15、删除商品信息界面: 16、添加商品信息界面: 17、修改商品信息界面: 18、退出账号、管理员登录、商城系统时要有提示:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值