当前位置: 首页 > article >正文

Android学生信息管理APP的设计与开发

1. 项目布局设计

页面1:学生信息添加页面

采用线性布局,页面中控件包含TextView、editView、Button等。

布局核心代码如下:

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/addbg"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="信息添加页面"
        android:textSize="30sp"
        android:textStyle="bold"
        android:textColor="#000000"
        android:layout_gravity="center"
        android:layout_margin="80dp"/>
    <EditText
        android:id="@+id/editText_onesno"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="学号"
        android:textSize="25sp"/>
    <EditText
        android:id="@+id/editText_onename"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="姓名"
        android:textSize="25sp"/>
    <EditText
        android:id="@+id/editText_onesex"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="性别"
        android:textSize="25sp"/>
    <EditText
        android:id="@+id/editText_onepro"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="专业班级"
        android:textSize="25sp"/>
    <EditText
        android:id="@+id/editText_onedep"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="所属系部"
        android:textSize="25sp"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:id="@+id/button_oneadd"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="添加"
            android:textSize="25sp"
            android:layout_weight="1"/>
        <Button
            android:id="@+id/button_oneclear"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="清除"
            android:textSize="25sp"
            android:layout_weight="1"/>
    </LinearLayout>

    <Button
        android:id="@+id/button_onenext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="下一页"
        android:textSize="25sp"
        android:layout_gravity="right"
        android:layout_marginTop="30dp"/>
</LinearLayout>
页面2:学生信息查询页面

采用线性布局,页面中控件包含TextView、editView、Button等。

布局核心代码如下:

 

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/querybg"
    tools:context=".SecondActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="信息查询页面"
        android:textSize="30sp"
        android:textStyle="bold"
        android:textColor="#000000"
        android:layout_gravity="center"
        android:layout_margin="80dp"/>

    <EditText
        android:id="@+id/editText_twosno"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入要查询的学号"
        android:textSize="25sp"/>
    <Button
        android:id="@+id/button_twoquery"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="查询"
        android:textSize="25sp"/>

    <TextView
        android:id="@+id/textView_tworesult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="显示查询结果"
        android:textSize="25sp" />

    <Button
        android:id="@+id/button_twonext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="下一页"
        android:textSize="25sp"
        android:layout_gravity="right"
        android:layout_marginTop="30dp"/>
</LinearLayout>
页面3:学生信息修改页面

采用线性布局,页面中控件包含TextView、editView、Button等。

布局核心代码如下:

 

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/modifybg"
    tools:context=".thirdActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="信息修改页面"
        android:textSize="30sp"
        android:textStyle="bold"
        android:textColor="#000000"
        android:layout_gravity="center"
        android:layout_margin="80dp"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginBottom="30dp">
        <EditText
            android:id="@+id/editText_threeinputsno"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="请输入要查询的学号"
            android:textSize="25sp"/>
        <Button
            android:id="@+id/button_threequery"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="查询"
            android:textSize="25sp"/>
    </LinearLayout>
    <EditText
        android:id="@+id/editText_threesno"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="学号"
        android:textSize="25sp"/>
    <EditText
        android:id="@+id/editText_threename"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="姓名"
        android:textSize="25sp"/>
    <EditText
        android:id="@+id/editText_threedep"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="所属系部"
        android:textSize="25sp"/>
    <Button
        android:id="@+id/button_threemodify"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="修改"
        android:textSize="25sp"
        android:layout_gravity="right"
        android:layout_marginTop="30dp"/>
    <Button
        android:id="@+id/button_threenext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="下一页"
        android:textSize="25sp"
        android:layout_gravity="right"/>
</LinearLayout>
页面4:学生信息删除页面

采用线性布局,页面中控件包含TextView、editView、Button等。

布局核心代码如下:

 

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/deletebg"
    tools:context=".fourActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="信息删除页面"
        android:textSize="30sp"
        android:textStyle="bold"
        android:textColor="#000000"
        android:layout_gravity="center"
        android:layout_margin="80dp"/>
    <EditText
        android:id="@+id/editText_foursno"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入要删除的学号"
        android:textSize="25sp"/>

    <Button
        android:id="@+id/button_fourdelete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="删除"
        android:textSize="25sp"
        android:layout_gravity="right"/>
</LinearLayout>

2. 系统后台实现代码

页面1:信息添加功能核心代码如下:

 

