cms建站详细教程_跨境电商真的好做吗_seo新手入门教程_ui设计看重学历吗 3.1 可行性分析

一个完整的系统,可行性分析是必须要有的,因为他关系到系统生存问题,对开发的意义进行分析,能否通过本系统来补充线下校园寝室分配查询模式中的缺限,去解决其中的不足等,通过对本系统,不仅能使工作量不断地减少,还能使工作和管理的效率更加高。所以开发该系统能实现更大的意义和价值, 系统完成后,能否达到预期效果就要通过可行性分析,分析之后,决定此系统是否开发。该红色旅游网站的开发设计中,对技术、经济、操作方面进行了可行性分析; 

3.1.1 技术可行性

本系统开发选择PHP语言,它被研究的目的就是在于能够为网页创建等可以看到的信息。随着移动互联网技术的不断发展和创新,PHP俨然已成为下一代互联网的Web标准。所以设计选择使用MYSQL,数据库主要用来的建立和维护信息。对于前台开发要求应具备功能完善、易于操作等优点,后台数据库的要求则是能够建立和维护数据信息的统一性和完整性。

3.1.2 操作可行性

现在随着科技的飞速发展,计算机早已经进入了人们的日常生活中,人们的工作环境也不像以前有那么多的要求,需要员工一定要到公司办公,有的工作在家也可以完成。这使得人们的工作效益有了很大的提高。操作的多样性也变高了。因此,管理的计算机化,智能化是社会发展而带来的必然趋势,各种智能的软件层出不穷,不同的软件能完成用户不同的需求,这不仅提高了工作效率还能完成一些客户特定的一些需求。本系统不仅界面简洁明了还采用可视化界面,用户只要用鼠标和键盘就可以完成对相关信息的修改,删除,添加等操作。因为这个系统的操作十分简单,方便上手,对于第一次使用系统的人,只需要很少的时间就可以上手操作。由此可见,本系统在操作上是可行的。

3.1.3 经济可行性

PHP红色旅游网站,该系统软件开发仅需要一台普通的计算机便可完成实现开发,其成本很低。另外,作为毕业设计作品来讲,开发成本基本上可以忽略不计,且该系统软件的投入使用,可以实现更加快速高效的校园寝室分配查询,同时还能实现对人力资源和管理资源的有效节约,该红色旅游网站在经济上完全可行。

3.2性能需求分析

对系统的性能,从(功能、运行、界面、安全)等方面进行,下面我们逐一进行分析;

1. 系统的功能是否完整进行分析:系统的功能,能对应设计出原始代码和算法,以表格同文字的形式进行详细介绍个人信息保证功能完整;

2. 系统的运行是否通畅进行分析:系统的每个功能都有编写数据的关系和应对的代码,通过需求分析和可行性分析进行分析和显示系统的物理数据,保证其进行通畅;

3. 系统的界面设计进行分析:对系统中的软件进行处理与分析的方式是由不同代码来进行的;从而使界面容易操作。

4. 系统的安全性进行分析:这样才可以每个角色的不同对应的信息也就不同,在登录系统务必使用自己的账号,密码登录,账号与密码错误自然就登录失败了。登录成功可以对自己的信息进行操作,不能对别人的账号的信息进行查看等操作,这样自然保证系统的安全性。

3.3功能分析

考虑到实际生活中在校园寝室分配查询方面的需要以及对该系统认真的分析,将系统权限按管理员和学生这两类涉及用户划分。

(1)管理员功能需求

管理员登陆后,主要模块包括首页、站点管理(轮播图、公告栏)用户管理(管理员、注册用户)内容管理(旅游资讯、资讯分类)更多管理(地区管理、旅游随记、旅游景点、旅游路线、知识指南)管理等功能。管理员用例图如图3-1所示。

图3-1 管理员用例图

(2)用户功能需求

用户登陆后,主要模块包括首页、公告消息、旅游资讯、旅游随记、旅游景点、旅游线路、知识指南等功能。用户用例图如图3-2所示。

