一、【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:int
(3)密码 password:String
(4)积分 score:int
(5)开卡日期 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里找对应的功能来进行,加油吧!,发布的第一个系统项目,嘿嘿嘿!