超市管理系统

一.设计步骤
系统需求
*
数据主体
*
会员对象
*
有一个会员类
*
存放不定数目的会员对象,使用集合
*
操作会员对象,需要一个服务类
*
用一个测试类测试系统
二.系统组成
1.会员类
*
属性:会员姓名,卡号,密码,积分,开卡日期
*
密码需要6位数字,后续需要判定密码长度,所以要定义为String类型使用length方法
*
构造方法
//会员类
public class HuiYuan {
//会员姓名,卡号,密码,积分,开卡日期
private String name;
private int carID;
private String mima; //length属性,用String
private int jifen;
private String time;
public HuiYuan() {
}
public HuiYuan(String name, int carID, String mima, int jifen, String time) {
this.name = name;
this.carID = carID;
this.mima = mima;
this.jifen = jifen;
this.time = time;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCarID() {
return carID;
}
public void setCarID(int carID) {
this.carID = carID;
}
public String getMima() {
return mima;
}
public void setMima(String mima) {
this.mima = mima;
}
public int getJifen() {
return jifen;
}
public void setJifen(int jifen) {
this.jifen = jifen;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
}
2.服务类
*
存放不定数目的会员对象,使用集合;后续要查询是否是否存在卡号,需要遍历,所以用ArrayList
*
流程框架方法
*
do{ }while( )循环,switch判断
*
开始菜单
*
积分累计
*
积分兑换
*
积分查询
*
修改密码
*
开卡
*
开始菜单方法:输出菜单
*
开卡方法
*
设置名字
*
设置随机卡号
*
生成随机卡号方法
*
设置密码
*
判断密码是否小于6位
*
设置积分
*
设置开卡日期
*
生成系统时间
*
将会员放入集合中
*
查询是否存在会员方法
*
遍历集合,判断
*
积分累计方法
*
输入卡号,密码,调用查询是否存在方法
*
设置新积分
*
积分兑换方法
*
输入卡号,密码,调用查询是否存在方法
*
判断积分是否小于卡内积分
*
设置新积分
*
积分查询方法
*
输入卡号,密码,调用查询是否存在方法
*
输出
*
修改密码方法
*
输入卡号,密码,调用查询是否存在方法
*
判断密码是否小于6位
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Random;
import java.util.Scanner;
//业务类
public class Yewu {
Scanner input=new Scanner(System.in);
ArrayList<HuiYuan> huiyuanlist=new ArrayList<HuiYuan>();
//开始
public void start() {
do {
menu();
int choose=input.nextInt();
switch(choose) {
case 1:
//积分积累
if(savejifen()) {
System.out.println("积分累计成功!");
}else {
System.out.println("积分累计失败!");
}
continue;
case 2:
//积分兑换
if(duihuanjifen()) {
System.out.println("积分兑换成功!");
}else {
System.out.println("积分兑换失败!");
}
continue;
case 3:
//查询剩余积分
showjifen();
continue;
case 4:
//修改密码
if(xiugaimima()) {
System.out.println("密码修改成功!");
}else {
System.out.println("密码修改失败!");
}
continue;
case 5:
//开卡
kaika();
continue;
case 6:
//退出
System.out.println("感谢使用,欢迎下次使用!");
break;
default:
System.out.println("输入错误,请重新输入");
continue;
}
break;
}while(true);
}
//开始菜单
public void menu() {
System.out.println("-----------------------欢迎进入超市系统------------------------------");
System.out.println("1.积分积累 2.积分兑换 3.查询剩余积分 4.修改密码 5.开卡 6.退出");
System.out.println("-----------------------------------------------------------------");
System.out.println("请选择:");
}
//积分累计
public boolean savejifen() {
boolean flag1=true;
System.out.println("请输入会员卡号");
int id=input.nextInt();
System.out.println("请输入会员密码");
String SRmima=input.next();
HuiYuan huiyuan=hashuiyuan(id,SRmima);
if(huiyuan!=null) {
System.out.println("请输入此次消费金额(1元1分)");
int newjifen=input.nextInt();
huiyuan.setJifen(huiyuan.getJifen()+newjifen);
System.out.println("当前积分为:"+huiyuan.getJifen());
flag1=true;
}else {
System.out.println("会员卡不存在或者密码错误,无法累计");
flag1=false;
}
return flag1;
}
//积分兑换
public boolean duihuanjifen() {
boolean flag1=true;
System.out.println("请输入会员卡号");
int id=input.nextInt();
System.out.println("请输入会员密码");
String SRmima=input.next();
HuiYuan huiyuan=hashuiyuan(id,SRmima);
if(huiyuan!=null) {
System.out.println("请输入此次消费要抵换的积分");
int huanjifen=input.nextInt();
if(huanjifen<=huiyuan.getJifen()) {
huiyuan.setJifen(huiyuan.getJifen()-huanjifen);
System.out.println("此次抵消"+huanjifen/100*0.1+"元");
}else {
System.out.println("抱歉,积分不足,无法兑换");
}
flag1=true;
}else {
System.out.println("会员卡不存在或者密码错误,无法兑换");
flag1=false;
}
return flag1;
}
//积分查询
public void showjifen() {
System.out.println("请输入会员卡号");
int id=input.nextInt();
System.out.println("请输入会员密码");
String SRmima=input.next();
HuiYuan huiyuan=hashuiyuan(id,SRmima);
if(huiyuan!=null) {
System.out.println("会员卡号:"+huiyuan.getCarID()+" 姓名:"+huiyuan.getName()+" 剩余积分:"+huiyuan.getJifen()+" 开卡日期:"+huiyuan.getTime());
}else {
System.out.println("会员卡不存在或者密码错误,无法查询");
}
}
//修改密码
public boolean xiugaimima() {
boolean flag1=true;
boolean flag2=true;
System.out.println("请输入会员卡号");
int id=input.nextInt();
System.out.println("请输入会员密码");
String SRmima=input.next();
HuiYuan huiyuan=hashuiyuan(id,SRmima);
if(huiyuan!=null) {
do{
System.out.println("请输入不小于6位的新密码)");
String newmima=input.next();
if(newmima.length()>=6) {
huiyuan.setMima(newmima);
flag2=true;
}else {
System.out.println("会员卡号不能小于6位,请重新输入");
flag2=false;
}
flag1=true;
}while(!flag2);
}else {
System.out.println("会员卡不存在或者密码错误,无法修改!");
flag1=false;
}
return flag1;
}
//开卡
public void kaika() {
HuiYuan huiyuan=new HuiYuan();
System.out.println("请输入会员姓名");
huiyuan.setName(input.next());
//会员卡号随机生成
int carID=carID();
huiyuan.setCarID(carID);
//注册密码
System.out.println("请输入注册密码");
//保证密码大于6位
String SRmima;
boolean flag=true;
do {
SRmima=input.next();
if(SRmima.length()<6) {
System.out.println("会员密码不能小于6位!请重新输入密码");
flag=false;
}else {
flag=true;
huiyuan.setMima(SRmima);
}
}while(!flag);
//每个卡默认开卡送100积分
huiyuan.setJifen(100);
//开卡日期
//创建SimpleDateFormat(String pattern)对象
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd");
//调用SimpleDateFormat中的format方法将指定日期转换为指定文本
Date d=new Date();
String XTtime=s.format(d);
huiyuan.setTime(XTtime);
System.out.println("恭喜!会员开卡成功,系统赠送100积分,会员卡号是:"+huiyuan.getCarID());
huiyuanlist.add(huiyuan); //放入集合
}
//生成随机卡号
public int carID() {
Random it=new Random();
int id=it.nextInt(99999999);
for(HuiYuan a:huiyuanlist) {
if(a.getCarID()==id) {
id=it.nextInt(99999999);
}
}
return id;
}
//查询当前会员是否存在,根据会员卡号和密码查询会员是否存在,存在返回会员,不存在返回null
public HuiYuan hashuiyuan(int id,String SRmima) {
for(HuiYuan b:huiyuanlist) {
if(b.getCarID()==id&&b.getMima().equals(SRmima)) {
return b;
}
}
return null;
}
}
3.测试类
*
调用服务类
//测试类
public class Test {
public static void main(String[] args) {
Yewu coco=new Yewu();
coco.start();
}
}
五月 11, 2019. Created by XMind
本文详细介绍了超市管理系统的设计步骤和系统组成。系统包括会员类、服务类和测试类。会员类包含会员信息如姓名、卡号、密码、积分及开卡日期。服务类用于管理会员,使用ArrayList存储会员,并实现积分累计、兑换、查询和密码修改等功能。测试类则用于验证系统功能。
2758

被折叠的 条评论
为什么被折叠?



