文件结构如下
f0614
├── dao
│ ├── MemberDao.java
│ └── impl
│ └── MemberDaoImpl.java
├── entity
│ └── Member.java
├── main
│ ├── MenuManager.java
│ └── TestMain.java
└── service
├── MemberService.java
└── impl
└── MemberServiceImpl.java
entity / Member
package f0614.entity;
public class Member {
private int id; // 随机生成的用户id
private String username; // 用户名
private String password; // 用户密码
private int integral; // 用户积分
private int integralConvert; // 待转换积分
private int coin; // 硬币
// getter and setter
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getIntegral() {
return integral;
}
public void setIntegral(int integral) {
this.integral = integral;
}
public int getIntegralConvert() {
return integralConvert;
}
public void setIntegralConvert(int integralConvert) {
this.integralConvert = integralConvert;
}
public int getCoin() {
return coin;
}
public void setCoin(int coin) {
this.coin = coin;
}
// 有参构造 方便快速初始化
public Member(int id, String username, String password, int integral, int integralConvert, int coin) {
this.id = id;
this.username = username;
this.password = password;
this.integral = integral;
this.integralConvert = integralConvert;
this.coin = coin;
}
// 无参构造
public Member() {}
}
dao / MemberDao
package f0614.dao;
public interface MemberDao {
void register(); // 注册方法
void integralConvert(); // 将未兑换积分兑换
void convertIntegral(); // 将积分兑换为硬币
void selectIntegral(); // 查询剩余积分方法
void updatePassword(); // 更新密码方法
}
dao / impl / MemberDaoImpl
package f0614.dao.impl;
import f0614.dao.MemberDao;
import f0614.entity.Member;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class MemberDaoImpl implements MemberDao {
ArrayList<Member> members = new ArrayList<>();
Scanner input = new Scanner(System.in);
@Override
public void register() {
System.out.print("Username: ");
String username = input.next();
System.out.print("Password: ");
String password = input.next();
int userId = getUserId();
System.out.println("Your UserId -> " + userId);
Member newMember = new Member(userId, username, password, 0, 0, 0);
members.add(newMember);
System.out.println("done!");
}
@Override
public void integralConvert() {
Member result = checkUser();
if (result != null) {
System.out.println("您未兑换的积分为 -> " + result.getIntegralConvert());
System.out.print("是否兑换 (y/N): ");
char choose = input.next().charAt(0);
if (choose == 'y') {
result.setIntegral(result.getIntegral() + result.getIntegralConvert());
result.setIntegralConvert(0);
System.out.println("done!");
}
} else {
System.out.println("wrong userid and/or password");
}
}
@Override
public void convertIntegral() {
Member result = checkUser();
if (result != null) {
System.out.println("您的积分为 -> " + result.getIntegral());
System.out.print("请输入要兑换的硬币数量: ");
int convertCoin = input.nextInt();
if (result.getIntegral() >= convertCoin * 100) {
result.setIntegral(result.getIntegral() - convertCoin * 100);
result.setCoin(result.getCoin() + convertCoin);
System.out.println("done!");
} else {
System.out.println("积分不足");
}
} else {
System.out.println("wrong userid and/or password");
}
}
@Override
public void selectIntegral() {
Member result = checkUser();
if (result != null) {
System.out.println("您剩余的积分为 -> " + result.getIntegral());
} else {
System.out.println("wrong userid and/or password");
}
}
@Override
public void updatePassword() {
Member result = checkUser();
if (result != null) {
System.out.print("请输入新密码: ");
String newPassword = input.next();
result.setPassword(newPassword);
System.out.println("done!");
} else {
System.out.println("wrong userid and/or password");
}
}
private int getUserId() {
Random random = new Random();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 5; i++) {
sb.append(random.nextInt(10));
}
return Integer.parseInt(sb.toString());
}
private Member checkUser() {
System.out.print("UserId: ");
int userId = input.nextInt();
System.out.print("Password: ");
String password = input.next();
for (Member member : members) {
if (member.getId() == userId && member.getPassword().equals(password)) {
return member;
}
}
return null;
}
}
service / MemberService
package f0614.service;
// 与MemberDao内方法一致
public interface MemberService {
void register();
void integralConvert();
void convertIntegral();
void selectIntegral();
void updatePassword();
}
service / impl / MemberServiceImpl
package f0614.service.impl;
import f0614.dao.MemberDao;
import f0614.dao.impl.MemberDaoImpl;
import f0614.service.MemberService;
public class MemberServiceImpl implements MemberService {
// 依赖接口开发 用MemberDao创建对象
MemberDao memberDao = new MemberDaoImpl();
// 对应方法调用memberDao内对应方法
@Override
public void register() {
memberDao.register();
}
@Override
public void integralConvert() {
memberDao.integralConvert();
}
@Override
public void convertIntegral() {
memberDao.convertIntegral();
}
@Override
public void selectIntegral() {
memberDao.selectIntegral();
}
@Override
public void updatePassword() {
memberDao.updatePassword();
}
}
main / MenuManager
package f0614.main;
import f0614.service.impl.MemberServiceImpl;
import java.util.Scanner;
public class MenuManager {
public void showMenu() {
MemberServiceImpl memberService = new MemberServiceImpl();
Scanner input = new Scanner(System.in);
for (;;) {
System.out.println("***********************欢迎进入青青网校积分商城***********************");
System.out.println("1.注册 2.积分累积 3.积分兑换 4.积分查询 5.修改密码 6.退出");
System.out.println("******************************************************************");
System.out.print("请选择: ");
int choose = input.nextInt();
if (choose == 1) {
memberService.register();
} else if (choose == 2) {
memberService.integralConvert();
} else if (choose == 3) {
memberService.convertIntegral();
} else if (choose == 4) {
memberService.selectIntegral();
} else if (choose == 5) {
memberService.updatePassword();
} else if (choose == 6) {
return;
}
}
}
}
main / TestMain
package f0614.main;
public class TestMain {
public static void main(String[] args) {
MenuManager menuManager = new MenuManager();
menuManager.showMenu();
}
}