超市会员卡管理系统

用Map 集合存储会员卡

package shopsystem;

public class Card {
    private String name;// 姓名
    private String cardNum;// 卡号
    private String code;// 密码
    private String date;// 开卡日期
    private int score;// 积分

    @Override
    public String toString() {
        return "开卡人姓名:" + this.name + ", 卡号:" + this.cardNum + ", 剩余积分:" + this.score + ", 开卡日期:" + this.date;
    }

    public Card() {
    }

    public Card(String name, String cardNum, String code, String date, int score) {
        this.name = name;
        this.cardNum = cardNum;
        this.code = code;
        this.date = date;
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCardNum() {
        return cardNum;
    }

    public void setCardNum(String cardNum) {
        this.cardNum = cardNum;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }

}

Card

package shopsystem;

import java.text.SimpleDateFormat;
import java.util.*;

public class Action {
    static Scanner input = new Scanner(System.in);

    // 生成随机卡号
    public static String cardNum() {
        StringBuffer buf = new StringBuffer();

        for (int i = 0; i < 10; ++i) {
            Random r = new Random();
            buf.append(r.nextInt(9));
        }

        return buf.toString();
    }

    // 开卡
    public static void register() {
        System.out.println("请输入注册人姓名:");
        String name = input.next();
        System.out.println("请输入注册密码:");
        String code;
        for (code = input.next(); code.length() < 6; code = input.next()) {
            System.out.println("密码设置的位置不能小于6位,请重新输入:");
        }

        Date date = new Date();
        SimpleDateFormat sim = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        String riqi = sim.format(date);
        String cardNum;
        do {
            cardNum = cardNum();
        } while (ShopSys.map.containsKey(cardNum));

        System.out.println("开卡成功,送您100积分!您的会员卡号是:" + cardNum);
        ShopSys.map.put(cardNum, new Card(name, cardNum, code, riqi, 100));
    }

    // 累计积分
    public static void addScore() {
        System.out.println("请输入卡号:");
        String cardNum = input.next();
        System.out.println("请输入密码:");
        String code = input.next();

        if (ShopSys.map.containsKey(cardNum)) {
            boolean boo = ShopSys.map.get(cardNum).getCode().equals(code);
            if (boo) {
                System.out.println("请输入您此次消费金额(每消费1元加1积分):");
                int score = input.nextInt();
                ShopSys.map.get(cardNum).setScore(ShopSys.map.get(cardNum).getScore() + score);
                System.out.println("积分累计成功,当前积分为:" + ShopSys.map.get(cardNum).getScore());
            } else {
                System.out.println("您输入的密码错误,积分累计失败!!");
            }

        } else {
            System.out.println("对不起,没有找到该卡号!!");
        }
    }

    // 查询会员卡信息
    public static void inquire() {
        System.out.println("请输入您的会员卡号:");
        String cardNum = input.next();
        System.out.println("请输入密码:");
        String code = input.next();

        if (ShopSys.map.containsKey(cardNum)) {
            boolean boo = ShopSys.map.get(cardNum).getCode().equals(code);
            if (boo) {
                System.out.println("您查询的会员卡信息如下:\n" + ShopSys.map.get(cardNum));
            } else {
                System.out.println("您输入的密码错误,查询失败!!");
            }

        } else {
            System.out.println("对不起,没有找到该卡号!!");
        }

    }

    // 修改密码
    public static void alterCode() {
        System.out.println("请输入会员卡号:");
        String cardNum = input.next();
        System.out.println("请输入密码:");
        String code = input.next();

        if (ShopSys.map.containsKey(cardNum)) {
            boolean boo = ShopSys.map.get(cardNum).getCode().equals(code);
            if (boo) {
                String newCode;
                System.out.println("请输入新密码:");
                for (newCode = input.next(); newCode.length() < 6; newCode = input.next()) {
                    System.out.println("密码设置的位置不能小于6位,请重新输入:");
                }
                ShopSys.map.get(cardNum).setCode(newCode);
                System.out.println("您的会员卡密码修改成功!!!");
            } else {
                System.out.println("您输入的密码错误,修改密码失败!!");
            }
        } else {
            System.out.println("对不起,没有找到该卡号!!");
        }
    }

