超市管理系统(对象+集合)

Java超市订单管理系统,java架构师项目经验 输入卡号,当卡号不存在提示,重新输入直到卡号正确输入密码正确后,方可修改密码 (7)退出系统 直接退出,并且提示谢谢使用 要求与实现步骤 不使用数据库,使用对象和集合存储数据 定义实体类,Member类 定义定义MemberManage类,业务类,完成项目菜单及整体流程,调用工具类的各种功能完成业务。 定义MemberUtil类,工具类,完成各种功能 代码: 代码打包下载 Member类: public class Member { //姓名 private String name; 阅读详情

//超市类

package 超市管理系统;

public class Market {
    private String name;//
    private String cardID;//
    private String password;//
    private int score;//
    private String regisDate;//


    public Market() {
    }

    public Market(String name, String cardID, String password, int score, String regisDate) {
        this.name = name;
        this.cardID = cardID;
        this.password = password;
        this.score = score;
        this.regisDate = regisDate;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return cardID
     */
    public String getCardID() {
        return cardID;
    }

    /**
     * 设置
     * @param cardID
     */
    public void setCardID(String cardID) {
        this.cardID = cardID;
    }

    /**
     * 获取
     * @return password
     */
    public String getPassword() {
        return password;
    }

    /**
     * 设置
     * @param password
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * 获取
     * @return score
     */
    public int getScore() {
        return score;
    }

    /**
     * 设置
     * @param score
     */
    public void setScore(int score) {
        this.score = score;
    }

    /**
     * 获取
     * @return regisDate
     */
    public String getRegisDate() {
        return regisDate;
    }

    /**
     * 设置
     * @param regisDate
     */
    public void setRegisDate(String regisDate) {
        this.regisDate = regisDate;
    }

    public String toString() {
        return "Market{name = " + name + ", cardID = " + cardID + ", password = " + password + ", score = " + score + ", regisDate = " + regisDate + "}";
    }
}

//业务需求

package 超市管理系统;

import java.text.SimpleDateFormat;
import java.util.*;

public class MemberDao {
    public static final Scanner sc = new Scanner(System.in);
    List<Market>  markets = new ArrayList<>();
    //开始菜单
    public void meun(){
        System.out.println("------------------------欢迎进入超市系统-----------------------");
        System.out.println("1、积分累计 2、积分兑换 3、查询剩余积分 4、修改密码 5、开卡 6、退出");
        System.out.println("===========================================================");
        System.out.println("请选择:");
    }
    public void start(){
        do {
            meun();
            String choose =sc.nextLine();
            switch (choose){
                case "1":
                    //积分累计
                    if (savaScore()){
                        System.out.println("积分累计成功");
                    }else {
                        System.out.println("对不你输入的会员卡号或密码有误!!!");

                    }
                    break;
                case "2":
                    //积分兑换
                    if (minusScore()){
                        System.out.println("积分兑换成功");
                    }else {
                        System.out.println("对不起你输入的会员卡号或密码有误");
                    }
                    break;
                case "3":
                    //查询剩余积分
                    showScoce();
                    break;
                case "4":
                    //修改密码
                    UresScoce();
                    break;
                case "5":
                    //开卡
                    register();
                    break;
                case "6":
                    //退出
                    System.out.println("感谢你的光临!");
                    return;
                default:
                    System.out.println("输入错误!请重新输入!");
            }
        }while (true);
    }

    //判断用户是否存在
    public Market hasMarket(String id,String password){
        for (Market market: markets){
            if (market.getCardID().equals(id)&&market.getPassword().equals(password)){
                return market;
            }
        }
        return null;
    }
    /**
     * 开卡
     */
    private void register() {
        Market m = new Market();
        System.out.println("请输入你的姓名!!");
        m.setName(sc.nextLine());
        //会员卡号
        String cardID=createID();
        System.out.println("请输入注册密码!");
        String password=sc.nextLine();
        while (true){
            if (password.matches("[A-Z]{1,5}\\w{5,15}")){
                m.setPassword(password);
                break;
            }else {
                System.out.println("密码不能小于六位或大于20为首字母要大写!!");
                password=sc.nextLine();
            }
        }
        //开卡送积分
        m.setScore(100);
        //开发日期
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
        String rs =sdf.format(date);
        m.setRegisDate(rs);
        m.setCardID(cardID);
        System.out.println("恭喜你开卡成功您的会员卡号是:"+m.getCardID()+"注册时间是"+m.getRegisDate());
        markets.add(m);
    }

    /**
     * 会员卡号生成八位
     * @return
     */
    private String createID() {
        String rs ="";
        Random r = new Random();
        for (int i = 1; i <= 8; i++) {
            rs+=r.nextInt(10);
            }
        if (bijiao(rs)){
            return rs;
        }else {
            for (int j = 0; j <=8 ; j++) {
                rs+=r.nextInt(10);
            }
        }
        return rs;
    }

    /**
     * 判断卡号是否存在
     * @param rs
     * @return
     */
    private boolean bijiao(String rs) {
        for (Market market :markets){
            if (market.getCardID().equals(rs)){
                return false;
            }
        }
        return true;
    }

    /**
     * 修改密码
     */
    private void UresScoce() {
        System.out.println("请输入你的会员卡号:");
        String id = sc.nextLine();
        System.out.println("请输入你的会员密码");
        String password=sc.nextLine();
        Market market =hasMarket(id,password);
        if (market!=null){
            while (true) {
                System.out.println("请输入你要修改的会员密码:");
                String password1 =sc.nextLine();
                System.out.println("请再次输入你要修改的会员密码:");
                String password2 =sc.nextLine();
                if (password1.equals(password2)){
                    System.out.println("密码修改成功!");
                    market.setPassword(password1);
                    break;
                }else {
                    System.out.println("两次密码不一致!请重新输入!");
                }
            }
        }else {
            System.out.println("会员不存在!!!!");
        }
    }

    /**
     * 查询
     */
    private void showScoce() {
        System.out.println("请输入你的会员卡号:");
        String id = sc.nextLine();
        System.out.println("请输入你的会员密码");
        String password=sc.nextLine();
        Market market =hasMarket(id,password);
        if (market!=null){
            System.out.println("会员卡号\t姓名\t剩余积分\t开卡日期");
            System.out.println(market.getCardID()+"\t"+market.getName()+"\t"+market.getScore()+"\t"+market.getRegisDate());
        }else {
            System.out.println("会员不存在!!!!");
        }
    }

    /**
     * 积分兑换
     * @return
     */
    private boolean minusScore() {
        String c="y";
        System.out.println("请输入你的会员卡号:");
        String id = sc.nextLine();
        System.out.println("请输入你的会员密码");
        String password=sc.nextLine();
        Market market =hasMarket(id,password);
        if (market!=null){
            do {
                    System.out.println("请输入你要抵消多少积分:(1元积一分)");
                    String sorce = sc.nextLine();
                    Integer i = Integer.valueOf(sorce);
                    if (i<=market.getScore()){
                        market.setScore(market.getScore()-i);
                        System.out.println("您消费了"+i+"分"+"抵换了"+(i/100)+"元");
                        return true;
                    }else {
                        System.out.println("对不起你的积分不足!");
                        System.out.println("是否继续(y/n)");
                        c =sc.nextLine();
                        if (!c.equals("y")){
                            return false;
                        }
                    }
            }while (c.equals("y"));
            return true;
        }else {
            return false;
        }
    }

    /**
     * 积分累计
     * @return
     */
    private boolean savaScore() {
        System.out.println("请输入你的会员卡号:");
        String id = sc.nextLine();
        System.out.println("请输入你的会员密码");
        String password=sc.nextLine();
        Market market =hasMarket(id,password);
        if (market!=null){
            System.out.println("请输入你此次消费的金额:(1元积一分)");
            String sorce = sc.nextLine();
            Integer i = Integer.valueOf(sorce);
            market.setScore(market.getScore()+i);
            return true;
        }else {
            return false;
        }

    }
}

//主函数

package 超市管理系统;

public class SystemMarket {
    public static void main(String[] args) {
        MemberDao m = new MemberDao();
        m.start();
    }
}

超市会员管理系统(对象+集合) println("****************************************欢迎使用超市会员管理系统*****************************************");System.out.println("积分累计成功!+ ",姓名:" + member.getName() + ",可用积分:" + member.getScore()System.out.println("会员" + i + "信息【会员卡号:" + member.getCardId() 阅读详情

相关推荐

Python基础项目:超市商品销售管理系统

在前几章的案例中,主要以项目为中心介绍了相关知识点,通过手机通讯录管理系统和学生信息管理系统案例的学习,应该掌握了Python当中的基础语法,变量语句函数以及常见数据结构列表与字典的基本操作,通过世界杯查询系统与模拟群聊实战介绍了Python对于文件读写的基本操作,同时也用到了Python模块time等内容。在本章中,我们会将之前的内容进行统一综合,完成超市商品销售管理系统。 需求分析: ...

u012156341的专栏 3万+

Java SE的简易超市管理系统

超市管理系统 思路 运用集合知识创建一个能够添加的商品类对象 调用ArrayList分别实现展示查找添加删除更改商品功能 商品类 public class Goods { private int id; private double price; private String name; @Override public String toString() { return "Goods{" + "id=" + i

weixin_53103836的博客 531

Java学习——水果超市商品管理系统

水果超市管理系统包括两个界面:系统欢迎界面和超市货物管理界面,在系统欢迎界面中,通过单击“进入系统”按钮,进入超市货物管理界面。在超市货物管理界面中,可以对水果信息实现具体的操作。例如,每当有新水果运送到超市时,就需要系统管理人员在系统中增加新水果的信息;若超市中的某种水果售罄,则删除该水果的信息;若水果的数量、价格等需要变更,则及时进行修改。这些操作都可以在水果超市管理系统中完成。案例目标: 实现添加数据、修改数据和删除数据的功能。运行环境: Jdk、Eclipse。

m0_50756780的博客 7172

C#实现--超市管理系统

侵删~非原创,自己码的。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SupermarketManagermentSystem { class Supermarket { //为超市创建仓库对象 CangKu ck = new CangKu();

XiZhi_BUAA的博客 3715

21、Java——超市会员管理系统(对象+集合)

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

不迁怒,不贰过。小知识,大智慧。 3009

Java超市账单管理系统实战项目与代码解析

Java集合框架定义了一系列接口,如List、Set、Map等,以及实现这些接口的类,例如ArrayList、HashSet、HashMap等。这些接口和类构成了集合框架的基础。List接口:表示一个有序集合,允许重复元素,可以通过索引访问具体元素。典型实现类包括ArrayList和LinkedList。Set接口:表示不允许重复元素的集合。典型实现类有HashSet和TreeSet。Map接口:存储键值对集合,每个键映射到一个值。典型实现类包括HashMap和TreeMap。

weixin_35696112的博客 775

Java超市订单管理系统

《超市订单管理系统》 功能要求 开发超市订单管理系统功能,可实现会员积分累计、积分兑换,查询剩余积分,修改密码以及开卡等功能。 具体功能要求如下: (1)显示系统主菜单 如图1所示。 (2)开卡 输入注册姓名 输入注册密码 自动生成卡号,使用随机数 (3)积分累计 输入卡号 输入密码 输入消费金额,一比一换算 (4)积分兑换 输入卡号,密码完成积分兑换 (5)查看剩余积分 输入卡号与积分,显示当前卡号信息 (6)修改密码 输入卡号,当卡号不存在提示,重新输入直到卡号正确输入密码正确后,方可修

花伤情犹在的博客 1200

Java编程实战:超市管理系统课程设计

Java集合框架是Java编程中处理数据集合的核心工具。它为存储和操作对象集合提供了一套完整的接口和实现。集合框架的重要性在于其提供了一种统一的方法来处理不同类型的数据集合,例如列表、集合和映射。这种统一性简化了代码的编写,提高了代码的可重用性和可维护性。在超市管理系统中,集合框架用于存储商品信息、顾客信息、销售记录等数据。实验报告是展示项目研究成果和技术细节的重要文档。一个清晰、结构化的报告可以帮助读者理解项目的目的、方法、结果和结论。一个典型的实验报告通常包括以下几个部分:标题和作者信息。

weixin_35752645的博客 598

超市研发系统

/* * 下述代码中,对商品信息(编号,名称,单价)进行封装 * 这样做到好处在于以后只要找到这个商品,就能够知道该商品的每项信息 */ public class FruitItem01 { //商品的ID int ID; //商品的名称 String name; //商品的单价 double price; }   ...

轻描时光 457

基于JavaSE的超市管理系统项目实战详解

简介:JavaSE超市管理系统是一款基于Java标准版开发的综合性应用,涵盖商品管理、顾客购物、积分累计、礼品兑换等核心功能,采用IO流技术实现数据的持久化存储与高效读写。系统运用面向对象编程、集合框架、异常处理和多线程等JavaSE核心技术,结合文件操作与对象序列化,完成超市运营全流程的自动化管理。本项目经过完整设计与测试,适合作为Java初学者到进阶者的实践案例,全面提升对JavaSE实际应用能力的掌握。

weixin_29041443的博客 725

ANSYS WB 网格划分详解与技巧

本文详细介绍了网格操作中的关键设置与功能选项。主要内容包括:1)网格显示风格与物理偏好设置;2)单元阶次选择对精度的影响;3)单元尺寸控制方法;4)尺寸调整功能,重点讲解了自适应尺寸调整、增长率控制和捕获曲率等选项;5)网格质量评估标准;6)四种主要划分方法(四面体、六面体主导、扫掠、多区域)的特点与适用场景;7)三种尺寸调整方式(直接调整、边缘尺寸调整、影响范围调整)的具体应用。文章强调在实际建模中需要根据模型特点合理选择网格参数,平衡计算精度与效率。

2403_87939837的博客 1701

超市,库存商品管理

package com.oracle.demo02;import java.util.ArrayList;import java.util.Scanner;public class Menu { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ArrayLi...

weixin_33994444的博客 410

1 FFmpeg从入门到精通-FFmpeg简介

1.FFmpeg简介 1.1 FFmpeg的定义 1.2 FFmpeg的历史 1.3 FFmpeg的基本组成 1.4 FFmpeg的编解码工具ffmpeg 1.5 FFmpeg的播放器ffplay 1.6 FFmpeg的多媒体分析器ffprobe 1.7 FFmpeg编译(1)FFmpeg之Windows平台编译(2)FFmpeg之Linux平台编译(3)FFmpeg之OS X平台编译 1.8 FFmpeg编码支持与定制(1)FFmpeg的编码器支持(2)FFmpe

migu123的专栏 3698

Java基础实战:手把手教你开发超市库存管理系统(附完整代码)

这是一个经典的Java控制台应用项目,模拟真实超市的库存管理逻辑。通过本案例,你将掌握如何使用集合存储对象、设计交互式菜单以及实现增删改查等核心功能。知识点应用场景关键实现面向对象封装FruitItem类设计将商品属性封装为对象ArrayList集合存储所有商品Scanner输入用户交互循环控制菜单保持显示无限循环switch语句功能分支选择根据输入数字调用不同方法方法封装模块化编程每个功能独立成方法。

weixin_43954652的博客 628

手把手教你用DCA1000EVM解析IWR6843毫米波雷达数据(附MATLAB代码)

本文提供了一份详尽的实战指南,手把手教你使用DCA1000EVM采集并解析TI毫米波雷达IWR6843的原始数据。内容涵盖硬件连接配置、mmWave Studio参数设置、LVDS数据流结构解析,并附有核心MATLAB代码,详细演示了从原始二进制文件到距离-速度谱的信号处理全链路,帮助开发者快速掌握数据解析与处理的关键步骤。

terraform7cloud的博客 229

从晶体管到触发器:为什么芯片设计必须区分同步/异步复位?

本文深入探讨了芯片设计中同步复位与异步复位的物理本质与工程权衡。从晶体管级的CMOS结构出发,剖析了两种复位方式在物理实现、时序可靠性(如建立/保持时间、恢复/移除时间)上的根本差异,并分析了在不同应用场景下的选择策略。文章强调,理解复位信号的底层机制对于确保芯片时序收敛、系统上电确定性及整体鲁棒性至关重要。

time3的博客 223

Eclipse开发工具

今日内容介绍 1、Eclipse开发工具 2、超市库存管理系统 ###01Eclipse的下载安装 * A: Eclipse的下载安装  * a: 下载 * http://www.eclipse.org * b: 安装 * 只需要解压后就能使用 * c: 卸载 * 只需要将文件夹删除就可以了 * d: 注意 * 开发软件的安装目录中,尽量不要出现空格与中文 * B: Eclipse的特点 * ...

LeiDa777的博客 210

微磁模拟实战指南:从OOMMF安装到首个3D模型运行

本文详细介绍了OOMMF微磁模拟软件的安装与使用,从环境配置到首个3D模型运行的完整教程。涵盖Windows、Linux和macOS平台的安装避坑指南,以及MIF文件编写、并行计算优化等实战技巧,帮助研究人员快速掌握这一开源工具在磁畴壁运动、磁滞回线等微磁学问题中的应用。

weixin_29294597的博客 154

java第一阶段(day17)终篇

...

sunshine195的博客 914

OpenGL纹理贴图

OpenGL纹理1. 基本概念2. 纹理环绕方式3. 纹理过滤3.1 GL_NEAREST3.2 GL_LINEAR3.3 多级渐远纹理 (Mipmap)4. 纹理加载与创建4.1 纹理加载4.2 纹理创建4.3 纹理的使用 1. 基本概念 纹理是一个2D图片(甚至也有1D和3D的纹理),它可以用来表示物体的细节特征,希望绘制一个有足够多细节的物体,当然可以用足够多的顶点颜色来描述,但是无疑也增加了许多额外的开销;另一种办法就是使用纹理。 学习之前先展示一张实现的纹理图以更好理解纹理! 还是这张图为了将纹

牵LV小猪精的博客 8931

数字后端实现Innovus教程之手把手教你N种高亮timing path和clock tree方法

数字IC后端设计实现Innovus教程之手把手教你N种高亮timing path和clock tree方法

weixin_37584728的博客 3602

java基础班--7-9

char类型的范围 ‘ ’ 数组反转 选择排序:首先使得最小值成为第一个 冒泡排序:相邻元素比较,先使得最大元素到最后 折半查找:没找到返回-1,查找条件是min&lt;=max,查找的必须是有序数组 Eclipse编码快捷键很有用,自行百度 借助ArrayList集合的add\get\remove方法实现超市管理系统的增删改查 代码很简单 面向对象...

qq_34514046的博客 218

Kubeflow系统性学习教程:从入门到高级实践

Kubeflow学习教程摘要(150字): Kubeflow是基于Kubernetes的云原生MLOps平台,提供端到端机器学习解决方案。核心功能包括Jupyter Notebooks开发环境、Pipelines工作流编排、分布式训练支持和模型服务部署。教程采用三阶段学习路径:初学者搭建Kind集群体验Notebooks;中级开发自定义Pipeline组件;高级实现企业级应用。通过容器化和K8s CRD深度集成,解决环境一致性、实验跟踪和资源调度等MLOps痛点,相比MLflow/Airflow更适合大规模

自可乐的博客 888

java超市管理系统

说明:此篇知识面向对象思想的demo,并不涉及到数据库操作,如需数据库操作前往博客 https://blog.youkuaiyun.com/qq_34491508/article/details/103453940 一:开发目标 通过简单的控制台版本的超市管理系统对javase基础知识回顾,熟悉面向对象(java)的开发思想 二:开发代码 商品信息类 /* * 商品信息类 */ p...

程序员一博 2万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

java项目超市购物管理系统

一.概述 1.鹏哥前面有写过java项目超市管理系统项目,传送门 2.收到很多朋友私信给我,也很感谢老铁们的反馈和交流,前面这个项目只是对java基础知识和面向对象的思想练习,但是没有涉及到java如何操作数据库,如何通过java将数据从数据库拿出来,如果存进去这些问题。对于java新手来说,这些问题不知道从何处下手。有很多刚入门的java新手建议我写个java操作数据库的实战项目供入门......

程序员一博 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java学习之综合案例——水果超市商品管理系统

案例介绍: 水果超市管理系统包括两个界面:系统欢迎界面和超市货物管理界面,在系统欢迎界面中,通过单击“进入系统”按钮,进入超市货物管理界面。在超市货物管理界面中,可以对水果信息实现具体的操作。例如,每当有新水果运送到超市时,就需要系统管理人员在系统中增加新水果的信息;若超市中的某种水果售罄,则删除该水果的信息;若水果的数量、价格等需要变更,则及时进行修改。这些操作都可以在水果超市管理系统中完成。 案例目标: 添加数据、修改数据和删除数据。 运行环境: Jdk、Eclipse 案例代码: 首先,我们需要按照以

weixin_47062907的博客 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 吃货联盟订餐系统(数组+变量)
下一篇: 吃货联盟订餐系统(对象+集合)
有你是我的福气Love
博客等级 码龄4年 40粉丝 35原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值