图3-2 用户用例图

3.4 业务流程分析

3.4.1登录流程

登录模块主要满足管理员以及用户的权限登录,用户登录流程图如图3-1所示。

图3-1 登录流程图

3.4.2注册流程

未有账号的用户可进入注册界面进行注册操作,用户注册流程图如图3-2所示。

图3-2 注册流程图

3.4.3添加信息流程

用户在添加信息时,信息编号自动生成,系统会对添加的信息进行验证,验证通过则添加至数据库,添加信息成功,反之添加失败。添加信息流程如图3-3所示。

图3-3 添加信息流程图

3.4.4删除信息流程

用户可选择要删除的信息进行信息删除操作,在删除信息时系统提示是否确定删除信息,是则删除信息成功,系统数据库将信息进行删除。删除信息流程图如图3-4所示。

图3-4删除信息流程图

第四章 系统设计

4.1功能结构

为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该红色旅游网站的功能结构图如下所示:

图4-1 系统总体结构图

4.2 数据库设计

 4.2.1 数据库E/R图

E-R图一般是由实体、实体的属性与联系三个要素组成的。在规划系统中所使用的数据库实体对象及实体E-R图,则需要通过对系统的需求分析、业务流程设计和系统功能结构来确定的。

总体ER图如下图所示。

图4-2总体ER图

4.2.2 数据库表

数据库表的设计,如下表:

knowledge_guide

字段名称

类型

长度

不是null

主键

字段说明

knowledge_guide_id

int

11

主键

知识指南ID

title

varchar

64

标题

photo

varchar

255

照片

publisher

varchar

64

发布人

knowledge_introduction

text

0

知识简介

details

longtext

0

详情

hits

int

11

点击数

praise_len

int

11

点赞数

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

notice

字段名称

类型

长度

不是null

主键

字段说明

notice_id

mediumint

8

主键

公告id

title

varchar

125

标题

content

longtext

0

正文

create_time

timestamp

0

创建时间

update_time

timestamp

0

更新时间

regional_management

字段名称

类型

长度

不是null

主键

字段说明

regional_management_id

int

11

主键

地区管理ID

region

varchar

64

地区

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

registered_user

字段名称

类型

长度

不是null

主键

字段说明

registered_user_id

int

11

主键

注册用户ID

user_number

varchar

64

用户编号

user_name

varchar

64

用户姓名

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

scenic_spot

字段名称

类型

长度

不是null

主键

字段说明

scenic_spot_id

int

11

主键

旅游景点ID

attraction_number

varchar

64

景点编号

name_of_scenic_spot

varchar

64

景点名称

photo

varchar

255

照片

region

varchar

64

地区

address

varchar

64

地址

ticket_price

int

11

票价

opening_hours

varchar

64

开放时间

scenic_spots

text

0

景点事迹

details

longtext

0

详情

hits

int

11

点击数

praise_len

int

11

点赞数

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

tourist_route

字段名称

类型

长度

不是null

主键

字段说明

tourist_route_id

int

11

主键

旅游路线ID

route_number

varchar

64

路线编号

route_name

varchar

64

路线名称

photo

varchar

255

照片

days

varchar

64

天数

amount_of_money

int

11

金额

route_characteristics

longtext

0

路线特色

hits

int

11

点击数

praise_len

int

11

点赞数

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

travel_notes

字段名称

类型

长度

不是null

主键

字段说明

travel_notes_id

int

11

主键

旅游随记ID

title

varchar

64

标题

picture

varchar

255

图片

region

varchar

64

地区

user_number

int

11

用户编号

travel_time

varchar

64

出行时间

days

varchar

64

天数

introduction_to_scenic_spots

text

0

景点攻略

traffic_strategy

text

0

交通攻略

details

longtext

0

详情

hits

int

11

点击数

praise_len

int

11

点赞数

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

