超市会员管理系统

先写架构,在补全方法,找一个好头开始一步步完善。

/*** 会员类* @author 周太阳* @version 1.0* @date 2019年4月23日 下午4:32:27*/
class Member {/**姓名*/private String name;/**卡号*/private int cardId;/**密码*/private String password;/**开卡时间*/private Date registDate;/**积分*/private int score;public Member() {super();}public Member(String name, int cardId, String password,Date registDate, int score) {super();this.name = name;this.cardId = cardId;this.password = password;this.registDate = registDate;this.score = score;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getCardId() {return cardId;}public void setCardId(int cardId) {this.cardId = cardId;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public Date getRegistDate() {return registDate;}public void setRegistDate(Date registDate) {this.registDate = registDate;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}@Overridepublic String toString() {StringBuilder sb = new StringBuilder();SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");sb.append("姓名:"+name).append("\n卡号:"+cardId).append("\n积分:"+score).append("\n开卡时间:"+format.format(registDate));return sb.toString();}
}/*** 超市会员管理Plus* @author 周太阳* @version 1.0* @date 2019年4月22日 下午5:22:16*/
class SuperMarketMember {static Scanner input = new Scanner(System.in);/**开卡*/public void createCard() {System.out.println("***欢迎进入注册系统***");System.out.print("请输入您的姓名:");String userName = input.next();do {System.out.print("请输入密码(密码长度不能小于6!):");String userPwd = input.next();if (userPwd.length() < 6) {System.out.println("密码长度不能小于6!");continue;}else {System.out.print("请再次输入密码:");String again = input.next();// 判断再次输入密码是否正确if (again.equals(userPwd)) {// 生成随机卡号int userNo = createRandom();// 创建用户Member member = new Member(userName, userNo, userPwd, new Date(), UserData.GIVE_SCORE);// 存入Set集合UserData.user.add(member);// 时间转换SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");// 获得转换后的时间String regisertDate = format.format(member.getRegistDate());System.out.println("开卡成功!请牢记您的卡号和密码!系统赠送您"+member.getScore()+"积分,您的卡号是:"+userNo+"\n开卡时间是:"+regisertDate);break;}else {System.out.println("两次输入的密码不相同!");continue;}}}while(true);}/**登陆*/public void login() {System.out.print("请请输入卡号:");Integer inputUserNo = input.nextInt();System.out.print("请输入密码:");String inputUserPwd = input.next();// 判断用户账号是否存在且密码是否和用户输入相同Member user = userInfo(inputUserNo, inputUserPwd);if (user != null) {// 给予对象并执行菜单selectFunction(user);}else {System.out.println("您的账号或密码错误!");}}/**菜单*/public void menu() {System.out.println("******************☆欢迎进入主菜单☆************************");System.out.println("1、积分累计 2、积分兑换 3、查询剩余积分 4、修改密码 5、退出");System.out.println("************************************************************");System.out.print("请选择:");}/**选择功能*/public void selectFunction(Member user) {outer:do {menu();int chooise = input.nextInt();// 菜单选项switch(chooise) {case 1:// 积分累计addScore(user);break;case 2:// 积分兑换exchangeScore(user);break;case 3:// 查询积分searchScore(user);break;case 4:// 修改密码modifyPwd(user);System.out.println("密码已修改,请重新登录!");break outer;case 5:// 退出System.out.println("已登出");break outer;default:System.out.println("输入错误!");break;}}while(true);}/**Set循环判断用户对象是否存在,且账号密码是否正确*/public Member userInfo(Integer inputUserNo,String inputUserPwd) {// 创建迭代器Iterator<Member> iterator = UserData.user.iterator();// 查找对象声明变量valueMember user = null;// 循环while(iterator.hasNext()) {user = iterator.next();// 如果找到用户输入卡号和Set中的对象卡号一致就停止if (user.getCardId() == inputUserNo) {break;}}// 判断卡号和密码是否正确if (user.getCardId() == inputUserNo && user.getPassword().equals(inputUserPwd)) {// 返回对应卡号的对象return user;}return null;}/**积分累计*/public void addScore(Member user) {System.out.println("请输入您此次的消费金额(消费1元累计1积分):");int expense = input.nextInt();if (expense > 100) {// 当前积分int score = user.getScore();// 将新的积分装进Set集合user.setScore(score+expense);System.out.println("您此次消费"+expense+"元"+"兑换积分:"+expense+"分\n当前积分为:"+user.getScore());}else {System.out.println("100以下的积分不予累计!多购些商品吧~");}}/**积分兑换*/public void exchangeScore(Member user) {System.out.println("您的积分是:"+user.getScore());do {System.out.println("请输入您需要兑换的积分(100分抵0.1元,不足100的积分不抵用):");int exchange = input.nextInt();// 判断积分是否合理if (exchange <= user.getScore() || exchange > 0) { // 积分取100整int money = Math.floorDiv(exchange, 100);// 消费积分int expense = money*100;// 新的积分user.setScore(user.getScore()-expense);System.out.printf("您的此次消费中已用"+expense+"积分抵消%.2f元。\n\r",money*0.1);break;}else {System.out.println("您输入的积分错误,请输入正确的积分!");continue;}}while(true);}/**查询剩余积分*/public void searchScore(Member user) {System.out.println(user);}/**修改密码*/public void modifyPwd(Member user) {do {System.out.print("请输入您的密码:");String userPwd = input.next();// 判断密码是否输入正确if (user.getPassword().equals(userPwd)) {System.out.print("请输入您的新密码:");String newPws = input.next();if (newPws.length() >= 6) {user.setPassword(newPws);System.out.println("密码修改成功!");break;}else {System.out.println("密码不能小于6位!");continue;}}else {System.out.println("密码输入错误!请重新输入!");continue;}}while(true);}/**生成不重复的随机卡号*/public int createRandom() {Random random = new Random();// 当随机数在集合中的对象存在时,重新生成int userRandom;again:while(true) {userRandom = random.nextInt(90000000)+10000000;for (Member user : UserData.user) {// 如果存在相同卡号,继续生成随机号if (user.getCardId() == userRandom) {continue again;}}// 卡号不一样退出循环break;}return userRandom;}}/*** 数据库* @author 周太阳* @version 1.0* @date 2019年4月23日 下午8:53:23*/
class UserData {// 储存每个用户信息Member member = new Member();static Set<Member> user = new HashSet<Member>();// 赠送积分public static final int GIVE_SCORE = 100;// 测试用户static{Member member = new Member();member.setName("篮球高手蔡徐坤");member.setCardId(1234);member.setPassword("1234");member.setScore(-10000);user.add(member);}
}/*** 用户类* @author 周太阳* @version 1.0* @date 2019年4月23日 下午8:52:51*/
public class Test {public static void main(String[] args) {Scanner input = new Scanner(System.in);SuperMarketMember smm = new SuperMarketMember();System.out.println("******************☆欢迎进入超市会员管理系统Plus☆****************************");do {System.out.println("1、登陆\n2、开卡\n3、退出");// 判断登陆或开卡int num = input.nextInt();if (num == 1) {// 登陆smm.login();}else if(num == 2){// 开卡smm.createCard();}else {// 退出System.out.println("欢迎下次光临!!!O(∩_∩)O~~");System.exit(0);}}while(true);}
}

第五次项目《超市会员管理Plus》相关推荐

