Android Studio实现图书管理系统

一、项目概述

本项目实现了简单的图书管理系统,核心功能为借书信息的增删改查,利用SQLite数据库存储数据,使用SharedPreferences存储用户的账号和密码,并且密码采用MD5加密方式存储,保证了用户数据安全。进入系统,映入眼帘的是欢迎页面,然后跳转至登录页面,没注册就先进行注册,注册成功后自动跳转回登录页面,登录前可以勾选记住密码,下次打开应用就不用重新输入。成功登录系统,进入到主页面,包含添加、修改、删除和查询四个方形按钮,分别对应四个功能页面。在添加页面输入借书信息可以成功添加记录;在修改页面可以先输入学号查询借书信息,然后修改借书信息即可;在删除页面可以先输入学号查询借书信息,然后删除借书信息即可;在查询页面能够查询到所有的借书记录。总体而言,系统功能完善,代码逻辑清晰,注释详细,可以非常好地学习Android数据存储的相关技术。

二、开发环境

在这里插入图片描述

三、详细设计

3.1、SQLite存储

在应用中先创建一个数据库辅助类(MyDBHelper),它继承自SQLiteOpenHelper抽象类,用于创建和管理SQLite数据库。下面是对代码中各个部分的具体解释:

  1. 类定义
    MyDBHelper是这个类的名称。它扩展了SQLiteOpenHelper来处理数据库相关的操作。

  2. 数据库名称和版本
    DB_NAME是数据库文件的名称,默认值为“book.db”。
    DB_VERSION是数据库的版本号,当需要对数据库结构进行修改时,可以通过增加这个版本号来触发onUpgrade方法。

  3. 创建表的SQL语句
    CREATE_TABLE_BOOK定义了一个名为“Book”的表格,其中包含四个字段:

    • sid:学生ID,数据类型为文本(text),设置为主键(primary key)。
    • sname:学生姓名,数据类型为文本(text)。
    • major:学生的专业,数据类型为文本(text)。
    • barcode:学生证的条形码,数据类型为文本(text)。
  4. 构造函数
    MyDBHelper有一个构造函数,接受一个Context参数。Context是一个Android概念,代表应用程序环境的一部分,这里主要是用来与数据库建立连接。

  5. 数据库创建和升级的回调方法

    • onCreate:当数据库第一次被创建时调用,这里执行了创建“Book”表格的SQL语句。
    • onUpgrade:当数据库从一个较低版本升级到一个较高版本时调用。在本应用中,这个方法是空的,意味着不会自动进行任何版本升级时的数据迁移或结构更改。

这个类的目的是为了简化对数据库的操作,特别是在创建新的数据库实例时。我们可以通过创建MyDBHelper的实例并传入一个Context对象来获取SQLiteDatabase对象,然后就可以执行插入、删除、更新、查询等数据库操作了。

public class MyDBHelper extends SQLiteOpenHelper {
    // 定义数据库名和版本号
    public static final String DB_NAME = "book.db";
    public static final int DB_VERSION = 1;
    // 定义建表语句(借书记录其实用记录Record命名更恰当,但考虑到是图书管理系统,所以还是用Book)
    public static final String CREATE_TABLE_BOOK =
            "create table Book (" +
                    "sid text primary key," +
                    "sname text," +
                    "major text," +
                    "barcode text)";
    // 构造函数
    public MyDBHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_TABLE_BOOK);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}

3.2、SharedPreferences存储

图书管理系统在注册和登录页面的逻辑中主要使用SharedPreferences存储用户信息到本地文件中,这也是Android开发中用于数据持久化的解决方案之一,它允许我们存储键值对数据。先来看下保存用户信息的代码段:

public void saveLoginInfo(String userName, String passWord) {
    // 获取SharedPreferences对象,这里指定了一个文件名为"userInfo",仅当前应用可访问
    SharedPreferences sp = getSharedPreferences("userInfo", Context.MODE_PRIVATE);
    // 获取SharedPreferences的Editor对象,用于进行数据的修改
    SharedPreferences.Editor editor = sp.edit();
    // 使用putString方法将用户名和密码分别保存到SharedPreferences文件中
    editor.putString("username", userName);
    editor.putString("password", passWord);
    // putBoolean方法用于保存复选框的状态,虽然在这个上下文中看起来是多余的
    editor.putBoolean("check", cbSave.isChecked());
    // 最后使用commit方法将所做的修改提交到文件中
    // commit是一个同步操作,如果提交失败则会抛出异常
    boolean result = editor.commit();
    // 可以根据result的值来判断提交是否成功
}

在上面的代码中,saveLoginInfo方法接收两个参数:userName(用户名)和passWord(密码)。然后,它使用getSharedPreferences方法获取一个SharedPreferences实例,该实例使用指定的文件名和模式(在这里是Context.MODE_PRIVATE,表示仅当前应用可见)。

