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:
相关推荐
齊家治國平天下22 分钟前
AAOS 电源管理深度解析:休眠/唤醒/功耗优化
android·车载系统·aaos·aosp·电源管理·休眠唤醒·carpowermanager
Xzaveir1 小时前
企业号码展示不可观测怎么办:状态机、拨测事件与异常回放
android·人工智能
2501_916007471 小时前
iOS和macOS应用程序性能分析和优化工具使用综合指南
android·macos·ios·小程序·uni-app·iphone·webview
黄林晴1 小时前
Nearby Connections 重大变更:不再自动开启 Wi-Fi / 蓝牙,适配指南
android
恋猫de小郭2 小时前
Flutter 全新真 3D 实现,用 flutter_scene 能开发一个「我的世界」
android·前端·flutter
HLC++15 小时前
Linux的进程间通信
android·linux·服务器
爱笑鱼18 小时前
Binder(二):AIDL 生成的 Proxy、Stub 和 Parcel 到底在做什么?
android
爱笑鱼19 小时前
Binder(一):一次方法调用,究竟怎样跨进程执行?
android
壮哥_icon20 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化
用户693717500138421 小时前
Claude Code终端日志Token占用实测:一个过滤器砍掉60%-90%
android·前端·后端