Java超市订单管理系统

《超市订单管理系统》

功能要求

开发超市订单管理系统功能,可实现会员积分累计、积分兑换,查询剩余积分,修改密码以及开卡等功能。

具体功能要求如下:

(1)显示系统主菜单
如图1所示。
在这里插入图片描述
(2)开卡
输入注册姓名
输入注册密码
自动生成卡号,使用随机数
在这里插入图片描述

(3)积分累计
输入卡号
输入密码
输入消费金额,一比一换算

在这里插入图片描述

(4)积分兑换

输入卡号,密码完成积分兑换
在这里插入图片描述

(5)查看剩余积分
在这里插入图片描述

输入卡号与积分,显示当前卡号信息

(6)修改密码
在这里插入图片描述
输入卡号,当卡号不存在提示,重新输入直到卡号正确输入密码正确后,方可修改密码

(7)退出系统
直接退出,并且提示谢谢使用

要求与实现步骤

  1. 不使用数据库,使用对象和集合存储数据
  2. 定义实体类,Member类
  3. 定义定义MemberManage类,业务类,完成项目菜单及整体流程,调用工具类的各种功能完成业务。
  4. 定义MemberUtil类,工具类,完成各种功能

代码:

代码打包下载

Member类:

public class Member
{
	//姓名
    private String name;
    //卡号
    private int cardId;
    //密码
    private String password;
    //积分
    private int score;
    //注册时间
    private String registDate;

