21、Java——超市会员管理系统(对象+集合)

 

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。

个人主页:乐趣国学的博客

个人信条:不迁怒,不贰过。小知识,大智慧。

当前专栏:Java案例分享专栏

✨特色专栏:国学周更-心性养成之路

本文内容:Java——超市会员管理系统(对象+集合)

更多内容点击

                       Java——迷你图书管理器(对象+集合)

目录

项目需求

覆盖知识

开发思路 

开发具体逻辑

1、会员类:Member

2、会员管理类:MemberMethod

3、测试类:MemberTest


21、Java——超市会员管理系统(对象+集合)_第1张图片

 

项目需求

         为某超市开发一个超市会员管理系统,实现会员的管理,具体实现功能如下:

                (1)积分累计

                (2)积分兑换

                (3)查询剩余积分

                (4)查询所有会员信息

                (5)修改密码

                (6)开卡(注册会员)

覆盖知识

        程序基本概念、数据类型、流程控制、顺序、选择 、循环、跳转语句、变量、类、方法、集合、实用类等

开发思路 

        (1)明确需求

        (2)编码顺序

                1)、数据初始化

                2)、循环完成各种超市会员管理操作

                3)、菜单切换

        (3)测试

开发具体逻辑

1、会员类:Member

    (1)姓名        name:String
    (2)卡号        cardId:int
    (3)密码        password:String
    (4)积分        score:int
    (5)开卡日期    registDate:String    

       代码:

public class Member {

	// 定义属性
	private String name;
	private int cardId;
	private String password;
	private int score;
	private String registDate;

	public String getName() {
		return name;
	}

	// 定义get/set方法
	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;
	}
}

2、会员管理类:MemberMethod

    (1)所有会员(卡)--集合:ArrayList listM = new ArrayList();

    (2)程序整体流程搭建的方法
            循环
            分支
    (3)验证会员是否存在的方法
            集合的遍历,集合元素的查找
    (4)系统随机生成会员卡号的方法
            Math.random()方法

    A:开卡
        输入会员信息(会员卡密码的验证--String类相应方法-循环)
            姓名、密码
            卡号:系统随机生成会员卡号的方法
            积分:系统默认100
            开卡日期:日期时间操作(Date类、SimpleDateFormat类)
        将注册成功的会员添加进集合(ArrayList add())            
    B:修改密码
        验证会员是否存在
          会员对象密码属性重新赋值
    C:积分累计
        验证会员是否存在
        会员对象积分属性重新赋值
    D:积分兑换
        验证会员是否存在
        会员积分兑换过程(根据相应规则)
    E:查询剩余积分
        验证会员是否存在
        集合查找相应会员,显示信息(遍历)

    F:查询所有会员信息
        验证会员是否存在
        集合查找所有会员,显示信息(遍历)
    F:退出

    (5) 代码

public class MemberMethod {

	// 定义一个Scanner
	Scanner sc = new Scanner(System.in);
	// 定义Member对象
	Member member = new Member();
	// 定义一个Member集合
	ArrayList listM = new ArrayList();

	// 菜单选择栏
	public void showFirst() {
		System.out
				.println("****************************************欢迎使用超市会员管理系统*****************************************");
		System.out
				.println("1.开卡\t2.修改密码\t3.积分累计\t4.积分兑换\t5.剩余积分查询\t6.查看所有会员信息\t7.退出");
		System.out
				.println("*******************************************************************************************************");

	}

	// 会员卡号随机产生方法
	public int cardRandom() {
		return (int) (Math.random() * (19999999 - 10000000) + 10000000);

	}

	// 注册时判断会员是否存在
	public boolean isCardId(int mm) {
		boolean isCId = false;
		if (listM.size() > 0) {
			for (Member memberC : listM) {
				if (mm == memberC.getCardId()) {
					isCId = true;
					return isCId;
				}
			}
		}
		return isCId;
	}

	// 判断会员卡和密码是否正确
	public boolean isMember(int mm, String pwd) {
		boolean isCId = false;
		if (listM.size() > 0) {
			for (Member memberC : listM) {
				if (mm == memberC.getCardId()
						&& pwd.equals(memberC.getPassword())) {
					isCId = true;
					member = memberC;
					return isCId;
				}
			}
		}
		return isCId;
	}