接下来,使用edit方法获取SharedPreferences.Editor实例,它可以用来添加、删除和修改SharedPreferences中的键值对数据。通过调用putString方法,将用户名和密码保存为字符串类型的键值对。putBoolean方法用于保存cbSave复选框的选中状态。这里的cbSave是当前活动中的一个复选框控件,但在实际应用中,通常不建议将UI控件的状态直接保存到SharedPreferences中,除非该状态确实需要持久化。

最后,调用commit方法来提交所有的更改。这个方法会立即写入数据并返回一个布尔值,指示操作是否成功。如果需要异步提交数据,可以使用apply方法代替commit

3.3、页面绘制

应用包括欢迎、登录、注册等8个页面,其中欢迎页面和主页面设计简单,增删改查页面稍复杂但是设计理念类似,因此介绍下登录页面和更新页面的绘制步骤。

登录页面

activity_login包括了几个基本的UI组件:一个TextView显示文字,一个ImageView用于显示图片,以及三个用于输入的EditText控件和一个CheckBox控件。这个布局的根元素是一个垂直方向的LinearLayout,它包含了所有的子视图。布局的顶部是一个TextView,用于显示"图书管理系统"的标题。紧接着是一个ImageView,用于显示应用的图标。

布局中间部分是一个RelativeLayout,它包含了两个EditText和一个LinearLayout。第一个EditText用于输入用户名,第二个EditText用于输入密码。这两个EditText都设置了背景、提示文本、大小和其他属性。LinearLayout包含了一个CheckBox和一个TextView。CheckBox的文本是"记住密码",而TextView的文本是"用户注册"。这两个组件都被水平排列,并且各自占据了一半的空间。

布局的底部是一个Button,其文本是"登录"。这个按钮设置了白色的文字颜色和一个选择器作为背景,以便在不同的状态下显示不同的颜色。整个布局的背景色是通过引用一个名为@drawable/bg的资源文件来设置的。每个组件都根据需要设置了大小、边距、对齐方式和其他视觉属性。
在这里插入图片描述

更新页面

activity_update采用了垂直方向的LinearLayout作为根布局,包含了以下几个部分:

  1. 页面顶部的TextView,显示文本“更新借书记录”,具有一定的字体大小和颜色,背景设为透明。

  2. 页面中间的ImageView,显示一个人物头像图标,用于标识更新借书记录的主题。

  3. 紧接着的是一个水平方向的LinearLayout,包含三个子视图:一个显示文本“学号:”的TextView,一个宽度为150dp的EditText用于输入学号,以及一个宽度为120dp的Button用于查询。这个水平Layout的左右两侧各有5dp的外边距。

  4. 紧接着的是另一个水平方向的LinearLayout,包含三个子视图:一个显示文本“姓名:”的TextView,一个宽度为match_parent的EditText用于输入姓名,以及一个右侧有5dp外边距的Button用于提交。这个水平Layout的左右两侧各有10dp的外边距。

  5. 紧接着的是另一个水平方向的LinearLayout,包含三个子视图:一个显示文本“专业:”的TextView,一个右侧有5dp外边距的Button用于提交,以及一个右侧有5dp外边距的Button用于提交。这个水平Layout的左右两侧各有10dp的外边距。

  6. 最后,页面底部是一个宽度为match_parent的Button,显示文本“修改”,用于提交注册信息。这个Button的高度为50dp,上下左右各有10dp的外边距。

整个布局文件使用了多个drawable资源文件作为背景和图标,这些资源文件需要在项目的res/drawable目录下定义。总的来说,这个布局文件设计得十分简洁明了,每个组件都有明确的功能和定位,方便用户进行操作和提交。
在这里插入图片描述

四、运行演示

Android Studio实现图书管理系统

五、源码获取

♻️下面两种方式都可以获取源代码
1️⃣ 点击直接下载 Android Studio 图书管理系统
2️⃣关注公众号《 萌新加油站 》,后台回复: 图书

🚀这有你错过的精彩内容
Android Studio实现飞机大战
Android Studio实现钢琴块小游戏
Android Studio实现一笔画完小游戏
Android Studio实现会议室预约系统
Android Studio实现俄罗斯方块

强烈推荐4本可以改变命运的经典著作:

  1. 《寿康宝鉴》在线阅读白话文
  2. 《欲海回狂》在线阅读白话文
  3. 《阴律无情》在线阅读白话文
  4. 《了凡四训》在线阅读白话文
  5.    电子书百度网盘下载链接
  • 29
    点赞
  • 461
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等 基于安卓的项目源码,可用于毕业设计、课程设计、参考学习等

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

振华OPPO

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值