• 基于Android的校园信息系统设计与实现


    目 录
    摘要 I
    Abstract II
    第一章 绪论 1
    1.1 研究内容 1
    1.2 研究意义 1
    1.3研究现状和发展趋势 1
    第二章 系统分析 3
    2.1 研究目标 3
    2.2 需求分析 3
    2.3业务流程分析 3
    2.4数据流图 4
    2.5数据字典 4
    2.6性能分析 6
    第三章 系统开发环境及相关技术 7
    3.1开发环境 7
    3.2 Java SDK 7
    3.3 Eclipse 7
    3.4 ADT 7
    3.5 Android SDK 8
    3.6 JSP技术 11
    3.7 JSON 12
    第四章 程序设计 14
    4.1 功能设计 14
    4.2 数据库设计 14
    1.概念结构设计 14
    2.数据库表设计 16
    第五章 程序开发 17
    5.1 文件结构与用途 17
    5.2 系统实现 19
    5.2.1登录页 19
    5.2.2后台页 19
    5.2.3校园动态 20
    5.2.4在线反馈 21
    第六章 系统测试 22
    6.1实例测试的研究与选择 22
    6.2测试环境与测试条件 23
    结论与展望 24
    参考文献 25
    致 谢 26
    第二章 系统分析
    2.1 研究目标
    (1) 了解Android应用程序的设计和开发过程;
    (2) 使用多种组件进行基于Android 平台的校园APP系统的软件开发。
    本软件是基于Eclipse的开发环境,依托Tomcat服务器上的后台数据,开发出了针对Android平台的校园APP系统。
    2.2 需求分析
    经过对校园APP系统的了解、以及体验了流程,总结出本系统需要的功能如下:
    登录功能。使用系统之前必须登录系统,登录过程通过无线网络,在后台数据库通过用户名称和密码进行查询,注册用户方才可以使用该系统。
    系统主菜单。系统登录成功后进入系统主菜单,主菜单通过图形菜单的方式来展现系统的功能,单击某个选项便进入该功能的操作界面。
    校园动态功能。此功能可以根据用户需要查看校园动态。
    在线反馈功能,此功能可以查看在线反馈。
    个人信息功能,包括:用户密码、昵称,手机信息等的修改。
    从上面的描述中可以基本了解软件的功能需求:
    本软件是一个Android 客户端+JSP Servlet服务端应用程序,本文转载自http://www.biyezuopin.vip/onews.asp?id=10897启动Android上的应用程序后可以登录、查看信息等。Android客户端上的信息数据是通过后台JSP Servlet服务端应用程序获取的,这个后台服务可以根据客户端发出的请求,返回信息。 图片和文字这些信息都保存在数据库中。

    package edu.self;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.Reader;
    import java.io.UnsupportedEncodingException;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.http.HttpResponse;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.params.CoreProtocolPNames;
    import org.apache.http.protocol.HTTP;
    
    import android.app.Activity;
    import android.app.ProgressDialog;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.Window;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    import com.bb.R;
    import com.bb.ui.MainActivity;
    import com.bb.util.Constants;
    import com.bb.util.HttpUtil;
    
    
    /**
     * 登录页面
     */
    public class LoginActivity extends Activity {
    	
    	
    	private EditText et_id;
    	private EditText et_password;
    	private ProgressDialog dialog;
    	 
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            
        	super.onCreate(savedInstanceState);
            
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.loginpage);
    
            et_id = (EditText) findViewById(R.id.login_edit_account);
    		et_password = (EditText) findViewById(R.id.login_edit_pwd);
    	  
    
    		((Button) findViewById(R.id.login_btn))
    		.setOnClickListener(new OnClickListener() {
    			@Override
    			public void onClick(View v) { 
    				String uin = et_id.getText().toString().trim();
    				String pwd = et_password.getText().toString().trim();
    				if ((uin.length() == 0) || (pwd.length() == 0)) {
    					Toast.makeText(LoginActivity.this, "用户名或者密码不能为空",
    							Toast.LENGTH_LONG).show();
    					return;
    				} 
    				login();
    			}
    		});
    		
    		((Button) findViewById(R.id.login_option)).setOnClickListener(new OnClickListener() {
    			
    			@Override
    			public void onClick(View v) {
    				startActivity(new Intent(LoginActivity.this, RegisterAccountActivity.class));
    				finish();
    			}
    		});
        }
        
        public void login() {
        	dialog = new ProgressDialog(this);
    		dialog.setMessage("登录中...请稍候");
    		dialog.show();
        	new Thread(){
    			public void run() {
    				if (HttpUtil.isConnectInternet(LoginActivity.this)) {
    					HttpPost post = new HttpPost(Constants.SERVER + Constants.SERVER_LOGIN);
    					List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>();
    					params.add(new BasicNameValuePair("userId", et_id.getText().toString()));
    					params.add(new BasicNameValuePair("password", et_password.getText().toString()));
    					try {
    						post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
    						post.getParams().setBooleanParameter(
    								CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
    						HttpResponse response = (HttpResponse) new DefaultHttpClient().execute(post);;
    						if (response != null) {
    							if (200 == response.getStatusLine().getStatusCode()) {
    								InputStream is = response.getEntity().getContent();
    								Reader reader = new BufferedReader(new InputStreamReader(is));
    								StringBuilder builder = new StringBuilder((int) response.getEntity().getContentLength());
    								char[] temp = new char[4000];
    								int len = 0;
    								while ((len = reader.read(temp)) != -1) {
    									builder.append(temp, 0, len);
    								}
    								reader.close();
    								is.close();
    								String content = builder.toString();
    								response.getEntity().consumeContent();
    								if (content.equals("true")) {
    									runOnUiThread(new Runnable() {
    										public void run() {
    											Intent intent = new Intent();
    											intent.setClass(LoginActivity.this, MainActivity.class);
    											intent.putExtra("userId", et_id.getText().toString());
    											
    											Constants.userId =  et_id.getText().toString() ;
    											System.out.println( " Constants.userId :::::" + Constants.userId ); 
    											
    											startActivity(intent);
    											dialog.dismiss();
    											LoginActivity.this.finish();
    										}
    									});
    								} else if (content.equals("false")) {
    									runOnUiThread(new Runnable() {
    										public void run() {
    											dialog.dismiss();
    											Toast.makeText(LoginActivity.this, "帐号不存在或用户名密码错误!", Toast.LENGTH_LONG).show();
    										}
    									});
    								} else {
    									runOnUiThread(new Runnable() {
    										public void run() {
    											dialog.dismiss();
    											Toast.makeText(LoginActivity.this, "登录失败,请稍后再试!", Toast.LENGTH_LONG).show();
    										}
    									});
    								}
    							}
    						}
    					} catch (UnsupportedEncodingException e) {
    						e.printStackTrace();
    					} catch (ClientProtocolException e) {
    						e.printStackTrace();
    					} catch (IOException e) {
    						e.printStackTrace();
    					}
    				}
    			};
    		}.start();
        }
    
        
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161

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

  • 相关阅读:
    有趣且重要的JS知识合集(17)矩形框交互算法
    “嵌入式智能化”为医疗设备不断赋能
    Unity Metaverse(五)、Avatar数字人换装系统的实现方案
    [附源码]计算机毕业设计JAVAjsp医院药房管理系统
    UE4 AI群集实现
    leetcode236. 二叉树的最近公共祖先
    聊天室案例实现保姆级教学
    深入理解联邦学习——联邦学习的分类
    jenkins、ant、selenium、testng搭建自动化测试框架
    Python编程 字典创建map与Zip
  • 原文地址:https://blog.csdn.net/newlw/article/details/126758350