草庐IT

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

biyezuopinvip 2023-04-29 原文

目 录
摘 要 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});
	}
}




















有关基于Android的学生管理系统App设计与实现(Eclipse开发)的更多相关文章

  1. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  2. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  3. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  4. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  5. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  6. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  7. ruby-on-rails - 获取 inf-ruby 以使用 ruby​​ 版本管理器 (rvm) - 2

    我安装了ruby​​版本管理器,并将RVM安装的ruby​​实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby​​。有没有办法让emacs像shell一样尊重ruby​​的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el

  8. ruby-on-rails - 如何重命名或移动 Rails 的 README_FOR_APP - 2

    当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?

  9. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  10. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

随机推荐