第五章 系统功能实现

5.1数据库访问层的实现

从B/S架构的原理可知,红色旅游网站的各大模块的实现均需要对数据库的数据进行操作,具体包括查询数据、写入数据、更新数据和删除数据,因此,在开发各功能模块前,首先创建一个名称"conn.php"的文件,该文件主要用于连接数据,以后对程序需要操作数据时,可能使用语句"<?php reqiure_once('conn.php');?>"调用就可以了。

该文件的代码如下:

return [

    // 数据库类型

    'type'            => 'mysql',

    // 服务器地址

    'hostname'        => '127.0.0.1',

    // 数据库名

    'database'        => 'CS85950_20211206165410',

    // 用户名

    'username'        => 'root',

    // 密码

    'password'        => 'root',

    // 端口

    'hostport'        => '3306',

    // 连接dsn

    'dsn'             => '',

    // 数据库连接参数

    'params'          => [],

    // 数据库编码默认采用utf8

    'charset'         => 'utf8',

    // 数据库表前缀

    'prefix'          => '',

    // 数据库调试模式

    'debug'           => true,

    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)

    'deploy'          => 0,

    // 数据库读写是否分离 主从式有效

    'rw_separate'     => false,

    // 读写分离后 主服务器数量

    'master_num'      => 1,

    // 指定从服务器序号

    'slave_no'        => '',

    // 自动读取主库数据

    'read_master'     => false,

    // 是否严格检查字段是否存在

    'fields_strict'   => true,

    // 数据集返回类型

    'resultset_type'  => 'array',

    // 自动写入时间戳字段

    'auto_timestamp'  => true,

    // 时间字段取出后的默认时间格式

    'datetime_format' => 'Y-m-d H:i:s',

    // 是否需要进行SQL性能分析

    'sql_explain'     => false,

    // Builder类

    'builder'         => '',

    // Query类

    'query'           => '\think\db\Query',

    // 是否需要断线重连

    'break_reconnect' => false,

    // 断线标识字符串

    'break_match_str' => [],

];

5.2注册模块的实现

用户在填写数据的时候必须与注册页面上的验证相匹配否则会注册失败,注册页面的表单验证是通过JavaScript进行验证的,用户名的长度必须在6到18之间,邮箱必须带有@符号,密码和密码确认必须相同,你输入的密码,系统会根据你输入密码的强度给出指定的值,电话号码和身份证号码必须要求输入格式与生活相符合,当你前台验证通过的时候你点击注册,表单会将你输入的值通过name值传递给后台并保存到数据库中。

用户注册流程图如下图所示。

图5-1用户注册流程图

用户注册界面如下图所示。

图5-2用户注册界面

用户注册的关键代码为:

public function register()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');

            $request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $request['password'] = md5($request['password']);

                $result = $this->model->register($request, $this->table);

                $data = $result;

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

public function register($request=[],$table_name = ''){

        $username = $request['username'];

        $bol = $this->where(['username'=>$username])->find();

        if (!$bol){

            $result = self::allowField(true)->save($request);

            if ($result) {

                return ['result' => 1];

            } else {

                return ['error' => ['code' => 3000, 'message' => '注册失败']];

            }

        }else{

            return ['error' => ['code' => 3000, 'message' => '注册失败,账号已存在']];

        }

    }

5.3登录模块的实现

主要由两部分组成,登录前的登录界面以及登录后的用户功能界面。登录界面,要求用户输入用户名和密码,当用户名和密码其中一个输入为空时,给出提示“用户名,密码不能为空”。获取用户名和密码后到数据库中查找,如果用户名存在,以及对应的密码正确,则登录成功,否则登录失败。登录失败后给出提示,并把焦点停在文本框中。登录成功后将该次会话的全局变量username设置为用户名。登录成功后进入会员的功能模块,主要有会员基本信息修改,已经发布课外培训老师信息管理,发布信息,和退出功能。退出功能是清除全局变量username的值,并跳回到首页。