package com.example.word;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ContentValues;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private EditText ed_onesno,ed_onename,ed_onesex,ed_onepro,ed_onedep;
    private Button btn_oneadd,btn_onenext,btn_oneclear;
    private MyDBOpenHelper myDBOpenHelper;//数据库帮助类对象
    private SQLiteDatabase db;//数据库对象
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化方法
        initview();
        //下一页
        btn_onenext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(MainActivity.this,SecondActivity.class);
                startActivity(intent);
            }
        });
        //清楚
        btn_oneclear.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ed_onesno.setText("");
                ed_onename.setText("");
                ed_onesex.setText("");
                ed_onepro.setText("");
                ed_onedep.setText("");
            }
        });
        //添加
        btn_oneadd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ContentValues values=new ContentValues();
                values.put("sno",ed_onesno.getText().toString());
                values.put("name",ed_onename.getText().toString());
                values.put("sex",ed_onesex.getText().toString());
                values.put("professional",ed_onepro.getText().toString());
                values.put("department",ed_onedep.getText().toString());
                db.insert("stu_info",null,values);
                Toast.makeText(MainActivity.this,"添加成功",Toast.LENGTH_SHORT).show();
            }
        });
    }


    //初始化
    private void initview() {
        ed_onesno=findViewById(R.id.editText_onesno);
        ed_onename=findViewById(R.id.editText_onename);
        ed_onesex=findViewById(R.id.editText_onesex);
        ed_onepro=findViewById(R.id.editText_onepro);
        ed_onedep=findViewById(R.id.editText_onedep);
        btn_oneadd=findViewById(R.id.button_oneadd);
        btn_oneclear=findViewById(R.id.button_oneclear);
        btn_onenext=findViewById(R.id.button_onenext);
        myDBOpenHelper=new MyDBOpenHelper(MainActivity.this);
        db=myDBOpenHelper.getWritableDatabase();//获取数据库的读写权限


    }
}
页面2:信息查询功能核心代码如下: 
package com.example.word;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class SecondActivity extends AppCompatActivity {
    private EditText ed_twosno;
    private Button btn_twoquery,btn_twonext;
    private TextView txtresult;
    private MyDBOpenHelper myDBOpenHelper;
    private SQLiteDatabase db;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        initview();
        //查询
        btn_twoquery.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Cursor cursor = db.rawQuery("select * from stu_info where sno=?",new String[]{ed_twosno.getText().toString()});
                if (cursor.getCount() !=0){
                    Toast.makeText(SecondActivity.this, "查询成功!", Toast.LENGTH_SHORT).show();
                    while (cursor.moveToNext()){
                        @SuppressLint("Range")
                        String rsno = cursor.getString(cursor.getColumnIndex("sno"));
                        @SuppressLint("Range")
                        String rname = cursor.getString(cursor.getColumnIndex("name"));
                        @SuppressLint("Range")
                        String rsex = cursor.getString(cursor.getColumnIndex("sex"));
                        @SuppressLint("Range")
                        String rpro = cursor.getString(cursor.getColumnIndex("professional"));
                        @SuppressLint("Range")
                        String rdep = cursor.getString(cursor.getColumnIndex("department"));
                        txtresult.setText(rsno+"\n"+rname+"\n"+rsex+"\n"+rpro+"\n"+rdep);
                    }
                }else {
                    Toast.makeText(SecondActivity.this, "没有查询到该学号对应的学生信息", Toast.LENGTH_SHORT).show();
                    txtresult.setText("");
                }
            }
        });
        //下一页
        btn_twonext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(SecondActivity.this,thirdActivity.class);
                startActivity(intent);
            }
        });
    }

    private void initview() {
        ed_twosno=findViewById(R.id.editText_twosno);
        btn_twonext=findViewById(R.id.button_twonext);
        btn_twoquery=findViewById(R.id.button_twoquery);
        txtresult=findViewById(R.id.textView_tworesult);
        myDBOpenHelper = new MyDBOpenHelper(SecondActivity.this);
        db = myDBOpenHelper.getWritableDatabase();
    }
}
页面3:信息修改功能核心代码如下: 
package com.example.word;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.ConditionVariable;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class thirdActivity extends AppCompatActivity {
    private EditText ed_threeinput,ed_threesno,ed_threename,ed_threedep;
    private Button btn_threequery,btn_threemodify,btn_threenext;
    private MyDBOpenHelper myDBOpenHelper;
    private SQLiteDatabase db;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_third);
        ed_threeinput=findViewById(R.id.editText_threeinputsno);
        ed_threesno=findViewById(R.id.editText_threesno);
        ed_threename=findViewById(R.id.editText_threename);
        ed_threedep=findViewById(R.id.editText_threedep);
        btn_threequery=findViewById(R.id.button_threequery);
        btn_threemodify=findViewById(R.id.button_threemodify);
        btn_threenext=findViewById(R.id.button_threenext);
        myDBOpenHelper = new MyDBOpenHelper(thirdActivity.this);
        db = myDBOpenHelper.getWritableDatabase();
        btn_threequery.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Cursor cursor = db.rawQuery("select * from stu_info where sno=?",new String[]{ed_threeinput.getText().toString()});
                if (cursor.getCount() !=0){
                    Toast.makeText(thirdActivity.this, "查询成功!", Toast.LENGTH_SHORT).show();
                    while (cursor.moveToNext()){
                        @SuppressLint("Range")
                        String rsno = cursor.getString(cursor.getColumnIndex("sno"));
                        @SuppressLint("Range")
                        String rname = cursor.getString(cursor.getColumnIndex("name"));
                        @SuppressLint("Range")
                        String rdep = cursor.getString(cursor.getColumnIndex("department"));
                        ed_threesno.setText(rsno);
                        ed_threename.setText(rname);
                        ed_threedep.setText(rdep);
                    }
                }else {
                    Toast.makeText(thirdActivity.this, "没有查询到该学号对应的学生信息", Toast.LENGTH_SHORT).show();
                    ed_threesno.setText("");
                    ed_threename.setText("");
                    ed_threedep.setText("");
                }
            }
        });
        btn_threemodify.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ContentValues values=new ContentValues();
                values.put("name",ed_threename.getText().toString());
                values.put("department",ed_threedep.getText().toString());
                db.update("stu_info",values,"sno=?",new String[]{ed_threeinput.getText().toString()});
                Toast.makeText(thirdActivity.this, "修改成功", Toast.LENGTH_SHORT).show();
            }
        });
        btn_threenext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(thirdActivity.this,fourActivity.class);
                startActivity(intent);
            }
        });
    }
}
页面4:信息删除功能核心代码如下: 

 

