1、会员类Member
(1)姓名 name:String
(2)卡号 cardId:int
(3)密码 password:String
(4)积分 score:int
(5)开卡日期 registDate:String
2、会员管理类
(1)所有会员(卡)--集合:List ArrayList<Member>
(2)程序整体流程搭建的方法
循环
分支
(3)验证会员是否存在的方法
集合的遍历,集合元素的查找
(4)系统随机生成会员卡号的方法
Random类
A:开卡
输入会员信息(会员卡密码的验证--String类相应方法-循环)
姓名、密码
卡号:系统随机生成会员卡号的方法
积分:系统默认100
开卡日期:日期时间操作(Date类、SimpleDateFormat类)
将注册成功的会员添加进集合(ArrayList add())
B:修改密码
验证会员是否存在
会员对象密码属性重新赋值
C:积分累计
验证会员是否存在
会员对象积分属性重新赋值
D:积分兑换
验证会员是否存在
会员积分兑换过程(根据相应规则)
E:查询剩余积分
验证会员是否存在
集合查找相应会员,显示信息(遍历)
F:退出
3、测试类
会员管理类的调用
package 超市会员管理系统;
public class Member {
private String name;//姓名
private int cardid;//卡号
private String password;//密码
private int score;//积分
private String registDate;//开卡日期
public Member() {
}
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;
}
}
package 超市会员管理系统;
import java.text.SimpleDateFormat;
import java.util.*;
public class Manage {
List<Member> member = new ArrayList();
Scanner sc = new Scanner(System.in);
public void menu() {
System.out.println("*******************************欢迎进入超市会员管理系统*******************************");
System.out.println("1、开卡\t2、修改密码\t3、积分累计\t4、积分兑换\t5、查询剩余积分\t6、退出");
System.out.println("**************************************************************************************");
System.out.println("请选择:");
}
public void start() {
do {
menu();
int choose = sc.nextInt();
switch (choose) {
case 1:
if (open()) {
System.out.println("开卡成功");
} else {
System.out.println("开卡失败");
}
break;
case 2:
revisePwd();
break;
case 3:
saveScore();
break;
case 4:
exchange();
break;
case 5:
remain();
break;
case 6:
System.out.println("感谢您的使用,欢迎下次使用");
return;
default:
System.out.println("您的操作有误吗,请重新选择:");
continue;
}
} while (true);
}
//产生新的卡号
public int createId() {
Random random = new Random();
int id = random.nextInt(99999999);
for (Member m : member) {
if (m.getCardid() == id) {
id = random.nextInt(99999999);
}
}
return id;
}
//开卡
public boolean open() {
Member m = new Member();
System.out.println("请输入姓名");
m.setName(sc.next());
System.out.println("请输入密码");
String pwd;
boolean flag = true;
do {
pwd = sc.next();
if (pwd.length() < 6) {
System.out.println("会员密码至少六位");
flag = false;
} else {
flag = true;
m.setPassword(pwd);
}
} while (!flag);
int cardId = createId();
m.setCardid(cardId);
m.setScore(100);
Date date = new Date();
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MMM-dd");
String sdate = formater.format(date);
m.setRegistDate(sdate);
System.out.println("恭喜,会员卡开通成功!系统赠送100积分,您的会员卡号为 :" + cardId);
System.out.println("您的开卡时间为:"+date);
member.add(m);
return flag;
}
//验证会员是否存在
public Member hasMember(Member m) {
Member mm = null;
for (Member member : member) {
if (m.getCardid() == member.getCardid() && m.getPassword().equals(member.getPassword())) {
mm = member;
}
}
return mm;
}
//修改密码
public void revisePwd() {
boolean flag = true;
do {
Member m = new Member();
System.out.println("请输入会员卡号");
m.setCardid(sc.nextInt());
System.out.println("请输入密码");
m.setPassword(sc.next());
m=hasMember(m);
if (m != null) {
System.out.println("请输入新的密码");
m.setPassword(sc.next());
System.out.println("修改密码成功,您的卡号为:"+m.getCardid()+"您的密码为:"+m.getPassword());
flag =true;
} else {
System.out.println("您的密码或者卡号不正确请重新输入");
flag = false;
}
} while (!flag);
}
//积分累计
public void saveScore() {
boolean flag = true;
do {
Member m = new Member();
System.out.println("请输入会员卡号");
m.setCardid(sc.nextInt());
System.out.println("请输入密码");
m.setPassword(sc.next());
//hasmember方法返回的是一个member对象
m=hasMember(m);
if (m != null) {
System.out.println("请输入此次花销");
int number=sc.nextInt();
m.setScore(m.getScore()+number);
System.out.println("此次您花销了"+number+"元,可以兑换"+number+"积分");
System.out.println("您的卡号是"+m.getCardid()+",您的积分为"+m.getScore()+"恭喜您兑换成功");
} else {
System.out.println("您的密码或者卡号不正确请重新输入");
flag = false;
}
} while (!flag);
}
//积分兑换
public void exchange(){
boolean flag = true;
do {
Member m = new Member();
System.out.println("请输入会员卡号");
m.setCardid(sc.nextInt());
System.out.println("请输入密码");
m.setPassword(sc.next());
//hasmember方法返回的是一个member对象
m=hasMember(m);
if (m != null) {
System.out.println("请输入您想要兑换的积分数(一百分等于一块钱):");
int number=sc.nextInt();
if(number<m.getScore()){
m.setScore(m.getScore()-number);
System.out.println("您的积分已抵消"+number/100+"块钱,恭喜您抵消成功");
}else{
System.out.println("积分不足,无法兑换");
}
} else {
System.out.println("您的密码或者卡号不正确请重新输入");
flag = false;
}
} while (!flag);
}
public void remain(){
boolean flag = true;
do {
Member m = new Member();
System.out.println("请输入会员卡号");
m.setCardid(sc.nextInt());
System.out.println("请输入密码");
m.setPassword(sc.next());
//hasmember方法返回的是一个member对象
m=hasMember(m);
if (m != null) {
System.out.println("您剩余的积分值为:"+m.getScore());
} else {
System.out.println("您的密码或者卡号不正确请重新输入");
flag = false;
}
} while (!flag);
}
}
package 超市会员管理系统;
public class Test {
public static void main(String[] args) {
Manage m=new Manage();
m.start();
}
}