    // 积分兑换
    public static void conversion() {
        System.out.println("请输入会员卡号:");
        String cardNum = input.next();
        System.out.println("请输入密码:");
        String code = input.next();
        if (ShopSys.map.containsKey(cardNum)) {
            boolean boo = ShopSys.map.get(cardNum).getCode().equals(code);
            if (boo) {
                System.out.println("请输入您需要兑换使用的积分(每100积分抵用0.1元,不足100积分不做抵用):");
                int num = input.nextInt();
                if (num < 100) {
                    System.out.println("兑换积分不能小于100!");
                } else {
                    if (ShopSys.map.get(cardNum).getScore() - num > 0) {
                        ShopSys.map.get(cardNum).setScore(ShopSys.map.get(cardNum).getScore() - num / 100 * 100);
                        System.out.println("积分兑换成功,您已用会员卡积分抵用了" + (double) (num / 100) * 1.0D + "元!");
                        return;
                    } else {
                        System.out.println("对不起,你当前积分不足!!!");
                    }
                }
            } else {
                System.out.println("您输入的密码错误,积分兑换失败!!");
            }
        } else {
            System.out.println("对不起,没有找到该卡号!!");
        }
    }

}

系统相应的功能

package shopsystem;

import java.util.*;

public class ShopSys {
    static Map<String,Card> map = new HashMap<String, Card>();
    static Scanner input = new Scanner(System.in);