package com.example.word;

import androidx.appcompat.app.AppCompatActivity;

import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class fourActivity extends AppCompatActivity {
    private EditText ed_foursno;
    private Button btn_fourdel;
    private MyDBOpenHelper myDBOpenHelper;
    private SQLiteDatabase db;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_four);
        ed_foursno=findViewById(R.id.editText_foursno);
        btn_fourdel=findViewById(R.id.button_fourdelete);
        myDBOpenHelper = new MyDBOpenHelper(fourActivity.this);
        db = myDBOpenHelper.getWritableDatabase();
        btn_fourdel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                db.delete("stu_info","sno=?",new String[]{ed_foursno.getText().toString()});
                Toast.makeText(fourActivity.this, "删除成功!", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

3. 实现效果

页面1:信息添加(包括数据库截图)

 

 

页面2:

页面3:

页面4:

 


http://www.kler.cn/a/407242.html

相关文章:

  • docker搭建私有的仓库
  • 递归-迭代
  • C语言——break、continue、goto
  • C++ STL - vector/list讲解及迭代器失效
  • Maven maven项目构建的生命周期 Maven安装配置 IDEA 配置 Maven
  • 【人工智能】用Python和NLP工具构建文本摘要模型:使用NLTK和spaCy进行自然语言处理
  • Webpack 热更新(HMR)详解:原理与实现
  • 学习嵩山版《Java 开发手册》:编程规约 - 命名风格(P1 ~ P2)
  • 如何进行Apache的配置与调试?
  • Centos环境安装Docker
  • 谈谈法律专业留学dissertation的写作原则与要求
  • 基于Java Springboot高校奖助学金系统
  • el-table表格展示和传值分隔写法
  • SpringCloud Gateway转发请求到同一个服务的不同端口
  • 大模型(LLMs)增量预训练篇
  • Rust 智能指针
  • AI大模型开发架构设计(19)——大模型向量数据库企业级应用实践
  • 插排快排
  • Leetcode169. 多数元素(HOT100)
  • Apple Vision Pro开发002-新建项目配置
  • Python的3D可视化库 - vedo (2)visual子模块 基本可视化行为
  • vue3+echarts+ant design vue实现进度环形图
  • uniapp input限制输入负数,以及保留小数点两位.
  • 【接口封装】——2、鼠标移动窗体
  • Python网络爬虫实践案例:爬取猫眼电影Top100
  • ssm150旅游网站的设计与实现+jsp(论文+源码)_kaic