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

**1.**项目布局设计

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

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

布局核心代码如下:

html 复制代码
<?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等。

布局核心代码如下:

html 复制代码
<?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等。

布局核心代码如下:

html 复制代码
<?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等。

布局核心代码如下:

html 复制代码
<?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:信息添加功能核心代码如下:
java 复制代码
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:信息查询功能核心代码如下:
java 复制代码
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:信息修改功能核心代码如下:
java 复制代码
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:信息删除功能核心代码如下:
java 复制代码
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:
相关推荐
宾有为1 小时前
【Android】Proxyman 抓 HTTP 数据包
android·网络协议·http·抓包·proxyman
尹中文2 小时前
FileProvider高版本使用,跨进程传输文件
android
小狗蛋ing3 小时前
Android读取NFC卡片数据
android·nfc读取
牧杉-惊蛰4 小时前
表格的选择弹窗,选中后返显到表格中
android
CodeCraft Studio4 小时前
【实用教程】如何利用 JxBrowser 在 Kotlin 中实现屏幕共享
android·开发语言·kotlin
徐浪老师5 小时前
用 Android Studio 从零开发一个多功能计算器应用
android·ide·android studio
小黄人软件5 小时前
【android USB 串口通信助手】stm32 源码demo 单片机与手机通信 Android studio 20241118
android·stm32·单片机
梁辰兴5 小时前
移动应用开发:Android Studio实现简易注册页(数据存放以SharedPreferences形式)
android·ide·android studio·登录页·移动应用开发
未来之窗软件服务5 小时前
android studio无法下载,Could not GET xxx, Received status code 400
android·ide·android studio