	// 1、开卡
	public void OpenCard() {
		// 每次都初始化一条member对象
		member = new Member();
		do {
			member.setCardId(cardRandom());
		} while (isCardId(member.getCardId()));
		System.out.print("请输入注册姓名:");
		member.setName(sc.next());
		System.out.print("请输入注册密码:");
		String password1 = sc.next();
		do {
			if (password1.length() < 6) {
				System.out.print("会员密码不能小于6位,请重新输入注册密码:");
				password1 = sc.next();
			}
		} while (password1.length() < 6);
		member.setPassword(password1);
		member.setScore(100);
		Date data = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
		member.setRegistDate(sdf.format(data));
		listM.add(member);
		System.out.println("恭喜,开通会员卡成功!系统赠送您" + member.getScore()
				+ "积分,您的会员卡号是:" + member.getCardId());
	}

	// 2、修改密码
	public void changePassword() {
		System.out.print("请输入您的会员卡号:");
		int cardNum = sc.nextInt();
		System.out.print("请输入您的会员密码:");
		String cardPwd = sc.next();
		if (isMember(cardNum, cardPwd)) {
			System.out.print("请输入您的会员新密码:");
			member.setPassword(sc.next());
			System.out.println("新密码设置成功!");
		} else {
			System.out.println("您输入的会员卡号或密码错误,无法修改密码!");
		}
	}

	// 3、积分累计
	public void scoresAdd() {
		System.out.print("请输入您的会员卡号:");
		int cardNum = sc.nextInt();
		System.out.print("请输入您的会员密码:");
		String cardPwd = sc.next();
		if (isMember(cardNum, cardPwd)) {
			System.out.print("请输入本次消费金额(消费1元累计1分):");
			int scoreCurrent = sc.nextInt();
			member.setScore(scoreCurrent + member.getScore());
			System.out.println("积分累计成功!你重新累计的积分为:" + member.getScore() + "分");
		} else {
			System.out.println("您输入的会员卡号或密码错误,无法累计积分!");
		}
	}

	// 4、积分兑换
	public void scoresConver() {
		System.out.print("请输入您的会员卡号:");
		int cardNum = sc.nextInt();
		System.out.print("请输入您的会员密码:");
		String cardPwd = sc.next();
		if (isMember(cardNum, cardPwd)) {
			System.out.print("请输入您要兑换使用的积分(100积分抵用0.1元,不足100的积分不做抵用):");
			int scoreCurrent = sc.nextInt();
			if (scoreCurrent < member.getScore()&&scoreCurrent>100) {
				member.setScore(member.getScore() - scoreCurrent);
				System.out.println("您消费金额中使用会员积分抵扣了0."
						+ (scoreCurrent /100) + "元");
			}else if(scoreCurrent<100){
				System.out.println("不满足积分兑换规则,不足100的积分不做抵用!");
			}else {			
				System.out.println("积分不足!");
			}
		} else {
			System.out.println("您输入的会员卡号或密码错误,无法进行兑换!");
		}
	}

	// 5、剩余积分查询
	public void scoresRemain() {
		System.out.print("请输入您的会员卡号:");
		int cardNum = sc.nextInt();
		System.out.print("请输入您的会员密码:");
		String cardPwd = sc.next();
		if (isMember(cardNum, cardPwd)) {
			System.out.println("会员信息【会员卡号:" + member.getCardId() + ",姓名:"
					+ member.getName() + ",可用积分:" + member.getScore()
					+ ",开卡时间:" + member.getRegistDate() + "】");
		} else {
			System.out.println("您输入的会员卡号或密码错误,无法查询到信息!");
		}
	}

	// 6、查看所有会员信息
	public void LookMembers() {
		int i = 0;
		for (Member member : listM) {
			i++;
			System.out.println("会员" + i + "信息【会员卡号:" + member.getCardId()
					+ ",姓名:" + member.getName() + ",可用积分:" + member.getScore()
					+ ",开卡时间:" + member.getRegistDate() + "】");
		}
	}

	public void MainMethod() {
		boolean isIn = true;
		do {
			showFirst();
			System.out.print("请选择:");
			switch (sc.nextInt()) {
			case 1:
				OpenCard();
				break;
			case 2:
				changePassword();
				break;
			case 3:
				scoresAdd();
				break;
			case 4:
				scoresConver();
				break;
			case 5:
				scoresRemain();
				break;
			case 6:
				LookMembers();
				break;
			case 7:
				isIn = false;
				break;
			}
		} while (isIn);

	}

3、测试类:MemberTest

    会员管理类的调用

    代码:

public class MemberTest {

	public static void main(String[] args) {
		MemberMethod memberM=new MemberMethod();
		memberM.MainMethod();
	}

}

       码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识,请关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

你可能感兴趣的:(二,Java案例分享专栏,servlet,java,jvm)