课设:点餐小程序的设计与实现(二)

300 阅读7分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情

点餐小程序的设计与实现(二)

第二章 系统设计

§2.1 系统设计方法三原则

       人类在复杂的工程技术系统如能源、交通等建设方面,积累了丰富的经验,为研究复杂系统如管理系统提供了科学的指导性方法论,其主要原则如下:

       (1)整体性原则。系统是相互联系,相互作用的诸要素组成的综合体。我们必须从整体和各组成部分的相互关系来考察事物,从整体目标和功能出发,正确处理系统各组成部分之间的相互关系和相互作用。

       (2)分解—协调原则。就是把复杂问题化成若干相对简单的子问题以方便求解。若子系统的问题比较复杂,还可以再分。但在处理各类子问题时,必须根据系统的整体功能和目标,协调各子系统的行为、功能与目标,以保证整体功能目标的实现。

       (3)目标优化原则。所谓目标优化原则对简单的系统来说,是求最优解,对复杂系统来说,求的是满意解。一定要注意,目标优化原则并不简单是求最优解的问题。

       这里最需要指出的是:以上三原则是系统方法中处理复杂系统问题的三个主要原则,并非是全部原则。在处理实际问题时,还需要在这些原则的指导下,根据问题的特点,确定求解的具体方法和策略。

§2.2 系统的功能模块

       点餐微信小程序主要分为登录、注册、忘记密码、首页、每日推荐、分类、门店地址、我的八大页面部分。用户可以在登录注册页面进行登录注册功能,若忘记密码可在忘记密码页面来找回密码。登陆成功后进入主页,可实现背景音乐的播放和停止。每日推荐可看到推荐的菜品,点击菜品可查看商品详情和商品加购等功能。分类包括所有商品列表,可点击进行加购。门店地址可查看门店的详细地址。我的包括我的订单、待付款、待发货、待收货、已完成、购物车等功能,点击购物车可查看自己加购的菜品以及价格。系统的功能模块图如图2-1所示。

§2.3 框架接口、组件及API

       1、data:页面第一次渲染使用的初始数据。页面加载时,data将会以JSON字符串的形式由逻辑层传至渲染层,因此data中的数据必须是可以转成JSON的类型。

       2、onLoad:页面加载时触发。一个页面只会调用一次,可以在onLoad的参数中获取打开当前页面路径中的参数。

       3、onReady:页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。

       4、onShow:监听页面显示。

       5、onHide:监听页面隐藏。

       6、onUnload:生命周期回调—监听页面卸载。

       7、getApp:获取到小程序全局唯一的App实例。

       8、wx:for:控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item 。

       9、sitemap:配置小程序根目录下的sitemap.json文件用来配置小程序及其页面是否允许被微信索引。

       10、window:用于设置小程序的状态栏、导航条、标题、窗口背景色。

       11、pagePath:页面路径,必须在pages中先定义。

       12、navigator:页面链接。

       13、Success接口:调用成功的回调函数。

       14、Fail接口:调用失败的回调函数。

       15、setData函数:用于将数据从逻辑层发送到视图层(异步),同时改变对应的this.data的值(同步)。

       16、PageObject[] getCurrentPages():获取当前页面栈。数组中第一个元素为首页,最后一个元素为当前页面。

       17、entryPagePath:小程序默认启动首页。

       18、iconPath:图片路径,icon大小限制为40kb,建议尺寸为81px*81px,当postion为top时,此参数无效。

       19、selectedIconPath:选中时的图片路径,icon大小限制为40kb,建议尺寸为 81px*81px,当 postion为top时,此参数无效。

       20、navigationBarFit:默认自动调整,若原页面是自定义导航栏,则为float,否则为squeezed。

       21、navigationBarBackgroundColor:导航栏背景颜色。

       22、navigationBarTextStyle:导航栏标题颜色。

       23、navigationBarTitleText:导航栏标题文字内容。

       24、selectedColor:tab上的文字选中时的颜色。

       25、onShareAppMessage:用户点击右上角转发。

       26、wx.navigateTo:保留当前页面,跳转到应用内的某个页面,但是不能跳到tabbar页面。

       27、wx.openLocation:使用微信内置地图查看位置。

       28、wx.getStorageSync:wx.getStorage的同步版本,从本地缓存中异步获取指定key的内容

       29、wx.canIUse:判断小程序的API,回调,参数,组件等是否在当前版本可用。

       30、wx.getSetting:获取用户的当前设置,返回值中只会出现小程序已经向用户请求过的权限。

       31、wx.getUserInfo:获取用户信息。

       32、wx.login:调用接口获取登录凭证。

§2.4 系统数据库设计

       数据库是由多个相互关联的数据表组成,本数据库利用MySQL实现并完成数据库的设计,在本系统中包括如下:确定数据库内所有数据表的名称及表内所含字段的名称、类型、长度、主键及是否为空;确定数据库文件是否需要建立索引、是否具有外键等等。

§2.4.1 数据库表设计

       推荐用户信息表(role)用于存储用户的相关信息内容,如下表所示:

序号字段名称字段说明类型位数属性
1username推荐编号int11必填,非空,主键
2password推荐标题varchar32必填,非空
3phone推荐简介varchar32必填,非空
/*
SQLyog Ultimate v12.08 (64 bit)
MySQL - 8.0.18 : Database - user
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`user` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */;

USE `user`;

/*Table structure for table `role` */

DROP TABLE IF EXISTS `role`;

CREATE TABLE `role` (
  `username` varchar(20) DEFAULT NULL,
  `password` varchar(20) DEFAULT NULL,
  `phone` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/*Data for the table `role` */

insert  into `role`(`username`,`password`,`phone`) values ('zhangsan','123','7890'),('lisi','aaa','1234'),('zhengxiaoyu','123456','8703'),('zhenghuiyun','123456','1234');

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

尾言

       这是课设的系统设计以及部分数据库,如果觉得还不错的话,欢迎点赞收藏哦