高级编程--第三章 超市会员管理系统

1、目标

会使用StringBuffer 操作字符串

会使用Date类和Calendar类操作日期时间

会使用SimpleDateFormat类格式化日期时间

使用集合框架和实用类完成超市管理系统

2、实用类补充——StringBuffer类

StringBuffer

对字符串频繁修改(如字符串连接)时,使用StringBuffer类可以大大提高程序执行效率

StringBuffer声明

StringBuffer strb = new StringBuffer();
StringBuffer strb = new StringBuffer("aaa");

StringBuffer使用

sb.toString();   //转换为String类型
sb.append("**"); //追加字符串
sb.insert(1,"**"); //插入字符串

将一个数字字符串转换成逗号分隔的数字串,即从右边开始每三个数字用逗号分隔

package exercise01;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        System.out.println("请输入一串数字");
        int s = sc.nextInt();
        StringBuffer strb = new StringBuffer();
        strb.append(s);
        for (int i = strb.length()-3 ;i>0;i-=3){
            strb.insert(i,",");
        }

        System.out.println(strb);

    }
}

String类与StringBuffer类

String是不可变对象

经常改变内容的字符串最好不要使用String

StringBuffer是可变的字符串

字符串经常改变的情况可使用StringBuffer,更高效

JDK5.0后提供了StringBuilder,等价StringBuffer

3、实用类补充——操作日期时间

获取当前日期

java.ytil.Date类:表示日期和时间

提供操作日期和时间各组成部分的方法

java.text.SimpleDateFormat类

//创建日期对象
Date date = new Date(); 
//定制日期格式
SimpleDateFormat formater = new SimpleDateFormat("yyyy- MM-dd HH:mm:ss");
String now = formater.format(date);
System.out.println(now);

Calendar类

抽象类,java.util.Calendar

用于设置和获取日期/时间数据的特定部分

方法或属性

说明

int get(int field)

返回给定日历字段的值

MONTH

指示月

DAY_OF_MONTH

指示一个月中的某天

DAY_OF_WEEK

指示一个星期中的某天

需求说明获取当前时间,使用SimpleDateFormat以“年-月-日”方式显示计算2015年4月6日是一年中的第几星期

这个函数时间不太准确,通过查询得知是因为开发者编写的问题,这里的月份为13个月份,而且我们输入月份的时候还需要让月份+1。

package exercise02;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Test {
    public static void main(String[] args) {
        Date date = new Date();
        SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String now = formater.format(date);
        System.out.println(now);

        Calendar ca = Calendar.getInstance();

//        ca.setFirstDayOfWeek(Calendar.MONDAY);
//        ca.set(Calendar.YEAR,2015);
//        ca.set(Calendar.MONTH,3);
//        ca.set(Calendar.DAY_OF_MONTH,6);
//            ca.set(2015,4,6);
        System.out.println("2015年4月6日是星期" + ca.get(Calendar.DAY_OF_WEEK));


//        Calendar calendar = Calendar.getInstance();
//
//        // 设置2015年4月6日
//        calendar.set(2015, 5, 6);
//
//        // 获取星期几
//        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
//
//        // 输出结果
//        System.out.println("2015年4月6日是星期" + dayOfWeek);
    }
}

4、超市会员管理系统

要求

借助集合框架及实用类实现该系统、

积分累计

积分兑换

查询

剩余积分

修改密码

开卡

退出

类:

Test (测试类)

CustomVip类(会员用户)

ShopVipService(服务类)

Goods(可兑换商品信息)

Test

package ShopVipSystem;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        //创建业务
        ShopVipService sp = new ShopVipService();
        String name;   //用户名
        String pwd;    //面膜
        int integal;   //积分
        sp.start();

        Scanner sc = new Scanner(System.in);
        System.out.println("******欢迎来到超市会员管理系统******");
        while(true){
            System.out.println("1、积分累计 \n 2、积分兑换 \n 3、查询剩余积分 \n 4、修改密码 \n 5、开卡 \n 6、退出");
            System.out.print("请选择您要进行的操作:");
            int d = sc.nextInt();
            switch(d){
                case 1:
                    //输出用户信息
                    System.out.println("积分累计");
                    System.out.println("请输入您的账号");
                    name = sc.next();
                    System.out.println("请输入您的密码");
                    pwd = sc.next();
                    sp.addi(name,pwd);
//                    sp.addI();
                    break;
                case 2:
                    System.out.println("积分兑换");
                    System.out.println("请输入您的账号");
                    name = sc.next();
                    System.out.println("请输入您的密码");
                    pwd = sc.next();
                    sp.conversion(name,pwd);
                    break;
                case 3:
//                    sp.info();
                    System.out.println("查询剩余积分");
                    System.out.println("请输入您的账号");
                    name = sc.next();
                    System.out.println("请输入您的密码");
                    pwd = sc.next();
                    sp.select(name,pwd);
                    break;
                case 4:
                    System.out.println("修改密码");
                    System.out.println("请输入您的账号");
                    name = sc.next();
                    System.out.println("请输入您的密码");
                    pwd = sc.next();
                    sp.resetpwd(name,pwd);
                    break;
                case 5:
                    //添加用户用到
                    System.out.println("开卡");
                    System.out.println("请输入用户名");
                    name = sc.next();
                    System.out.println("请输入密码");
                    pwd= sc.next();
                    System.out.println("请输入积分");
                    integal = sc.nextInt();
                    sp.add(name,pwd,integal);
                    break;
                default:break;
            }
            if (d == 6){
                System.out.println("谢谢使用");
                break;
            }else {
                System.out.println("输入0返回");
                d = sc.nextInt();
            }
        }
    }
}

