基于Android的学生管理系统App设计与实现(Eclipse开发)

news2024/11/25 4:49:43

目 录
摘 要 I
Abstract II
1 绪论 1
1.1 选题背景及意义 1
1.2 研究现状 1
1.2.1 教育系统发展现状 1
1.2.2 手机的应用市场发展现状 1
1.2.3 Android平台介绍 3
1.2.4 Android管理学生信息的意义 5
1.3.3 开发的环境及开发工具介绍 6
1.3 研究主要内容 6
2 相关技术介绍 7
2.1 Android的系统框架 7
2.2 Android的特性 7
2.3 Android的开发环境的搭建 8
2.4 Android的数据库 9
3 学生信息管理及沟通系统系统设计 13
3.1 学生信息管理及沟通系统概述 13
3.1.1开展该系统的原因 13
3.1.2 基本目标 13
3.2 系统需求分析 13
3.2.1 性能需求 14
3.2.2 功能需求 14
3.3 系统功能分析 14
3.4 可行性分析 15
3.4.1操作可行性 15
3.4.2技术可行性 15
3.4.3社会可行性 15
3.5 方案选择 15
3.6 任务概述 17
3.7 数据库的设计 17
3.8 系统流程图 20
4 学生信息管理及沟通系统功能实现 21
4.1 项目建立 21
4.2 类的创建 21
4.3.1 用户登录界面 22
4.3.2 用户注册界面 24
4.3.3 学生用户界面 24
4.3.4 教师用户界面 27
4.3.5 管理员界面 28
4.4 小结 30
5 学生信息管理及沟通系统系统测试 31
5.1 测试环境介绍 31
5.2 功能模块测试 31
5.3 系统性能分析 34
5.4 小结 34
总 结 35
致 谢 36
参考文献 37
3 学生信息管理及沟通系统系统设计
3.1 学生信息管理及沟通系统概述
3.1.1开展该系统的原因
由于现今的学生信息管理非常繁琐,需要管理人员耗费大量的工作时间,效率很低,因此为了提高工作效率,减轻工作的负担,决定改变开发学生信息管理及沟通系统软件。
3.1.2 基本目标
开发这个学生信息管理及沟通系统,为学校的管理员提供了便捷的学生信息管理条件,方便的进行查询,增删。此外,也允许学生,教师查看信息,及时的了解学校的动态。
学生界面实现:查询个人信息,查看系统公告,全体学生的成绩查询,开设课程查询和考试安排查询。
教师界面实现:查询个人信息,查看系统公告,全体学生的成绩查询,全体学生的信息查询。
管理员界面实现:查询学生信息,查询老师信息,录入学生成绩并可查询,添加教师,学生用户,发布公告,安排考试,课程管理。
3.2 系统需求分析
学生信息管理及沟通系统是一个学校不可缺少的一部分,它的内容对于学校的管理来说是至关重要的,因此,学生信息管理及沟通系统应该能够为用户提供充足人事管理的信息和查询手段,但一直以来人们使用传统的人工方式管理信息,这种管理方式存在着许多缺点,诸如效率低,保密性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。作为计算机应用的一部分,使用计算机对学生信息信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率,也是学校的科学化、信息化管理,与世界接轨的重要条件。因此,开发一个学生信息管理及沟通系统是很有必要的,具有其特有的技术意义和管理意义。
3.2.1 性能需求
作为一个数据库系统,首先,系统要有很好的稳定性和可维护性,使得系统易于维护;其次,系统要有很好的可扩展性,能够在现有框架不变的前提下增加新的业务逻辑,进行二次开发;第三,系统要有很好的可移植性,在Windows系统下开发,适合觉得部分用户,以满足不同用户的需求;第四,系统要考虑使用该系统的所有用户的实际操作水平,尽可能使界面简洁、美观、操作简单。
3.2.2 功能需求
本软件由登陆界面需要分别进入学生界面,教师界面,管理员界面。
学生界面实现:查询个人信息,查看系统公告,全体学生的成绩查询,开设课程查询和考试安排查询。
教师界面实现:查询个人信息,查看系统公告,全体学生的成绩查询,全体学生的信息查询。
管理员界面实现:查询学生信息,查询老师信息,录入学生成绩并可查询,添加教师,学生用户,发布公告,安排考试,课程管理。
3.3 系统功能分析
该系统的开发目标是实现学生信息管理的方便化,信息化,规范化,能够使管理员便捷的管理,用户方便的查看自己需要的信息。所以,具体的功能要求如下:
学生信息的管理: 可存储学生的基本信息,可进行添加,删除操作。
教师信息的管理:可存储教师的基本信息,可添加,可删除,可查询学生的信息。
课程的管理:可查询当前开设的课程,可添加,可删除。
成绩的管理:可查询学生成绩,可添加,可删除。
考试安排的管理:可为相关的专业考试安排具体的考试地址,可删除。
消息发布机制的管理:可发布学生,教师相关的信息,供学生,教师注意,可删除,可添加。
登陆账号密码的管理:可根据相应注册的帐号密码以及对应的角色选择,三者共同确定,登录相应的应用界面,可添加,可删除。

