安卓APP源码和设计报告(含PPT)——订餐系统

时间:2022-12-11 12:56:35

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

订餐系统实验报告

课程名称: Android程序设计

班 级:

学 号:

姓 名:

任课教师:


  1. 程序功能与环境(服务器,手机实物照片,自己拍)
  1. 程序功能
  1. 餐厅订餐系统服务器,提供订餐服务
  2. 餐厅订餐系统客户端,用户用来提交订单


  1. 环境
  1. 带有tomcat服务器的PC机一台,发布订餐服务支持
  2. 安卓手机一部,测试客户端
  3. 局域网环境,用来测试程序功能



  1. MVC架构用例,类图,(类图可以将文档页面放大了看)

安卓APP源码和设计报告(含PPT)——订餐系统


安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统

  1. 数据与设计
  1. food.test.domain
  1. Food.java
    此类用于封装用户购买菜品的信息
    public int foodId; //菜品编号
    public String foodName; //菜品名称
    public float foodPrice; //菜品价格
    public int foodType; //菜品类型
    public String foodDescri; //菜品描述
    public String foodImage; //菜品图片——暂定为String类型用于存储图片名


  1. food.test.hyl
  1. OrderListActivity.java
    此类为用户填写订购信息的Activity,用来处理订购信息,与用户进行交互,是连接用户和服务器的桥梁
    protected void onCreate(Bundle); //创建activity
    在onCreate函数中定义了两个按钮,并设置了监听函数:
    bsubmit.setOnClickListener(new OnClickListener() {//提交清单按钮被按下
    public void onClick(View v) {} //按钮被按下时触发
    private void callPost(Object[][] foods, String address,
    String email, String telephone, String suggest,String userId,String userName) {}//创建post方法,用来像服务端发送post请求
    };
    bcancel.setOnClickListener(new OnClickListener() {//取消按钮被按下。
    //用intent调用返回购物车界面
    Intent intent = new Intent(OrderListActivity.this,ShopCartShowAll.class);
    startActivity(intent);
    });
    protected Dialog onCreateDialog(int id); //创建对话框,用来显示用户提交信息的状态
    void onResume();//在视图按home键退出后,然后恢复时调用


  1. food.test.ld
  1. ActivityComment.java
    此Activity是用来给用户填写对菜品的评论信息的,并提交到服务器
    设置了两个按钮bdone和brevert并设置监听,被点击时触发
    Bdone,提交信息
    Brever,重写信息
  2. ActivityMainInterface.java
    此类创建了选择菜单,用来选择对菜品进行评论
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {}//创建选择菜单
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {}//菜单项被点击时调用
  3. ActivityRegister.java
    此Activity类用来进行用户注册
    bdone.setOnClickListener(new OnClickListener();设置用户信息完成时提交信息按钮监听
    在public void onClick(View v);中测试用户名及密码是否为空,为空时给出提示,并判断两次输入的密码是否相同
    ,并设置相同时跳转到用户登录界面即主界面
  4. OrderFoodLogin.java
    此类用于用户登录,并将用户信息提交到服务器进行匹配,并提示登录信息
    方法与上面的类似
    mp = new MediaPlayer();//播放音乐
    接下来的几个函数用来控制播放音乐


  1. food.test.sfp
  1. UserLogin.java
    此类用来创建显示用户登录状态的对话框,并通过toast给出登录状态信息
    private Dialog createLoginDialog(Context context){}//创建登录对话框
    @Override
    protected Dialog onCreateDialog(int id); //重写创建对话框函数


  1. food.test.util
  1. DButil.java
    此类为数据库工具类,用于对数据库的操作
    public DButil(Context context);//DButil的构造函数
    private void init();//数据库初始化函数
    public long addFood(ShopCart food); // 新增一条购买商品记录
    public Cursor getAllCartCursor();//查询所有的游标
    public ArrayList getAllShopCart();//得到购物车表里的所有数据
    public ArrayList<ShopCart> getFoodFromCart();//返回所有shopCart类型的ArrayList
    public int ModifyShopcart(int foodId,int foodnum,float foodsumprices ); //修改购物车中所有的数据
    public int deleteAllShopcart();//删除购物车中所有的数据
    public int deleteFood(String whereparam); //删除不需要的商品
    public ShopCart findFood(int foodid); //查找需要的商品
    public SQLiteDatabase getDB();//获取数据库连接
    public void close();//关闭数据库
    class MySQLiteHelper extends SQLiteOpenHelper{};//内部类,创建数据库辅助类
  2. HttpCallUtil.java
    此类封装了HTTP的连接
    public String getConntionPost(String url, String name,String psw,List data);// post请求
    public List putParam(List data);// 传递给服务端的数据,用Map进行封装
    public String getConntionGet(String url);// get请求
    public void getConntionImage(String url,ImageView iv);// 取得图片
  3. Util.java
    此类为工具类
    public Adapter initAdapter(Context context,ArrayList list,Cursor cur,int layout,String[] from,int[] to);// 实例化不同的适配器


  1. food.test.wjf
  1. ModifyListCart.java
    此类用于修改购物车中的信息,比如订购的数量等
    Intent intent = getIntent(); //获取从购物车中传过来的信息
    foodid = intent.getIntExtra("foodid", 0); //拿到购物车中传过来的食品编号 foodID
    foodname = intent.getStringExtra("foodname");//拿到购物车中传过来的食品名称foodname
    foodnum=intent.getIntExtra("foodnum", 1); //拿到购物车中传过来的食品订购数量
    foodprice = intent.getFloatExtra("foodprice", 1.0f); //拿到购物车中传过来的食品单价foodpricce
    bmodify.setOnClickListener(new OnClickListener() {//设置修改按钮监听函数,设置当按钮被点击时修改食品的订购信息,并返回到购物车
    db.ModifyShopcart(foodid, foodnum, sumfoodprices); //对购物车中的食品进行修改
    Intent intent = new Intent(ModifyListCart.this, ShopCartShowAll.class);// //回到购物车界面
    startActivity(intent);
  2. ShopCart.java
    定义一个购物车的类,封装购物车的信息
    private int foodId;// 商品id
    private String foodName;// 商品名称
    private float foodPrice;// 商品单价
    private int foodNum;// 商品数量
    private float sumPrices;// 商品金额
    private int image;// 商品图片
    下面为每个变量设置set和get方法
  3. ShopCartAdd.java
    此类用于添加购物车,并设置跳转到购物车界面
  4. ShopCartShowAll.java
    此类用来显示购物车中的所有食品,并对食品进行增删操作
    db=new DButil(this); //初始化数据库
    shopcur=db.getAllCartCursor();//获得购物车中所有的游标
    shopcartList=db.getAllShopCart();//获取数据库中所有的数据
    for(int i=0;i<shopcartList.size();i++){
    food=(HashMap) shopcartList.get(i);
    Float prices= (Float) food.get("foodsumprices");
    //得到所有餐品总的金额
    totalprices+=prices;
    }
    private Dialog builder1(Context ctx) ;//创建修改,删除对话框,设置按钮监听
    private Dialog builder2(Context ctx);//创建确认删除对话框
    public boolean onCreateOptionsMenu(Menu menu);创建菜单功能,按菜单键弹出
    public boolean onOptionsItemSelected(MenuItem item);选择菜单项时触发
  5. ShowListCart.java
    显示购物车列表


  1. food.test.zqz
  1. util
  1. FoodType.java
    默认为“肉食”FOOD_MEAT类
  2. GetNetWorkData.java
    从服务器获取有关主界面的所有数据
    public final static StringBuffer getConnectionPost(String url,
    HashMap<String, String> params);// url服务器端的URI地址, params发给服务端的请求参数,以键值对的形式封装名字和对应的值,其中params的名字键位应该跟服务端保持一致
    public final static ArrayList<Food> decodeResponseData(String sb);// 对服务器端的响应数据进行“解码”, sb服务器端的响应数据
    public static ArrayList<Food> decode(ArrayList<Food> resData, String itemStr);// 对图片的接收
    public static ArrayList<String> getAllFoodBitmapUrl(int foodType, String location, ArrayList<Food> foods);// return 对应菜品类型所有资源的URL的字符串
    public static String getAssignedFoodBitmapUrl(String location,String foodImage);// 获取指定资源的具体位置
    public static void setAssignedFoodBimapView(String url, ImageView foodImageView);//设置foodImageView视图


  1. ActivityShowFoodByType.java
    public Food selectedFood = new Food();// 用户在界面上选中的所有商品信息
    private ArrayList<Food> getServerFoodInfoByType(int flagType);// 根据菜品类型,获取服务器端的菜品信息
    private void prepareView();//准备显示在界面的数据
    public boolean onCreateOptionsMenu(Menu menu);// 添加功能Menu键
    public boolean onOptionsItemSelected(MenuItem item);// 监听用户选中事件
    private float getTotalMoney(float price, int number);// 计算(可能含小数位)总金额
    public final class ViewHolder{}// Bean对象,用来封装GridView中的一个数据
    public View getView(int position, View convertView, ViewGroup parent);// // 返回某一条数据的视图
  2. AndroidFoodMain.java
    此类用于在食品种类之间进行切换,包括肉食类,素食类,鲜汤类
  3. FoodDetail.java
    此类用于存放菜品的详细信息
    protected void onCreate(Bundle savedInstanceState);//创建Activity
    public String foodTypeTransform(int type);//获取食品的类型



  1. 运行逻辑 (给出几个时序图,运行画面)
  1. 注册
    4.1.1注册时序图

安卓APP源码和设计报告(含PPT)——订餐系统

4.1.2 注册运行画面

安卓APP源码和设计报告(含PPT)——订餐系统


安卓APP源码和设计报告(含PPT)——订餐系统

  1. 登录
  1. 登录时序图

安卓APP源码和设计报告(含PPT)——订餐系统

  1. 登录运行画面

安卓APP源码和设计报告(含PPT)——订餐系统


安卓APP源码和设计报告(含PPT)——订餐系统


  1. 订餐
  1. 订餐时序图

安卓APP源码和设计报告(含PPT)——订餐系统


安卓APP源码和设计报告(含PPT)——订餐系统

  1. 订餐运行画面

安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统


安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统


安卓APP源码和设计报告(含PPT)——订餐系统

安卓APP源码和设计报告(含PPT)——订餐系统


安卓APP源码和设计报告(含PPT)——订餐系统


安卓APP源码和设计报告(含PPT)——订餐系统


安卓APP源码和设计报告(含PPT)——订餐系统


安卓APP源码和设计报告(含PPT)——订餐系统



  1. 测试 功能,monkey测试
  1. 基本功能测试
    上面的运行逻辑中已经给出基本运行效果,及功能演示,基本功能通过
  2. Monkey测试
  1. 通过eclipse启动一个Android的emulator
  2. 在命令行中输入:adb devices查看设备连接情况

安卓APP源码和设计报告(含PPT)——订餐系统

  1. 在有设备连接的前提下,在命令行中输入:adb shell 进入shell界面

安卓APP源码和设计报告(含PPT)——订餐系统

  1. 测试food.test程序
    #monkey -p food.test -v 20

安卓APP源码和设计报告(含PPT)——订餐系统



  1. 改进的可能性

界面显示效果,加入记录用户数据实现自动登录