Android核心技术-day05-03-学生信息管理系统小练习

数据存储-SQLiteOpenHelper(SQLite数据库增删改查) 一、Android数据存储方式 •1.文件 •2.SQLite数据库 •3.SharedPreferences(参数) •4.内容提供者(Content Providers) •5.网络 二、SQLiteOpenHelper的使用方法 —SQLiteOpenHelper是一个访问SQLite的助手类。 —编写继承SQLiteOpenHelpe 阅读详情

package com.gaozewen.studentsystem.db;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.gaozewen.studentsystem.domain.StudentInfo;

/**
 * @author gzw
 * @version $Rev$
 * @des ${TODO}
 * @updateAuthor $Author$
 * @updateDes ${TODO}
 */
public class StudentDao {
    private StudentDBOpenHelper helper;

    public StudentDao(Context context) {
        helper = new StudentDBOpenHelper(context);
    }

    /**
     * 添加一条记录
     * @param info 学生 domain
     * @return 是否添加成功
     */
    public boolean add(StudentInfo info) {
        return add(String.valueOf(info.getId()),info.getName(),info.getPhone());
    }

    /**
     * 添加一条记录
     *
     * @param studentid 学生id
     * @param name      学生姓名
     * @param phone     学生电话
     * @return 是否添加成功 true false
     */
    public boolean add(String studentid, String name, String phone) {
        SQLiteDatabase db = helper.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("studentid", studentid);
        values.put("name", name);
        values.put("phone", phone);
        long row = db.insert("info", null, values);
        db.close();
        return row != -1;
    }

    /**
     * 删除一条记录
     *
     * @param studentid 学生id
     * @return 是否删除成功 true false
     */
    public boolean delete(String studentid) {
        SQLiteDatabase db = helper.getWritableDatabase();
        long count = db.delete("info", "studentid = ?", new String[]{studentid});
        db.close();
        return count > 0;
    }

    /**
     * 查询一条记录
     *
     * @param position 数据在数据库表里面的位置
     * @return StudentInfo
     */
    public StudentInfo getStudentInfo(int position) {
        SQLiteDatabase db = helper.getReadableDatabase();
        Cursor cursor = db.query("info", new String[]{"studentid", "name", "phone"}, null, null, null, null, null);
        cursor.moveToPosition(position);
        String studentid = cursor.getString(0);
        String name = cursor.getString(1);
        String phone = cursor.getString(2);
        cursor.close();
        db.close();
        StudentInfo result = new StudentInfo();
        result.setId(Integer.valueOf(studentid));
        result.setName(name);
        result.setPhone(phone);
        return result;
    }

    /**
     * 查询数据库里面一共有多少条记录
     *
     * @return 记录的条数
     */
    public int getTotalCount() {
        SQLiteDatabase db = helper.getReadableDatabase();
        Cursor cursor = db.query("info", null, null, null, null, null, null);
        int count = cursor.getCount();
        cursor.close();
        db.close();
        return count;
    }

    /**
     * 删除所有的数据
     *
     * @return 是否删除成功 true false
     */
    public boolean deleteAll() {
        boolean isSuccess = false;
        SQLiteDatabase db = helper.getWritableDatabase();
        try {
            db.beginTransaction();
            Cursor cursor = db.query("info", new String[]{"studentid"}, null, null, null, null, null);
            while (cursor.moveToNext()) {
                String studentid = cursor.getString(0);
                db.delete("info", "studentid = ?", new String[]{studentid});
            }
            cursor.close();
            db.setTransactionSuccessful();
            isSuccess = true;
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            db.endTransaction();
            db.close();
        }
        return isSuccess;
    }

}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/tv_item_id"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:text="学生id"
        android:textColor="#ff0000" />

    <TextView
        android:id="@+id/tv_item_name"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:text="学生name"
        android:textColor="#00ff00" />

    <TextView
        android:id="@+id/tv_item_phone"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:text="学生phone"
        android:textColor="#0000ff" />

    <ImageView
        android:id="@+id/iv_item_delete"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_marginRight="8dp"
        app:srcCompat="@drawable/block_msg_delete" />
</LinearLayout>

 

package com.gaozewen.studentsystem;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.gaozewen.studentsystem.db.StudentDao;
import com.gaozewen.studentsystem.domain.StudentInfo;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;

