【1024-1】使用javaSE基础(实用类、循环,对象封装的知识)写一个超市会员管理系统?

一、【1024-1】使用javaSE基础(实用类、循环,对象封装的知识)写一个超市会员管理系统?

系统项目亲测可执行,并附有图片展示参考!!!
##1.主函数(Test测试类)引入库

public class Test {
public static void main(String[] args) {
	Demo02 dx=new Demo02();
	dx.start();
}

##2.会员管理类Administrator引入库

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
//会员管理类Administrator
public class Administrator {
	Scanner input = new Scanner(System.in);
	List<Member> al = new ArrayList<>();
	// 开始菜单
	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 (duiHuanscore())
					System.out.println("积分兑换成功!");
				else
					System.out.println("积分兑换失败!");
				continue;
			}
			case 3:
			// 查询剩余积分
			{
				if (showScore())
					System.out.println("查询剩余积分 成功!");
				else
					System.out.println("查询剩余积分 失败!");
				continue;
			}
			case 4:
			// 修改密码
			{
				if (modScore())
					System.out.println("修改密码 成功!");
				else
					System.out.println("修改密码 失败!");
				continue;
			}
			case 5:
			// 开卡
			{
				if (kaiKa())
					System.out.println("积分兑换成功!");
				else
					System.out.println("积分兑换失败!");
				continue;
			}
			case 6:
			// 退出
			{
				System.out.println("感谢你的使用,欢迎下次使用1");
				break;
			}
			default: {
				System.out.println("操作有误,请从新选择!");
				continue;
			}
			}
			break;
		} while (true);
	}
	// 积分累计
	public boolean saveScore() {
		System.out.println("请输入一个会员卡号:");
		int id = input.nextInt();
		System.out.println("请输入会员卡密码:");
		String pwd = input.next();
		Member member = yanZheng(id, pwd);
		if (member != null) {
			System.out.println("原来积分为:" + member.getScore());
			System.out.println("请输入你本次消费金额:");
			double score = Math.ceil(input.nextDouble() + member.getScore());
			member.setScore((int) score);
			System.out.println("目前累计积分为:" + member.getScore());
			return true;
		} else
			System.out.println("用户不存在,嘿嘿嘿");
		return false;
	}
	// 积分兑换
	public boolean duiHuanscore() {
		System.out.println("请输入一个会员卡号:");
		int id = input.nextInt();
		System.out.println("请输入会员卡密码:");
		String pwd = input.next();
		Member member = yanZheng(id, pwd);
		if (member != null) {
			System.out.println("你目前还有多少积分:" + member.getScore());
			System.out.println("请输入想兑换多少积分");
			int duiHuan = input.nextInt();
			do {
				if (duiHuan <= member.getScore()) {
					System.out.println("你此次抵扣:"
							+ ( duiHuan) * 0.01 + "元");
					member.setScore(member.getScore() - duiHuan);
					return true;
				} else
					System.out.println("兑换积分部不足,请重新输入");
			} while (true);

		} else
			System.out.println("用户不存在,嘿嘿嘿");
		return false;
	}
	// 查询剩余积分
	public boolean showScore() {
		System.out.println("请输入一个会员卡号:");
		int id = input.nextInt();
		System.out.println("请输入会员卡密码:");
		String pwd = input.next();
		Member member = yanZheng(id, pwd);
		if (member != null) {
			System.out.println("你目前剩余积分为:" + member.getScore());
			member.toString();
			return true;
		} else
			System.out.println("用户不存在,嘿嘿嘿");
		return false;
	}
	// 修改密码
	public boolean modScore() {
		System.out.println("请输入一个会员卡号:");
		int id = input.nextInt();
		System.out.println("请输入会员卡密码:");
		String pwd = input.next();
		Member member = yanZheng(id, pwd);
		if (member != null) {
			System.out.println("请输入你想修改的密码");
			member.setPassword(panDuan());
			return true;
		} else
			System.out.println("用户不存在,嘿嘿嘿");
		return false;
	}
	// 验证是否存在
	public Member yanZheng(int id, String pwd) {
		for (Member member : al) {
			if (member.getCardId() == id && pwd.equals(member.getPassword()))
				return member;
		}
		System.out.println("用户不存在或输入有误,请重新输入");
		return null;
	}
	// 开卡
	public boolean kaiKa() {
		Member member = new Member();
		System.out.println("请输入注册的姓名:");
		member.setName(input.next());
		System.out.println("请输入注册的密码:");
		member.setPassword(panDuan());
		System.out.println("系统自动生成的卡号为:");
		member.setCardId(random());
		System.out.println(member.getCardId());
		System.out.println("系统默认积分:");
		member.setScore(100);
		System.out.println(member.getScore());
		System.out.println("开卡日期:");
		member.setRegistDate(kaiKadate());
		System.out.println(member.getRegistDate());
		System.out.println("恭喜注册成功,会员卡信息为:" + member.toString());
		al.add(member);
		return true;
	}
	// random随机生成随机数
	public int random() {
		Random shuiJishu = new Random();
		int shuiJishu1 = shuiJishu.nextInt(9999999);
		for (Member member : al) {
			if (member.getCardId() == shuiJishu1) {
				shuiJishu1 = shuiJishu.nextInt(9999999);
			}
		}
		return shuiJishu1;
	}
	// 判断密码对不对
	public String panDuan() {
		String mima = input.next();
		do {
			if (mima.length() >= 6)
				return mima;
			else {
				System.out.println("密码过短,请重新输入");
				mima = input.next();
				continue;
			}
		} while (true);

	}
	// 开卡日期
	public String kaiKadate() {

		Date date = new Date();
		SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd--ss");
		String sdate = formater.format(date);
		return sdate;
	}
}

##3.会员类Member引入库

package com.beidaqingxiao.heihei1;
//Member会员类Member
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;
}
@Override
public String toString() {
	return "["+"姓名:" + name + ", 卡号:" + cardId + ", 密码:"
			+ password + ", 分数:" + score + ", 登录时间:" + registDate
			+ "]";
}
}
}

二、 设计要求与思路:

思路步骤如下(示例):

1、会员类Member
	(1)姓名		name:String
	(2)卡号		cardId:int3)密码		password:String
	(4)积分		score:int5)开卡日期	registDate:String
	
2、会员管理类
	(1)所有会员(卡)--集合:List  ArrayList<Member>2)程序整体流程搭建的方法
			循环
			分支
	(3)验证会员是否存在的方法
			集合的遍历,集合元素的查找
	(4)系统随机生成会员卡号的方法
			Random类
	
	A:开卡
		输入会员信息(会员卡密码的验证--String类相应方法-循环)
			姓名、密码
			卡号:系统随机生成会员卡号的方法
			积分:系统默认100,兑换1:100;
			开卡日期:日期时间操作(Date类、SimpleDateFormat类)
		将注册成功的会员添加进集合(ArrayList add())			
	B:修改密码:
		验证会员是否存在
  		会员对象密码属性重新赋值
	C:积分累计:
		验证会员是否存在
		会员对象积分属性重新赋值
	D:积分兑换:
		验证会员是否存在
		会员积分兑换过程(根据相应规则)
	E:查询剩余积分:
		验证会员是否存在
		集合查找相应会员,显示信息(遍历)
	F:退出

3、测试类
	会员管理类的调用
有问题可底下下评论会及时回复!!!

二、 总结:

这个程序主要是实用类的使用比较生疏,其他的还要,要多练习,例如:日期时间操作(Date类、SimpleDateFormat类)等等还需要去API里找对应的功能来进行,加油吧!,发布的第一个系统项目,嘿嘿嘿!


三、 效果图:

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值