沐鸣娱乐


        安卓APP源码和报告——学生信息管理系统(androids学生管理系统源码)

        一、考核内容 :
        环境配置及移动开发生命周期、控件的使用、用户界面设计、数据存储与访问、广播、服务、网络编程 、蓝牙应用等知识点。
        二、考核方式:
        1、通过提交一个综合的项目,学会运用所学知识解决实际问题。
        2 、项目题目: XX管理系统APP,购物商城APP等,也可自命题。
        三 、考核目的:
        1、掌握移动开发的生命周期
        2、掌握用户界面以及自定义界面的使用
        3、掌握数据库的应用
        4 、掌握移动开发中网络程序设计
        5 、掌握移动开发的程序设计方法 。
        四、考核要求:
        1、完成项目程序设计;
        2、提交的项目运行正常,界面友好 ,功能完善 ,异常处理较好;
        3、项目中功能符合要求,数据库设计合理;
        4、文档资料完善。
        五 、成绩评定:
        1 、记分制 :百分制
        2、评分标准:

        序号

        资料类型

        分值

        评分标准

        备注

        1

        项目描述文档

        20

        需求分析10分

        数据库设计10分

        2

        源程序代码

        60

        完整的源代码30分

        基本功能具备10分

        界面友好5分

        无明显的异常10分

        添加适当的注释5分

        3

        项目的复杂性

        10

        根据每位学生的选题判断其技术难度

        4

        界面的设计

        10

        满足APP界面设计要求,界面友好 ,便于操作

        3 、项目提交要求:
        (1)项目的源程序文件,添加适当的注释,格式合理 ;
        (2)项目描述文档 ,包括项目名称,需求分析,项目功能描述及各个文件功能描述;
        (3)项目运行的每个页面截图到项目文档中并加以说明;
        (4)设计的APP程序应包含登录页面、数据显示页面、自定义功能页面、查询页面、网络状态连接页面等,其中数据存储需要使用Sqlite数据库,登录页面可以使用SharedPerference或者数据库 ,并且各个页面需要布局合理;
        (5)提交的源程序、项目描述文档一起打包后,命名:学号 姓名,如181413210张三。
        六 、考核时间
        1 、以学院安排为准 。
        七、其它说明:
        学生在多个项目中选择一个完成,或者自选项目。通过APP项目的设计和提交,使学生能够逐渐熟悉移动开发项目的整个流程,为今后的进一步学习打下坚实的基础
        考核教师签名:
        学生信息管理的设计与实现
        一 、项目名称 :学生信息管理的设计与实现
        二 、项目完成人:
        三、项目需求分析:
        学生信息的管理对于学校的管理者来说至关重要 ,学生信息是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一部分 。特别是近几年来,国家政策的调整,我国高等院校大规模的扩招 ,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。其包含的数据量大 ,涉及的人员面广 ,而且需要及时更新,故较为复杂  ,难以单纯地依靠人工管理,而且传统的人工管理方式既不易于规范化 ,管理效率也不高  ,系统针对学校学生信息的特点以及管理中实际需要而设计 。优点如下:

        1. 用户可以登录注册
        2. 详细记录每位学生信息 ,并且可以做出统计
        3. 系统操作人性化、简单易用
        4. 保证软件的安全性
        5. 界面流畅

        四、运行环境
        操作系统:androids
        数据库 :Sqlite
        五 、系统功能模块
        (1)注册、登录页面 (2)页面
        admin 666

        安卓APP源码和报告——学生信息管理系统(androids学生管理系统源码)安卓APP源码和报告——学生信息管理系统(androids学生管理系统源码)安卓APP源码和报告——学生信息管理系统(androids学生管理系统源码)

        1. 学生信息录入界面 (4) 信息录入成功界面

        (5)学生信息浏览界面 (6)修改学生信息成功界面

        (7)查询学生信息界面 (8)学生信息删除界面

        (9)学生信息退出界面

        1. 核心代码如下 :

        AddStudentsActivity类:
        public class AddStudentsActivity extends AppCompatActivity implements View.OnClickListener {
        private ImageButton BtnBack;
        //返回按钮
        private TextView tv_title;
        //头标题
        private EditText EtName, Etnumber, EtYear, EtSex, EtBirth, EtAddress, Etphones;
        //姓名、学号、年龄、性别 、出生年月、地址 、电话
        private Button BtnSave;
        //保存按钮
        DbStudents dbStudents;
        //数据库
        List<StudentsBean> mData;
        //数据源
        String number;
        //学号
        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.
        activity_add_students);
        tv_title=findViewById(R.id.
        tv_title);//绑定控件
        BtnBack = findViewById(R.id.
        btn_back);
        BtnSave = findViewById(R.id.
        btn_save);
        BtnBack.setOnClickListener(this);
        BtnSave.setOnClickListener(this);
        EtNumber = findViewById(R.id.
        add_et_number);
        EtName = findViewById(R.id.
        add_et_name);
        EtYear = findViewById(R.id.
        add_et_year);
        EtSex = findViewById(R.id.
        add_et_sex);
        EtBirth = findViewById(R.id.
        add_et_birthday);
        EtAddress = findViewById(R.id.
        add_et_address);
        Etphones = findViewById(R.id.
        add_et_phones);
        dbStudents= new DbStudents(this);
        mData = new ArrayList<>();
        initData();
        }
        /**
        * 保存修改的信息
        * */
        private void initData() {
        intent intent = getIntent();
        if (intent != null) {
        number = intent.getStringExtra("number");
        if (number != null) {
        tv_title.setText("修改学生信息");
        BtnSave.setText("修 改");
        EtNumber.setText(intent.getStringExtra("number"));
        EtName.setText(intent.getStringExtra("name"));
        EtYear.setText(intent.getStringExtra("year"));
        EtSex.setText(intent.getStringExtra("sex"));
        EtBirth.setText(intent.getStringExtra("birth"));
        EtAddress.setText(intent.getStringExtra("address"));
        Etphones.setText(intent.getStringExtra("phones"));
        }
        }
        }
        @Override
        public void onClick(View v) {
        switch (v.getId()) {
        case R.id.
        btn_back:
        Intent intent1 = new Intent(AddStudentsActivity.this, MainActivity.class);
        startActivity(intent1);
        break;
        case R.id.
        btn_save:
        //输入
        String number = EtNumber.getText().toString().trim();
        String name = EtName.getText().toString().trim();
        String year = EtYear.getText().toString().trim();
        String sex = EtSex.getText().toString().trim();
        String birth = EtBirth.getText().toString().trim();
        String address = EtAddress.getText().toString().trim();
        String phones = Etphones.getText().toString().trim();
        StudentsBean studentsBeans = dbStudents.
        QueryFromStudentByNumber(number);
        if (number != null) {
        //修改操作
        if (name.length() > 0) {
        if (dbStudents.updateStudent(number, name, year,sex,birth,address,phones)) {
        Toast.
        makeText(AddStudentsActivity.this,"修改成功",Toast.LENGTH_LONG).show();
        setResult(2);
        showDeleteDialog2();
        }
        } else {
        Toast.
        makeText(AddStudentsActivity.this,"修改的内容不能为空!",Toast.LENGTH_LONG).show();
        }

        }
        if (TextUtils.isEmpty(name)) {
        Toast.
        makeText(AddStudentsActivity.this, "录入失败!请输入姓名", Toast.LENGTH_SHORT).show();
        } else if (TextUtils.
        isEmpty(number)) {
        Toast.
        makeText(AddStudentsActivity.this, "录入失败!请输入学号", Toast.LENGTH_SHORT).show();
        } else if (TextUtils.
        isEmpty(year)) {
        Toast.
        makeText(AddStudentsActivity.this, "录入失败 !请输入年龄", Toast.LENGTH_SHORT).show();
        } else if (TextUtils.
        isEmpty(sex)) {
        Toast.
        makeText(AddStudentsActivity.this, "录入失败 !请输入性别", Toast.LENGTH_SHORT).show();
        } else if (TextUtils.
        isEmpty(birth)) {
        Toast.
        makeText(AddStudentsActivity.this, "录入失败!请输入出生年月", Toast.LENGTH_SHORT).show();
        } else if (TextUtils.
        isEmpty(address)) {
        Toast.
        makeText(AddStudentsActivity.this, "录入失败 !请输入地址", Toast.LENGTH_SHORT).show();
        } else if (TextUtils.
        isEmpty(phones)) {
        Toast.
        makeText(AddStudentsActivity.this, "录入失败 !请输入电话", Toast.LENGTH_SHORT).show();
        }else if (studentsBeans != null){
        Toast.
        makeText(AddStudentsActivity.this, "学号重复", Toast.LENGTH_SHORT).show();
        }
        else {
        System.
        out.println("是否为空: " dbStudents);
        dbStudents.insertStudents(number, name, year, sex, birth, address, phones);
        showDeleteDialog();
        }
        }
        }
        /**
        * 修改提示框
        * */
        private void showDeleteDialog2() {
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("修改成功提示")
        .setMessage("已成功修改!")
        .setPositiveButton("ok", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        Intent intent=new Intent(AddStudentsActivity.this,MainActivity.class);
        startActivity(intent);
        }
        });
        builder.create().show();
        }
        /**
        * 保存提示框
        * */
        private void showDeleteDialog() {
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("录入成功提示")
        .setMessage("已成功录入 !n是否继续?")
        .setPositiveButton("否", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        Intent intent=new Intent(AddStudentsActivity.this,MainActivity.class);
        startActivity(intent);
        }
        })
        .setNegativeButton("是", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        //将输入框清空
        EtNumber.setText("");
        EtName.setText("");
        EtYear.setText("");
        EtSex.setText("");
        EtBirth.setText("");
        EtAddress.setText("");
        Etphones.setText("");
        }
        });
        builder.create().show();
        }
        DeleteStudentsActivity类 :
        public class DeleteStudentsActivity extends AppCompatActivity {
        ListView listView;
        //列表
        List<StudentsBean> mData;
        //数据源
        Adapter_del adapter;
        //适配器
        DbStudents dbStudents;
        //数据库
        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.
        activity_delete_students);//控件绑定
        listView = findViewById(R.id.
        del_lv);
        dbStudents = new DbStudents(this);
        mData = new ArrayList<>();
        System.
        out.println("长度为:" mData.size());
        //设置适配器:加载每一行数据到列表当中
        adapter = new Adapter_del(this, mData);
        listView.setAdapter(adapter);
        loadData();
        setLVClickListener();
        }
        /**
        * listView长按事件
        */
        private void setLVClickListener() {
        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        StudentsBean studentsBean = mData.get(position);
        deleteItem(studentsBean);
        return false;
        }
        });
        }
        /**
        * 长按删除
        * */
        private void deleteItem(final StudentsBean studentsBean) {
        final String delNumber = studentsBean.getNumber();
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("提示信息").setMessage("您确定要删除这条记录么?")
        .setNegativeButton("取消", null)
        .setPositiveButton("确定", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        DbStudents.
        deleteItemFromStudentByNumber(delNumber);
        mData.remove(studentsBean);
        //实时刷新,从数据源删除
        adapter.notifyDataSetChanged();
        }
        });
        builder.create().show();
        }
        /**
        * 显示学生信息列表
        * */
        private void loadData() {
        List<StudentsBean> list = DbStudents.
        search();
        mData.clear();
        mData.addAll(list);
        adapter.notifyDataSetChanged();
        }
        /**
        * 按钮点击事件
        * */
        public void onClick(View v) {
        switch (v.getId()) {
        case R.id.
        iv_back:
        Intent intent = new Intent(DeleteStudentsActivity.this, MainActivity.class);
        startActivity(intent);
        finish();
        break;
        }
        }
        DataSupper类
        public class Users extends DataSupport {
        private String name;
        private String password;
        private String email;
        private String addrs;
        private int age;
        private String sex;
        public Users ( String name, String password) {
        this.name = name;
        this.password = password;
        }
        public Users ( String name, String password,String email,String addrs,String sex,int age) {
        this.name = name;
        this.password = password;
        this.addrs = addrs;
        this.email = email;
        this.age = age;
        this.sex = sex;
        }
        public Users () {
        }
        public String get_name () {
        return name;
        }
        public String get_password () { return password; }
        public String get_email() {
        return email;
        }
        public int get_age(){ return age; }
        public String get_addrs(){ return addrs; }
        public String get_sex() { return sex; }

        public void set_name(String name) {
        this.name=name;
        }
        public void setPassword(String password) {
        this.password = password;
        }
        public void setEmail(String email) {
        this.email = email;
        }
        public void setAge(int age) {
        this.age = age;
        }
        public void setAddrs(String addrs) { this.addrs = addrs; }
        public void setSex(String sex) { this.sex = sex; }
        }
        MainActivity类:
        public class MainActivity extends AppCompatActivity implements View.OnClickListener{
        private Button btnAdd,btnSearch,btnMod,btnQuery,btnDelete,btnBack;
        //按钮:录入、浏览、修改 、查询、删除、退出
        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.
        activity_main);//事件绑定
        btnAdd=findViewById(R.id.
        add_students);
        btnSearch=findViewById(R.id.
        search_students);
        btnMod=findViewById(R.id.
        mod_students);
        btnDelete=findViewById(R.id.
        delete_students);
        btnQuery=findViewById(R.id.
        query_students);
        btnBack=findViewById(R.id.
        btn_back);
        btnBack.setOnClickListener(this);
        btnQuery.setOnClickListener(this);
        btnDelete.setOnClickListener(this);
        btnMod.setOnClickListener(this);
        btnAdd.setOnClickListener(this);
        btnSearch.setOnClickListener(this);
        }
        /**
        * 按钮点击事件
        * */
        @Override
        public void onClick(View v) {
        switch (v.getId()){
        case R.id.
        add_students:
        Intent intent1=new Intent(MainActivity.this,AddStudentsActivity.class);
        startActivity(intent1);
        break;
        case R.id.
        search_students:
        Intent intent2=new Intent(MainActivity.this,SearchStudentsActivity.class);
        startActivity(intent2);
        break;
        case R.id.
        mod_students:
        Intent intent3=new Intent(MainActivity.this,ModStudentsActivity.class);
        startActivity(intent3);
        break;
        case R.id.
        query_students:
        Intent intent4=new Intent(MainActivity.this,QueryStudentsActivity.class);
        startActivity(intent4);
        break;
        case R.id.
        delete_students:
        Intent intent5=new Intent(MainActivity.this,DeleteStudentsActivity.class);
        startActivity(intent5);
        break;
        case R.id.
        btn_back:
        DigLogShow();
        break;
        }
        }
        /**
        * 退出提示
        * */
        private void DigLogShow() {
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("退出提示")
        .setMessage("是否退出 ?")
        .setPositiveButton("否", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        }
        })
        .setNegativeButton("是", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        Intent intent6=new Intent(MainActivity.this,LoginActivity.class);
        SharedPreferences sharedPreferences = getSharedPreferences("zidong", Context.
        MODE_PRIVATE);
        sharedPreferences.edit().clear().apply();
        Toast.
        makeText(MainActivity.this,"退出成功!",Toast.LENGTH_LONG).show();
        startActivity(intent6);
        }
        });
        builder.create().show();
        }
        }
        ModStudentSActivity类 :
        public class ModStudentsActivity extends AppCompatActivity implements View.OnClickListener {
        ListView UpdateLv;
        //列表
        EditText EtNumber;
        //学号
        List<StudentsBean> mData;
        //数据源
        Adapter_update adapter;
        //适配器对象
        DbStudents dbStudents;
        //数据库

        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mod_students);//绑定事件
        UpdateLv = findViewById(R.id.
        update_lv);
        EtNumber = findViewById(R.id.
        et_update);
        mData = new ArrayList<>();
        adapter = new Adapter_update(this, mData);
        UpdateLv.setAdapter(adapter);
        //适配器列表显示
        dbStudents = new DbStudents(this);
        }
        /**
        * 按钮点击事件
        * */
        @Override
        public void onClick(View v) {
        switch (v.getId()) {
        case R.id.
        iv_back:
        Intent intent = new Intent(ModStudentsActivity.this, MainActivity.class);
        startActivity(intent);
        finish();
        break;
        case R.id.
        update_iv:
        String number = EtNumber.getText().toString().trim();
        StudentsBean studentsBeans = dbStudents.
        QueryFromStudentByNumber(number);//查询学号是否存在
        if (TextUtils.
        isEmpty(number)) {
        Toast.
        makeText(this, "请输入学号!", Toast.LENGTH_SHORT).show();
        } else if (studentsBeans == null) {
        Toast.
        makeText(this, "该学号不存在 !", Toast.LENGTH_SHORT).show();
        } else {
        //开始搜索
        List<StudentsBean> list = DbStudents.
        getStudentListByNumber(number);//查询该学号的所有信息
        mData.clear();
        //将原来搜索的消息清除
        mData.addAll(list);
        adapter.notifyDataSetChanged();
        //实时更新
        initData();
        //修改信息函数
        break;

        }
        }
        }
        /**
        * 修改信息点击事件,点击就会进入到修改页面进行修改
        * */
        private void initData() {
        dbStudents= new DbStudents(this);
        //创建数据库
        UpdateLv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id){
        StudentsBean studentsBean = mData.get(position);
        Intent intent = new Intent(ModStudentsActivity.this,AddStudentsActivity.class);
        intent.putExtra("number", studentsBean.getNumber());
        intent.putExtra("name", studentsBean.getName());
        intent.putExtra("year", studentsBean.getYear());
        intent.putExtra("sex", studentsBean.getSex());
        intent.putExtra("birth", studentsBean.getBirth());
        intent.putExtra("address", studentsBean.getAddress());
        intent.putExtra("phones", studentsBean.getphones());
        ModStudentsActivity.this.startActivityForResult(intent, 1);
        }
        });
        }
        }
        QueryStudentsActivity类:
        public class QueryStudentsActivity extends AppCompatActivity implements View.OnClickListener {
        ListView QueryLv;
        //列表
        EditText EtNumber, EtName;
        //输入框学号和姓名
        List<StudentsBean> mData;
        //数据源
        Adapter adapter;
        //适配器对象
        DbStudents dbStudents;
        //数据库
        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.
        activity_query_students);//绑定所有事件
        QueryLv = findViewById(R.id.
        query_lv);
        EtName = findViewById(R.id.
        et_name);
        EtNumber = findViewById(R.id.
        et_number);
        mData = new ArrayList<>();
        adapter = new Adapter(this, mData);
        QueryLv.setAdapter(adapter);
        dbStudents=new DbStudents(this);
        }
        /**
        * 按钮点击事件
        * */
        @Override
        public void onClick(View v) {
        switch (v.getId()) {
        case R.id.
        iv_back:
        Intent intent = new Intent(QueryStudentsActivity.this, MainActivity.class);
        //实现页面跳转
        startActivity(intent);
        finish();
        break;
        case R.id.
        iv_query:
        String number = EtNumber.getText().toString().trim();
        String name = EtName.getText().toString().trim();
        if (TextUtils.
        isEmpty(number)) {
        Toast.
        makeText(this, "请输入学号!", Toast.LENGTH_SHORT).show();
        } else if (TextUtils.
        isEmpty(name)) {
        Toast.
        makeText(this, "请输入姓名!", Toast.LENGTH_SHORT).show();
        } else {
        //开始搜索
        List<StudentsBean> list = DbStudents.
        getStudentListByNumberAndName(number,name);
        mData.clear();
        //将原来搜索的消息清除
        mData.addAll(list);
        //显示在列表上
        adapter.notifyDataSetChanged();
        //实时更新
        break;
        }
        }
        }
        SearchStudentsActivity类 :
        public class SearchStudentsActivity extends AppCompatActivity implements View.OnClickListener {
        ImageButton BtnBack;
        //退出按钮
        ListView listView;
        //列表
        List<StudentsBean> mData;
        //数据源
        Adapter adapter;
        //适配器
        DbStudents dbStudents;
        //数据库
        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.
        activity_search_students);//绑定事件
        BtnBack = findViewById(R.id.
        btn_back);
        BtnBack.setOnClickListener(this);
        listView = findViewById(R.id.
        listView);
        dbStudents = new DbStudents(this);
        mData = new ArrayList<>();
        System.
        out.println("长度为:" mData.size());
        //设置适配器:加载每一行数据到列表当中
        adapter = new Adapter(this, mData);
        listView.setAdapter(adapter);
        loadData();
        //显示学生信息列表函数
        }
        /**
        * 显示学生信息列表
        */
        private void loadData() {
        List<StudentsBean> list = DbStudents.
        search();
        mData.clear();
        mData.addAll(list);
        adapter.notifyDataSetChanged();
        //实时更新
        }
        @Override
        public void onClick(View v) {
        switch (v.getId()) {
        case R.id.
        btn_back:
        Intent intent = new Intent(SearchStudentsActivity.this, MainActivity.class);
        startActivity(intent);
        finish();
        break;
        }
        }
        }
        六 、数据库设计
        七、总结
        这次的课程学习时间比较短,所以完成的项目也不算完美 ,基础比较差,到做项目的时候问题就全部出来了,所以我还需要继续努力学习

        相关新闻

        联系我们
        联系我们
        分享本页
        返回顶部

          XML地图