import org.apache.http.Header;

import java.io.File;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private EditText mEt_id;
    private EditText mEt_name;
    private EditText mEt_phone;
    private ListView mLv;
    private ArrayList<StudentInfo> mList;
    private StudentDao dao;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        initView();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.item_save:
                Toast.makeText(this, "上传到云服务器", Toast.LENGTH_SHORT).show();
                // 上传数据到云服务器的方法
                uploadDBToServer();
                break;
            case R.id.item_delet_all:
                boolean isSuccess = dao.deleteAll();
                Toast.makeText(this, isSuccess ? "删除数据成功" : "删除数据失败", Toast.LENGTH_SHORT).show();
                if (isSuccess) {
                    // 刷新界面
                    mLv.setAdapter(new MyAdapter());
                }
                break;
        }
        return super.onOptionsItemSelected(item);
    }

    /**
     * 上传数据到服务器
     */
    private void uploadDBToServer() {
        File file = new File("/data/data/com.gaozewen.studentsystem/databases/student.db");
        if (file.exists() && file.length() > 0) {
            try {
                AsyncHttpClient client = new AsyncHttpClient();
                RequestParams params = new RequestParams();
                params.put("file", file);
                client.post("http://192.168.1.102:8080/upload", params, new AsyncHttpResponseHandler() {
                    @Override
                    public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
                        Toast.makeText(MainActivity.this, "上传成功", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
                        Toast.makeText(MainActivity.this, "上传失败", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onProgress(int bytesWritten, int totalSize) {
                        System.out.println(bytesWritten + "/" + totalSize);
                        super.onProgress(bytesWritten, totalSize);
                    }
                });
            } catch (Exception e) {
                e.printStackTrace();
                Toast.makeText(MainActivity.this, "上传失败", Toast.LENGTH_SHORT).show();
            }
        } else {
            Toast.makeText(this, "文件不存在或者内容为空", Toast.LENGTH_SHORT).show();
        }
    }

    /**
     * 初始化界面
     */
    private void initView() {
        setContentView(R.layout.activity_main);
        mEt_id = (EditText) findViewById(R.id.et_id);
        mEt_name = (EditText) findViewById(R.id.et_name);
        mEt_phone = (EditText) findViewById(R.id.et_phone);
        mLv = (ListView) findViewById(R.id.lv);

        mList = new ArrayList<>();

        dao = new StudentDao(this);
        // 显示 ListView
        mLv.setAdapter(new MyAdapter());
    }

    /**
     * button 的点击事件,用来添加学生信息
     *
     * @param view
     */
    public void addStudent(View view) {
        String id = mEt_id.getText().toString().trim();
        String name = mEt_name.getText().toString().trim();
        String phone = mEt_phone.getText().toString().trim();
        if (TextUtils.isEmpty(id) || TextUtils.isEmpty(name) || TextUtils.isEmpty(phone)) {
            Toast.makeText(this, "数据不能为空", Toast.LENGTH_SHORT).show();
        } else {
            // 保存数据到数据库,并且同步显示到界面
            StudentInfo info = new StudentInfo();
            info.setId(Integer.valueOf(id));
            info.setName(name);
            info.setPhone(phone);
            boolean isAddSuccess = dao.add(info);
            if (isAddSuccess) {
                Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();
                mLv.setAdapter(new MyAdapter());
            }

        }
    }

    private class MyAdapter extends BaseAdapter {
        @Override
        public View getView(final int i, View convertView, ViewGroup viewGroup) {
            View view = View.inflate(MainActivity.this, R.layout.item, null);
            TextView tv_item_id = (TextView) view.findViewById(R.id.tv_item_id);
            TextView tv_item_name = (TextView) view.findViewById(R.id.tv_item_name);
            TextView tv_item_phone = (TextView) view.findViewById(R.id.tv_item_phone);
            ImageView iv_item_delete = (ImageView) view.findViewById(R.id.iv_item_delete);

            iv_item_delete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    boolean isDeleteSuccess = dao.delete(String.valueOf(getItemId(i)));
                    if (isDeleteSuccess) {
                        Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show();
                        mLv.setAdapter(new MyAdapter());
                    }
                }
            });
            StudentInfo item = getItem(i);
            tv_item_id.setText(String.valueOf(item.getId()));
            tv_item_name.setText(item.getName());
            tv_item_phone.setText(item.getPhone());
            return view;
        }

        @Override
        public int getCount() {
            return dao.getTotalCount();
        }

        @Override
        public StudentInfo getItem(int i) {
            return dao.getStudentInfo(i);
        }

        @Override
        public long getItemId(int i) {
            return dao.getStudentInfo(i).getId();
        }
    }
}

 