    public static void operation() {
        System.out.println("******************************XX超市会员管理系统****************************************");
        String select = "";
        start1: do {
            System.out.println("1、积分累计\n2、积分兑换\n3、查询积分\n4、修改密码\n5、开卡\n6、退出");
            System.out.println("请选择:");
            String str = input.next();
            switch (str) {
            case "1":
                Action.addScore();
                break;
            case "2":
                Action.conversion();
                break;
            case "3":
                Action.inquire();
                break;
            case "4":
                Action.alterCode();
                break;
            case "5":
                Action.register();
                break;
            case "6":
                System.out.println("正在退出系统.......");
                break start1;
            }
            System.out.println("输入0返回,输入其它信息退出系统,请输入:");
            select = input.next();
        } while (select.equals("0"));

        System.out.println("程序退出!");
    }
    //测试
    public static void main(String[] args) {
        operation();
    }
}

超市管理系统

实际效果

开卡

输入错误卡号或密码的效果

累计积分

查询积分(有点小bug重新运行后继续)

积分兑换

修改密码

退出

原文地址:https://www.cnblogs.com/zeng1997/p/11254543.html

时间: 2024-11-06 03:39:51

超市会员卡管理系统的相关文章

会员卡管理系统技术解析(十八)Timer定时监听

会员卡管理系统技术解析(十八)Timer定时监听 在web应用中,有时候客户需要一些定时程序,不需要客户自己去操作,而是由应用程序自行触发(代理)执行某些操作.这个时候监听与定时器的配合使用就基本可以实现这个需求了.网上很多代码并不完整,水平未到,看得太吃力了.下面以系统每天00:00:00进行的当日最大单据数维护进行实例解析. 首先,建立相关的包河类,如下图: 图1 然后,在"web.xml"中对定时器和监听类注册,代码如下: <servlet> <servlet-

超市账单管理系统之-------登录

报500的错大部分都是springmvc的jar包没有导对,最好用3点几的版本 ....在项目中要把包导对 pom.xml 所需要的jar包 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM

家康粮油蔬菜水果超市--用户管理系统

from tkinter import * from tkinter import ttk import time from tkinter import messagebox win = Tk() win.title('家康粮油蔬菜水果超市--用户管理系统') win.geometry('800x600+400+200') win.resizable(width=False,height=False) #win.attributes('-topmost',-1) #会员查询 group1 =

文献综述十三:超市商品管理系统的设计与实现

一.基本信息 标题:超市商品管理系统的设计与实现 时间:2016 出版源:古林大学 文件分类:对商品管理系统的研究 二.研究背景 采用计算机和通讯技术来对超市的商品进行科学规范的管理和经营,用来满足超市日常所需,节约人力物力. 三.具体内容 论文的内容分为6个部分.分别是绪论.超市商品管理系统的开发方法和工具.系统分析.系统概要设计.系统详 细设计以及系统测试. 绪论:论述了超市商品管理系统的开发背景.开发意义以及国内外发展现状. 超市商品管理系统的开发方法和工具:采用 C#编程语言作为前端开发

大型连锁超市库存管理系统 便利店收银系统软件

商拓软件大型连锁超市库存管理系统,便利店收银系统软件的使用方式: 1.客户将商品对准商品扫描器,录入产品价格 2.多个同类商品,可以直接扫描获取也可以点击屏幕加号添加 3.点击"确认付款" 4.选择付款方式:支付宝.微信等扫描支付 商拓大型连锁超市库存管理系统特征: 一.流程简单化 从界面到POS.收发货.增值业务.日常费用等,均按业务操作习惯进行设计,所有操作集中同一界面,点击或触摸使用,便捷直观. 一体化门店,门店无后台软件,操作流程简单化,无须培训便可上岗! 二.零维护 采用大集

会员卡管理系统从哪些方面解决门店会员营销困扰?

零售行业的发展,推动了一波新的创业潮,越来越多的年轻人在积累了一定资本后,开始考虑到创业开店,从而实现财富自由.传统零售向新零售的转型升级,带动了经营模式的改变,VIP 经济逐渐成为当下市场热点,越来越多的商家开始开展会员营销,留存优质客户,以此来应对人口红利消失,获客成本过高的客源困扰.因此,引入会员制,针对门店客户消费特点开展会员营销,对于门店经营已是必然,且将会越来越普遍.重要. 会员营销的必要性说了这么多,究竟该如何做好会员营销?对于一些中小门店来说,营销经验的不足以及营销工具的非智能化

项目一:ssm超市订单管理系统

声明:项目参考于课程教材,学习使用,仅在此记录 项目介绍 ssm超市订单管理系统,功能模块有订单管理,供应商管理,用户管理,密码修改,退出系统,管理模块中包括基本的增删改查 集成工具使用idea,基于maven构建的java web项目,项目分模块构建,分层架构,持久层用的是mybatis(接口+mapper xml),框架使用spring+spring mvc,前端页面使用jsp,前端技术css+js+jquery 项目截图 我的分享地址: 原文地址:https://www.cnblogs.c

C++超市商品管理系统

一.C++语言程序设计------<超市商品管理系统设计>问题分析 这个超市商品管理系统的主要功能是为超市的管理层提供货物查询及银行转帐货物管理服务,方便超市管理层工作,提高管理层的服务质量和服务效率. 超市商品的信息必须经由各部门及人事初及时汇总到财务处,管理处结合提供的的有关超市商品的信息,并把信息及时反馈给后勤所在部门方便补货,最后管理和后勤部可以方便.快捷的管理超市的货物. 超市的服务器的管理员享有对入库货物的管理与修改. 系统实现后,提高超市的服务效率.降低分发货物的错误发生率,减少

基于Java的超市账单管理系统

获取项目源文件,技术交流与指导联系Q:1225467431 基于Java的超市账单管理系统 学生:高 陈  指导老师:周 琼 (安徽农业大学 经济技术学院 合肥 230036)   摘要:随着科学的进步,网络变得越来越重要了.很多的公司也应用了相应的软件,来加快自身的发展.由于超市行业的不断壮大,也需要一套软件来相应的软件来管理.在这种情下超市账单管理系统也就产生了.在超市账单管理系统中主要是对账单.供应商.用户的简单管理.在超市管理系统中主要实现了增加.删除.修改.查询信息的功能.在该系统里由