✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
个人主页:乐趣国学的博客
个人信条:不迁怒,不贰过。小知识,大智慧。
当前专栏:Java案例分享专栏
✨特色专栏:国学周更-心性养成之路
本文内容:Java——超市会员管理系统(对象+集合)
更多内容点击
Java——迷你图书管理器(对象+集合)
项目需求
覆盖知识
开发思路
开发具体逻辑
1、会员类:Member
2、会员管理类:MemberMethod
3、测试类:MemberTest
为某超市开发一个超市会员管理系统,实现会员的管理,具体实现功能如下:
(1)积分累计
(2)积分兑换
(3)查询剩余积分
(4)查询所有会员信息
(5)修改密码
(6)开卡(注册会员)
程序基本概念、数据类型、流程控制、顺序、选择 、循环、跳转语句、变量、类、方法、集合、实用类等
(1)明确需求
(2)编码顺序
1)、数据初始化
2)、循环完成各种超市会员管理操作
3)、菜单切换
(3)测试
(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;
}
}
(1)所有会员(卡)--集合: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);
}
会员管理类的调用
代码:
public class MemberTest {
public static void main(String[] args) {
MemberMethod memberM=new MemberMethod();
memberM.MainMethod();
}
}
码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识,请关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。