基于Android的学生信息管理系统 项目名称:学生信息管理系统主要技术:java、android开发工具:Eclipse(ADT)运行工具:只能使用Eclipse数 据 库:SQLlite项目简介:本系统主要有对学生信息、学生成绩的增删改查操作功能。 阅读详情

相关推荐

安卓课程设计——学生成绩管理系统

安卓课程设计——学生成绩管理系统

基于Android的学生管理系统App设计与实现(Eclipse开发)

本文设计并实现了一个基于Android平台的学生信息管理及沟通系统。该系统采用SQLite数据库,包含学生、教师和管理员三类用户界面。学生可查询个人信息、成绩、课程和考试安排;教师可查看学生信息及成绩;管理员具备完整的信息管理权限,包括增删改查学生/教师信息、成绩录入、课程管理和公告发布等功能。系统通过Java代码实现用户注册、登录及各功能模块,并进行了功能测试。该系统解决了传统人工管理效率低、保密性差等问题,实现了学生信息管理的数字化、规范化和便捷化,为学校信息化管理提供了有效解决方案。

毕业作品网站 6385

android学生信息管理系统

本人收藏积累 android学生信息管理系统 ,不错的android例子。可以看看

安卓学习Day07(学生信息管理系统)

学生信息管理系统

X_Serendipity的博客 891

Android实现学生成绩记录系统,优秀课设,小白必看!

主要功能模块为课程管理、学生管理和成绩录入。课程管理中可以添加课程,添加课程时输入课程编号、课程名称、课程地点和课程时间,然后点击添加课程即可。点击重设数据会清空输入框,点击删除课程会删除当前编号的课程。点击选课学生列表的“+”号会添加学生信息,点击“-”会删除信息,点击搜素框可以根据学号或姓名查询学生的信息。在课程管理中还可以搜素课程。学生管理中可以查看所有课程的学生列表,可以添加学生和删除学生,还可以修改学生信息,查询某个学生信息。成绩录入模块可以录入考勤分、录入作业分、录入上机分和查看成绩单。

安卓Andriod学生成绩课件管理系统源码.zip

源码设计,具体请到资源详情查看使用前必读

Android Studio 大作业--学生信息管理系统

古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼🐼学编程的bird的博客,邀您一起学习🦌😊很高兴你打开了这篇博客。★如有疑问不解或者说有想问的地方,都可以在下方评论留言,博主看到会尽快回复的。★本人微信:wxid_v28nw5cckzz622,若需要帮助,好友申请请写明意图和来源,否则不通过版权声明:本文为优快云博主「学编程的bird」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

m0_64069699的博客 1万+

nRF52840 低功耗蓝牙开发指南:从硬件架构到物联网应用实战

本文深入解析nRF52840低功耗蓝牙芯片的硬件架构与开发实践,涵盖从开发环境搭建到BLE协议栈开发的详细指南。通过实战案例分享低功耗优化技巧,帮助开发者高效实现物联网应用,特别适合智能家居和工业场景。

d3e4f的博客 414

android 简单文件操作

1.布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android...

angzhuo9931的博客 94

手把手教你用NetToPLCsim搭建西门子S7-1200仿真环境(附避坑指南)

本文详细指导如何利用NetToPLCsim与PLCSIM搭建西门子S7-1200仿真环境,实现无硬件条件下的PLC程序测试与上位机通信开发。内容涵盖软件选型、环境部署、关键参数配置及通信测试,并重点提供了连接失败、数据读写错误等常见问题的深度避坑指南,帮助工程师高效构建可靠的虚拟调试工作流。

a3b4c5的博客 610

UniApp X 网络请求避坑指南:从 JS 到 UTS 的 JSON 数据处理全解析

