java
主页 > 软件编程 > java >

Java实现超市会员管理系统的代码

2022-03-18 | 秩名 | 点击:

要求:借助集合框架及实用类实现该系统

1、积分累计
2、积分兑换
3、查询剩余积分
4、修改密码
5、开卡
6、退出

执行结果:

开卡、积分累计部分:

兑换积分、查询剩余积分部分:

修改密码、使用新密码查询部分:

退出部分:

实现思路:

1、创建会员用户类:

2、创建超市业务类:

3、测试类

源码:

会员用户类

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

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;

    }    

}

超市业务类

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

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;

    }

}

测试类

1

2

3

4

5

6

7

8

9

10

11

12

13

package cn.zyq.Aug0203;

 

/**

 * 测试类

 * @author admin

 *

 */

public class Test {

    public static void main(String[] args) {

        Business business = new Business();

        business.init();

    }

}

原文链接:https://blog.csdn.net/weixin_43718414/article/details/98473713
相关文章
最新更新