package com.briup.systemofstudent;

import java.sql.Date;

import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.Toast;
import android.widget.CompoundButton.OnCheckedChangeListener;

public class AddUserManActivity extends Activity{
	private EditText nameEt,sexyEt,nationalEt,
	majorEt,class1Et,idEt,dateEt,cardEt,addressEt;
	private Button save,exit;
	private SQLiteDatabase db;
	private MySQLiteDataBaseHelper helper;
	private Switch switcher;
	protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
setContentView(R.layout.activity_adduser);
switcher=(Switch)findViewById(R.id.switcher);
OnCheckedChangeListener listener=new OnCheckedChangeListener() {
	public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
		if(isChecked){
		
		}
		else{
			startActivity(new Intent(AddUserManActivity.this,UserManActivity.class));
			
		}
	}
};

switcher.setOnCheckedChangeListener(listener);
nameEt=(EditText)findViewById(R.id.name);
sexyEt=(EditText)findViewById(R.id.sexy);
nationalEt=(EditText)findViewById(R.id.national);
majorEt=(EditText)findViewById(R.id.major);
class1Et=(EditText)findViewById(R.id.class1);
idEt=(EditText)findViewById(R.id.id);
dateEt=(EditText)findViewById(R.id.date);
cardEt=(EditText)findViewById(R.id.card);
addressEt=(EditText)findViewById(R.id.address);
helper =new MySQLiteDataBaseHelper(this, "account.db", null, 1);
db=helper.getReadableDatabase();
save=(Button)findViewById(R.id.save);
save.setOnClickListener(new OnClickListener() {
	public void onClick(View v) {
		String name=nameEt.getText().toString();
		String sexy=sexyEt.getText().toString();
		String national=nationalEt.getText().toString();
		String major=majorEt.getText().toString();
		String class1=class1Et.getText().toString();
		String id=idEt.getText().toString();
		String date=dateEt.getText().toString();
		String card=cardEt.getText().toString();
		String address=addressEt.getText().toString();
		insert(db, name,sexy,national,major,class1,id,date,card,address);
		Toast.makeText(AddUserManActivity.this, "添加成功", Toast.LENGTH_SHORT).show();			
		AddUserManActivity.this.finish();
	}
});


exit=(Button)findViewById(R.id.exit);
exit.setOnClickListener(new OnClickListener() {
	public void onClick(View v) {
		Toast.makeText(AddUserManActivity.this, "已退出", Toast.LENGTH_SHORT).show();			
		AddUserManActivity.this.finish();
	}
});
	}
	public void mysave(View view){
		String name=nameEt.getText().toString();
		String sexy=sexyEt.getText().toString();
		String national=nationalEt.getText().toString();
		String major=majorEt.getText().toString();
		String class1=class1Et.getText().toString();
		String id=idEt.getText().toString();
		String date=(String)(dateEt.getText().toString());
		String card=cardEt.getText().toString();
		String address=class1Et.getText().toString();
		insert(db, name, sexy, national, major, class1, id, date, card, address);
		Toast.makeText(this,"成功", Toast.LENGTH_SHORT).show();
		AddUserManActivity.this.finish();
	}
	public void insert(SQLiteDatabase db,String name,String sexy,
			String national,String major,String class1,String id,String date,String card,String address){
		db.execSQL("insert into tb_student(_id,name,sexy,national,major,class,birthday,card,address) values(?,?,?,?,?,?,?,?,?)",
				new String[]{id,name,sexy,national,major,class1,date,card,address});
	}
}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/48677.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安装 laravel 遇到的错误和解决方案

安装 laravel 遇到的错误和解决方案 纯粹是为了运行下 laravel,遇到了错误记录下,分享给需要的人。 下载 PHP Windows 版 ,我选择的版本是 PHP 7.4 (7.4.33)。下载文件以后找个文件夹解压就可以了。Composer 安装,官网 。 勾选以…

单元测试与数据库

单元测试 1.单元测试应该是全自动执行的,而非交互式的,应使用assert语句来验证结果而不是sout后进行人眼验证 2.为了保证单元测试可靠且便于维护,单元测试用例之间不能互相调用 3.单元测试是可重复执行的,不能受到外界环境的影响 4.单元测试代买必须写在src/test/java的工程…

【JAVA程序设计】基于SpringBoot+VUE的高校疫情打卡系统-前后端分离

基于SpringBootVUE的高校疫情打卡系统零、项目获取一、项目简介二、开发环境三、项目技术四、系统架构五、运行截图六、数据库设计零、项目获取 获取方式(点击下载):是云猿实战 项目经过多人测试运行,可以确保100%成功运行。 一…

【C++11重点语法】lambda表达式,初始化列表

目录 引子:C11为什么的源来 语法1:初始化列表 1.2.2 多个对象的列表初始化 语法3:默认成员函数控制(delete,default) 语法4:lambda表达式 引子:C11为什么的源来 在2003年C标准…