  1. Java毕设项目超市会员积分管理系统计算机(附源码+系统+数据库+LW)

    Java毕设项目超市会员积分管理系统计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ ...

  2. 项目-超市会员管理系统

    package com.chaoshihuiyuanguanliSystem3;//创建一个会员类 public class Member {//用户姓名 卡号 密码 日期 积分private Str ...

  3. [计算机毕设]基于java的超市积分管理系统设计与实现(项目报告+答辩PPT+源代码+数据库)

    项目说明报告 基于java的超市积分管理系统 随着计算机和网络的不断革新,世界已经进入了前所未有的电子时代.作为实用性强.应用范围广泛的会员管理系统也正在被越来越多的各类企业用于消费管理领域.然而,那 ...

  4. 【java毕业设计】基于javaEE+SSH+mysql+strust2的超市积分管理系统设计与实现(毕业论文+程序源码)——超市积分管理系统

    基于javaEE+SSH+mysql+strust2的超市积分管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+SSH+mysql+strust2的超市积分管理系统设计 ...

  5. 超市会员管理系统(对象+集合)

    项目需求          为某超市开发一个超市会员管理系统,实现会员的管理,具体实现功能如下: (1)积分累计 (2)积分兑换 (3)查询剩余积分 (4)查询所有会员信息 (5)修改密码 (6)开卡 ...

