超市管理

Posted bichen-01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了超市管理相关的知识,希望对你有一定的参考价值。

package com.myshoop;

//会员类  
public class Member 

    
    private String name;   //姓名
    private int num;    //会员卡号
    private String password;  //密码
    private int score;   //积分
    private String carDate;   //开卡日期
    
    
    
    
    
    public Member() 
        super();
    
    public Member(String name, int num, String password, int score, String carDate) 
        super();
        this.name = name;
        this.num = num;
        this.password = password;
        this.score = score;
        this.carDate = carDate;
    
    public String getName() 
        return name;
    
    public void setName(String name) 
        this.name = name;
    
    public int getNum() 
        return num;
    
    public void setNum(int num) 
        this.num = num;
    
    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 getCarDate() 
        return carDate;
    
    public void setCarDate(String carDate) 
        this.carDate = carDate;
    
    
    

 

 

package com.myshoop;

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 MemberDao 

    Member m = null;
    static Scanner sc = new Scanner(System.in);
    // 写一个集合用来存储会员用户的
    List<Member> memberList = new ArrayList<Member>();

    // 写方法
    // 开始菜单
    // 菜单
    public void menu() 

        System.out.println("***欢迎来到新嘉隆线上超市******");
        System.out.println("**********************");
        System.out.println("1、积分累计 2、积分兑换 3、查询剩余积分 4、修改密码 5、开卡 6、退出");
        System.out.println("请选择:");

    

    // 开始
    public void start() 

        do 
            menu();
            String choose = sc.next();
            switch (choose) 
            case "1":
                // 积分累计
                scoreAdd();
                if (scoreAdd() == true) 
                    System.out.println("积分累计成功!Q");
                 else if (scoreAdd() == false) 

                    System.out.println("积分累计失败!N");
                
                continue;
            case "2":
                // 积分兑换
                scoreChange();
                if (scoreChange() == true) 

                    System.out.println("积分兑换成功!");
                 else if (scoreChange() == false) 

                    System.out.println("积分兑换失败!");
                
                continue;
            case "3":
                // 查询剩余积分
                finaScore();
                continue;
            case "4":
                // 修改密码
                changePassword();
                continue;
            case "5":
                // 开卡
                openCar();
                continue;

            case "6":
                // 退出
                System.out.println("亲! 谢谢您的使用,欢迎下次再次使用!");
                break;

            default:
                System.out.println("亲! 找不到您要的选线 ,请重新输入?(^_-)");

                continue;
            
            break;
         while (true);

    

    // * 查询用户是否存在 如果存在返回用户 根据会员卡号和密码查找用户是否存在 不存在则为null
    public Member hasMember(int num, String password) 

        for (Member member : memberList) 

            if (member.getNum() == num && member.getPassword().equalsIgnoreCase(password)) 

                return member;
            
        
        return null;

    

    // 1、积分累计
    public boolean scoreAdd() 

        System.out.println("请输入卡号:");

        int num = sc.nextInt();

        System.out.println("请输入密码:");

        String password = sc.next();

        if (hasMember(num, password) != null) 

            System.out.println("请输入您的消费金额(0.1元相当于100积分)");
            int score = sc.nextInt();
            m.setScore(m.getScore() + score * 1000);
            System.out.println("恭喜用户获得积分:" + m.getScore());
         else 

            System.out.println("该用户不存在,请重新输入:");
        
        return true;

    

    // 2、积分兑换
    public boolean scoreChange() 
        System.out.println("请输入卡号:");

        int num = sc.nextInt();
        
        System.out.println("请输入密码:");
        
        String password = sc.next();
        
        if(hasMember(num,password)!=null) 
            
            System.out.println("请输入您要兑换的积分数(1积分相当于0.001元)");
            int score = sc.nextInt();
            if(score<=m.getScore()) 
            m.setScore(m.getScore()-score);
            System.out.println("恭喜用户兑换积分成功! 兑换的金额是::"+"\n"+score*0.001+"元");
            else 
                System.out.println("用户的积分不够!");
            
        else 
            
            
            System.out.println("该用户不存在(或用户名和密码错误),请重新输入:");
        
        return true;
        
    
    

    // 3、查询剩余积分
    public void finaScore() 
        System.out.println("请输入卡号:");

        int num = sc.nextInt();
        
        System.out.println("请输入密码:");
        
        String password = sc.next();
        
if(hasMember(num,password)!=null) 
            
            
        System.out.println(m.getScore());
        
        
        else 
            
            
            System.out.println("该用户不存在,请重新输入:");
        
    
    

    // 4、修改密码
    public void changePassword() 
        System.out.println("请输入卡号:");

        int num = sc.nextInt();
        
        System.out.println("请输入密码:");
        
        String password = sc.next();
        
        if(hasMember(num,password)!=null) 
            
            
            System.out.println("请输入你要修改的密码:");
            String newPassword = sc.next();
            m.setPassword(newPassword);
            System.out.println("修改密码成功!");
            else 
                
                
                System.out.println("该用户不存在,请重新输入:");
            
        
    

    // 5、开卡 用户要先开卡才能使用
    // 随机生成卡号
    public int creatNum() 

        Random random = new Random();
        int num = random.nextInt(100000000);
        // 确保卡号的唯一性 如果集合中存在 那么就再随机生成一个
        if (m.getNum() == num) 
            num = random.nextInt(100000000);

        
        return num;
    

    public void openCar() 
        m = new Member();
        System.out.println("请输入用户名:");
        m.setName(sc.next());
        // 随机生成卡号 写一个方法
        int carNum = creatNum();
        m.setNum(carNum);
        // 确保用户名和密码正确
        // 输入密码 密码的长度不能小于6
        System.out.print("请输入注册密码:  ");
        String password;
        boolean boo = true;
        do 
            password = sc.next();
            if (password.length() < 6) 
                System.out.print("输入的密码长度小于6,亲! 请重新输入:  ");
                boo = false;
             else 
                boo = true;
                m.setPassword(password);
            

         while (!boo);

        // 注册成功! 赠送100积分
        m.setScore(100);
        // 开卡日期:
        Date date = new Date();

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

        String carDate = simpleDateFormat.format(date);
        m.setCarDate(carDate);

        // 提醒用户操作成功! 卡号是多少
        System.out.println("亲! 您的会员开通成功! 您的卡号是:" + carNum);

        memberList.add(m);
    

 

 

 

package com.myshoop;

public class Test 

    //测试类
    public static void main(String[] args) 
        
        MemberDao dao = new MemberDao();
        
        dao.start();
        
    

 

以上是关于超市管理的主要内容,如果未能解决你的问题,请参考以下文章

基于Java的超市管理系统

文献综述十一:基于商品的商业超市管理系统的改进

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

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

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

超市库存管理系统