package com.myshoop;
//会员类
public class Member {
private String name; //姓名
private int num; //会员卡号
private String password; //密码
private int score; //积分
private String carDate; //开卡日期
public Member() {
super();
}
public Member(String name, int num, String password, int score, String carDate) {
super();
this.name = name;
this.num = num;
this.password = password;
this.score = score;
this.carDate = carDate;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String getCarDate() {
return carDate;
}
public void setCarDate(String carDate) {
this.carDate = carDate;
}
}
package com.myshoop;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
//业务类
public class MemberDao {
Member m = null;
static Scanner sc = new Scanner(System.in);
// 写一个集合用来存储会员用户的
List<Member> memberList = new ArrayList<Member>();
// 写方法
// 开始菜单
// 菜单
public void menu() {
System.out.println("***欢迎来到新嘉隆线上超市******");
System.out.println("**********************");
System.out.println("1、积分累计 2、积分兑换 3、查询剩余积分 4、修改密码 5、开卡 6、退出");
System.out.println("请选择:");
}
// 开始
public void start() {
do {
menu();
String choose = sc.next();
switch (choose) {
case "1":
// 积分累计
scoreAdd();
if (scoreAdd() == true) {
System.out.println("积分累计成功!Q");
} else if (scoreAdd() == false) {
System.out.println("积分累计失败!N");
}
continue;
case "2":
// 积分兑换
scoreChange();
if (scoreChange() == true) {
System.out.println("积分兑换成功!");
} else if (scoreChange() == false) {
System.out.println("积分兑换失败!");
}
continue;
case "3":
// 查询剩余积分
finaScore();
continue;
case "4":
// 修改密码
changePassword();
continue;
case "5":
// 开卡
openCar();
continue;
case "6":
// 退出
System.out.println("亲! 谢谢您的使用,欢迎下次再次使用!");
break;
default:
System.out.println("亲! 找不到您要的选线 ,请重新输入❥(^_-)");
continue;
}
break;
} while (true);
}
// * 查询用户是否存在 如果存在返回用户 根据会员卡号和密码查找用户是否存在 不存在则为null
public Member hasMember(int num, String password) {
for (Member member : memberList) {
if (member.getNum() == num && member.getPassword().equalsIgnoreCase(password)) {
return member;
}
}
return null;
}
// 1、积分累计
public boolean scoreAdd() {
System.out.println("请输入卡号:");
int num = sc.nextInt();
System.out.println("请输入密码:");
String password = sc.next();
if (hasMember(num, password) != null) {
System.out.println("请输入您的消费金额(0.1元相当于100积分)");
int score = sc.nextInt();
m.setScore(m.getScore() + score * 1000);
System.out.println("恭喜用户获得积分:" + m.getScore());
} else {
System.out.println("该用户不存在,请重新输入:");
}
return true;
}
// 2、积分兑换
public boolean scoreChange() {
System.out.println("请输入卡号:");
int num = sc.nextInt();
System.out.println("请输入密码:");
String password = sc.next();
if(hasMember(num,password)!=null) {
System.out.println("请输入您要兑换的积分数(1积分相当于0.001元)");
int score = sc.nextInt();
if(score<=m.getScore()) {
m.setScore(m.getScore()-score);
System.out.println("恭喜用户兑换积分成功! 兑换的金额是::"+"\n"+score*0.001+"元");
}else {
System.out.println("用户的积分不够!");
}
}else {
System.out.println("该用户不存在(或用户名和密码错误),请重新输入:");
}
return true;
}
// 3、查询剩余积分
public void finaScore() {
System.out.println("请输入卡号:");
int num = sc.nextInt();
System.out.println("请输入密码:");
String password = sc.next();
if(hasMember(num,password)!=null) {
System.out.println(m.getScore());
}else {
System.out.println("该用户不存在,请重新输入:");
}
}
// 4、修改密码
public void changePassword() {
System.out.println("请输入卡号:");
int num = sc.nextInt();
System.out.println("请输入密码:");
String password = sc.next();
if(hasMember(num,password)!=null) {
System.out.println("请输入你要修改的密码:");
String newPassword = sc.next();
m.setPassword(newPassword);
System.out.println("修改密码成功!");
}else {
System.out.println("该用户不存在,请重新输入:");
}
}
// 5、开卡 用户要先开卡才能使用
// 随机生成卡号
public int creatNum() {
Random random = new Random();
int num = random.nextInt(100000000);
// 确保卡号的唯一性 如果集合中存在 那么就再随机生成一个
if (m.getNum() == num) {
num = random.nextInt(100000000);
}
return num;
}
public void openCar() {
m = new Member();
System.out.println("请输入用户名:");
m.setName(sc.next());
// 随机生成卡号 写一个方法
int carNum = creatNum();
m.setNum(carNum);
// 确保用户名和密码正确
// 输入密码 密码的长度不能小于6
System.out.print("请输入注册密码: ");
String password;
boolean boo = true;
do {
password = sc.next();
if (password.length() < 6) {
System.out.print("输入的密码长度小于6,亲! 请重新输入: ");
boo = false;
} else {
boo = true;
m.setPassword(password);
}
} while (!boo);
// 注册成功! 赠送100积分
m.setScore(100);
// 开卡日期:
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String carDate = simpleDateFormat.format(date);
m.setCarDate(carDate);
// 提醒用户操作成功! 卡号是多少
System.out.println("亲! 您的会员开通成功! 您的卡号是:" + carNum);
memberList.add(m);
}
}
package com.myshoop;
public class Test {
//测试类
public static void main(String[] args) {
MemberDao dao = new MemberDao();
dao.start();
}
}