  6. 基于java超市会员管理系统

    本文通过对超市消费服务行业中为更好提升会员消费结账过程的服务感知为目标,利用自身所学的软件开发知识,实现会员结账消费过程的自动化和信息化,进而提升超市会员管理的科学化和正规化.通过超市会员管理系统产生 ...

  7. java超市会员积分管理系统

    本课题要求采用B/S结构和主流的jsp技术,以java为开发语言,结合后台数据库mysql,并配合使用了MyEclipse等工具软件,完成超市会员管理系统的设计与后台管理功能开发. 该系统主要功能如下 ...

  8. [计算机毕设]基于java的超市综合管理信息系统设计与实现(项目报告+源代码+翻译)

    项目说明报告  基于java的超市综合管理信息系统设计与实现 由于科技的发展,信息量的剧烈膨胀,企业要想适应信息社会迅猛发展的浪潮,就必须借助于Internet构建新的运营模式,连锁超市已经成为很多企 ...

  9. 超市会员管理系统实战项目

    //超市会员类 public class Member {//姓名 卡号 卡密 积分 开卡日期private String name;private int cardId;private String ...

最新文章

  1. (DML触发器)如何正确理解触发器的deleted表和inserted表(转)
  2. C++:编译实验之递归下降分析器
  3. Spring整合Quartz定时任务 在集群、分布式系统中的应用
  4. 关于 Win 8 RT 你应该知道的 15 件事
  5. 学习Lambda 表达式
  6. zookeeper 可以干什么
  7. funcode拍飞虫C语言报告,【逻辑游戏面试题】面试问题:funcode… - 看准网
  8. request.getParameterValues()
  9. 配置本地yum源文件
  10. 小米手机4c获取Root权限的流程
  11. sql 关于一表多个主键唯一性的约束
  12. 手感与画质兼备|广东未来科技AI立体数码相机
  13. 双十一有哪些电容笔值得买?平板电脑第三方电容笔推荐
  14. MATLAB去除矩阵中的NAN值
  15. qnx修改ip地址方法
  16. 小程序--搜索页面(有搜索历史记录)
  17. 绿坝盗用其它软件代码
  18. 产品经理用什么比喻最恰当
  19. 无人驾驶公司Roadstar发公告开除联合创始人周光
  20. 2021北大软微计算机考研感想——从另一角度看考研

热门文章

  1. Day621.Spring Test 常见错误 -Spring编程常见错误
  2. php怎么使用sendcloud,SendCloud的介绍以及一些使用的注意事项
  3. 学习爬虫的感想和心得
  4. 试用Riya-带有人脸识别功能的在线照片服务
  5. python--Django快速入门之模板层详解
  6. html5光线传感器,光线传感器是什么 光线传感器分类
  7. 6.使用Numpy创建纯色图片
  8. 在这个“未来工厂”里, 人类仅凭脑电波控制机器
  9. python—简单数据抓取六(安装scrapy环境并创建爬虫项目、以顶点小说网为例利用scrapy进行爬取、scrapy相关的注意事项)
  10. Centos 6.x 更新内核 2.6-4.13