提示:完整项目在文章末尾,需要的可以自行下载
目录
项目模块
整个项目共有五个模块,分别是登录、注册、账户管理、商品管理以及商品购买模块
登录模块
思路
-
创建静态数组,全局使用,初始化数组元素 定义数组,利用静态块初始化数据
-
输入用户名、密码和验证码,比对正确性,在空的元素要判断,防止空指针,
-
比对后的结果返回并分析结果
实现
创建静态数组,全局使用,初始化数组元素 定义数组,利用静态块初始化数据
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?"登录成功":"登录失败");
注册模块
思路
-
查询数组是否 有空的元素
-
如果有空的则赋值存储
-
没有空的则无法注册
-
在控制台输入内容,创建对象封装信息
// 注册方法
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