• 基于java+android+SQLite的保健型果饮在线销售APP设计


    目 录
    目录
    摘 要 I
    目 录 1
    1 绪论 1
    1.1 研发背景 1
    1.2 系统目标 2
    1.3 开发技术与开发环境 2
    1.3.1 Java 2
    1.3.2 SQL ite 轻型数据库 3
    1.3.3 Android开发 3
    2 系统分析 3
    2.1 可行性分析 3
    2.1.1 技术可行性分析 4
    2.1.2 经济可行性分析 4
    2.1.3 安全可行性分析 4
    2.1.4 操作可行性分析 4
    2.2 需求分析 5
    2.2.1 系统的功能需求 5
    2.2.2 系统的实现目标 5
    2.2.3 系统的性能需求 6
    2.2.4 运行环境 6
    3 总体设计与实现 7
    3.1 系统功能模块 7
    3.1.1登陆注册模块 7
    3.1.2管理员管理模块 10
    3.1.3用户在线购买 17
    3.1.4 系统功能总框图 23
    3.1.5 ER图 25
    3.2 数据库设计 27
    3.2.1 系统数据表 27
    3.2.2所有的见表语句 28
    4 总结 29
    5参考文献 29
    2.2 需求分析
    本系统的开发目的是为了减少工作人员负担和提高服务质量提升客人满意程度,获得更大的利润。如今的社会服务类行业的竞争非常激烈,要想提高公司的综合实力,获得更高的经济利益,就必须在提高客户满意度的同时,还要考虑到成本问题;公司管理系统正是起到这样的作用,它可以为管理者提供便捷管理为客户提供方便的服务。通过本系统,管理人员可以随时查看和管理公司的相关信息。减轻了工作人员的工作负担。管理人员的对公司的管理变得更加方便、快捷。
    2.2.1 系统的功能需求
    根据在网上了解的保健型果饮饮业的情况了解系统的功能需求,该系统以果饮业务为基础,突出前台管理,从专业角度出发,提供科学有效的管理模式。用户通过简单的操作图形界面来把相应的菜单信息上传到数据库中,并且用户能通过图形界面直观地查询、修改相关数据信息。通过其中相关的菜单管理可简便实现订购,支付等功能。账单管理可对客人的消费购买情况总结等进行查看分析。为公司经营提供总体的管理数据进一步促进公司的发展。
    根据已经了解到的情况,系统主要功能应有以下内容
    1、登陆注册模块:诺有账户选择登陆名并输入正确的密码进行验证登陆系统;若没有选择注册
    2、后台管理:主要是对公司货物的进出进行记录,对用户进行管理,对用户的购买订单进行管理。
    2.2.2 系统的实现目标
    本管理系统在实施后应能够达到以下目标:
    1、采用友好界面人工操作操作简单易行。
    2、业务管理信息化,通过系统可以了解到公司的资源和管理信息。
    3、通过使用该软件降低使用者的劳动强度,提高工作效率。
    4、系统操作简单易维护并且具有基本安全性保障。
    5、系统运行应该快速、稳定、高效和可靠;
    6、在结构上具可扩展性,如有需求,可以进行功能扩展和维护。
    2.2.3 系统的性能需求
    2.2.3.1 系统的简单性、易用性
    通过使用本系统,可以让服务员较为简单进行服务,不但便利顾客,也提高公司的管理效率,并且该系统对于普通工作人员,只需要进行简单的说明就可以基本熟练运用,能够熟练的操作系统的各个功能。本文转载自http://www.biyezuopin.vip/onews.asp?id=15294
    系统必须要做到简单易用,才能够方便的供各层次的人员使用,使没有使用计算机的经验也能够轻松上手。
    2.2.3.2 系统的稳定性、可靠性
    作为服务类行业,每次经营都影响最终收益,公司管理系统的可靠性、稳定性一定要好。根据公司这种服务类行业的特点,该系统必须具有高度的稳定性,是公司在运营高峰期能够稳定运行,即使系统出现一定故障,也能及时修复故障恢复数据。
    2.2.4 运行环境
    系统对运行的环境的要求:
    操作系统:android 2.3 JDK 1.6。
    数据库服务器:SQLite
    开发工具:Eclipse

    package com.baige.nbsm;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.database.Cursor;
    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.EditText;
    import android.widget.RadioButton;
    import android.widget.Toast;
    
    import com.anjoyo.LibrarySystem.R;
    import com.baige.nbsm.activty.ManagerActivity;
    import com.baige.nbsm.db.nuoboDB;
    import com.baige.nbsm.user.UserActivity;
    import com.baige.nbsm.utils.Constants;
    
    public class MainActivity extends Activity {
    	private EditText username, password; // 用户名,密码
    	RadioButton rb_student, rb_manager; // 学生,管理员
    	Button btn_login;// 登陆
    	Button btn_resign;//注册
    
    	// 控件注册
    	private void init() {
    		username = (EditText) findViewById(R.id.edt_username);
    		password = (EditText) findViewById(R.id.edt_password);
    		rb_student = (RadioButton) findViewById(R.id.rb_user);
    		rb_manager = (RadioButton) findViewById(R.id.rb_manager);
    		btn_login = (Button) findViewById(R.id.btn_login);
    		btn_resign = (Button) findViewById(R.id.btn_register);
    
    		// 点击进入管理页面
    		btn_login.setOnClickListener(new OnClickListener() {
    
    			@Override
    			public void onClick(View v) {
    				// 获取用户名
    				String un = username.getText().toString();
    				// 获取输入的密码
    				String pd = password.getText().toString();
    				SQLiteDatabase db = new nuoboDB(MainActivity.this)
    						.getReadableDatabase();
    				Cursor cursor = null;
    				if (rb_student.isChecked()) {
    					cursor = db.rawQuery("select * from " + Constants.USER_TABLE
    							+ " where username=? and password=? and type=?",
    							new String[] { un, pd, "0" });
    					if (cursor != null && cursor.getCount() > 0) { // 表示登陆成功
    						cursor.moveToFirst();
    						int id = cursor.getInt(cursor.getColumnIndex("_id"));
    						Intent intent = new Intent(MainActivity.this,
    								UserActivity.class);
    						intent.putExtra("id", id);
    						intent.putExtra("username", un);
    						intent.putExtra("password", pd);
    						startActivity(intent);
    					} else {
    						Toast.makeText(MainActivity.this, "用户名或密码错误!",
    								Toast.LENGTH_LONG).show();
    					}
    					cursor.close();
    				} else if (rb_manager.isChecked()) { // 表示是管理员登陆
    					cursor = db.rawQuery("select * from " + Constants.USER_TABLE
    							+ " where username=? and password=? and type=?",
    							new String[] { un, pd, "1" });
    					if (cursor != null && cursor.getCount() > 0) { // 表示登陆成功
    						cursor.moveToFirst();
    						int id = cursor.getInt(cursor.getColumnIndex("_id"));
    						Intent intent = new Intent(MainActivity.this,
    								ManagerActivity.class);
    						intent.putExtra("id", id);
    						intent.putExtra("username", un);
    						intent.putExtra("password", pd);
    						startActivity(intent);
    					} else {
    						Toast.makeText(MainActivity.this, "用户名或密码错误!",
    								Toast.LENGTH_LONG).show();
    					}
    					cursor.close();
    				}
    
    			}
    		});
    		
    		btn_resign.setOnClickListener(new OnClickListener() {
    			
    			@Override
    			public void onClick(View v) {
    				Intent intent = new Intent(MainActivity.this, ResigeActivity.class);
    				startActivity(intent);
    			}
    		});
    	}
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.layout_login);
    		init();
    	}
    
    }
    
    
    • 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

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

  • 相关阅读:
    SpringBoot异步任务、邮件发送、定时任务
    如何在 Substance Painter 中加载漫反射贴图?
    超低价纯流量卡不限速?三招教你拆穿商家套路
    [架构之路-219]:工程师成长为优秀架构师的路径
    【Unity基础】2.网格材质贴图与资源打包
    选择排序—直接选择排序和堆排序
    React给方法使用useState
    本地模拟发送、接收RabbitMQ数据
    机器学习西瓜书-1-2章
    面试官:Spring中都应用了哪些设计模式?
  • 原文地址:https://blog.csdn.net/newlw/article/details/126720247