登录流程图如下图所示。

图5-4登录流程图

用户登录界面如下图所示。

图5-5用户登录界面

用户登录的关键代码如下:

public function login()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $request['password'] = md5($request['password']);

                $result = $this->model->login($request, $this->table);

                $data = $result;

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

public function login($request=[],$table_name = ''){

        $username = $request['username'];

        $password = $request['password'];

        $bol = $this->where(['username'=>$username])->find();

        if ($bol){

            $password = md5($password);

            if ($request['password']==$bol['password']) {

                //添加token信息

                $access_token['create_time'] = date('Y-m-d H:i:s');

                $access_token['update_time'] = date('Y-m-d H:i:s');

$access_token['info'] = json_encode($bol);

                // $access_token['info'] = $bol;

                $access_token['token'] = md5(date('Y-m-d H:i:s'));

                $bol_token = Db::name('AccessToken')->insert($access_token);

                if ($bol_token){

                    $data['obj'] = $bol;

                    $data['obj']['token'] = $access_token['token'];

                    return ['result' => $data];

                }else{

                    return ['error' => ['code' => 5000, 'message' => '登录失败,token生成失败']];

                }

            } else {

                return ['error' => ['code' => 5000, 'message' => '登录失败,密码不正确']];

            }

        }else{

            return ['error' => ['code' => 5000, 'message' => '登录失败,账号不存在']];

        }

    }

5.4用户资料修改模块的实现

用户登录/注册成功之后可以修改自己的基本信息。修改页面的表单中每一个input的name值都要与实体类中的参数相匹配,在用户点击修改页面的时候,如果改后用户名与数据库里面重复了,页面会提示该用户名已经存在了,否则通过Id来查询用户,并将用户的信息修改为表单提交的数据。

5.5公告数据管理模块的实现

如果公告数据的信息需要修改,管理员可以通过查询公告数据的基本信息来查询公告数据,查询公告数据是通过ajax技术来进行查询的,需要传递公告数据的标题、编号等参数然后在返回到该页面中,可以选中要修改或删除的那条信息,如果选中了超过一条数据,页面会挑一个窗口提醒只能选择一条数,如果没有选中数据会挑一个窗口题型必须选择一条数据。当选择确认修改的时候,后台会根据传过来的id到数据库查询,并将结果返回到修改页面中,可以在修改页面中修改刚刚选中的信息当点击确认的时候from表单会将修改的数据提交到后台并保存到数据库中,就是说如果提交的数据数据库中存在就修改,否则就保存。

公告数据展示界面如下图所示。

图5-6公告数据展示界面

公告数据管理界面如下图所示。

图5-7公告数据管理界面

公告数据发布的关键代码如下:

<?php

session_start();

include_once 'conn.php';

$ndate =date("Y-m-d");

$addnew=$_POST["addnew"];

$lb=$_GET["lb"];

if ($addnew=="1" )

{

$biaoti=$_POST["biaoti"];$leibie=$_POST["leibie"];$neirong=$_POST["neirong"];$shouyetupian=$_POST["shouyetupian"];$dianjilv=$_POST["dianjilv"];$tianjiaren=$_POST["tianjiaren"];

$sql="insert into shujujilu(biaoti,leibie,neirong,shouyetupian,dianjilv,tianjiaren) values('$biaoti','$leibie','$neirong','$shouyetupian','$dianjilv','$tianjiaren') ";

MySQL_query($sql);

echo "<script>javascript:alert('添加成功!');

location.href='shujujilu_add.php?lb=$lb';</script>";

}

?>

5.6管理员功能模块的实现

管理员登录进入红色旅游网站可以查看首页、站点管理(轮播图、公告栏)用户管理(管理员、注册用户)内容管理(旅游资讯、资讯分类)更多管理(地区管理、旅游随记、旅游景点、旅游路线、知识指南)等内容操作。如图5-8所示。

图5-8管理员功能界面图