摘要:UniAppX开发中处理JSON数据时,UTS强类型特性要求开发者改变JS习惯。本文对比两种主流方案:1)UTSJSONObject通过keypath访问数据,兼容JS但缺乏类型提示;2)type+泛型方案,通过定义数据类型实现强类型校验和智能提示,推荐用于固定数据结构。文章详细演示了两种方式的具体实现、转换方法及实战案例,并提供了类型定义技巧和注意事项,帮助开发者编写更稳定高效的跨平台应用。

归梦工作室 2787

TextUtils.isEmpty()的意思

final String toMsg = mInputMsg.getText().toString(); // 首先拿到编辑框中的数据     if (TextUtils.isEmpty(toMsg))     {      Toast.makeText(MainActivity.this, "send message to immoc",        Toast.LENGTH_SHOR

小明的博客 7970

ESP32-S3模组上兼容SCCB总线与I2C总线的解决方案(1)

ESP32-S3模组上兼容SCCB总线与I2C总线的解决方案(1)

phmatthaus的专栏 773

android课程设计-学生成绩管理系统(Android期末作业,Android课设,AndroidStudio毕业设计)

管理员身份功能介绍:1:用户登录:用户通过账号信息进行软件的登录2:课程管理:对课程信息进行管理3:学生管理:对学生信息进行管理4:成绩管理:添加每一门课程的学生成绩信息5:通知管理:添加考试通知信息用户功能介绍:1:登录模块:使用管理员添加的学生信息的账号进行登录2:成绩查看:查看自己的成绩信息,以及自己的成绩排名信息3:通知信息:查看发布的通知信息4:个人信息:用户可以浏览个人信息,以及对密码进行修改;

u014388322的专栏 3725

Python 爬虫教程:抓取视频平台数据(观看量、评论数、点赞数等)

爬虫(Crawler)是通过编写程序模拟浏览器行为,从互联网上抓取并提取信息的技术。爬虫的核心任务是模拟用户访问网页,获取网页内容并解析出我们需要的数据。爬虫技术被广泛应用于搜索引擎、数据分析、电商价格监控、内容抓取等领域。Bilibili和YouTube。这两个平台都提供丰富的用户生成内容(UGC),且在中国和全球范围内都非常流行。Bilibili:以二次元文化为主的视频平台,用户活跃,视频内容丰富。Bilibili的网页数据较为简单,可以通过传统的HTML解析抓取。YouTube。

2201_76125261的博客 1854

分立器件---电感介绍(7000字)

电感基础整理

HW-BASE的博客 2350

Android Studio实现学生信息管理系统

除了有欢迎界面,还有注册和登录界面,满足应用的基础需求,主界面和四个独立的操作界面流畅跳转。登录和注册界面的activity实现起来有很多细节,首先最基本的需求就是你登录的账号和密码要正确,这就需要从数据库中搜索登录账号对应的密码,然后与用户输入的密码进行比对。在登录注册前还有进入应用的3s欢迎界面,实现起来很简单,其实就是使用Handler消息传递机制,延迟3000ms后执行run()中的intent跳转,并且销毁自身的activity。其次,注册的用户账号不能已存在,即用户的账号是键属性,非空且唯一。

振华OPPO的博客世界 2万+

【模型之美】3、文本聚类与智能摘要,让AI帮你做个总结

在信息过载时代,文本聚类与摘要技术成为关键工具。本文提出了一种结合OpenAI Embedding与传统机器学习的方法,实现从文本预处理到智能分析的完整流程。技术方案分为三阶段:1)通过Embedding将文本转化为语义向量;2)采用K-Means等算法进行无监督聚类;3)利用大模型生成可解释的标签和摘要。实验证明,该方法能有效提升信息处理效率,如在新闻聚合系统中自动分类10,000篇文章,准确率较传统方法提高15%。方案包含实用代码示例,涵盖文本清洗、向量化、聚类优化等关键技术细节,可应用于对话记忆、舆情

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 1437

基于Android的学生管理系统的设计与实现

目前, 无线通信技术日臻成熟。在此背景下,移动通信技术快速发展,信息传递方式产生了革命性的变化,信息传递的质量、效率大大提高,为人们的生活提供了极大便利。随着WiFi及4G无线技术的普及,人们可以更加便捷高效地获取信息,对信息管理的要求也逐渐提高。在高校中,利用移动终端来实现学生信息管理服务已成为必然。因此,开发基于Android平台的智能移动终端应用软件,依托移动互联网络,让学生和教师可以随时随地通过移动终端接收或者查询信息,提高了工作效率,给平常的学习和生活带来了极大的方便。 随着智能手机

