宿舍管理查询系统

数据结构课程设计——宿舍管理查询软件 山东大学数据结构课程设计——宿舍管理查询软件 问题描述 1)编写一个宿舍管理查询软件,程序设计要求 A采用交互工作方式 B建立数据文件,数据文件按照关键字(姓名,学号,房号)进行排序 2)查询菜单 A按照姓名查询 B按照学号查询 C按照房号查询 3)打印任意查询结果(可以连续操作) 程序设计 1,读取数据文件(xxx.txt),如不存在该文件,则创建同名文件(添加 增加和删除 两项操作)。 2,对数据文件可以进行关键字排序 3,可以按照关键字进行查询 4,可以对查询结果进行修改(多次查询结果累加,可以进行连 阅读详情

宿舍管理查询系统,由于博主是小萌新,代码难免有冗余和错误的地方,如果您发现有什么不足之处或者错误,请留言,谢谢。博主会尽量回复!

C++使用IO流关联.txt文件

各模块之间的调用关系如下:

这里写图片描述

函数的调用关系反映了演示程序的层次结构:

这里写图片描述

代码如下:

#include<iostream>
#include<fstream>
#include<iomanip>
#include<cstdlib>
#include<string>
using namespace std;
#define MAXSIZE 100     //顺序表的最大长度
typedef struct {
    string name;        //姓名
    string id;          //学号
    string dormid;      //宿舍号
}Student;
typedef struct {
    Student r[MAXSIZE + 1];     //r[0]做单元哨兵
    int length;//长度
}SqList;


//用直接插入排序存入到student.txt文件中
void InsertSort(SqList &stu)
{
    int i, j;
    for (i = 2; i <= stu.length; i++)
        if (stu.r[i].id < stu.r[i - 1].id)
        {
            stu.r[0] = stu.r[i];
            stu.r[i] = stu.r[i - 1];
            for (j = i - 2; stu.r[0].id < stu.r[j].id; j--)
                stu.r[j + 1] = stu.r[j];
            stu.r[j + 1] = stu.r[0];
        }
    ofstream outfile("student.txt", ios::out);
    if (!outfile) {                             //如果文件打开失败
        cout << "文件打开失败" << endl;
        exit(1);
    }
    //outfile << "学号" << setw(8) << "姓名" << setw(8) << "宿舍号" << endl;
    outfile << stu.length << endl;

    for (i = 1; i <= stu.length; i++) {
        outfile << stu.r[i].id << setw(8) << stu.r[i].name << setw(8) << stu.r[i].dormid << endl;
    }
    cout << "学生信息数:" << stu.length << endl;
    outfile.close();
    cout << stu.length;
}

//创建学生信息(只能创建一次,不然会被刷新)
void InitList(SqList &stu)
{

    int i;
    cout << "学号" << setw(8) << "姓名" << setw(8) << "宿舍号" << endl;
    for (i = 1; i <= stu.length; i++) {
        cin >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid;
    }
    InsertSort(stu);
}

//增加学生信息
void Addstudent(SqList &stu)
{
    int n;
    int i = stu.length + 1;
    cout << "输入增加学生人数" << endl;
    cin >> n;
    cout << "学号" << setw(8) << "姓名" << setw(8) << "宿舍号" << endl;
    stu.length = stu.length + n;
    for (i; i <= stu.length; i++)
        cin >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid;
    InsertSort(stu);
}

//查询学生信息
void Findstudent(SqList &stu)
{
    string a, b, c;
    string name, id, dormid;
    cout << "1.学号查询  2.姓名查询  3.宿舍号查询" << endl;
    cout << "请输入你的查询选择(1~3)" << endl;
    int i;
    int n;
    cin >> n;
    if (n < 1 && n>3)
    {
        cout << "您输入有误,请重新输入:" << endl;
        Findstudent(stu);
    }
    if (1 == n)
    {
        cout << "请输入学生学号:" << endl;
        cin >> id;

        ifstream infile("student.txt", ios::in);//定义输入文件流对象,以输入方式打开磁盘文件"student.txt"
        infile >> stu.length;
        for (i = 1; i <= stu.length; i++) {
            infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid;
        }
        infile.close();
        for (i = 1; i <= stu.length; i++)
        {
            infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid;
            if (stu.r[i].id == id)
                cout << stu.r[i].id << setw(8) << stu.r[i].name << setw(8) << stu.r[i].dormid << endl;
        }

        infile.close();//关闭磁盘文件

    }
    if (2 == n)
    {
        cout << "请输入学生姓名:" << endl;
        cin >> name;

        ifstream infile("student.txt", ios::in);//定义输入文件流对象,以输入方式打开磁盘文件"student.txt"
        infile >> stu.length;
        for (i = 1; i <= stu.length; i++) {
            infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid;
        }
        infile.close();
        for (i = 1; i <= stu.length; i++)
        {
            infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid;
            if (stu.r[i].name == name)
                cout << stu.r[i].id << setw(8) << stu.r[i].name << setw(8) << stu.r[i].dormid << endl;
        }

        infile.close();//关闭磁盘文件
    }
    if (3 == n)
    {
        cout << "请输入学生宿舍号:" << endl;
        cin >> dormid;

        ifstream infile("student.txt", ios::in);//定义输入文件流对象,以输入方式打开磁盘文件"student.txt"
        infile >> stu.length;
        for (i = 1; i <= stu.length; i++) {
            infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid;
        }
        infile.close();
        for (i = 1; i <= stu.length; i++)
        {
            infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid;
            if (stu.r[i].dormid == dormid)
                cout << stu.r[i].id << setw(8) << stu.r[i].name << setw(8) << stu.r[i].dormid << endl;
        }
    }

}

//修改学生信息
void Renewstudent(SqList &stu)
{
    int n;
    string id, name, dormid;
    cout << "1.姓名  2.宿舍号" << endl;
    cout << "请输入您的选择(1~2):" << endl;
    cin >> n;
    cout << "请输入需要修改学生的学号" << endl;
    cin >> id;
    if (n != 1 && n != 2)
    {
        cout << "输入有误,请重新输入:" << endl;
        Renewstudent(stu);
    }
    if (1 == n)
    {
        cout << "请输入修改姓名" << endl;
        cin >> name;
        int i = 0;
        ifstream infile("student.txt", ios::in);
        infile >> stu.length;
        for (i = 1; i <= stu.length; i++) {
            infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid;
        }
        infile.close();
        for (i = 1; i <= stu.length; i++)//先找到再修改
        {
            if (stu.r[i].id == id)
            {
                stu.r[i].name = name;
                InsertSort(stu);
                return;
            }
        }
    }
    if (2 == n)
    {
        int i;
        cout << "请输入修改宿舍号" << endl;
        cin >> dormid;
        ifstream infile("student.txt", ios::in);
        infile >> stu.length;
        for (i = 1; i <= stu.length; i++) {
            infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid;
        }
        infile.close();
        for (i = 1; i <= stu.length; i++)//先找到再修改
        {
            if (stu.r[i].id == id)
            {
                stu.r[i].dormid = dormid;
                InsertSort(stu);
                return;
            }
        }
    }

}

//显示宿舍信息
void Showstudent(SqList &stu)
{
    string a, b, c;
    int i;
    cout << "学生的信息如下:" << endl;
    cout << "**********************************" << endl;
    ifstream infile("student.txt", ios::in);
    if (!infile) {                              //如果文件打开失败
        cout << "文件打开失败" << endl;
        exit(1);
    }
    /*infile >> a >> b >> c;//从磁盘文件读入
    cout << a << setw(8) << b << setw(8) << c << endl;//在显示器上显示*/
    infile >> stu.length;
    for (i = 1; i <= stu.length; i++) {
        infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid;
        cout << stu.r[i].id << setw(8) << stu.r[i].name << setw(8) << stu.r[i].dormid << endl;
    }
    infile.close();
}

//删除宿舍信息
void Deletstudent(SqList &stu)
{
    int  i, j;
    string a, b, c, id;
    cout << "请输入删除学生学号" << endl;
    cin >> id;
    ifstream infile("student.txt", ios::in);//定义输入文件流对象,以输入方式打开磁盘文件"student.txt"
    infile >> stu.length;
    for (i = 1; i <= stu.length; i++) {
        infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid;
    }
    infile.close();
    for (i = 1; i <= stu.length; i++)//先找到再删除
    {
        if (stu.r[i].id == id)
        {
            for (j = i; j<stu.length; j++)
                stu.r[j] = stu.r[j + 1];
            stu.length--;
            InsertSort(stu);
            return;
        }
    }
}

//主函数
int main()
{
    SqList stu;
    int n;
    for (;;)
    {
        cout << "**************************宿舍管理查询软件**************************" << endl;
        cout << "1. 创建学生信息" << endl;                        //InitList
        cout << "2. 增加学生信息" << endl;                        //Addstudent    
        cout << "3. 查询学生信息" << endl;                        //Findstudent
        cout << "4. 显示学生信息" << endl;                        //Showstudent
        cout << "5. 修改学生信息" << endl;                        //Renewstudent
        cout << "6. 删除学生信息" << endl;                        //Deletstudent
        cout << "0. 退出系统" << endl;
        cout << "*******************************************************************" << endl;
        cout << "请输入你需要的操作(0~6):" << endl;
        cin >> n;
        switch (n)
        {
        case 1:
            cout << "输入学生人数" << endl;
            cin >> stu.length;
            InitList(stu);
            cout << "###########################################" << endl;
            break;
        case 2:
            Addstudent(stu);
            cout << "###########################################" << endl;
            break;
        case 3:
            Findstudent(stu);
            cout << "###########################################" << endl;
            break;
        case 4:
            Showstudent(stu);
            cout << "###########################################" << endl;
            break;
        case 5:
            Renewstudent(stu);
            cout << "###########################################" << endl;
            break;
        case 6:
            Deletstudent(stu);
            cout << "###########################################" << endl;
            break;
        case 0:
            cout << "您已退出系统!" << endl;
            return 0;
        }

    }
    system("pause");
    return 0;
}
C语言——宿舍管理查询系统设计 数据结构——宿舍管理查询系统设计算法实现:宿舍管理查询系统设计1) 任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:  A. 采用交互工作方式  B. 建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)2) 查询菜单: (用二分查找实现以下操作)  A. 按姓名查询   B. 按学号查询   C. 按房号查询3) 打印任一查询结果(可以连续... 阅读详情

相关推荐

宿舍管理查询系统(数据结构)

这是我做的数据结构课程设计,使用的是c语言编译,该程序实现了较多的宿舍管理查询功能。供大家参考,谢谢。

数据结构课程设计-宿舍管理查询软件-(C/C++)

本次课程设计的题目是宿舍管理查询软件,要求可以存入学生信息,学生信息包括学生学号、姓名、班级、年龄、班级、宿舍号等各项基本信息,如下表1.1。该系统主要有以下六个功能,即对学生信息进行:输入、打印、查询、修改、删除、排序等功能。使用的C语言/C++,里面运用到了希尔排序,二分排序等,适用于大学生的数据结构课程设计。

leiting0817的博客 1万+

宿舍管理信息系统

javaweb大作业,宿舍管理系统

宿舍管理查询软件

一、项目概述 本项目是博主之前用纯C语言写的一个软件,目的是为了给宿舍管理人员编写一个宿舍管理查询软件,该软件具有以下功能: 建立数据文件,文件中保存着宿舍入住人员的信息,包括姓名、学号、房号、 联系电话、家庭联系电话等; 软件中可按关键字(姓名、学号、房号)对人员信息进行排序; 软件提供查询功能(用二分查找实现以下操作)可分别按姓名、学号、房号等 进行查询 可在软件中增加和删除入住人员。 说完概述,话不多说,上图!给大家看最终成品。 未登陆时 登录成功时 登陆失败时 增加学生页面 修改学生页面

Emb_Salute的博客 2007

宿舍管理系统 宿舍管理查询软件

宿舍管理查询软件 (1)采用交互工作方式 (2)可以增加、删除、修改信息 (3)建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(选择、快速排序、堆排序等任选一种) (4) 查询 : a.按姓名查询 ;b.按学号查询 ;c按房号查询 (5) 打印任一查询结果(可以连续操作)

宿舍查询系统

宿舍管理查询系统实验报告

学生宿舍管理系统

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<time.h> typedef struct sushe //宿舍 { char name[100]; //姓名 char sushehao[100]; //宿舍号 char banji[100]; //班级 char xueyuan[100]; //学院 int cnt; //费用 struct su

ZiQqing的博客 546

宿舍管理系统源代码

根据功能说明,设计其存储结构,数据存储在文件中,界面要求有合理的提示,每个功能可以设立菜单,根据提示可以完成相关的功能要求。在编译、连接与运行程序的过程中,应充分利用调试方法与工具,同时不断总结编写和调试较大型程序的经验与体会,按设计的要求写出设计报告。

【数据结构】 宿舍管理查询软件

问题描述 某高校学生的住宿安排比较灵活,一个学院有可能住在不同的宿舍楼,为方便学生管理者快速查找学生的住宿信息,设计一个小型的宿舍管理查询软件。其中学生信息包括:学号、姓名、学院、楼号、房间号。 一堆废话 很久没有更新博客了,小白刚刚历经考试周的打击,百废待兴,赶紧跑来优快云和小伙伴们取暖安慰受伤的心灵。近期会陆续写四篇数据结构课设的博客,然后再写两篇编写小游戏的博客,一个是基于Python的飞...

Up_Long的博客 7400

ZYNQ新手必看:你的PS端DDR和QSPI配置真的对了吗?从原理到实操的避雷指南

本文深入解析ZYNQ PS端外设配置的关键要点,特别是DDR匹配和QSPI时钟优化的实战技巧。通过详细案例和配置清单,帮助开发者避免常见错误,确保系统稳定性和启动可靠性。适合ZYNQ新手和需要优化最小系统的开发者参考。

weixin_28675839的博客 447

EDEM在农业机械设计中的实战应用:以谷物收割机优化为例

本文以谷物收割机优化为例,详细阐述了EDEM离散元仿真软件在农业机械设计中的实战应用。通过构建精准的“数字谷物”模型与农机部件动态界面,利用GPU加速完成大规模颗粒系统仿真,有效诊断并解决了籽粒夹带损失与清选负荷不均等田间难题,实现了从仿真分析到田间验证的设计优化闭环。

weixin_29256771的博客 110

宿舍楼查询系统c语言程序,宿舍管理查询系统

已结贴√问题点数:20回复次数:1 宿舍管理查询系统想在查询前增加排序功能(排序方式不限)#include#include#include#include#includeusing namespace std;int i=0;class Student{private:string number[100];string name[100];string address[100];public:...

weixin_39627455的博客 216

在cadence中进行sdf文件的反标及并进行数模混仿

3.在Main-Include Option Settings-Libraries Files/Directories下面加载上面说到的两个.v文件(综合文件和工艺库器件文件),其他默认点击OK;最近在做一个数模混合电路的流片工作,数字部分综合后会生成一个.sdf(标准延时格式)文件,正常来说应该是要在vcs软件上进行电路延时的反标,但由于我的电路需要信号在数字模块和模拟模块中来回循环多次,因此,打算在cadence中完成sdf文件反标,进行数模混合仿真。1.综合生成的电路网表的.v文件;

WSBHX的博客 3280

基于Java的学生宿舍电费查询缴费系统的设计与实现。宿舍管理系统

该系统使用Java程序语言编写,以开放源码的SSM和JSP技术来完成整个体系结构,以MySQL数据库形式保存数据,Tomcat则充当服务器,负责接收来自前端的用户的要求。

weixin_67794744的博客 1156

人形机器人触觉革命:压电式电子皮肤的多模态感知与自修复技术突破

本文深入探讨了压电式电子皮肤如何推动人形机器人的触觉革命。文章分析了其基于压电效应的多模态感知原理,能够灵敏检测压力、振动与温度,并重点介绍了赋予电子皮肤自修复能力的动态共价网络等前沿材料技术,从而极大提升了机器人与物理世界进行精细、安全交互的可靠性与智能化水平。

weixin_29251567的博客 194

嘉立创EDA vs Altium Designer:新手如何选择?从界面到实战全对比

本文全面对比了嘉立创EDA与Altium Designer(AD)两大PCB设计工具,从设计哲学、界面交互、封装库管理、设计规则引擎、协作功能到成本生态六大维度进行深入分析。嘉立创EDA以极简设计和云端协作为特色,适合学生和创客快速上手;而AD则凭借专业级精准控制,成为高端电子设计的行业标准。通过实战案例和详细对比表格,帮助新手根据项目需求选择合适的EDA工具。

weixin_30296405的博客 721

宿舍管理查询软件系统

宿舍管理查询软件系统题目描述基本要求如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 题目描述 为宿舍管理人员编写一个宿舍管理查询软件。 基本要求 (1)采用交互工作方式 (2)可以增加、删除、修改信息 (3)建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(选 择、快速排

weixin_44389717的博客 2219

Python爬虫实战——如何自动爬取百度搜索结果页面

本文介绍了如何使用Python爬虫抓取百度搜索结果页面的内容,包括如何构建搜索URL、获取页面HTML、解析内容、处理翻页以及存储数据等。通过该教程,您可以轻松实现批量抓取百度搜索结果,并为后续的数据分析和处理打下基础。希望本文能为您在爬虫开发、数据分析等领域提供帮助。如果您在实际应用过程中遇到问题,可以参考反爬虫应对策略,并结合实际需求进行调整。

2201_76125261的博客 1711

宿舍管理查询系统_宿舍管理系统

一、基础功能简介初始登录角色管理员宿舍楼信息管理导入学生信息管理导入离校重置修改删除查询职工信息管理导入添加重置修改删除查询宿管个人信息管理个人信息修改密码学生信息查询保修单管理未处理报修单【查询、处理、批量处理】处理中报修单【查询、处理】历史报修单【查询、导出】假期登记入校登记管理【查询、发放登记、进入历史】入校登记历史管理【查询、导出】离校登记管理【查询、发放登记、进...

weixin_42498585的博客 2269

【QT开发教程】使用Qt进行NFC编程

近场通信(NFC,Near Field Communication)技术广泛应用于现代设备中,例如智能手机、支付终端和门禁系统。Qt提供了一套完整的NFC模块,使开发者可以轻松地在应用程序中实现NFC功能。本文将介绍如何在Qt中进行NFC编程,包括基本概念、使用方法以及一些实际的示例。

科技改变人类,技术成就未来 1470

论文必备 - 绘制YOLOv8模型在训练过程中,精准率,召回率,mAP_0.5,mAP_0.5:0.95,以及各种损失的变化曲线

文件是模型在训练过程中,实时记录训练的结果,和当时控制台输出的信息一致。当然还包含一些验证损失,学习率变化等数据。epoch:记录训练的轮次,总轮次为训练文件中设置的epochs大小。:边界框损失。在训练过程中,此值逐渐变小,越小表示模型预测的边界框与真实边界框之间的差异越小。:分类损失。在训练过程中,此值逐渐变小,越小表示模型对目标类别的预测越准确。:分布焦点损失。将边界框的回归问题转化为对边界框四个边的分布预测问题,越小表示预测越准确。:精确率也称为查准率。

Limiiiing的博客 1407

查询宿舍信息的c语言,学生宿舍管理系统 C语言编程

《学生宿舍管理系统 C语言编程》由会员分享,可在线阅读,更多相关《学生宿舍管理系统 C语言编程(22页珍藏版)》请在人人文库网上搜索。1、“学生宿舍管理系统” C C 语言课程设计报告语言课程设计报告 一、一、 程序功能简介程序功能简介 我设计的是“学生宿舍管理系统” ,主要是针对住宿学生个人信息的管理,适用对象主 要是学校,以方便学校对住宿学生的管理。 包括学生的姓名、学号、性别、专业、班级等等...

weixin_28904519的博客 2014

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

基于Java+SpringBoot+Vue+HTML5学生宿舍信息的系统(源码+LW+调试文档+讲解等)/学生宿舍/宿舍信息/信息系统/宿舍管理系统/学生住宿信息/宿舍分配系统/学生宿舍查询

前端:Vue、Vue.js、ElementUI、HTML5、BootStrap、CSS3、JavaScript、jQuery、LayUI后端:SpringBoot+Mybatis数据库:MySQL、SQLServer开发工具:IDEA、Eclipse、Navicat等✌关于毕设项目技术实现问题讲解也可以给我留言咨询!!!Vue 在程序设计中以其简洁高效的语法脱颖而出。它采用了响应式的数据绑定机制,使得程序设计者能够轻松地实现数据和界面的同步更新。

2401_85513329的博客 1073

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

宿舍查询管理系统java,java学生宿舍公寓管理系统

学生宿舍公寓管理系统的功能,使学生的生活信息和学习信息充分结合在一起,为宿舍管理员、年级辅导员提供全方位的学生在校信息,以及时跟进学生学习状况,达到人性化、全方位、高效率的管理。系统采用jsp语言开发,数据库是sqlserver,开发工具是myeclipse.本站学生宿舍管理系统版本众多,这里不一一发布,有需要的可以联系客服获取详细的演示录像.总有一款满足你的毕业设计要求.系统分为3个角色,功能介...

weixin_35545782的博客 784

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

宿舍管理查询系统_C#宿舍管理系统含安装视频

教程视频 视频解决了什么问题SQL Server 导入导出SQL Server出现版本过低如何解决登录的账号密码如何修改账号密码需求分析 目前,国内使用的中小型关系数据库管理系统中,SQL Server系统占据了重要的地位,其应用范围广,普及程度高,而且是学习和应用关系型数据库管理系统较为理想的对象。 经过对学生宿舍管理信息进行调查,发现了随着近几年的高校招生人数的不断扩大,学生宿舍管理...

weixin_39922749的博客 280
下一篇: 学生宿舍系统2
DialogD
博客等级 码龄9年 10粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值