//超市会员类
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){
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;
}
}
import java.text.SimpleDateFormat;
import java.util.*;
//会员管理类
public class MenberMgr {
//所有会员卡
List<Member> memberList = new ArrayList<Member>();//使用泛型规定数据类型
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.print("请选择: ");
}
//搭建项目流程
public void start() {
do {
menu();
int choose = input.nextInt();
switch (choose) {
case 1:
register();
continue;
case 2:
if (changpwd()) {
System.out.println("新密码设置成功!");
}
continue;
case 3:
if (saveScore()) {
System.out.println("你的积分累积成功!");
}
continue;
case 4:
if (minusScore()) {
System.out.println("积分兑换成功!");
}
continue;
case 5:
showScore();
continue;
case 6:
System.out.println("感谢使用,欢迎下次使用!");
break;
default:
System.out.println("你操作有误 请重新选择");
}
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.print("请输入注册姓名:");
member.setName(input.next());
System.out.print("请输入密码:");
//会员密码不能低于6位
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 format = new SimpleDateFormat("MM月dd日");
String cardDate = format.format(date);
member.setRegistDate(cardDate);
//将注册成功的会员添加到会员集合中,并提示开卡成功
memberList.add(member);
System.out.println("恭喜开卡成功!系统赠送你100积分,你的会员卡号是" + member.getCardId());
}
//验证会员是否存在
//查询条件(会员卡号和密码)--封装在参数m中传过来
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 changpwd() {
boolean flag = true;//密码是否成功
Member member = new Member();
System.out.println("请输入你的会员卡号:");
member.setCardId(input.nextInt());
System.out.println("请输入你的会员密码:");
member.setPassword(input.next());
member = hasMember(member);//member找到就是返回的会员对象 如果找不到返回的就是member的null
if (member != null) {
//会员卡号和密码正确,找到了该会员,允许修改密码
System.out.print("请输入新的会员密码:");
String pwd;
boolean flagpwd = true;//新设置的密码格式是否正确
do {
pwd = input.next();
if (pwd.length() < 6) {
System.out.print("会员密码不能小于6,请重新输入会员密码");
flagpwd = false;
} else {
System.out.println("你输入的会员卡号或者密码错误,无法修改密码");
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);//member如果找到 就是找到了会员对象,找不到 member是null
if (member != null) {
//该会员存在
System.out.println("请输入你此次消费的金额:");
int score = input.nextInt();
member.setScore(member.getScore() + score);
} else {
System.out.println("你输入的会员卡号或密码错误,无法累计积分");
flag = false;
}
return false;
}
//积分查询
public void showScore() {
Member member = new Member();
System.out.println("请输入你的会员卡号");
member.setCardId(input.nextInt());
System.out.println("输入你的密码:");
member.setPassword(input.next());
member = hasMember(member);//member找到就是会员对象,找不到member是null
if (member != null) {
System.out.println("姓名\t会员卡号\t\t剩余积分\t开卡日期");
System.out.println(member.getName() + "\t" + member.getCardId() + "\t" + member.getScore() + "\t");
} else {
System.out.println("你输入的会员卡号错误,无法查询");
}
}
//积分兑换
public boolean minusScore() {
boolean flag = true;//积分兑换是否顺利完成
Member member = new Member();
System.out.println("请输入会员卡号:");
member.setCardId(input.nextInt());
System.out.println("请输入会员密码:");
member.setPassword(input.next());
member = hasMember(member);//member如果找到 就是找到了会员对象,找不到 member是null
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 + "元");
flag = true;
}
} else {
System.out.println("抱歉,你的积分不够,无法使用");
flag = false;
}
return flag;
}
}
测试类
//测试类 程序入口
public class Test {
public static void main(String[] args) {
MenberMgr mgr = new MenberMgr();
mgr.start();
}
}
超市会员管理系统实战项目
最新推荐文章于 2024-08-01 15:50:55 发布