超市会员管理系统
要实现的需求功能
功能图展示
Member类,用来储存会员的信息
package homework2;
public class Member {
private String name;
private int cardId;
private String password;
public Member(){};
private int score;
private String registDate;
public Member(String name, int cardId, String password, int score, String registDate) {
this.name = name;
this.cardId = cardId;
this.password = password;
this.score = score;
this.registDate = registDate;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCardId() {
return cardId;
}
public void setCardId(int cardId) {
this.cardId = cardId;
}
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 getRegistDate() {
return registDate;
}
public void setRegistDate(String registDate) {
this.registDate = registDate;
}
}
MemberMgr类,业务类,里面包含具体功能的实现方法
package homework2;
import java.text.SimpleDateFormat;
import java.util.*;
public class MemberMgr {
List<Member> memberList = new ArrayList<>();
Scanner input = new Scanner(System.in);
public void menu() {
System.out.println("*********************欢迎使用超市会员管理系统*********************");
System.out.println("1.开卡 2.修改密码 3.积分累计 4.积分兑换 5.剎余积分查询 6.退出'");
System.out.println("**************************************************************");
System.out.println("请选择:");
}
public void start() {
do {
menu();
int choose = input.nextInt();
switch (choose) {
case 1:
register();
System.out.println("开卡");
continue;
case 2:
if (changePwd()) {
System.out.println("新密码设置成功!");
}
continue;
case 3:
if (saveScore()) {
System.out.println("您的积分累计成功");
}
continue;
case 4:
if (mimusScore()) {
System.out.println("积分兑换成功!");
}
continue;
case 5:
showScore();
continue;
case 6:
System.out.println("感谢您的使用,欢迎下次使用!");
break;
default:
System.out.println("您的操作有误请重新选择");
continue;
}
break;
} while (true);
}
public int createId() {
Random random = new Random();
int id = random.nextInt(99999999);
for (Member m : memberList) {
if (m.getCardId() == id) {
id = random.nextInt(99999999);
}
}
return id;
}
public void register() {
Member member = new Member();
System.out.println("请输入注册姓名:");
member.setName(input.next());
System.out.println("请输入注册密码:");
String pwd;
boolean flag = true;
do {
pwd = input.next();
if (pwd.length() < 6) {
System.out.println("会员密码不能小于6位,请重新输入注册密码:");
flag = false;
} else {
flag = true;
member.setPassword(pwd);
}
} while (!flag);
member.setCardId(createId());
member.setScore(100);
Date date = new Date();
SimpleDateFormat formater = new SimpleDateFormat("MM月dd日");
String cardDate = formater.format(date);
member.setRegistDate(cardDate);
memberList.add(member);
System.out.println("恭喜,开通会员卡成功!系统赠送您100积分,您的会员卡号是:" + member.getCardId());
}
public Member hasMember(Member m) {
Member member = null;
for (Member everyMember : memberList) {
if (m.getCardId() == everyMember.getCardId() &&
m.getPassword().equals(everyMember.getPassword())) {
member = everyMember;
}
}
return member;
}
public boolean changePwd() {
boolean flag = true;
Member member = new Member();
System.out.println("请输入会员卡号");
member.setCardId(input.nextInt());
System.out.println("请输入会员密码");
member.setPassword(input.next());
member = hasMember(member);
if (member != null) {
System.out.println("请输入新的会员密码");
String pwd;
boolean flagPwd = true;
do {
pwd = input.next();
if (pwd.length() < 6) {
System.out.println("会员密码不能小于6位,请重新输入会员密码:");
flagPwd = false;
} else {
member.setPassword(pwd);
flag = true;
flagPwd = true;
}
} while (!flagPwd);
} else {
System.out.println("您输入的会员卡号或密码错误,无法修改密码");
flag = false;
}
return flag;
}
public boolean saveScore() {
boolean flag = true;
Member member = new Member();
System.out.println("请输入会员卡号");
member.setCardId(input.nextInt());
System.out.println("请输入会员密码");
member.setPassword(input.next());
member = hasMember(member);
if (member != null) {
System.out.println("请输入您此次消费金额(消费1元累计1积分):");
int score = input.nextInt();
member.setScore(member.getScore() + score);
flag = true;
} else {
System.out.println("您输入的会员卡号或密码错误,无法累计积分");
flag = false;
}
return flag;
}
public void showScore() {
Member member = new Member();
System.out.println("请输入会员卡号");
member.setCardId(input.nextInt());
System.out.println("请输入会员密码");
member.setPassword(input.next());
member = hasMember(member);
if (member != null) {
System.out.println("姓名\t\t会员卡号\t\t 剎余积分\t 开卡日期");
System.out.println(member.getName() + "\t" +
member.getCardId() + "\t\t" +
member.getScore() + "\t\t" +
member.getRegistDate());
} else {
System.out.println("您输入的会员卡号或密码错误,无法查询积分!");
}
}
public boolean mimusScore() {
boolean flag = true;
Member member = new Member();
System.out.println("请输入会员卡号");
member.setCardId(input.nextInt());
System.out.println("请输入会员密码");
member.setPassword(input.next());
member = hasMember(member);
if (member != null) {
System.out.println("请输入您要兑换使用的积分(100积分抵用0.1元,不足100的积分不做抵用:");
int score = input.nextInt();
if (score <= member.getScore()) {
member.setScore(member.getScore() - score);
System.out.println("您的消费金额中使用会员积分抵扣了" + score / 100 * 0.1 + "元");
flag = true;
} else {
System.out.println("抱歉,您的积分不够,无法抵用消费金额!");
flag = false;
}
} else {
System.out.println("您输入的会员卡号或密码错误,无法完成积分兑换!");
flag = false;
}
return flag;
}
}
Test类,调入main方法
package homework2;
public class Test {
public static void main(String[] args) {
MemberMgr mgr = new MemberMgr();
mgr.start();
}
}