u014388322的专栏 4577

【全志V821_FoxPi】6-3 GC2083 MIPI摄像头适配

本文介绍了在全志V821芯片上适配GC2083 MIPI摄像头的方案。GC2083是一款支持1080P@30fps的高性能CMOS图像传感器,采用MIPI CSI-2接口,具有低功耗特性。文章详细列出了传感器的技术参数和工作电压要求,并提供了设备树配置示例,包括CSI接口、ISP处理单元和传感器节点的具体设置。通过快速配置命令one_gc2083_sensor或手动修改设备树即可启用该摄像头模组,适用于IPC等对图像质量有要求的嵌入式应用场景。

第四维度的博客 1917

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

基于Android的过程监控的学生成绩管理系统(Android studio毕业设计,Android课程设计)

未注册的用户输入用户名密码,则无法登录,可跳转到注册页面或者退出,点击登录后,将对用户名密码与数据库进行比对,一致则登录成功,进入系统主界面,否则,提示登录失败,需要重新登录。该模块是对课堂考勤情况进行记录。点击考勤统计功能,跳转至考勤统计功能页面,在这将所有同学默认为全勤的状态,如有同学缺勤,迟到,请假等情况,则可以通过找到该同学的信息,进行修改,或者利用搜索框搜索,然后进行修改。点击随堂测验功能,首先需判断用户身份,如果是学生,只能进行查看随堂测验的成绩,若当前没有录入随堂测验成绩,则显示当前无成绩。

u014388322的专栏 1986

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

基于Android的课程成绩管理系统的设计与实现

本文设计了一个基于Android平台的课程成绩管理系统,针对传统人工管理方式的低效、保密性差等问题,提出了信息化解决方案。系统采用SQLite数据库和Eclipse开发工具,实现了学生、教师和管理员三类角色的功能需求:学生可查询个人信息、成绩及课程安排;教师可查询学生信息及成绩;管理员具备信息管理、成绩录入和公告发布等权限。通过可行性分析验证了系统在操作、技术和社会层面的可行性,采用分层架构设计确保系统的稳定性、可扩展性和易用性。测试结果表明,该系统能够有效提升学校教务管理的信息化水平,满足不同用户的需求。

毕业作品网站 3640

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

基于Android的高校移动成绩查询系统的设计与实现

本章将介绍与开发本系统有关的主要技术,分别包括Android平台介绍以及数据库操作介绍。2.1Android平台介绍Android是一种基于Linux的自由开源代码的操作系统,其主要使用于移动设备,例如智能手机和平板电脑,由Google公司和开放手机联盟领导开发。在2007年11月5日,Google公司对外宣布开发了基于Linux平台的开源手机操作系统,命名为Android,但在国内尚未有统一的中文名称,所以中国地区较多人使用“安卓”和“安致”。

wqq_992250277的博客 1584

基于Android的学生信息管理大作业

本课题客户端采用JAVA语言,通过Android studio作为开发工具,服务端采用JAVA语言,通过Eclipse作为开发工具进行开发,数据库选用SQLServer 2008。 本应用的后台搭载在服务端,具体的数据表为学生用户信息表。 如下表所示为学生用户信息数据表: 学生用户信息表 属性 数据类型 说明 备注 id Int 用户id 主键,不允许空 stu_id String 学号 不允许为空 name String 姓名 sex String 性别 phone String 电话 depart

程序员入门进阶 1万+

Android-kotlin-空值处理&字符串比较&常量

**描述Car汽车对象参数一: 车名, 参数二: 车的价值加入?意思是:允许传null*//***/return “这台车叫carName,价值{carMoney}元人民币”main测试方法:// 实例化保时捷对象var car1 : Car = Car(“保时捷AXT系”, 1000000.00)// 实例化对象// 定义String类型的变量 加入?

2401_84520377的博客 739
上一篇: Android核心技术-day05-02-文件上传
下一篇: Android核心技术-day05-04-JavaSE多线程下载
心灵泽尘
博客等级 码龄10年 32粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值