    public Member()
    {
    }
	//有参构造器
    public Member(String name, int cardId, String password, int score)
    {
        this.name = name;
        this.cardId = cardId;
        this.password = password;
        this.score = score;
    }
	//有参构造器
    public Member(String name, int cardId, String password, int score, String registDate)
    {
        this.name = name;
        this.cardId = cardId;
        this.password = password;
        this.score = score;
        this.registDate = registDate;
    }
    //get&set方法
    public String getRegistDate() {
        return this.registDate;
    }
    public void setRegistDate(String registDate) {
        this.registDate = registDate;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getCardId() {
        return this.cardId;
    }
    public void setCardId(int cardId) {
        this.cardId = cardId;
    }
    public String getPassword() {
        return this.password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public int getScore() {
        return this.score;
    }
    public void setScore(int score) {
        this.score = score;
    }
}

MemberManager类:

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class MemberManage
{
	//键盘监听器
    Scanner input = new Scanner(System.in);
    //集合
    List<Member> memberList = new ArrayList();
	//菜单
    public void menu() {
        System.out.println("*************************欢迎进入超市会员管理系统*************************");
        System.out.println("1.积分累计       2.积分兑换       3.查询剩余积分       4.修改密码       5.开卡       6.退出");
        System.out.println("*******************************************************************");
        System.out.print("请选择:");
    }
	//启动
    public void start() {
        while (true) {
            menu();//调用菜单
            int choose = this.input.nextInt();//接收参数
            switch (choose) {
                case 1:
                    if (saveScore()) {
                        System.out.println("积分累计成功!");
                        continue;
                    }System.out.println("积分累计失败!");

                    break;
                case 2:
                    if (minusScore()) {
                        System.out.println("积分兑换成功!");
                        continue;
                    }System.out.println("积分兑换失败!");

                    break;
                case 3:
                    showScore();
                    break;
                case 4:
                    if (changePwd()) {
                        System.out.println("密码修改成功!");
                        continue;
                    }System.out.println("密码修改失败!");

                    break;
                case 5:
                    register();
                    break;
                case 6:
                    System.out.println("感谢您的使用,欢迎下次使用!");
                    break;
            }
            System.out.println("您的操作有误,请重新选择:");
        }
    }
	//遍历账号&密码进行验证
    public Member hasMember(Member member)
    {
    	//如果member的密码非空
        if (member.getPassword() != null) {
        	//遍历集合
            for (int i = 0; i < this.memberList.size(); i++) {
            	//如果账号&密码都正确,返回当前集合索引对应的对象地址值
                if ((((Member)this.memberList.get(i)).getCardId() == member.getCardId()) && (((Member)this.memberList.get(i)).getPassword().equalsIgnoreCase(member.getPassword())))
                    return (Member)this.memberList.get(i);
            }
        }
        else {
        	//遍历集合
            for (int i = 0; i < this.memberList.size(); i++) {
            	//如果账号正确,返回当前集合索引对应的对象地址值
                if (((Member)this.memberList.get(i)).getCardId() == member.getCardId()) {
                    return (Member)this.memberList.get(i);
                }
            }
        }
        return null;
    }
	//更改密码
    public boolean changePwd()
    {
    	//创建Member对象
        Member member = new Member();
        System.out.print("请输入您的会员卡号:");
        member.setCardId(this.input.nextInt());
        System.out.print("请输入您的会员卡密码:");
        member.setPassword(this.input.next());
        //如果member对象非空
        if ((member = hasMember(member)) != null) {
            System.out.print("请输入新的会员密码:");
			//标志(默认true)
            boolean flag = true;
            do {
            	//接收密码
                String pwd = this.input.next();
                //如果字符小于6位
                if (pwd.length() < 6) {
                    System.out.print("会员密码不能小于6位,请重新输入会员密码:");
                    flag = false;
                } else {
                    flag = true;
                    member.setPassword(pwd);
                }
            }
            while (!flag);//!flag取反标志
            return true;
        }
        System.out.println("您输入的会员卡号或密码错误,无法修改密码!");

        return false;
    }
	//积分累计
    public boolean saveScore()
    {
    	//创建member对象
        Member member = new Member();
        System.out.print("请输入您的会员卡号:");
        member.setCardId(this.input.nextInt());
        System.out.print("请输入您的会员卡密码:");
        member.setPassword(this.input.next());
        if ((member = hasMember(member)) != null) {
            System.out.print("请输入您此次消费金额(消费1元累计1积分):");
            int score = this.input.nextInt();
            member.setScore(member.getScore() + score);
            return true;
        }
        System.out.println("您输入的会员卡号或密码错误,无法积累积分!");

        return false;
    }
	//积分兑换
    public boolean minusScore()
    {
        Member member = new Member();
        System.out.print("请输入您的会员卡号:");
        member.setCardId(this.input.nextInt());
        System.out.print("请输入您的会员卡密码:");
        member.setPassword(this.input.next());
        if ((member = hasMember(member)) != null) {
            System.out.print("请输入您需要兑换使用的积分(100积分抵用0.1元,不足100的积分不做抵用):");
            int score = this.input.nextInt();
            if (score <= member.getScore()) {
                member.setScore(member.getScore() - score);
                System.out.println("您的消费金额中使用会员积分抵消" + score / 100 * 0.1D + "元");
                return true;
            }
            System.out.println("抱歉,您的积分不够,无法抵用消费金额.");
        }
        else {
            System.out.println("您输入的会员卡号或密码错误,无法完成积分兑换!");
        }
        return false;
    }
	//生成随机卡号
    public int createId()
    {
    	//创建标志
        boolean flag = true;
        //生成随机数
        Random random = new Random();
        int id = random.nextInt(99999999);
        //遍历卡号
        for (Member member : this.memberList) {
        	//如果生成的卡号存在重复就重新生成随机卡号
            if (member.getCardId() == id) {
                id = random.nextInt(99999999);
            }
        }
        return id;
    }
	//开卡
    public void register()
    {
        Member member = new Member();
        System.out.print("请输入注册姓名:");
        member.setName(this.input.next());

        member.setCardId(createId());
        System.out.print("请输入注册密码:");
		//标志
        boolean flag = true;
        do {
            String pwd = this.input.next();
            if (pwd.length() < 6) {
                System.out.print("会员密码不能小于6位,请重新输入注册密码:");
                flag = false;
            } else {
                flag = true;
                member.setPassword(pwd);
            }
        }
        while (!flag);
        member.setScore(100);
		//获取当前日期
        Date date = new Date();
        String registDate = new SimpleDateFormat("yyyy-MM-dd").format(date);
        member.setRegistDate(registDate);

        this.memberList.add(member);
        System.out.println("恭喜,开通会员卡成功,系统赠送您100积分!您的会员卡号为:" + member.getCardId());
    }
	//查询积分
    public void showScore()
    {
    	//创建member类
        Member member = new Member();
        System.out.print("请输入您的会员卡号:");
        member.setCardId(this.input.nextInt());
        System.out.print("请输入您的会员卡密码:");
        member.setPassword(this.input.next());
        //如果member类非空
        if ((member = hasMember(member)) != null) {
            System.out.println("姓名\t会员卡号\t剩余积分\t开卡日期");
            System.out.println(member.getName() + "\t\t" + member.getCardId() + "\t\t" + member.getScore() + "\t\t" + member.getRegistDate());
        } else {
            System.out.println("您输入的会员卡号或密码错误,无法查询积分!");
        }
    }
}

MemberUtil类:

public class MemberUtil
{
    public static void main(String[] args) {
    	//实例化MemberManage
        MemberManage memberManage=new MemberManage();
        //调用start方法启动
        memberManage.start();
    }
}
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花伤情犹在

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值