//超市类
package 超市管理系统;
public class Market {
private String name;//
private String cardID;//
private String password;//
private int score;//
private String regisDate;//
public Market() {
}
public Market(String name, String cardID, String password, int score, String regisDate) {
this.name = name;
this.cardID = cardID;
this.password = password;
this.score = score;
this.regisDate = regisDate;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取
* @return cardID
*/
public String getCardID() {
return cardID;
}
/**
* 设置
* @param cardID
*/
public void setCardID(String cardID) {
this.cardID = cardID;
}
/**
* 获取
* @return password
*/
public String getPassword() {
return password;
}
/**
* 设置
* @param password
*/
public void setPassword(String password) {
this.password = password;
}
/**
* 获取
* @return score
*/
public int getScore() {
return score;
}
/**
* 设置
* @param score
*/
public void setScore(int score) {
this.score = score;
}
/**
* 获取
* @return regisDate
*/
public String getRegisDate() {
return regisDate;
}
/**
* 设置
* @param regisDate
*/
public void setRegisDate(String regisDate) {
this.regisDate = regisDate;
}
public String toString() {
return "Market{name = " + name + ", cardID = " + cardID + ", password = " + password + ", score = " + score + ", regisDate = " + regisDate + "}";
}
}
//业务需求
package 超市管理系统;
import java.text.SimpleDateFormat;
import java.util.*;
public class MemberDao {
public static final Scanner sc = new Scanner(System.in);
List<Market> markets = new ArrayList<>();
//开始菜单
public void meun(){
System.out.println("------------------------欢迎进入超市系统-----------------------");
System.out.println("1、积分累计 2、积分兑换 3、查询剩余积分 4、修改密码 5、开卡 6、退出");
System.out.println("===========================================================");
System.out.println("请选择:");
}
public void start(){
do {
meun();
String choose =sc.nextLine();
switch (choose){
case "1":
//积分累计
if (savaScore()){
System.out.println("积分累计成功");
}else {
System.out.println("对不你输入的会员卡号或密码有误!!!");
}
break;
case "2":
//积分兑换
if (minusScore()){
System.out.println("积分兑换成功");
}else {
System.out.println("对不起你输入的会员卡号或密码有误");
}
break;
case "3":
//查询剩余积分
showScoce();
break;
case "4":
//修改密码
UresScoce();
break;
case "5":
//开卡
register();
break;
case "6":
//退出
System.out.println("感谢你的光临!");
return;
default:
System.out.println("输入错误!请重新输入!");
}
}while (true);
}
//判断用户是否存在
public Market hasMarket(String id,String password){
for (Market market: markets){
if (market.getCardID().equals(id)&&market.getPassword().equals(password)){
return market;
}
}
return null;
}
/**
* 开卡
*/
private void register() {
Market m = new Market();
System.out.println("请输入你的姓名!!");
m.setName(sc.nextLine());
//会员卡号
String cardID=createID();
System.out.println("请输入注册密码!");
String password=sc.nextLine();
while (true){
if (password.matches("[A-Z]{1,5}\\w{5,15}")){
m.setPassword(password);
break;
}else {
System.out.println("密码不能小于六位或大于20为首字母要大写!!");
password=sc.nextLine();
}
}
//开卡送积分
m.setScore(100);
//开发日期
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
String rs =sdf.format(date);
m.setRegisDate(rs);
m.setCardID(cardID);
System.out.println("恭喜你开卡成功您的会员卡号是:"+m.getCardID()+"注册时间是"+m.getRegisDate());
markets.add(m);
}
/**
* 会员卡号生成八位
* @return
*/
private String createID() {
String rs ="";
Random r = new Random();
for (int i = 1; i <= 8; i++) {
rs+=r.nextInt(10);
}
if (bijiao(rs)){
return rs;
}else {
for (int j = 0; j <=8 ; j++) {
rs+=r.nextInt(10);
}
}
return rs;
}
/**
* 判断卡号是否存在
* @param rs
* @return
*/
private boolean bijiao(String rs) {
for (Market market :markets){
if (market.getCardID().equals(rs)){
return false;
}
}
return true;
}
/**
* 修改密码
*/
private void UresScoce() {
System.out.println("请输入你的会员卡号:");
String id = sc.nextLine();
System.out.println("请输入你的会员密码");
String password=sc.nextLine();
Market market =hasMarket(id,password);
if (market!=null){
while (true) {
System.out.println("请输入你要修改的会员密码:");
String password1 =sc.nextLine();
System.out.println("请再次输入你要修改的会员密码:");
String password2 =sc.nextLine();
if (password1.equals(password2)){
System.out.println("密码修改成功!");
market.setPassword(password1);
break;
}else {
System.out.println("两次密码不一致!请重新输入!");
}
}
}else {
System.out.println("会员不存在!!!!");
}
}
/**
* 查询
*/
private void showScoce() {
System.out.println("请输入你的会员卡号:");
String id = sc.nextLine();
System.out.println("请输入你的会员密码");
String password=sc.nextLine();
Market market =hasMarket(id,password);
if (market!=null){
System.out.println("会员卡号\t姓名\t剩余积分\t开卡日期");
System.out.println(market.getCardID()+"\t"+market.getName()+"\t"+market.getScore()+"\t"+market.getRegisDate());
}else {
System.out.println("会员不存在!!!!");
}
}
/**
* 积分兑换
* @return
*/
private boolean minusScore() {
String c="y";
System.out.println("请输入你的会员卡号:");
String id = sc.nextLine();
System.out.println("请输入你的会员密码");
String password=sc.nextLine();
Market market =hasMarket(id,password);
if (market!=null){
do {
System.out.println("请输入你要抵消多少积分:(1元积一分)");
String sorce = sc.nextLine();
Integer i = Integer.valueOf(sorce);
if (i<=market.getScore()){
market.setScore(market.getScore()-i);
System.out.println("您消费了"+i+"分"+"抵换了"+(i/100)+"元");
return true;
}else {
System.out.println("对不起你的积分不足!");
System.out.println("是否继续(y/n)");
c =sc.nextLine();
if (!c.equals("y")){
return false;
}
}
}while (c.equals("y"));
return true;
}else {
return false;
}
}
/**
* 积分累计
* @return
*/
private boolean savaScore() {
System.out.println("请输入你的会员卡号:");
String id = sc.nextLine();
System.out.println("请输入你的会员密码");
String password=sc.nextLine();
Market market =hasMarket(id,password);
if (market!=null){
System.out.println("请输入你此次消费的金额:(1元积一分)");
String sorce = sc.nextLine();
Integer i = Integer.valueOf(sorce);
market.setScore(market.getScore()+i);
return true;
}else {
return false;
}
}
}
//主函数
package 超市管理系统;
public class SystemMarket {
public static void main(String[] args) {
MemberDao m = new MemberDao();
m.start();
}
}
这是一个实现了超市会员管理功能的Java程序,包括开卡、积分累计、积分兑换、查询剩余积分、修改密码等操作。会员信息包含姓名、卡号、密码、积分和注册日期。程序通过Scanner获取用户输入,使用ArrayList存储会员数据,并通过自定义方法处理各种业务逻辑。
2933

被折叠的 条评论
为什么被折叠?



