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 }