客户会员类
package com.member;
import java.util.Date;
/**
* 客户信息类
* @author Administrator
*
*/
public class User {
//客户资料
private Integer cardNum; //卡号
private String userName; //用户名
private String password; //密码
private int integral=100; //积分
private Date ocd; //开卡日期
//构造方法
public User() {}
public User(int cardNum,String userName, String password, int integral,Date ocd) {
this.cardNum = cardNum;
this.userName=userName;
this.password = password;
this.integral = integral;
this.ocd=ocd;
}
//setter getter
public int getCardNum() {
return cardNum;
}
/**
* 会员卡号八位数限制
*/
public boolean setCardNum(int cardNum) {
if(cardNum>=10000000&&cardNum<100000000) {
this.cardNum = cardNum;
return false;
}
return true;
}
public String getUserName() {
return userName;
}
/**
* 用户名长度限制
*/
public boolean setUserName(String userName) {
if(userName.length()>2&&userName.length()<13) {
this.userName = userName;
return false;
}else if(userName.length()<3){
System.out.println("用户名长度不能少于3位");
}else {
System.out.println("用户名长度不能多于12位");
}
return true;
}
public String getPassword() {
return password;
}
/**
* 密码长度限制
*/
public boolean setPassword(String password) {
if(password.length()>5&&password.length()<13) {
this.password = password;
return false;
}else if(password.length()<=5){
System.out.println("密码长度不能少于6位");
}else {
System.out.println("密码长度不能多于12位");
}
return true;
}
public int getIntegral() {
return integral;
}
public void setIntegral(int integral) {
this.integral= integral;
}
public Date getOcd() {
return ocd;
}
public void setOcd(Date ocd) {
this.ocd = ocd;
}
}
超市系统
package com.member;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 会员卡系统类
*/
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.Map;
import java.util.Random;
import java.util.Scanner;
public class Member {
Scanner sc=new Scanner(System.in);
Map<Integer,User> map=new HashMap<Integer,User>(); //会员卡集合
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //时间显示的格式
/**
* 高级会员
*/
Date date=new Date(); //获取当前系统时间
User user1=new User(88888888,"善良可爱猪","h888888",10000,date);
User user2=new User(99999999,"无敌龙卷风","999999",20000,date);
User user3=new User(66666666,"老司机","666666",20000,date);
public void initial(){
map.put(88888888,user1);
map.put(99999999,user2);
map.put(66666666,user3);
}
/**
* 会员管理系统界面
*/
public void start() {
initial(); //初始化高级会员
String choose=""; //用户选择
do{
System.out.println("**********欢迎进入超市会员管理系统**********");
System.out.println("1、会员登录\t\t2、会员开卡\t\t3、退出系统");
choose=sc.next();
switch (choose) {
case "1":
System.out.println("***会员登录***");
User u=Login(); //登录后返回的对象
if(u instanceof User) { //判断返回的对象是否是会员
menu(u); //调用会员菜单二级界面
}
break;
case "2":
System.out.println("***会员开卡***");
newCard(); //调用开卡方法
break;
case "3":
System.out.println("感谢您的使用,欢迎下次使用!");
break;
case "zzh":
System.out.println("***管理者***");
inShow();
break;
default:
System.out.println("*输入有误,请重新输入!*");
break;
}
}while(!"3".equals(choose));
}
/**
* 会员卡菜单界面(二级菜单)
*/
public void menu(User u) {
String choose="";
do {
System.out.println("*******************************会员用户**********************************");
System.out.println("1、积分累计\t\t2、积分兑换\t\t3、查询剩余积分\t4、修改密码\t\t5、退出登录");
choose=sc.next();
switch (choose) {
case "1":
System.out.println("***积分累计***");
shop(u);
break;
case "2":
System.out.println("***积分兑换***");
toUse(u);
break;
case "3":
System.out.println("***查询积分***");
show(u);
break;
case "4":
System.out.println("***修改密码***");
if(revamp(u)) {
System.out.println("***请重新登录***");
return;
}
break;
case "5":
System.out.println("***退出登录成功***");
break;
default:
System.out.println("输入有误,请重新输入!");
break;
}
}while(!"5".equals(choose));
}
/**
* 登入会员卡
*/
public User Login() {
boolean flag=false;
System.out.println("请输入您的会员卡号:");
Integer cardNum=0;
try {
cardNum=sc.nextInt();
}catch(InputMismatchException e) {
System.err.println("卡号非法输入");
return null;
}
System.out.println("请输入您的密码:");
String password=sc.next();
//遍历集合的key,对比输入的key
for(Map.Entry<Integer,User> m:map.entrySet()) {
if(cardNum.equals(m.getKey())&&password.equals(m.getValue().getPassword())) {
System.out.println("***登录成功***");
System.out.println("***尊敬的:"+m.getValue().getUserName()+",您好***");
return m.getValue(); //返回对象
}
}
System.out.println("用户名或者密码错误");
return null;
}
/**
* 会员开卡
*/
public void newCard() {
//创建用户
User u=new User();
//随机八位数卡号
Random random=new Random();
boolean flag; //标记卡号是否正确
do {
flag=u.setCardNum(random.nextInt()); //随机卡号值
}while(flag);
//输入用户名密码
do {
System.out.println("请输入注册用户名:");
flag =u.setUserName(sc.next());
//用户名错误结束本次循环
if(flag) {
continue;
}
System.out.println("请输入注册密码:");
flag=u.setPassword(sc.next());
//密码错误提示
if(flag) {
System.out.println("请重新注册!");
}
}while(flag);
//创建开卡日期
Date date=new Date();
u.setOcd(date);
//注册成功
map.put(u.getCardNum(), u); //把对象放入集合里
System.out.println("***恭喜开通会员卡成功,系统赠送您100积分,您的会员卡号:"+u.getCardNum()+"***");
}
/**
* 积分累计
*/
public void shop(User u) {
System.out.println("请输入您此次消费金额(消费一元累计一积分):");
try {
int buy=sc.nextInt();
if(buy<=0) {
System.out.println("***输入错误,积分累计失败!***");
}else {
System.out.println("***积分累计成功!***");
u.setIntegral(u.getIntegral()+buy); //积分加上输入的金钱积分
}
System.out.println("***积分总计:"+u.getIntegral()+"***");
}catch(InputMismatchException e) {
System.err.println("***输入不是数字!累计积分失败!***");
}
}
/**
* 积分兑换
*/
public void toUse(User u) {
System.out.println("请输入您需要兑换的积分(100积分抵用0.1元,不足100的积分不做抵用):");
try {
int use=sc.nextInt();
if(use>u.getIntegral()) {
System.out.println("***积分余额不足积分兑换失败***");
}else if(use>=100) {
u.setIntegral(u.getIntegral()-use); //积分减输入的金钱积分
System.out.println("您的消费金额中使用会员积分抵消:"+(use/100f)+"元");
System.out.println("剩余积分总计:"+u.getIntegral());
}else if(use<100) {
System.out.println("兑换的积分不足100,兑换失败!");
}
}catch(InputMismatchException e) {
System.err.println("***输入不是数字!积分兑换失败!***");
}
}
/**
* 查询剩余积分
*/
public void show(User u) {
System.out.println("用户名\t\t会员卡号\t\t剩余积分\t\t开卡日期");
System.out.print(u.getUserName()+"\t\t"+u.getCardNum());
System.out.println("\t"+u.getIntegral()+"\t\t"+sdf.format(u.getOcd()));
}
/**
* 修改密码
*/
public boolean revamp(User u) {
boolean flag=false;
System.out.println("请输入您的会员卡号:");
int cardNum=0;
try {
cardNum=sc.nextInt();
}catch(InputMismatchException e) {
System.err.println("卡号非法输入");
}
System.out.println("请输入您的密码:");
String password=sc.next();
if(cardNum==u.getCardNum()&&password.equals(u.getPassword())) {
System.out.println("请输入新的会员密码:");
if(!u.setPassword(sc.next())) {
System.out.println("密码修改成功!");
flag=true;
}else {
System.out.println("密码修改失败!");
flag=false;
}
}else {
System.out.println("***您输入的会员卡号或密码错误,无法修改***");
flag=false;
}
return flag;
}
}
测试类
package com.member;
/**
* 超市会员管理系统测试类
* @author Administrator
*
*/
public class MemberTest {
public static void main(String[] args) {
//创建会员对象
Member member=new Member();
//调用超市会员系统
member.start();
}
}
运行