ShopVipService

package ShopVipSystem;

import java.util.ArrayList;
import java.util.Scanner;

public class ShopVipService {
    ArrayList<CustomVip> cv = new ArrayList<>();
    ArrayList<Goods> goods = new ArrayList<>();
    Scanner sc = new Scanner(System.in);

    public void start() {
        //管理员
        Admin a = new Admin("admin","admin");

        //用户信息
        CustomVip cv1 = new CustomVip(10001, "张三", "123456", 200);
        CustomVip cv2 = new CustomVip(10002, "李四", "123456", 300);
        CustomVip cv3 = new CustomVip(10003, "王五", "123456", 400);
        CustomVip cv4 = new CustomVip(10004, "李明", "123456", 500);
        CustomVip cv5 = new CustomVip(10005, "张强", "123456", 600);
        cv.add(cv1);
        cv.add(cv2);
        cv.add(cv3);
        cv.add(cv4);
        cv.add(cv5);

        //商品信息
        Goods goods1 = new Goods(1,"食用油",200);
        Goods goods2 = new Goods(2,"电磁炉",400);
        Goods goods3 = new Goods(3,"吹风机",300);
        Goods goods4 = new Goods(4,"洗衣液",100);

        goods.add(goods1);
        goods.add(goods2);
        goods.add(goods3);
        goods.add(goods4);
    }
    //输出基本信息
    public void info() {
        for (CustomVip cc : cv) {
            System.out.println("id:" + cc.getId() + ",用户名:" + cc.getName() + ",积分余额" + cc.getIntegral());
        }
    }
    //开卡
    public void add(String name, String pwd, int integal) {
        CustomVip cc = new CustomVip(cv.get(cv.size() - 1).getId() + 1, name, pwd, integal);
        cv.add(cc);
    }
    //查询积分
    public void select(String name, String pwd) {
        CustomVip flag = login(name, pwd);
        if (!"".equals(flag.getName())) {
            System.out.println("您的积分为:" + flag.getIntegral());
        } else {
            System.out.println("无法查询积分");
        }
    }
    //登录
    public CustomVip login(String name, String pwd) {
        for (CustomVip cc : cv) {
            if (name.equals(cc.getName()) && pwd.equals(cc.getPwd())) {
                System.out.println("登录成功");
                return cc;
            } else {
                System.out.println("登录失败");
                return new CustomVip(0,"","",0);
            }
        }
        System.out.println("您的账号未开卡");
        return new CustomVip(0,"","",0);
    }
    //重置密码
    public void resetpwd(String name,String pwd){
        CustomVip cc = login(name,pwd);
        if (!"".equals(cc.getName())){
            System.out.println("请输入您的新密码");
            String repwd = sc.next();
            cc.setPwd(repwd);
        }else{
            System.out.println("无法修改新密码");
        }
    }

    //增加积分
    public void addi(String name,String pwd){
        CustomVip cc= login(name,pwd);
        if (!"".equals(cc.getName())){
            System.out.println("请输入需要增加的积分");
            int integal = sc.nextInt();
            cc.setIntegral(cc.getIntegral()+integal);
            System.out.println("积分累计成功,您目前积分为:" + cc.getIntegral());
        }else{
            System.out.println("无法为您增加积分");
        }
    }

    public void conversion(String name,String pwd){
        CustomVip cc= login(name,pwd);
        if (!"".equals(cc.getName())){
            goodsInfo();
            System.out.println("请输入您要兑换的商品id:");
            int id = sc.nextInt();
            if(goods.get(id-1).getIntegal() > cc.getIntegral()){
                System.out.println("您的积分不够,请选择其他商品");
            }else {
                cc.setIntegral(cc.getIntegral()-goods.get(id-1).getIntegal());
                System.out.println("恭喜您兑换成功,您兑换后的剩余积分为" + cc.getIntegral());
            }
        }else{
            System.out.println("无法为您兑换商品");
        }
    }
    public void goodsInfo(){
        for (Goods goods : goods){
            System.out.println(" " + goods.getId() + "," + goods.getName() + "," + goods.getIntegal());
        }
    }
}

CustomVip

package ShopVipSystem;

public class CustomVip {
    private int id;
    private String name;
    private String pwd;
    private int integral;

    public CustomVip(int id, String name, String pwd, int integral) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
        this.integral = integral;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public int getIntegral() {
        return integral;
    }

    public void setIntegral(int integral) {
        this.integral = integral;
    }

}

Goods

package ShopVipSystem;

public class Goods {
    private int id;
    private String name;
    private int integal;

    public Goods(int id, String name, int integal) {
        this.id = id;
        this.name = name;
        this.integal = integal;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getIntegal() {
        return integal;
    }

    public void setIntegal(int integal) {
        this.integal = integal;
    }
}
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值