旅游景点页面,在旅游景点页面可以对景点编号、景点名称、照片、票价、开放时间、景点事件、详情进行查看,修改和删除等操作,如图5-9所示。

图5-9旅游景点管理界面图

5.7用户功能模块  

用户登陆系统后,可以查看首页、公告消息、旅游资讯、旅游随记、旅游景点、旅游线路、知识指南等功能,还能对每个功能逐一进行相应操作,如图5-9所示。

图5-9用户功能界图面

景点信息管理,在景点信息页面查看景点名称、景点封面、景点星级、营业时间、景点地区、景点门票等内容操作,如图5-10所示。

图5-10景点信息界面图

第六章 系统测试

6.1测试目的

对任何系统而言,测试都是必不可少的环节,测试可以发现系统存在的很多问题,所有的软件上线之前,都应该进行充足的测试之后才能保证上线后不会Bug频发,或者是功能不满足需求等问题的发生。下面分别从单元测试,功能测试和用例测试来对系统进行测试以保证系统的稳定性和可靠性。

6.2功能测试

下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。

表6-1 系统登录功能测试用例

功能描述

用于系统登录

测试目的

检测登录时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的用户名和密码带有非法字符

提示用户名或者密码错误

与预期结果一致

输入的用户名或者密码为空

提示用户名或者密码错误

与预期结果一致

输入的用户名和密码不存在

提示用户名或者密码错误

与预期结果一致

输入正确的用户名和密码

登录成功

与预期结果一致

下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。

表6-2 注册功能测试用例

功能描述

用于用户注册

测试目的

检测用户注册时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的手机号不合法

提示请输入正确的手机号码

与预期结果一致

输入的字段为空

提示必填项不能为空

与预期结果一致

输入的密码少于6位

提示密码必须为6-12位

与预期结果一致

输入的密码大于12位

提示密码必须为6-12位

与预期结果一致

6.3性能测试

使用阿里云PTS(Performance Testing Service)性能测试服务对线上系统进行压力测试。线上服务器环境为:1核心CPU,1G内存,1Mbps公网带宽,Centos7.0操作系统。

压测过程中使用了2台并发机器,每台机器20个用户并发,对系统主页,登录,数据查询和数据维护等模块进行并发访问,测试结果是有40个用户并发时,数据管理相关页面的响应时间甚至达到了7s,通过查看服务器出网流量发现已经达到1381kb/s,可以看出服务器的带宽已经达到峰值,如果系统使用5Mbps的带宽,系统的响应时间和TPS将会大大增加。在整个测试的过程中,CPU的使用率占用仅8%,也提现出带宽瓶颈对系统的影响非常严重。

">

广西建设厅官方网站

珠海网站建设方案报价、乐清建网站公司哪家好、永久使用、不限域名、微信小程序购物平台

国际外贸平台有哪些?

cms建站详细教程_跨境电商真的好做吗_seo新手入门教程_ui设计看重学历吗

/* zp */ 临沂建设企业网站二维码引流推广的平台中企动力邮箱网页版阿里巴巴自助建站的一般流程如何做好网络营销管理google seo是什么抖音橙子建站官网外企公司网站开发设计手机网站设计费用免费店铺logo太原高端网站建设怎么制作二维码国家高新技术企业名单郑州小程序开发制作公司长沙中小企业网站制作263企业邮箱入口注册html教学十大外贸网站武汉最新发展消息竹子建站怎么赚钱免费自助建站全系统百度seo点击器泰安正规的网站建设网络服务机构广州最新疫情最新消息实时更新官网推广方式影视后期制作培训机构全国排名微信小程序定制开发需要多少钱温州设计公司排名网页制作dw软件智慧团建网站入口手机版

猜你喜欢

  • 友情链接:
  • 产品推广方案ppt seo快速推广窍门大公开 网络艺术设计是什么 企业vi设计一整套 新手网站 武汉高端网站建设公司