综合练习5-超市会员管理系统(对象+数组)

1.实体类

public class Member {

	private String name;//姓名
	private String pwd;//密码
	private int id;//卡号
	private int score;//积分
	private String date;//开卡日期
	public Member() {
		
	}
	
	public Member(String name, String pwd, int id, int score, String date) {
		super();
		this.name = name;
		this.pwd = pwd;
		this.id = id;
		this.score = score;
		this.date = date;
	}

	
	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 getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getScore() {
		return score;
	}

	public void setScore(int score) {
		this.score = score;
	}

	public String getDate() {
		return date;
	}

	public void setDate(String date) {
		this.date = date;
	}
	
	
}

2.业务逻辑类

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 MemberMgr {
	Scanner sc = new Scanner(System.in);
	Random r = new Random();
	// 创建集合存放会员卡信息
	List<Member> lists = new ArrayList<Member>();

	// 菜单
	public void menu() {
		System.out.println("----------------欢迎进入超市会员管理系统----------------");
		System.out.println("1.开卡");
		System.out.println("2.修改密码");
		System.out.println("3.积分累计");
		System.out.println("4.积分兑换");
		System.out.println("5.查询剩余积分");
		System.out.println("6.退出");
		System.out
				.println("--------------------------------------------------");
	}

	// 系统开始
	public void start() {
		
		int index;
		do {
			menu();
			do{
				System.out.println("请选择:");
				index = sc.nextInt();
			}while(index>6||index<1);
			
			switch (index) {
			case 1:
				//开卡
				createCard();
				break;
			case 2:
				//修改密码
				revisePwd();
				break;
			case 3:
				// 积分累计
				integralAdd();
				break;
			case 4:
				//积分兑换
				integralExchange();
				
				break;
			case 5:
				//查询剩余积分
				integralSelect();
				break;
			case 6:
				System.out.println("程序结束,谢谢使用!");
				System.exit(0);
				break;
			default:
				break;
			}
		} while (index >= 0 && index <= 6);
	}
	//开卡
	public void createCard(){
		Boolean flag = true;
		// 输入会员信息
		System.out.println("请输入开卡人姓名:");
		String name = sc.next();
		String pwd;
		while (true) {
			System.out.println("请输入密码:(6-18位)");
			pwd = sc.next();
			if (pwd.length() <= 18 && pwd.length() >= 6) {
				break;
			}
			System.out.println("密码长度输入错误请重新输入!(6-18位)");
		}
		// 随机生成会员卡号
		int id;
		do {
			id = r.nextInt(90000000) + 10000000;
			for (Member meber : lists) {
				if (meber.getId() == id) {
					flag = false;
				}
			}
		} while (!flag);
		// 积分默认100
		int score = 100;

		// 生成开卡时间
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		String registDate = sdf.format(date);
		Member member = new Member(name, pwd, id, score, registDate);
		lists.add(member);

		System.out.println("会员注册成功,注册时间" + registDate + ",会员卡号为:" + id);
		
	}

	//修改密码
	public void revisePwd(){
		// 修改密码
		Boolean flag = true;
		System.out.println("请输入卡号:");
		int id = sc.nextInt();
		System.out.println("请输入旧密码:");
		String pwd = sc.next();
		for (Member meber : lists) {
			if (meber.getId() == id && meber.getPwd().equals(pwd)) {
				flag = false;
				String newPwd;
				while (true) {
					System.out.println("请输入新的密码:(6-18位)");
					newPwd = sc.next();
					if (pwd.length() <= 18 && pwd.length() >= 6) {
						meber.setPwd(newPwd);
						System.out.println("密码修改成功!");
						break;
					}
					System.out.println("密码长度输入错误请重新输入!(6-18位)");
				}

			}
		}
		if (flag) {
			System.out.println("账号密码输入错误或者没有找到该会员信息!");
		}
	}
	
	//积分累计
	public void integralAdd(){
		Boolean flag = true;
		System.out.println("请输入卡号:");
		int id = sc.nextInt();
		System.out.println("请输入密码:");
		String pwd = sc.next();
		for (Member meber : lists) {
			if (meber.getId() == id && meber.getPwd().equals(pwd)) {
				flag = false;
				System.out.println("请输入消费金额:");
				int pay = sc.nextInt();
				meber.setScore(meber.getScore() + pay);
				System.out.println("当前积分为:" + meber.getScore());
			}
		}
		if (flag) {
			System.out.println("账号密码输入错误或者没有找到该会员信息!");
		}
	}

	//积分兑换
	public void integralExchange(){
		Boolean flag = true;
		System.out.println("请输入卡号:");
		int id = sc.nextInt();
		System.out.println("请输入密码:");
		String pwd = sc.next();
		for (Member meber : lists) {
			if (meber.getId() == id && meber.getPwd().equals(pwd)) {
				flag = false;
				while(true){
					System.out.println("请输入要兑换的积分:(100积分兑换1元)");
					int score = sc.nextInt();
					if(score>meber.getScore()){
						System.out.println("对不起,您的积分不够,当前为"+meber.getScore()+"请重新输入!");
					}else{
						meber.setScore(meber.getScore() - score);
						System.out.println("兑换成功,成功抵扣"+(score/100)+"元");
						System.out.println("当前积分为:" + meber.getScore());
						
						break;
					}	
				}	
			}
		}
		if (flag) {
			System.out.println("账号密码输入错误或者没有找到该会员信息!");
		}
	}

	//查询积分
	public void integralSelect(){
		Boolean flag = true;
		System.out.println("请输入卡号:");
		int id = sc.nextInt();
		System.out.println("请输入密码:");
		String pwd = sc.next();
		for (Member meber : lists) {
			if (meber.getId() == id && meber.getPwd().equals(pwd)) {
				flag = false;
				System.out.println("您的积分余额为"+meber.getScore());
			}
		}
		if (flag) {
			System.out.println("账号密码输入错误或者没有找到该会员信息!");
		}
	}
	
}

3.测试类

//测试类
public class Test {

	public static void main(String[] args) {
		MemberMgr mm = new MemberMgr();
		//启动
		mm.start();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值