Android Studio期末项目——简易的开证明软件(可用到自带的SQLite数据库)

项目背景:

虽然现如今科技进步很快,很多证明材料可以直接通过二维码或者电子签名来直接替代,但是很多证明手续,类似于假条、成绩单证明、证书证明、奖状等,尤其还存在有对图书的借阅证明,现在还是需要通过电脑word打字,或者手写稿来编写出来,而这类证明往往会重复很多字。


项目内容:

针对以上问题,研发了一个基于移动终端软件的图书借阅系统,该系统能够在用户借阅好书籍后,直接在移动终端软件上填写自己所借阅过的书籍以及时间,并能够根据填写的信息自动的生成一套证明材料,可直接截图或保存成word形式打印出来。
项目中我用到数据库的地方一个是登录注册,一个是增删查(由于水平有限,删除只能删去所有的数据,并无修改功能)


功能设计:

1.用户登录功能。
2.用户注册功能。
3.数据库建立、删除功能。
4.数据添加、删除、查找功能。
5.生成证明材料功能。


项目产出:

该系统包括了初始化界面、登录界面、注册界面、系统界面以及证明界面,所有界面如下:

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

当该APP打开并初始化后,用户可通过登录界面以及注册界面以注册登录的方式进入系统界面,并通过系统界面的按钮等控件创建图书借阅数据库,以实现插入或删除借阅信息,也能够从数据库中查找相关信息并输出到显示界面上。最后通过证明生成控件跳转到证明界面生成相应的一套借阅证明材料,可直接截图或保存成word形式打印出来。


其中注册与登录有用到SQLite数据库,数据库的查找方式可以用SQLite Expert Personal这样一个看查数据库的软件,具体下载与运用方式可见AndroidStudio找SQLite数据库文件,在这里不多赘述。


项目中我用到数据库的地方一个是登录注册,一个是增删查(由于水平有限,删除只能删去所有的数据,并无修改功能)
登录注册的具体数据库设计:
在这里插入图片描述
证明信息的具体数据库设计:
在这里插入图片描述


部分代码:

注册时所用到数据库的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_register);

    mOpenHelper= new RegActivity.MyDatabaseHelper(this);

    //获取布局中按钮控件对象
    Button btn_reg=(Button)findViewById(R.id.btn_reg);
    Button btn_cancer=(Button)findViewById(R.id.btn_cancer);
    //获取布局中输入框控件对象
    et1=findViewById(R.id.et_1);
    et2=findViewById(R.id.et_2);

    SQLiteDatabase db=mOpenHelper.getWritableDatabase();
    String sql="CREATE TABLE "+TABLE_NAME+"("+user+" text not null,"+passord+" text not null"+");";
    Log.i("test:createDB=",sql);
    try{
        db.execSQL("DROP TABLE IF EXISTS diary");
        db.execSQL(sql);
        setTitle("数据表成功创建");
    }catch (SQLException e){
        setTitle("数据表重建错误");
    };

    //点击btn_reg按钮的监听
    btn_reg.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            SQLiteDatabase db =mOpenHelper.getWritableDatabase();
            String userName=et1.getText().toString();
            String passWord=et2.getText().toString();
            String sql1="INSERT INTO " + TABLE_NAME +" values('"+userName+"','"+passWord+"');";
            try{
                Log.i("test:sql1=",sql1);
                db.execSQL(sql1);
                setTitle("注册成功");
                Intent intent =new Intent(RegActivity.this,LoginActivity.class);
                startActivity(intent);
            }catch (SQLException e){
                setTitle("注册失败");
            }
        }
    });

    //点击btn_cancer按钮的监听
    btn_cancer.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            et1.setText("");
            et2.setText("");

        }

    });
}
登录时对比数据所用到数据库的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //获取登录界面
    setContentView(R.layout.activity_login);
    //引用注册RegActivity所创建的数据库
    mOpenHelper= new RegActivity.MyDatabaseHelper(this);

    //获取布局中按钮控件对象
    Button btn_ok=(Button)findViewById(R.id.btn_ok);
    Button btn_reg=(Button)findViewById(R.id.btn_reg);
    //获取布局中输入框控件对象
    et1=findViewById(R.id.et_1);
    et2=findViewById(R.id.et_2);

    //点击OK按钮的监听
    btn_ok.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            int i=0;//计数,用来判断是否登录成功
            SQLiteDatabase db=mOpenHelper.getReadableDatabase();//创建数据库对象

            //获取文本框中的内容
            userName = et1.getText().toString();
            passWord = et2.getText().toString();

            //读取数据库中的密码与账号
            String str1="";
            String str2="";
            try {
                String col[] = {user, passord};
                Cursor cur = db.query(TABLE_NAME, col, null, null, null, null, null);
                //比较文本框所填写的内容是否能在在数据库查找到
                while (cur.moveToNext()) {
                    str1 = cur.getString(cur.getColumnIndex("user"));
                    str2 = cur.getString(cur.getColumnIndex("passord")) ;
                    if (userName.equalsIgnoreCase(str1) && passWord.equalsIgnoreCase(str2)) {
                        Intent intent =new Intent(LoginActivity.this,PageActivity.class);
                        startActivity(intent);
                        i=1+i;
                    }
                }
                if(i==0){
                    Toast.makeText(LoginActivity.this, "用户名密码错误", Toast.LENGTH_SHORT).show();
                }

        }catch (SQLException e){
                setTitle("登录失败");
            }
        }
    });
    //点击OK按钮的监听 直接跳转到RegActivity来注册
    btn_reg.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent =new Intent(LoginActivity.this,RegActivity.class);
            startActivity(intent);
        }

    });
}
创建数据表
			private void CreateTable(){
            SQLiteDatabase db=mOpenHelper.getWritableDatabase();
            String sql="CREATE TABLE "+TABLE_NAME+"("+TITLE+" text not null,"+BODY+" text not null"+");";
            Log.i("test:createDB=",sql);
            try{
                db.execSQL("DROP TABLE IF EXISTS diary");
                db.execSQL(sql);
                setTitle("数据表成功创建");
            }catch (SQLException e){
                setTitle("数据表重建错误");
            };
        }
