1.会员实体类
import java.io.Serializable;
//会员实体类
public class SuperPojo implements Serializable {
private String name; //会员姓名
private String pwd; //会员密码
private int cardId; //会员卡号
private int cardNum; //会员积分
private String registDate; //开卡日期
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public int getCardId() {
return cardId;
}
public void setCardId(int cardId) {
this.cardId = cardId;
}
public double getCardNum() {
return cardNum;
}
public void setCardNum(int cardNum) {
this.cardNum = cardNum;
}
public String getRegistDate() {
return registDate;
}
public void setRegistDate(String registDate) {
this.registDate = registDate;
}
public SuperPojo() {
}
public SuperPojo(String name, String pwd, int cardId, int cardNum,String registDate) {
this.name = name;
this.pwd = pwd;
this.cardId = cardId;
this.cardNum = cardNum;
this.registDate = registDate;
}
}
2.接口方法
public interface SuperMethod {
//积分累计
void addCardNum(int num);
//积分兑换商品
void change (int num);
//查询剩余积分
void select(int cardId,String pwd);
//修改密码
void update(int cardId);
//开卡
public void openCard();
//展示系统选项
void showSuper();
//会员卡号随机产生方法
int cardRandom();
}
3.业务类实现方法
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
public class SuperServer implements SuperMethod{
Scanner sc = new Scanner(System.in);
//会员对象
SuperPojo superPojo = new SuperPojo();
//SuperPojo集合
ArrayList<SuperPojo> list = new ArrayList();
//随机生成卡号
@Override
public int cardRandom() {
return (int) (Math.random() * (19999999 - 10000000) + 10000000);
}
//开卡时判断是否注册过
public boolean isExit(int cid) {
boolean isCId = false;
if (list.size() > 0) {
//循环遍历
for (int i = 0;i<list.size();i++) {
SuperPojo superPojo1 = list.get(i);
if (cid == superPojo1.getCardId()){
System.out.println("您已注册过,不能重复注册!");
System.out.println("您的卡号是:"+superPojo1.getCardId());
isCId = true;
return isCId;
}
}
}
return isCId;
}
//判断会员卡号和密码是否正确
public boolean isSuper(int cid,String pwd){
boolean isCid = false;
if (list.size()>0){
for (int i = 0;i< list.size();i++){
SuperPojo superPojo1 = list.get(i);
if (cid == superPojo1.getCardId() && pwd.equals(superPojo1.getPwd())) {
superPojo = superPojo1;
isCid = true;
}
}
}
return isCid;
}
@Override
public void showSuper() {
System.out.println("********欢迎使用超市会员管理系统*********");
System.out.println("1.开卡\n2.修改密码\n3.积分累计\n4.积分兑换\n5.剩余积分查询\n6.查看所有会员信息\n7.退出");
System.out.println("**************************************");
}
//开卡
@Override
public void openCard() {
//初始化新对象
superPojo = new SuperPojo();
int card = cardRandom();
//判断是否注册过
if (!isExit(card)){
System.out.print("请输入姓名:");
//保存姓名
superPojo.setName(sc.next());
System.out.print("请输入密码:");
String pwd = sc.next();
while (pwd.length()<6){
System.out.println("密码不能小于6位!");
System.out.print("请输入密码:");
pwd = sc.next();
}
//保存密码
superPojo.setPwd(pwd);
//默认积分100
superPojo.setCardNum(100);
superPojo.setCardId(card);
//日期
Date date = new Date();
//格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy- MM-dd HH:mm:ss");
//保存开卡日期
superPojo.setRegistDate(sdf.format(date));
//将数据存入集合
list.add(superPojo);
System.out.println("恭喜您,开卡成功!赠送您"+superPojo.getCardNum()+"积分,您的会员卡号是:"+superPojo.getCardId());
}
}
//修改密码
@Override
public void update(int cardId) {
System.out.print("请输入密码:");
String pwd = sc.next();
// 判断会员卡和密码是否正确
if (isSuper(cardId,pwd)){
System.out.print("请输入新密码:");
superPojo.setPwd(sc.next());
System.out.println("修改成功!");
}else{
System.out.println("卡号或密码错误!");
}
}
//积分累计
@Override
public void addCardNum(int num) {
System.out.print("请输入您的卡号:");
int cId = sc.nextInt();
System.out.print("请输入密码:");
String pwd = sc.next();
if (isSuper(cId, pwd)) {
System.out.println("消费1元累计1分");
superPojo.setCardNum((int) (num + superPojo.getCardNum()));
System.out.println("积分累计成功,当前积分为:"+superPojo.getCardNum());
}else {
System.out.println("卡号或密码错误!");
}
}
//积分兑换
@Override
public void change(int num) {
System.out.print("请输入您的卡号:");
int cid = sc.nextInt();
System.out.print("请输入密码:");
String pwd = sc.next();
if (isSuper(cid, pwd)) {
if (num >= 100 &&num < superPojo.getCardNum()){
superPojo.setCardNum((int) (superPojo.getCardNum() - num));
System.out.println("使用会员积分抵扣了"+(num*0.1/100)+"元");
}else if (num < 100) {
System.out.println("积分不足!");
}
}else {
System.out.println("卡号或密码错误!");
}
}
//剩余积分查询
@Override
public void select(int cid, String pwd) {
if (isSuper(cid, pwd)) {
System.out.println("****会员信息******");
System.out.println("会员卡号\t"+superPojo.getCardId()+"\n姓名:\t"+superPojo.getName()
+"\n积分:\t"+superPojo.getCardNum()+"\n开卡时间:"+superPojo.getRegistDate());
}else {
System.out.println("卡号或密码错误!");
}
}
//查看所有会员信息
public void checkAll(){
for (int i = 0 ;i<list.size();i++){
superPojo = list.get(i);
System.out.println("会员卡号\t"+superPojo.getCardId()+"\n姓名:\t"+superPojo.getName()
+"\n积分:\t"+superPojo.getCardNum()+"\n开卡时间:"+superPojo.getRegistDate());
}
}
}
4.测试类
import java.util.Scanner;
public class SuperManager {
public static void main(String[] args) {
SuperServer ss = new SuperServer();
Scanner scanner = new Scanner(System.in);
boolean isExit = true;
do {
//展示系统选项
ss.showSuper();
System.out.print("请选择:");
switch (scanner.nextInt()){
case 1:
//开卡
ss.openCard();
break;
case 2:
//修改密码
System.out.print("请输入您的卡号:");
ss.update(scanner.nextInt());
break;
case 3:
//积分累计
System.out.print("请输入您本次的消费金额(消费1元累计1分):");
ss.addCardNum(scanner.nextInt());
break;
case 4:
//积分兑换
System.out.print("请输入您要兑换使用的积分(100积分抵用0.1元,不足100的积分不做抵用)");
ss.change(scanner.nextInt());
break;
case 5:
//剩余积分查询
System.out.print("请输入您的会员卡号:");
int cid = scanner.nextInt();
System.out.print("请输入您的会员密码:");
String pwd = scanner.next();
ss.select(cid,pwd);
break;
case 6:
//查看所有会员信息
ss.checkAll();
break;
case 7:
isExit = false;
break;
default:
System.out.println("无效操作,请重新选择!");
}
}while (isExit);
}
}
运行结果展示(参考):