Java代码实现班级通讯录系统(连接mysql数据库)

IDEA+MySQL+JavaFX之通讯录系统 IDEA+MySQL+JavaFX软件项目创建设计界面Controller代码编写 刚刚结束了小学期,在这里我想借助我的一个小项目——班级通讯录管理系统,谈谈我的一些想法和学习心得。这个项目在IDEA开发,使用MySQL作为数据库,使用JavaFx SenceBuilder设计界面。所以我觉得这个项目可以简单地帮助初学者了解数据库地连接和javafx的简单使用。 软件 编辑器:IDEA2020.1 JDK版本:1.8.0_251 数据库:MySQL 8.0.20 其他:JavaFx SenceBuilde 阅读详情

Java代码实现班级通讯录系统(连接mysql数据库)

package one;

import java.sql.*;
import java.util.Scanner;

public class AddressBook_Pro {
         private static String connect = "jdbc:mysql:///studentinformation";
         private static String user = "root";
         private static String passward = "root";
         private static String driver="com.mysql.cj.jdbc.Driver";
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        while(true){
            welcome();

            System.out.println("请输入您的选择:");
            int choice = sc.nextInt();
            switch (choice){
                case 1:
                    DataBaseAdd();
                    break;
                case 2:
                    DataBaseDelete();
                    break;
                case 3:
                    DataBaseChange();
                    break;
                case 4:
                    DataBaseFindAll();
                    break;
                case 5:
                    DataBaseFindsingle();
                    break;
                case 6:
                    System.out.println("谢谢使用!");
                    System.exit(0);
                    break;
                default:
                    System.out.println("您输入的信息有误");
                    break;
            }
        }
    }


    public static void welcome(){
        System.out.println("***************欢迎来到学生信息管理系统!!****************");
        System.out.println("----------1.添加学生通讯录信息--------------");
        System.out.println("----------2.删除学生通讯录信息--------------");
        System.out.println("----------3.修改学生通讯录信息--------------");
        System.out.println("----------4.查询所有学生的通讯录信息---------");
        System.out.println("----------5.按学号查询单个学生的通讯录信息----");
        System.out.println("----------6.退出-------------------------");
    }


    public static void DataBaseAdd(){
        Scanner sc = new Scanner(System.in);
        Connection();
        Connection conn = null;
        Statement stmt = null;
        ResultSet resultSet = null;
        try {
            String id;
            String name;
            String qq;
            String phone;
            String address;

            //定义sql语句
            String sql1 = "select * from addressbook";
            //3.获取连接对象
            conn = DriverManager.getConnection(connect, user, passward);
            stmt = conn.createStatement();

            resultSet = stmt.executeQuery(sql1);

            while(true){
                resultSet = stmt.executeQuery(sql1);
                resultSet.next();
                System.out.println("请输入学生学号:");
                id = sc.next();
                if(resultSet.isAfterLast()!=resultSet.isBeforeFirst()){
                ////isBeforeFirst()的作用是获取光标是否位于此 ResultSet 对象的第一行之前,而isAfterLast()的作用是获取光标是否位于此ResultSet 对象的最后一行之后,若这两个得到的值相等,则说明rs获得的内容为空;注意一点是rs获得的内容的判断不能用null来进行判断,若使用,则不能实现所要的结果。
                    if(resultSet.getString("id").equals(id)) {
                        System.out.println("您输入的学号已经存在,请重新输入!");
                        continue;
                    }else {
                        resultSet.close();
                        break;
                    }
                }else {
                    resultSet.close();
                    break;
                }
            }

            System.out.println("请输入学生姓名:");
            name = sc.next();

            System.out.println("请输入学生QQ:");
            qq = sc.next();

            System.out.println("请输入学生phone");
            phone = sc.next();

            System.out.println("请输入学生address");
            address = sc.next();
            //定义SQL
            String sql = "insert into addressbook(id,name,qq,phone,address) value('"+id+"','"+name+"','"+ qq +"','"+phone+"','"+address+"')";

            int count = stmt.executeUpdate(sql);
            if(count>0){
                System.out.println("添加成功!");
            }else{
                System.out.println("添加失败!");
            }

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }


    public static void DataBaseChange(){
        Scanner sc = new Scanner(System.in);
        Connection();
        Connection conn = null;
        Statement stmt = null;
        ResultSet resultSet = null;
        try{
            int count =0;
            String qq ;
            String name ;
            String phone ;
            String address ;

            System.out.println("请输入您要修改的学号: ");
            String id = sc.next();
            //获取连接对象
            conn = DriverManager.getConnection(connect, user, passward);
            //定义sql语句
            String sql1 =  "select * from addressbook where id = ('"+id+"')";
            stmt = conn.createStatement();
            resultSet = stmt.executeQuery(sql1);

            while(resultSet.next()){
                if(resultSet.getString("id").equals(id)) {
                    System.out.println("请输入学生姓名:");
                    name = sc.next();

                    System.out.println("请输入学生QQ:");
                    qq = sc.next();

                    System.out.println("请输入学生phone");
                    phone = sc.next();

                    System.out.println("请输入学生address");
                    address = sc.next();

                    String sql =  "update addressbook set name='"+name+"',qq='"+qq+"',phone='"+phone+"',address='"+address+"' where id = '"+id+"' ";
                    int num = stmt.executeUpdate(sql);

                    if (num > 0) {
                        System.out.println("修改成功!");
                    } else {
                        System.out.println("修改失败!");
                        System.out.println("请检查输入的学号!");
                    }
                    count++;
                    break;
                }
            }
            if(count ==0){
                System.out.println("very sorry,您要输入的学生信息不存在,请重新输入!");
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }


    public static void DataBaseDelete(){
        Scanner sc = new Scanner(System.in);
        Connection();
        Connection conn = null;
        Statement stmt = null;
        try{//获取连接对象
            conn = DriverManager.getConnection(connect, user, passward);
            stmt = conn.createStatement();

            System.out.println("请输入您要删除的学号: ");
            String input = sc.next();
            //定义sql语句
            String sql =  "delete from addressbook where id = ('"+input+"')";
            int count = stmt.executeUpdate(sql);

            if (count > 0) {
                System.out.println("删除成功!");
            } else {
                System.out.println("删除失败!");
                System.out.println("非常抱歉,您要删除的学生不存在,请重新输入!!!");
            }

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }


    public static void DataBaseFindsingle(){
        Scanner sc = new Scanner(System.in);
        Connection();
        Connection conn = null;
        Statement stmt = null;
        ResultSet resultSet = null;
        try{//获取连接对象
            conn = DriverManager.getConnection(connect, user, passward);
            stmt = conn.createStatement();

            int count = 0;

            System.out.println("请输入您要查询的学号: ");
            String input = sc.next();
            //定义sql语句
            String sql =  "select * from addressbook where id = ('"+input+"')";
            resultSet = stmt.executeQuery(sql);

            while(resultSet.next()){
                if(resultSet.getString("id").equals(input)) {
                    String id;
                    String name;
                    String QQ;
                    String phone;
                    String address;
                    id = resultSet.getString("id");
                    name = resultSet.getString("name");
                    QQ = resultSet.getString("QQ");
                    phone = resultSet.getString("phone");
                    address = resultSet.getString("address");
                    System.out.println("学号" + "\t" + "\t" + "姓名" + "\t" + "\t" + "QQ" + "\t" + "\t" + "phone" + "\t" + "\t" + "address");
                    System.out.println(id + '\t' + "\t" + name + '\t' + "\t" + QQ + '\t' + "\t" + phone + '\t' + "\t" + address);
                    count++;
                    break;
                }
            }
               if(count ==0){
                   System.out.println("没有该学号学生的通讯录信息,请检查输入的学号!!");
               }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

    }


    public static void DataBaseFindAll(){
        Connection conn = null;
        Statement stmt =null ;
        Connection();
        try {
            //定义sql
            String sql = "select * from addressbook";
            //3.获取连接对象
            conn = DriverManager.getConnection(connect,user,passward);
            stmt = conn.createStatement();

            ResultSet count = stmt.executeQuery(sql);
            if(count.next()==false){
                System.out.println("非常抱歉,当前没有学生信息可供查看!");
                conn.close();
            }else {
                ResultSet resultSet = stmt.executeQuery(sql);
                String id;
                String name;
                String QQ;
                String phone;
                String address;
                System.out.println("学号" + "\t" + "\t" + "姓名" + "\t" + "\t" + "QQ" + "\t" + "\t" + "phone" + "\t" + "\t" + "address");
                while (resultSet.next()) {
                    id = resultSet.getString("id");
                    name = resultSet.getString("name");
                    QQ = resultSet.getString("QQ");
                    phone = resultSet.getString("phone");
                    address = resultSet.getString("address");
                    System.out.println(id + '\t' + "\t" + name + '\t' + "\t" + QQ + '\t' + "\t" + phone + '\t' + "\t" + address);
                }
                resultSet.close();
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }


    public static void Connection(){
        try {
            //1.注册驱动
            Class.forName(driver);

        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

java版本:11
MySQL版本:8.0
数据库管理工具:Navicat

实现结果:

在这里插入图片描述
在这里插入图片描述

写的若有不对的的地方希望大佬多多指正。

java连接MySQL版本的电话本管理系统 最近老师讲到了JDBC,以电话簿为例,系统的整理一下 要求: 1.创建数据库test中,创建一张名为telephone的表 2.telephone包含的字段有ID(主键自增)、Name、Sex、Age、Telephone、QQ、Address 3.使用程序完成增删改查的功能。 4.具体实现方式仿照8月26日课堂案例。 5.要求:使用PreparedStatement来完成(1)打开Nav 阅读详情

相关推荐

基于JAVA桌面通讯录系统

技术:Java等 摘要:随着社会经济的高速发展,通信工具的开发与运用,人与人之间的联系愈加频繁,通讯录信息的日益增加,传统的手工通讯录模式已经无法满足时代发展需求,为了满足人们当前的需求,方便用户查找联系人信息,结合计算机技术的成熟,开发了这个基于Java桌面通讯录系统。此系统是一个基于C/S模式的通讯录管理系统,采用Java编程语言开发,并且利用MYSQL数据库进行系统数据的存储,充分保证了系统的稳定性和安全性。使用本系统实现通讯录的基本功能和备忘录的基本功能。关键词:通讯录;Java编程语言;MYSQL

m0_60323945的博客 421

数据库--教务管理系统(Java部分--Java-jdbc连接)

数据库--教务管理系统(Java部分--Java-jdbc连接)

weixin_69491512的博客 1961

Java通讯录系统开发:全面指南

本文还有配套的精品资源,点击获取 简介:本文详细解析了开发一个具有来电号码姓名查询和搜索功能的Java公司通讯录系统。该系统基于MVC设计模式,涉及数据库操作、姓名查询与模糊匹配、来电号码实时识别、全局关键词搜索、用户友好的图形界面设计、异常处理、数据安全性保护、性能优化以及系统可扩展性考虑。本文旨在为Java开发者提供全面的技术指南,帮助他们理解和掌握构建高效、安全、易于...

weixin_35732273的博客 1004

java从学号中提取班级_如何实现表间查询并提取班级号

今天下午在整理学生模块成绩时,突然发现学生的模块成绩表中的班级是教学班,而发展报告是要求按行政班进行填写的.就有个问题了:如何按学籍号(因为发展报告只需要用学籍的学生填写),而现在就要把模块成绩表中的班级号改成行政班号.其实以前也遇到过类似问题,都是用笨法,复制/粘贴然后排序,一个个的查找看看是否有漏掉的.实在是麻烦,现在可以利用Excel中的函数Match来解决了.原理:返回在指定方式下与指定数...

weixin_29006187的博客 1359

C# .NET网络通讯录系统完整教程

NET平台由微软开发,是一个用于构建、部署和运行应用程序的全面框架。它不仅支持多种编程语言,如C#、VB.NET等,还提供了丰富的类库,适用于构建多种类型的应用程序,从桌面到Web、移动设备再到云计算平台。本系统主要分为以下几个模块:用户管理模块:负责用户注册、登录、信息修改等用户相关的操作。联系人管理模块:负责联系人的添加、编辑、删除以及分类管理等操作。通讯录数据存储模块:负责存储联系人信息,包括数据的增删改查。网络通信模块:负责客户端与服务器之间的数据交换。

weixin_42594427的博客 987

javaweb开发实用的B/S通讯录包含需要的数据库导入文件

功能强大,实用,能带你进入比较快速进入javaweb开发~~ 增删改查,分页,样样齐全~~外加附带数据库文件,下载导入就能使用

java如何读取学生信息_[Java]班级学生信息写入文件和从文件中读出 - 代码贴 - BCCN...

package QQ9_20;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutp...

weixin_29268267的博客 995

java通讯录连接mysql数据库.pdf

java通讯录连接mysql数据库.pdfjava通讯录连接mysql数据库.pdfjava通讯录连接mysql数据库.pdfjava通讯录连接mysql数据库.pdfjava通讯录连接mysql数据库.pdf

Maven + MyBatis + JavaFX——班级通讯录系统

MyBatis + Maven + MySQL

qq_43688417的博客 1807

Java+Swing+Mysql实现通讯录管理系统

Java+Swing+Mysql实现通讯录管理系统,系统经多次测试,运行无误,大家放心下载。

sysrepo 开发者指南(一个基于libyang与支持rpc的数据库)

sysrepo 开发者指南(一个基于libyang与支持rpc的数据库) 日志记录 默认情况下,所有 Sysrepo 日志记录都处于关闭状态。如果启用,日志消息有 3 种输出。它们可以写入stderr、由 处理syslog或简单地传递给回调。 请务必注意,启用 Sysrepo 日志记录也会修改libyang日志记录设置。错误消息被视为标准 Sysrepo 错误,其他严重性较低的消息完全隐藏。要更改此行为,只需在启用 Sysrepo 日志记录后调整libyang日志记录设置。 此外,几乎每个 Sysrepo

weixin_43489394的博客 9231

Java《个人通讯录系统》【附源码】

基于Java Swing的个人通讯录管理系统。系统包含用户管理(注册、登录、修改密码)和联系人管理(增删改查)两大模块。用户信息存储在MySQL的users表,联系人数据保存在contacts表,通过JDBC实现数据库连接。界面包括登录窗口、主操作窗口和各类对话框,采用Swing组件构建。系统实现了联系人添加时的唯一性校验、密码修改的安全验证等功能,并通过表格展示数据。

weixin_44207499的博客 1047

GATK SNP过滤参数优化:从标准到个性化调整的实践指南

本文深入探讨了GATK SNP过滤参数的个性化调整策略,强调不应盲目套用官方标准参数。文章详细拆解了QD、FS、SOR等关键过滤参数的含义,并提供了通过数据分布分析、文献调研和迭代测试来确定适合自身数据(如动植物重测序)最佳阈值的实践方法,旨在帮助研究者在保留真实变异与剔除假阳性信号之间找到最优平衡。

weixin_29216049的博客 278

Java+MySQL图形界面编程模拟通讯录系统

需求分析 通讯录信息管理系统的功能总结起来,共需要以下几个方面: 1、通讯录中联系人的增加、保存功能 2、联系人的信息检索功能,包括对联系人的信息排序(如:按年龄排序),精确查找,条件查询等快捷功能 3、联系人信息修改与删除功能,通过本系统可快速修改联系人信息,批量删除和全部删除。 结构设计 根据对系统的需求分析,本系统将分为 3 个模块: 输入信息管理: 管理联系人的基本信息录入。 查询信息管...

沸腾的石灰 8290

告别密码!用VScode+SSH一键连接树莓派,再也不用每次输密码了

本文详细介绍了如何通过VScode和SSH密钥实现树莓派的免密连接,告别繁琐的密码输入。从开发环境准备、SSH密钥生成与配置,到VScode远程连接优化和常见问题排查,提供了一套完整的解决方案,帮助开发者提升工作效率。

weixin_28831341的博客 173

MOOS-ivp实战:从零搭建水下机器人通信系统(Ubuntu 22.04版)

本文详细介绍了在Ubuntu 22.04系统上从零开始搭建MOOS-ivp水下机器人通信系统的完整实战流程。内容涵盖环境准备、核心安装、MOOSDB通信模型解析、自定义应用节点开发、以及调试监控工具链的使用,旨在帮助开发者快速掌握这一分布式机器人系统框架,构建稳定可靠的水下机器人通信与控制系统。

snow3的博客 636

【源码+文档】基于ssm的个人通讯录系统

在你的计算机科学学习和研究旅程中,选择合适的工具和资源至关重要。基于ssm的个人通讯录系统设计与实现计算机项目源码,是你迈向成功的重要一步。

2402_84485123的博客 794

Android16 动态隐藏systemUI右侧音量条

本文介绍了如何屏蔽SystemUI系统音量条并显示自定义音量控制条的实现方法。主要通过两个步骤:1)在编译脚本中定义控制属性persist.rp.show.volume.dialog=off来隐藏系统音量条;2)修改SystemUI源码中的VolumeDialogImpl.java文件,在showH方法中根据属性值判断是否显示系统音量条。当属性值为off时直接return,从而屏蔽系统音量条的显示,实现自定义音量控制条的替代显示。该方法通过系统属性控制显示状态,具有灵活可控的特点。

tzj1058756809的博客 781

基于java个人通讯录系统论文

论文成果总结:系统功能完成度与创新点不足与改进方向:扩展云端同步、多端适配等。

QQ_402205496的博客 377

python乘法运算 信息素养大赛复赛/决赛真题 小学组/初中组 python编程挑战赛 真题详细解析

本文解析了全国青少年信息素养大赛Python编程挑战赛的乘法运算题目。题目要求通过递归算法实现两个自然数的乘法运算,并输出算式。算法分析指出可将乘法转化为累加,使用递归函数实现。程序代码展示了一个自定义函数add(),通过递归调用完成累加运算。文章还分析了考点,包括递归函数、输入处理、分支语句等编程基础知识的应用。最后强调解题方法的多样性,重点在于理解递归原理和实现题目要求。该题目难度适中,主要考查选手对递归算法的理解和编程基础能力。

青少年编程学习指导 789

你一直忽略的神器:离你最近的超强语音输入法(微信语音输入全攻略,支持全局混用)

你一直忽略的语音输入工具🎤 ,其实就在身边!无需额外软件,即可实现全局语音转文字⚡ 支持中英文混输,还能与其他输入法混合使用,聊天、办公都能高效完成,让你的输入效率轻松翻倍🚀

XiaoqiangClub的博客 920

Linux——Ubuntu中使用C语言连接Mysql数据库做一个简单的通讯录

目录 系统功能要求 相关软件要求 设计思路 程序功能图 功能流程图 C程序的编写运行 程序运行效果 总结与分析 附录(C程序代码) 系统功能要求 1、用户需要用户名和密码登录才能对通讯录进行各种操作 2、用户登录后可修改自己的密码 3、用户登录后可以对个人通讯录进行增、删、改、查的功能 4、不能对别的用户的通讯录进行任何操作 相关软件要求 编程语言:C语言,并...

苦作舟的空城机 3009

电路设计仿真软件:Mentor Graphics_(11).MentorGraphics软件操作与技巧

/ 定义自定义仿真命令// 加载设计文件// 运行仿真// 主函数return 1;return 0;// 自定义设计检查// 获取设计中的所有模块// 遍历所有模块// 检查模块名称是否符合规范if (!// 检查模块中的所有引脚if (!// 主函数main() {通过本节的学习,您应该已经掌握了如何在 Mentor Graphics 中进行二次开发,包括使用 Tcl、C++ 和 Python 进行基本和高级操作。

kkchenjj的博客 1646

基于JSP的JSP MYSQL个人通讯录系统系统javaweb个人通讯录系统系统mysql数据源

基于JSP的JSP+MYSQL个人通讯录系统系统javaweb个人通讯录系统系统mysql数据源 1.包含源程序,数据库脚本。 2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善。 开发环境: Eclipse ,MySQL 5.1,JDK1.7,Tomcat 7 涉及技术点: MVC模式、JavaWeb、JDBC、HTML、CSS、JQUERY、分页、等。 使用工具: 后台界面 -&gt...

QQ80213251的博客 2665

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Java~通讯录系统

Java~通讯录欢迎各位1、需求分析2、概要设计2.1功能模块结构图2.2业务流程图3 运行环境4 开发工具和编程语言5 详细设计5.1 数据库设计5.2 类的设计 1、需求分析 在设计一个完整的系统中,我从系统的管理员登录界面开始做,另外依据相关要求,对系统增加了数据库支持(MySQL做的数据库),还有对数据库里的数据进行增加、删除、显示所有记录、查询记录、修改记录、导出备份数据库文件、导入数据库文件。为了保证数据库的安全,在系统中设立了管理员权限,即只有被允许的用户才可以进入该系统。此外,还增设了用户注

陌年的博客 5300

深度学习工具包 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")

基于JSP个人通讯录系统

技术:Java、JSP等 摘要:随着科技的发展,互联网和移动通讯技术的融合愈来愈完美,基于这种技术的网络产品已经成为人们生活中不可或缺的一部分。与此同时,21世纪是一个信息爆炸的时代,信息量不断增多,沟通日益现代化,因此人们需要一个方便快捷的方式来存储大量的通讯信息。通过对人们想要通讯录实现具体功能的深入调查与分析以及对其他通讯录系统的学习,为用户量身定制了一个实用的个人通讯录,使用户可以通过Web,WAP等方式随时随地进行访问。个人通讯录系统是一个专门针对储存用户联系方式多以及一些个人信息的实用信息系统,

myqq374327792的博客 398

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: JAVA代码实现学生信息的录入和查询
下一篇: java JDBC连接MySQL数据库调用存储过程进行查询
CrazyCodePlayer..
博客等级 码龄6年 37粉丝 5原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值