删除数据
			private void dropTable(){
            SQLiteDatabase db =mOpenHelper.getWritableDatabase();
            String sql ="drop Table " + TABLE_NAME;
            try{
                db.execSQL(sql);
                setTitle("数据表成功删除:"+sql);
            }catch(SQLException e){
                setTitle("数据表删除错误");
            }
        }
查询数据
        private void showltems(){
            SQLiteDatabase db=mOpenHelper.getReadableDatabase();
            String str="";
            try {
                String col[] = {TITLE, BODY};
                Cursor cur = db.query(TABLE_NAME, col, null, null, null, null, null);
                while (cur.moveToNext()) {
                    str = str + cur.getString(cur.getColumnIndex("title")) + "\n" + cur.getString(cur.getColumnIndex("body")) + "\n";
                }
                showText.setText(str);
                Integer num = cur.getCount();
                setTitle(Integer.toString(num) + "条记录");
            }catch (SQLException e){
                setTitle("查询记录失败");
            }
        }
插入数据
        //插入自义定数据
        private void add(){
            SQLiteDatabase db =mOpenHelper.getWritableDatabase();
            String str1=e1.getText().toString();
            String str2=e2.getText().toString();
            String sql1="INSERT INTO " + TABLE_NAME +" values('"+str1+"','"+str2+"');";
            try{
                Log.i("test:sql1=",sql1);
                db.execSQL(sql1);
                setTitle("插入自定义数据成功");
            }catch (SQLException e){
                setTitle("插入自定义数据失败");
            }
        }
    }

项目源码:

项目源码资料: 链接:https://pan.baidu.com/s/1CQDXaQvzisFJtqbUKpGaYQ 提取码:t83r
  • 6
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
android期末大作业(项目源码,任务书,实验大报告,apk文件) 大作业的要求和内容:(包括题目选择范围、技术要求、递交时间、考核方法等) 一、实验项目名称 Android手机应用发课程大作业 二、实验目的 1.通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用课堂上所学的Android手机应用发知识。 2.为学生综合应用本专业所学习的多门课程知识(例如,软件工程、数据库Java语言、Java Web发等)创造实践机会。为学生提供主动学习、积极探索与大胆创新的机会。 3.掌握Android手机应用设计的方法与技巧。 三、实验内容及要求 1、设计内容 题目、设计内容自拟,工作量适中,要求学生应用课程所学知识,采用JAVA语言和Android手机应用发技术实现一个完整的系统。 ①完成大作业报告。 ②实现各系统功能,并完成调试运行。 2、主要技术 采用Java语言并不仅限于Java语言实现系统。 发环境与工具:Android Studio 3.2以上版本; 操作系统:Win7/Win10或其他; 4、设计成果: 材料上交:电子文档(大作业任务书+大作业报告+源代码,电子稿请刻在光盘上)、打印稿(大作业任务书+大作业报告)。 四、成绩评定: 考核标准包括: 1、选题的工作量,难度和新颖程度 2、系统架构设计是否良好,运行过程是否报错 3、界面设计的合理性和美观程度 4、基本功能的实现 分值60 (包括布局、组件、Activity、Intent等使用) 数据存储的使用 分值10 网络功能 分值10 Service、ContentProvider或BroadCastReceiver等的使用 分值10 附加分: 图形图像处理、多媒体处理等 分值10 5、考核方式为面对面答辩,在课程的后两周内集中进行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

拾柒#_17

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

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

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

打赏作者

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

抵扣说明:

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

余额充值