[附源码]计算机毕业设计springboot课室预约系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

用户体验设计笔记(1-1)

前言 ☔️只考虑体验的商业不可持续,只考虑商业的体验没有底线。         ☔️用户体验就是用户使用产品过程中积累起来的主管体验总和。 1 丨商业的天时:如何选择正确的体验策略? ☔️任何产品与服务,都是从用户场景的商业规…

小项目应该如何进行跨平台方案选型

作为一个小开发,近期完整的经历了,一个初创项目从搭建到推向市场的过程。实际上在整个过程中,开发只占很小的一个板块,尤其是对于我司这种初创型企业,人少钱少,每一分都得花到刀刃上,因此产品开…

新零售行业如何玩转线上服务

如今,随着市场的千变万化,企业的商业模式正在不断经历革新。如线上企业不再单纯走电商路线,纷纷进军线下卖场,而传统门店也在寻找线上突围的机会,通过与电商平台合作,开启线上专卖店。线上线下相结合的新零…

WebDAV之葫芦儿·派盘+静读天下

静读天下 支持webdav方式连接葫芦儿派盘。 如今,很多人都喜欢在手机上进行阅读,所以想要获得更好的阅读体验,一款实用的电子书就显得尤为重要了,因此,静读天下这款纯正的本地电子书阅读软件您值得拥有,而且还支持本地电子书备份到葫芦儿派盘。 静读天下是一款备受千万…

实例方法(instance method)、类方法、构造方法(三)

实例方法(没有static)的概念 对象被称为实例。实例相关的有:实例变量、实例方法。实例变量是对象变量。实例方法是对象方法。实例方法没有static。(对象方法,对象级别的方法) 实例方法的调用需要先new一个…

详解设计模式:桥接模式

桥接模式(Bridge Pattern)也称为桥梁模式、接口模式或者柄体模式,有点像适配器模式,也是 GoF 的 23 种设计模式中的一种结构型设计模式。 桥接模式 是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模…

【算法基础】双指针

一、最长连续不重复子序列 给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。 输入格式 第一行包含整数 n。 第二行包含 n 个整数(均在 0∼105 范围内),表示整数序列。 输出格式 …

azkaban表project_flows数据分析

project_flows表中数据是怎么存入进去的呢,其中有个JSON字符串是乱码,怎么设置的呢?搜索插入语句地方如下: 查看压缩类型,2为Gzip压缩 public enum EncodingType {PLAIN(1), GZIP(2); 查看flow.toObject方法,其实返回的是一个MAP,定义如下: 查看convertJsonToBytes方…

【毕业设计】20-基于单片机的指纹识别系统设计(原理图工程+源代码工程+实物操作图+答辩论文+答辩PPT)

typora-root-url: ./ 【毕业设计】20-基于单片机的指纹识别系统设计(原理图工程源代码工程实物操作图答辩论文答辩PPT) 文章目录typora-root-url: ./【毕业设计】20-基于单片机的指纹识别系统设计(原理图工程源代码工程实物操作图答辩论文答…

anaconda ( jupyter notebook ) 虚拟环境安装 lazypredict

安装lazypredict 点击 Anaconda Prompt 1.创建虚拟环境 conda create -n py3.9 python3.92.激活虚拟环境 conda activate py3.93.安装lazypredict pip3 install lazypredict0.2.7 numpy pandas tqdm scikit-learn xgboost lightgbm4.安装ipykernel (第一次导入…

SpringBoot3.0正式发布,我来尝尝鲜

GraalVM 版本:graalvm-ce-java17-22.3.0 SpringBoot3.0 中最重要的特性就是对 GraalVM 的支持,从而达到更快的启动速度,有两种使用方式。 利用 GraalVM 构建可执行文件 因为需要利用 GraalVM 来打包可执行文件,所以需要你的机器上…

bestphp‘s revenge/ 安洵杯Babyphp(phpsession题目)

目录 [LCTF]bestphp‘s revenge 一.SoapClient 二.CRLF Injection漏洞 简单来说就是,“回车换行”(\r\n)的简称。 三、call_user_func 四、PHPsession反序列化 安洵杯Babyphp 第一步 第二步 第三步 最后 [LCTF]bestphp‘s revenge 一.SoapCl…

基于docker创建mysql容器

基础环境 Server: Docker Engine - CommunityEngine:Version: 20.10.9选择镜像 好用、可靠 不好用:DOCKER OFFICIAL IMAGE mysql 好用: VERIFIED PUBLISHER bitnami/mysql 部署容器 创建桥接网络 docker network create app-tier --drive…

java 把a.txt文件中的内容复制到当前项目目录下的b.txt文件中,2种方式比较复制效率 毫秒比较

java 把a.txt文件中的内容复制到当前项目目录下的b.txt文件中,2种方式比较复制效率 毫秒比较 package xxx;import java.io.*; public class JavaApplication1 {public static void main(String[] args) throws IOException {long start System.currentTimeMillis(…

[附源码]Python计算机毕业设计Django第三方游戏零售平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…