Java實現(xiàn)超市會員管理系統(tǒng)
本文實例為大家分享了Java實現(xiàn)超市會員管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
要求:借助集合框架及實用類實現(xiàn)該系統(tǒng)
1、積分累計
2、積分兌換
3、查詢剩余積分
4、修改密碼
5、開卡
6、退出
執(zhí)行結(jié)果:
開卡、積分累計部分:

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

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

退出部分:

實現(xiàn)思路:
1、創(chuàng)建會員用戶類:
- 用戶名、密碼、會員卡號(隨機生成)、注冊日期、積分
2、創(chuàng)建超市業(yè)務(wù)類:
- 菜單展示
- 業(yè)務(wù)選擇 積分存取方法、積分兌換方法、積分查詢方法、修改密碼方法、開卡方法
- 判斷集合中是否存在查詢元素方法(由于其他方法中均出現(xiàn)此方法中的代碼,即將其提取出來另列為一個方法)
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;
?? ?}?? ?
}超市業(yè)務(wù)類
package cn.zyq.Aug0203;
/**
?* 超市業(yè)務(wù)類
?*/
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--------------------歡迎進入會員管理系統(tǒng)--------------------\n");
?? ??? ?System.out.println("1.積分累計 ? ? ?2.積分兌換 ? ? ?3.查詢剩余積分 ? ? ?4.修改密碼 ? ? ?5.開卡 ? ? ? ? ? ?6.退出");
?? ??? ?System.out.println("\n-------------------------------------------------------");
?? ??? ?System.out.println();
?? ??? ?System.out.print("請選擇您要進行的操作:");
?? ??? ?choose(sc.nextInt());
?? ?}
?? ?
?? ?/**
?? ? * 用戶選擇的業(yè)務(wù)
?? ? * ?@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();
?? ??? ??? ?
?? ??? ??? ?//重新設(shè)置密碼
?? ??? ??? ?m.setPwd(pwd);
?? ??? ??? ?System.out.println("密碼修改成功!");
?? ??? ?}else {
?? ??? ??? ?System.out.println("輸入的賬號信息不匹配,無法進行此業(yè)務(wù)!");
?? ??? ?}
?? ?}
?? ?
?? ?
?? ?/**
?? ? * 積分兌換
?? ? */
?? ?public void regist() {
?? ??? ?System.out.print("歡迎使用本超市會員卡,請輸入您的姓名:");
?? ??? ?String name = sc.next();
?? ??? ?System.out.print("請設(shè)置您的密碼(要求密碼長度大于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;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?
?? ??? ?//生成一個八位數(shù)的隨機會員卡號
?? ??? ?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("恭喜你成為本超市會員,系統(tǒng)贈送您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();
?? ?}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java 使用poi 導(dǎo)入Excel數(shù)據(jù)到數(shù)據(jù)庫的步驟
這篇文章主要介紹了java 使用poi 導(dǎo)入Excel 數(shù)據(jù)到數(shù)據(jù)庫的步驟,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-12-12
Java實現(xiàn)將PPT轉(zhuǎn)為OFD過程詳解
本文將通過Java后端程序代碼展示如何實現(xiàn)將PPT幻燈片轉(zhuǎn)成OFD格式,文中的示例代碼講解詳細,對我們學(xué)習(xí)或工作有一定的幫助,需要的可以參考一下2022-01-01
SpringCloud gateway+zookeeper實現(xiàn)網(wǎng)關(guān)路由的詳細搭建
這篇文章主要介紹了SpringCloud gateway+zookeeper實現(xiàn)網(wǎng)關(guān)路由,本文通過圖文實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08
微服務(wù)領(lǐng)域Spring Boot自動伸縮的實現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于微服務(wù)領(lǐng)域Spring Boot自動伸縮的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10
Java并發(fā)編程中的生產(chǎn)者與消費者模型簡述
這篇文章主要介紹了Java并發(fā)編程中的生產(chǎn)者與消費者模型簡述,多線程并發(fā)是Java編程中最終要的部分之一,需要的朋友可以參考下2015-07-07

