package cn.bdqn.project06;
public class Member {
//姓名 会员卡号 密码 积分 开卡日期
private String name;
private int cardId;
private String password;
private int score;
private String registDate;
public Member() {
super();
}
public Member(String name, int cardId, String password, int score, String registDate) {
super();
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 cn.bdqn.project06;
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 {
//业务类
Scanner input = new Scanner(System.in);
List<Member> memberList = new ArrayList<Member>();
//开始菜单
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:
//积分累计
if(saveScore()) {
System.out.println("积分累计成功!");
}else {
System.out.println("积分累计失败!");
}
continue;
case 2:
//积分兑换
if(minusScore()) {
System.out.println("积分兑换成功!");
}else {
System.out.println("积分兑换失败!");
}
continue;
case 3:
//积分查询
showScore();
continue;
case 4:
//修改密码
System.out.println("..........");
continue;
case 5:
//开卡
register();
continue;
case 6:
System.out.println("感谢使用!");
break;
default:
System.out.println("操作有误!");
}
break;
}while(true);
}
//查询当前会员是否存在,根据会员卡号及密码查找该会员是否存在,存在返回对象,不存在返回null
public Member hasMember(int id,String pwd) {
for(Member member:memberList) {
if(member.getCardId() == id && member.getPassword().equals(pwd)) {
return member;
}
}
return null;
}
//积分累计
public boolean saveScore() {
boolean flag = true;
System.out.println("请输入会员卡号:");
int id = input.nextInt();
System.out.println("请输入会员密码:");
String pwd = input.next();
Member member = hasMember(id,pwd);
if(member !=null) {
System.out.println("请输入您此次消费金额(1元积1分:)");
int score = input.nextInt();
member.setScore(member.getScore()+score);
}else {
System.out.println("会员卡号不存在!");
flag = false;
}
return flag;
}
//积分兑换
public boolean minusScore() {
boolean flag = true;
System.out.println("请输入会员卡号:");
int id = input.nextInt();
System.out.println("请输入会员密码:");
String pwd = input.next();
Member member = hasMember(id,pwd);
if(member !=null) {
System.out.println("请输入您此次消费抵换的积分:");
int score = input.nextInt();
if(score<=member.getScore()) {
member.setScore(member.getScore()-score);
System.out.println("您此次抵消:"+score/100*0.1+"元");
}else {
System.out.println("积分不足无法兑换!");
}
flag = true;
}else {
System.out.println("会员卡号不存在!");
flag = false;
}
return flag;
}
//积分查询
public void showScore() {
System.out.println("请输入会员卡号:");
int id = input.nextInt();
System.out.println("请输入会员密码:");
String pwd = input.next();
Member member = hasMember(id,pwd);
if(member !=null) {
System.out.println("会员卡号 姓名 剩余积分 开卡日期");
System.out.println(member.getCardId()+" "+member.getName()+" "+member.getScore());
}else {
System.out.println("会员卡号不存在!无法查询");
}
}
//生成随机卡号
public int createId() {
Random random = new Random();
int id = random.nextInt(99999999);
for(Member member:memberList){
if(member.getCardId() == id) {
id = random.nextInt(99999999);
}
}
return id;
}
//开卡
public void register() {
Member member = new Member();
System.out.println("请输入注册姓名:");
member.setName(input.next());
//会员卡号随机生成
int cardId = createId();
member.setCardId(cardId);
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);
//每卡默认开卡后赠送100分
member.setScore(100);
//开卡日期
Date date = new Date();
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
String sdate = formater.format(date);
member.setRegistDate(sdate);
System.out.println("恭喜,会员开通成功!系统赠送您100积分,您的会员卡号是:"+cardId);
memberList.add(member);
}
}
package cn.bdqn.project06;
public class MemberTest {
public static void main(String[] args) {
MemberDao dao = new MemberDao();
dao.start();
}
}