超市会员管理系统

 1 package com.bdqn;
 2 /**
 3  * 会员类
 4  * @author Mr.zhang
 5  *
 6  */
 7 public class Mamber {
 8     //姓名 卡号 密码 开卡日期 积分
 9     private String name;
10     private int cardId;
11     private String pwd;
12     private int score;
13     private double money;
14     private String date;
15     
16     
17     public String getName() {
18         return name;
19     }
20     public void setName(String name) {
21         this.name = name;
22     }
23     public int getCardId() {
24         return cardId;
25     }
26     public void setCardId(int cardId) {
27         this.cardId = cardId;
28     }
29     public String getPwd() {
30         return pwd;
31     }
32     public void setPwd(String pwd) {
33         this.pwd = pwd;
34     }
35     public double getMoney() {
36         return money;
37     }
38     public void setMoney(double money) {
39         this.money = money;
40     }
41     public int getScore() {
42         return score;
43     }
44     public void setScore(int score) {
45         this.score = score;
46     }
47     public String getDate() {
48         return date;
49     }
50     public void setDate(String date) {
51         this.date = date;
52     }
53     public Mamber(String name, int cardId, String pwd, int score, double money, String date) {
54         super();
55         this.name = name;
56         this.cardId = cardId;
57         this.pwd = pwd;
58         this.score = score;
59         this.money = money;
60         this.date = date;
61     }
62     public Mamber() {
63         super();
64     }
65     
66     
67     
68     
69     
70     
71 }
  1 package com.bdqn;
  2 
  3 import java.text.SimpleDateFormat;
  4 import java.util.ArrayList;
  5 import java.util.Date;
  6 import java.util.InputMismatchException;
  7 import java.util.Random;
  8 import java.util.Scanner;
  9 /**
 10  * 实现类
 11  * @author Mr.zhang
 12  *
 13  */
 14 public class MamberDao{
 15     Scanner sc = new Scanner(System.in);
 16     ArrayList<Mamber> list = new ArrayList<Mamber>();
 17 
 18     //添加三个初始用户
 19     public void tj() {
 20         Mamber m1 = new Mamber("武大郎",11111111,"123456",100,100.0,"2016-01-01 12:25:30");
 21         Mamber m2 = new Mamber("潘金莲",22222222,"123456",100,150.0,"2016-01-02 13:25:30");
 22         Mamber m3 = new Mamber("西门庆",33333333,"123456",100,1000.0,"2016-01-03 14:25:30");
 23         
 24 //        Mamber master = new Mamber();
 25 //        master.setName("007");
 26 //        master.setCardId(66666666);
 27 //        master.setPwd("66666666");
 28         
 29         list.add(m1);
 30         list.add(m2);
 31         list.add(m3);
 32 //        list.add(master);
 33         
 34     }
 35     //登录 开卡 退出
 36     public void begin1() {
 37         tj();
 38         boolean flag = true;
 39         do {
 40             System.out.println("**************欢迎进入超市会员管理系统**************");
 41             System.out.println("1.开卡	2.登录	3.退出");
 42             System.out.print("请选择:");    
 43             int choose = sc.nextInt();
 44             switch (choose) {
 45             case 1:
 46                 //开卡
 47                 getCard();
 48                 break;
 49             case 2:
 50                 //登录
 51                 //判断是否为管理员
 52 //                if(masterPanDuan()) {
 53 //                    printAll();
 54 //                    break;
 55 //                }
 56                 //普通登录
 57                 if(register()) {
 58                     System.out.println("登录成功!");
 59                     start();
 60                 }else {
 61                     System.out.println("登录失败!不能找到此用户");
 62                 }
 63                 break;
 64             case 3:
 65                 //退出
 66                 System.out.println("感谢使用,欢迎下次使用!");
 67                 flag=false;
 68                 System.exit(1);
 69                 break;
 70             default:
 71                 break;
 72             }
 73         }while(flag);
 74     }
 75     //判断是否为管理员
 76 //    public boolean masterPanDuan() {
 77 //        System.out.println("请输入会员账号:");
 78 //        int cardId = sc.nextInt();
 79 //        System.out.println("请输入会员密码:");
 80 //        String pwd = sc.next();
 81 //        if(hasMaber(cardId, pwd) instanceof Mamber) {
 82 //            printAll();
 83 //            return true;
 84 //            
 85 //        }
 86 //        return false;
 87 //    }
 88     //登录
 89     public boolean register() {
 90         boolean falg = false ;
 91         System.out.println("请输入会员账号:");
 92         int id = 0;
 93         String pwd = "";
 94         try{
 95             id = sc.nextInt();
 96             System.out.println("请输入会员密码:");
 97             pwd = sc.next();
 98         }catch(InputMismatchException e) {
 99             System.err.println("请输入合法账号");
100         }
101 
102         for(Mamber m : list) {
103             if(id==m.getCardId()&&pwd.equals(m.getPwd())) {
104                 falg = true;
105             }
106         }
107         return falg;
108     }
109     //展示所有会员信息
110     public void printAll() {
111         for(Mamber ma : list) {
112             System.out.println("姓名:"+ma.getName()+"	会员卡号为:"+ma.getCardId()+"	剩余金额为:"+ma.getMoney()+"	开卡日期为:"+ma.getDate());
113         }
114     }
115     //展示业务
116     public void print() {
117         System.out.println("*****************选择您要办理的业务*****************");
118         System.out.println("1.积分累计	2.积分兑换	3.查询积分	4余额查询	5.修改密码	6.返回上一页");
119         System.out.print("请选择:");
120     }
121     //开始
122     public void start() {
123         do {
124             print();
125             int choose = sc.nextInt();
126             switch (choose) {
127             case 1:
128                 //积分累计
129                 System.out.println("******积分累积******");
130                 if(saveScore()) {
131                     System.out.println("累计积分成功");
132                 }else {
133                     System.out.println("累计积分失败");
134                 }
135                 continue;
136             case 2:
137                 //积分兑换
138                 System.out.println("******积分兑换******");
139                 if(minusScore()) {
140                     System.out.println("积分兑换成功!");
141                 }else {
142                     System.out.println("积分兑换失败!");
143                 }
144                 continue;
145             case 3:
146                 //查询积分
147                 System.out.println("******积分查询******");
148                 showScore();
149                 continue;
150             case 4:
151                 //余额查询
152                 showMoney();
153                 continue;
154             case 5:
155                 //修改密码
156                 System.out.println("******修改密码******");
157                 if(modifyPwd()) {
158                     System.out.println("密码修改成功!");
159                 }else {
160                     System.out.println("密码修改失败!");
161                 }
162                 continue;
163             case 6:
164                 //返回上一页
165                 break;
166             default:
167                 System.out.println("输入有误,重新输入:");
168                 continue;
169             }
170             break;
171         }while(true);
172     }
173 
174     //累计积分
175     public boolean saveScore(){
176         boolean falg = true;
177         System.out.print("请输入会员卡号:");
178         int id = sc.nextInt();
179         System.out.print("请输入会员卡密码:");
180         String pwd = sc.next();
181         Mamber mamber = hasMaber(id,pwd);
182         if(mamber!=null) {
183             System.out.println("请输入此次消费金额:(1元等于1积分)");
184             int score = sc.nextInt();
185             mamber.setScore(mamber.getScore()+score);
186             falg = true;
187         }else {
188             System.out.println("未能找到此用户!");
189             falg = false;
190         }
191         return falg;
192     }
193     //积分兑换
194     public boolean minusScore(){
195         boolean falg = true;
196         System.out.print("请输入会员卡号:");
197         int id = sc.nextInt();
198         System.out.print("请输入会员卡密码:");
199         String pwd = sc.next();
200         Mamber mamber = hasMaber(id,pwd);
201         if(mamber!=null) {
202             System.out.println("请输入此次兑换积分:(1积分等于0.05元)");
203             int score = sc.nextInt();
204             if(score<=mamber.getScore()) {
205                 mamber.setScore(mamber.getScore()-score);
206                 double dou =score/20;
207                 System.out.println("您此次使用"+score+"积分兑换了"+dou+"元");
208                 mamber.setMoney(mamber.getMoney()+dou);
209                 System.out.println("您的余额为:"+mamber.getMoney());
210                 falg = true;
211             }else {
212                 System.out.println("积分不足!无法兑换");
213                 falg = false;
214             }
215 
216         }else {
217             System.out.println("密码输入错误!");
218             falg = false;
219         }
220         return falg;
221     }
222     //积分查询
223     public void showScore() {
224         System.out.println("请输入会员卡号:");
225         int id = sc.nextInt();
226         System.out.println("请输入密码:");
227         String pwd = sc.next();
228         if(hasMaber(id, pwd) instanceof Mamber) {
229             System.out.println("姓名:"+hasMaber(id, pwd).getName()+"	会员卡号为:"+hasMaber(id, pwd).getCardId()+"	积分余额为:"+hasMaber(id, pwd).getScore()+"	开卡日期为:"+hasMaber(id, pwd).getDate());
230         }else {
231             System.out.println("没有此用户!");
232         }
233 
234     }
235     //余额查询
236     public void showMoney() {
237         System.out.println("请输入会员卡号:");
238         int id = sc.nextInt();
239         System.out.println("请输入密码:");
240         String pwd = sc.next();
241         if(hasMaber(id, pwd) instanceof Mamber) {
242             System.out.println("姓名:"+hasMaber(id, pwd).getName()+"	会员卡号为:"+hasMaber(id, pwd).getCardId()+"	剩余金额为:"+hasMaber(id, pwd).getMoney()+"	开卡日期为:"+hasMaber(id, pwd).getDate());
243         }else {
244             System.out.println("没有此用户!");
245         }
246     }
247     //密码修改
248     public boolean modifyPwd() {
249         boolean flag = false;
250         System.out.println("请输入会员卡号:");
251         int cardId = sc.nextInt();
252         System.out.println("请输入原密码:");
253         String pwd = sc.next();
254         if(hasMaber(cardId, pwd) instanceof Mamber) {
255             System.out.println("请输入新密码:");
256             String newPwd = sc.next();
257             System.out.println("请确认新密码:");
258             String againPwd = sc.next();
259             if(newPwd.equals(againPwd)) {
260                 //判断密码长度
261                 hasMaber(cardId, pwd).setPwd(againPwd);
262                 flag = true;
263             }else {
264                 System.out.println("两次密码不一致!无法修改");
265             }
266         }else {
267             System.out.println("账号或密码输入错误,不能修改密码");
268         }
269         return flag;
270     }
271 
272 
273     //根据会员账号和密码查询当前用户是否存在
274     public Mamber hasMaber(int id,String pwd) {
275         for(Mamber mamber : list) {
276             if(mamber.getCardId() == id && mamber.getPwd().equals(pwd)) {
277                 return mamber;
278             }
279         }
280         return null;
281     }
282 
283     //随机卡号
284     public int CardId() {
285         Random ran = new Random();
286         int id = ran.nextInt(99999999);
287         for(Mamber ma : list) {
288             if(ma.getCardId() == id) {
289                 id = ran.nextInt(99999999);
290             }
291         }
292         return id;
293     }
294     //注册
295     public void getCard() {
296         System.out.println("******注册会员******");
297         Mamber mam = new Mamber();
298         System.out.println("请输入开卡人姓名:");
299         mam.setName(sc.next());
300         //随机生成卡号
301         int cardId = CardId();
302         mam.setCardId(cardId);
303         boolean falg = true;
304         do {
305             System.out.println("请输入注册密码:");
306             String pwd = sc.next();
307             System.out.println("请确认密码:");
308             String str = sc.next();
309             if(str.equals(pwd)) {
310                 if(pwd.length()<6) {
311                     System.out.println("会员密码不能小于6位,重新输入:");
312                     falg = false;
313                 }else {
314                     mam.setPwd(pwd);
315                     falg = true;
316                 }
317             }else {
318                 System.out.println("请确认两次密码一致!");
319                 falg = false;
320             }
321         }while(!falg);
322         //开通成功后赠送100积分
323         mam.setScore(100);
324         //开卡时间
325         Date date = new Date();
326         SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
327         String sdate = formate.format(date);
328         mam.setDate(sdate);
329         System.out.println("您的会员卡开通成功!赠送您100积分
您的会员卡号是:"+cardId+"
开卡时间为:"+mam.getDate());
330         //将会员添加到集合中
331         list.add(mam);
332     }
333 }
 1 package com.bdqn;
 2 /**
 3  * 测试类
 4  * @author Mr.zhang
 5  *
 6  */
 7 public class Main {
 8     public static void main(String[] args) {
 9         MamberDao ma = new MamberDao();
10         ma.begin1();
11     }
12 }
原文地址:https://www.cnblogs.com/Zhangchuanfeng1/p/10457524.html