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.开卡\t2.登录\t3.退出");
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()+"\t会员卡号为:"+ma.getCardId()+"\t剩余金额为:"+ma.getMoney()+"\t开卡日期为:"+ma.getDate());
113 }
114 }
115 //展示业务
116 public void print() {
117 System.out.println("*****************选择您要办理的业务*****************");
118 System.out.println("1.积分累计\t2.积分兑换\t3.查询积分\t4余额查询\t5.修改密码\t6.返回上一页");
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()+"\t会员卡号为:"+hasMaber(id, pwd).getCardId()+"\t积分余额为:"+hasMaber(id, pwd).getScore()+"\t开卡日期为:"+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()+"\t会员卡号为:"+hasMaber(id, pwd).getCardId()+"\t剩余金额为:"+hasMaber(id, pwd).getMoney()+"\t开卡日期为:"+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积分\n您的会员卡号是:"+cardId+"\n开卡时间为:"+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 }