首頁 > 軟體

Java實現超市會員管理系統

2022-03-18 19:00:33

本文範例為大家分享了Java實現超市會員管理系統的具體程式碼,供大家參考,具體內容如下

要求:藉助集合框架及實用類實現該系統

1、積分累計
2、積分兌換
3、查詢剩餘積分
4、修改密碼
5、開卡
6、退出

執行結果:

開卡、積分累計部分:

兌換積分、查詢剩餘積分部分:

修改密碼、使用新密碼查詢部分:

退出部分:

實現思路:

1、建立會員使用者類:

  • 使用者名稱、密碼、會員卡號(隨機生成)、註冊日期、積分

2、建立超市業務類:

  • 選單展示
  • 業務選擇 積分存取方法、積分兌換方法、積分查詢方法、修改密碼方法、開卡方法
  • 判斷集合中是否存在查詢元素方法(由於其他方法中均出現此方法中的程式碼,即將其提取出來另列為一個方法)

3、測試類

原始碼:

會員使用者類

package cn.zyq.Aug0203;

/**
 * 會員使用者類
 * @author admin
 *
 */
public class Member {
    //姓名
    private String name;
    //密碼
    private String pwd;
    //會員卡號
    private String id;
    //註冊日期
    private String registData;
    //積分
    private int score;
    
    public Member() {
    }
    
    public Member(String name, String pwd, String id, String registData, int score) {
        super();
        this.name = name;
        this.pwd = pwd;
        this.id = id;
        this.registData = registData;
        this.score = score;
    }

    public String getName() {
        return name;
    }

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

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getRegistData() {
        return registData;
    }

    public void setRegistData(String registData) {
        this.registData = registData;
    }

    public int getScore() {
        return score;
    }

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

超市業務類

package cn.zyq.Aug0203;

/**
 * 超市業務類
 */
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 Business {
    Scanner sc = new Scanner(System.in);
    List<Member> list = new ArrayList<Member>();
    
    /**
     * 使用者可選擇選單
     */
    public void init() {
        System.out.println("n--------------------歡迎進入會員管理系統--------------------n");
        System.out.println("1.積分累計      2.積分兌換      3.查詢剩餘積分      4.修改密碼      5.開卡            6.退出");
        System.out.println("n-------------------------------------------------------");
        System.out.println();
        System.out.print("請選擇您要進行的操作:");
        choose(sc.nextInt());
    }
    
    /**
     * 使用者選擇的業務
     *  @param num
     */
    public void choose(int num) {
        switch (num) {
        case 1:
            saveScore();
            break;
        case 2:
            useScore();
            break;
        case 3:
            search();
            break;
        case 4:
            updatePwd();
            break;
        case 5:
            regist();
            break;
        case 6:
            System.out.println("歡迎下次光臨!");
            System.exit(0);
            break;
        }
        init();
    }
    
    /**
     * 積分積累
     */
    public void saveScore() {
        
        Member m = check();
        if(m!=null) {
            System.out.print("請輸入您消費的金額(一元一積分):");
            int score = sc.nextInt();
            m.setScore(m.getScore()+score);
            System.out.println("積分增加成功,目前您的積分為:"+m.getScore());
            System.out.println("積分累計成功!");
        }else {
            System.out.println("積分累計失敗,您輸入的資訊有誤!");
        }
    }

    
    /**
     * 積分兌換
     */
    public void useScore() {
        
        Member m = check();
        if(m!=null) {
            System.out.print("請輸入您需要兌換使用的積分(100積分抵用1元,不足100的積分不做抵用):");
            int score = sc.nextInt();
            if(m.getScore()>=100 && score>=100 && score<=m.getScore()) {
                m.setScore(m.getScore()-score);
                System.out.println("您本次消費抵用金額為:"+score/100);
                System.out.println("兌換積分成功!");
            }else {
                System.out.println("兌換積分失敗,賬戶積分不足或需要兌換積分大於剩餘積分!");
            }
        }else {
            System.out.println("賬號資訊不匹配,無法兌換積分!");
        }
    }
    
    /**
     * 查詢剩餘積分
     */
    public void search() {
        
        Member m = check();
        if(m!=null) {
            System.out.println("姓名t會員卡號t剩餘積分t開卡日期");
            System.out.println(m.getName()+"t"+m.getId()+"t"+m.getScore()+"t"+m.getRegistData());
        }else {
            System.out.println("輸入的賬號資訊不匹配!");
        }
    }
    
    /**
     * 修改密碼
     */
    public void updatePwd() {
        
        Member m = check();
        if(m!=null) {
            System.out.print("請輸入您的新密碼:");
            String pwd = sc.next();
            
            //重新設定密碼
            m.setPwd(pwd);
            System.out.println("密碼修改成功!");
        }else {
            System.out.println("輸入的賬號資訊不匹配,無法進行此業務!");
        }
    }
    
    
    /**
     * 積分兌換
     */
    public void regist() {
        System.out.print("歡迎使用本超市會員卡,請輸入您的姓名:");
        String name = sc.next();
        System.out.print("請設定您的密碼(要求密碼長度大於6):");
        String pwd = sc.next();
        //判斷密碼是否合法
        boolean flag = false;
        while(!flag) {
            if(pwd.length()<6) {
                flag = false;
                System.out.print("密碼長度小於6位,請重新輸入密碼:");
                pwd = sc.next();
            }
            else {
                flag = true;
            }
        }
        
        //生成一個八位數的隨機會員卡號
        Random random = new Random();
        int rand = random.nextInt(999999);
        String id = String.valueOf(rand);
        //判斷會員卡是否已存在
        for(Member m:list) {
            if(m.getId()==id) {
                rand = random.nextInt(99999999);
                id = String.valueOf(rand);
            }
        }
        
        //註冊日期
        Date date = new Date();
        SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd :hh:mm:ss");
        String registData = dateFormat.format(date);
        
        //開卡送積分100;
        int score = 100;
        //將使用者記錄新增到列表
        list.add(new Member(name, pwd, id, registData, score));
        System.out.println("恭喜你成為本超市會員,系統贈送您100積分,您的會員卡號為:"+id+",請牢記卡號和密碼!");
        
    }
    
    /**
     * 資訊檢測,list中是否存有指定使用者資訊
     */
    public Member check() {
        System.out.print("請輸入您的會員卡號:");
        String id = sc.next();
        System.out.print("請輸入您的密碼:");
        String pwd = sc.next();
        for(Member m:list) {
            if(m.getId().equals(id) && m.getPwd().equals(pwd)) {
                return m;
            }
        }
        return null;
    }
}

測試類

package cn.zyq.Aug0203;

/**
 * 測試類
 * @author admin
 *
 */
public class Test {
    public static void main(String[] args) {
        Business business = new Business();
        business.init();
    }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com