《基于Web的考研信息平台设计及实现》7100字【论文】_第1页
《基于Web的考研信息平台设计及实现》7100字【论文】_第2页
《基于Web的考研信息平台设计及实现》7100字【论文】_第3页
《基于Web的考研信息平台设计及实现》7100字【论文】_第4页
《基于Web的考研信息平台设计及实现》7100字【论文】_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Web的考研信息平台设计及实现目录中文摘要 3英文摘要 4引言 51 技术的选择 51.1 系统架构选择 51.2 编程语言和数据库选择 61.2.1 PHP语言 61.2.2 MySQL数据库 72 总体分析 82.1 项目可行性 82.1.1 财务可行性分析 82.1.2 开发可行性分析 82.1.3 社会可行性分析 82.1.4 技术环境的可行性 82.2 功能分析 82.3 文章用例分析 92.4 数据流图分析 92.5 运行环境 93 系统功能实现 103.1 系统功能模块设计 103.2 数据库结构设计 103.2.1 数据库系统概念分析 103.2.2 关系型数据库概念 103.2.3 考研信息系统的ER图 113.2.4 数据库逻辑设计 113.2.5 板块信息表(forum_area) 123.2.6 用户信息表(forum_user) 123.2.7 文章表(forum_topic) 133.2.8 评论表(forum_reply) 133.3 页面设计 134 系统功能实现与界面展示 154.1 普通用户登录模块 154.2 普通用户注册模块 184.3 发文模块 214.4 后台模块 235 系统测试 255.1 系统测试介绍 255.2 信息系统测试 255.2.1 普通用户登录注册功能测试 255.2.2 发文功能测试 255.2.3 评论功能测试 256 总结 25参考文献 26

摘要:当今正处于21世纪的新时代,计算机领域的发展巨快,网络的便捷程度远超大家的想象,所以在当今这个时代,人人都离不开互联网,与此同时,也诞生了一个崭新的产物——bbs社区论坛。BBs社区论坛使得大家能够在论坛中相互讨论,分享自己的观点,相较于传统模式,人们必须聚集在一起而言,BBS社区论坛突破了距离和地点的限制,让每个人坐在家中,便可以与全球各地的人进行沟通交流。本文选题决定做基于Web的考研信息平台是因为,截止至2021年,我国考研人数已经接近400万人次,然而考研学子中间,缺乏一个集中沟通、交流、分享资料的平台,因此,我选择开发一个考研信息平台,结合网页设计与开发、PhotoShop、Html、Css、JS、JQuery、PHP等所学技术,完成本平台的制作。关键词:考研;信息平台;BBS社区论坛;PHP;MYSQL;html引言近年来,国家鼓励应届毕业生参加研究生入学考试,特别是新冠疫情以来,随着毕业生人数和研究生招生人数的逐年递增,考研学子愈发增多。在整个考研阶段,互联网作为重要的信息传播途径,极大的方便了同学们进行沟通交流和查找相关资料,为他们提供了便捷。但是对于目前的考生而言,缺乏了一个集中性大型沟通网站。基于此情况,BBS考研信息系统填补上了这一块的空缺,考研学生们可以通过在考研信息系统上分享自己校园生活、考研上岸经验、考研二手书籍交易等信息,让考研学生不再为考研信息缺乏而忧愁。该系统包含论坛用户评论、交流,管理员管理用户后台等核心功能。希望能够借此网站,让同学们更加轻松愉快考研,对于考研也有更加清晰的认识了和理解。技术的选择系统架构选择众所周知,系统架构分为C/S架构和B/S架构,C/S架构就是客户机与服务器模式,B/S架构就是浏览器与服务器模式[2]。从两者的不同点来看,客户机与服务器模式更加偏向于专业人员去管理运维,需要专业知识水平较强,而浏览器与服务器模式,更加偏向于普通用户群体去使用,只要打开浏览器,即可访问到服务器的相关内容。图1-SEQ图1-\*ARABIC1系统架构图通过书本的了解,我了解到了B/S系统架构可以分为三个不同的层次。客户层,能够与用户直接进行沟通交流。逻辑层,处理业务的逻辑功能。数据层,对系统的数据进行存储处理。如图图1-SEQ图1-\*ARABIC1系统架构图图1-SEQ图1-\*ARABIC2工作原理图图1-SEQ图1-\*ARABIC2工作原理图编程语言和数据库选择PHP语言PHP语言在开发市场占有量较大,如图1-3编程语言市场占有率图所示,截止至2021年1月,在编程语言排行榜中暂列第八位,其中在网站开发中使用尤为广泛,方便了网站开发人员编写代码,PHP语言也吸收了其他语言的精华,包括C语言、C++、JAVA等主流开发语言,使得开发人员能够迅速掌握PHP语言。正如上述所说,其使用途径广泛,主要在网站应用程序开发领域中应用,使用PHP能够做到快速开发一个网站,因为在编写前端页面的同时,可以同时编写PHP代码。PHP语言也能够做到在多个平台和多个环境下同时运行,便于用户使用PHP语言开发出来的平台。PHP语言还有优点就是,能够让代码更快的执行,通过组织好执行代码和编译代码的关系。图1-图1-SEQ图1-\*ARABIC3编程语言市场占有率图MySQL数据库图1-SEQ图1-\*ARABIC42019年数据库市场占有率MySQL是一款DBMS(数据库管理系统),数据库管理系统显而易见就是管理数据库的软件。同时关系型数据库相较于,面向对象数据库等其他类型的数据库而言,更加具有管理上的优势,能够更加轻松便捷的对数据进一步管理[6]。当然关系型数据库在市面上有许许多多不同的产品,包括oracle、sqlserver等,如图1-图1-SEQ图1-\*ARABIC42019年数据库市场占有率总体分析项目可行性财务可行性分析从财务可行性上去分析,开发考研信息平台需要开发人员、一台电脑以及服务器即可,并且当考研信息平台上线后,考研信息平台内可以植入广告,实现项目变现,不仅仅是低成本,并且有一定的回报率,所以项目从财务可行性上去分析是较为可行的。开发可行性分析经过技术多年的发展,使用PHP来部署一个论坛网站是十分便捷的,在互联网现有的网站中,也有许多使用PHP来部署网站的。同时我也加入了许许多多不同的PHP交流群,当遇到问题需要进行交流的时候,我主动在群里向其他人寻求帮助,解决难题。在开发可行性上是可行的。社会可行性分析在社会可行性上去分析,考研信息平台是能够推动社会发展的,在交流版块会定期在上线党史党章内容,同学们可以在帖子下面分享自己的观点,让同学们对社会主义、中国共产党有更好的了解,起到一个正能量宣传的作用。技术环境的可行性在开发过程中可以直接使用WampServer搭建运行环境,可以保证在开发过程中环境的稳定性,并且能够让开发人员更好的将精力投身到开发逻辑处理上,而不是底层的环境配置。功能分析本系统的开发功能如下:用户管理功能:用户的新增、删除、注册、修改,管理员管理用户文章评论功能:用户查看帖子、发表评论、管理员修改、删除文章信息文章管理功能:发布文章、删除文章、修改文章、浏览文章文章用例分析图2-SEQ图2-\*ARABIC1图2-SEQ图2-\*ARABIC1文章用例图数据流图分析如图2-2平台图2-SEQ图2-\*ARABIC图2-SEQ图2-\*ARABIC2平台数据流图运行环境CPU能够在两核以上,硬盘采用SSD。网络设备方面,应该拥有路由器等设备,达到正常上网的要求。同时操作系统采用linux红帽子服务器,数据库mysql版本应该在5.8及以上版本要求,开发语言PHP选择5.6级以上,浏览器建议使用Chrome或者火狐,开发工具建议使用vscode或者idea等开发工具。系统功能实现系统功能模块设计在设计在线考研信息系统的时候,根据用户分类,可以分成游客模块、普通用户模块和管理员模块,每种不同权限的用户可以选择做不同的事情。图3-SEQ图3-\*ARABIC1图3-SEQ图3-\*ARABIC1系统功能设计图数据库结构设计数据库系统概念分析在设计数据库的时候,也主要考虑三种不同的用户群体的数据如何存储,因为游客模块的数据不需要任何权限设置就可以访问,所以主要考虑管理员和普通用户在数据库中数据的存储。关系型数据库概念从书本上对于关系型数据库的概念理解,十分的难以理解,但是其实通俗易懂的来看,就是多张表,记录我们所需要的数据。当要使用数据库的数据的时候,则用户发出请求,会执行不同的数据库sql语句,包括数据库的增删改查,最终执行得到想要的结果[8]。关系型数据库,对于使用者而言,十分方便的查看数据和管理数据,所以关系型数据库是大部分用户使用数据库的首选。举个例子,在考研信息系统中,有一个关于考研学生信息的stu的数据表。在查询数据中,每行所显示出来的,就是不同学生的个人信息,如学生的个人信息、用户名、密码等等。每列所包含的是同一类相同的属性信息。在数据库中还有一个重要的概念,就是字段,字段是每一列不可以被再次分割的最小单元,这是设计数据库的基本要求。设计一个数据库的数据表结构上,有多个字段可以进行设置,设置的方面包括数据类型、数据是否自增、数据是否为主键等要求。考研信息系统的ER图考研信息系统的ER图(如图图3-SEQ图3-\*ARABIC2图3-SEQ图3-\*ARABIC2考研信息系统ER图数据库逻辑设计数据库设计分为需求分析、概念结构设计、逻辑结构设计、物理设计、物理实施、运行和维护。所以数据库逻辑结构设计也是数据库设计的重要一步,其所要完成的就是将E-R图,转换为真正要在数据库当中实现的逻辑结构。当然一个好的逻辑结构才能有为接下来的数据库物理实施打下一个“好头”。普通用户【ID,username(用户名),password(密码),email(邮箱),phone(手机),regdate(注册时间)】管理员【ID,username(管理员名),passwor(管理员密码),email(管理员邮箱),regdate(注册时间)】考研信息帖数据【ID,topic(考研信息帖的名字),detail(考研信息帖的内容),datetime(考研信息帖发帖的时间),name(考研信息帖发帖的姓名),email(考研信息帖发帖的邮箱),view(考研信息帖的浏览量),reply(考研信息帖的回复数),sticky(考研信息帖的置顶状态)】回复帖子【ID,topic_id(回帖的ID),reply_id(回复的ID),reply_name(回复者的姓名),reply_email(回复者的邮箱),reply_detail(回复的内容),reply_datetime(回复的时间)】板块信息表(forum_area)板块信息表主要用来记录各个板块的信息,当部署不同的板块的时候可以调用出不同板块的具体信息,也可将板块的一些属性存储在数据库中,方便修改。字段类型空默认注释id

(主键)int(20)否IDnamevarchar(50)否板块名字descriptionvarchar(500)否板块描述iconvarchar(20)否板块图标colorvarchar(20)否板块颜色用户信息表(forum_user)用户信息表主要用来存储用户的个人信息,不同的模块在开发过程中,都需要调用用户表的不同信息。并且将用户的等级存储在用户信息表,有助于将管理员、普通用户区分开。字段类型空默认注释id

(主键)int(10)否记录IDusernamevarchar(50)否用户名passwordvarchar(50)否密码phonenumvarchar(50)是NULL手机号码emailvarchar(100)是NULL邮箱permissionint(10)否账户分级regdatedatetime是NULL注册时间

文章表(forum_topic)文章表主要记录的就是不同用户发表的不同文章的信息,包括文章的具体内容信息、点赞数和作者名字等。字段类型空默认注释id

(主键)int(10)否记录IDareaidint(10)否分类IDtopicvarchar(255)否文章名字detailtext否文章内容namevarchar(50)是NULL作者名字emailvarchar(50)是NULL邮箱datetimedatetime是NULL文章发布时间viewint(10)是0浏览次数likesint(10)是0赞的个数replyint(10)是0回复数stickytinyint(1)是0是否置顶

评论表(forum_reply)评论表记录的就是各个用户在每篇文章下发表的评论内容以及具体信息,每条评论表中的信息对应不同文章下的不同评论。字段类型空默认注释id

(主键)int(10)否ID号topic_idint(10)否0文章IDreply_idint(10)否0评论IDreply_namevarchar(32)否回复者姓名reply_emailvarchar(100)否回复者邮箱reply_detailtext否回复内容reply_datetimedatetime否0000-00-0000:00:00回复时间页面设计对于该系统的整体页面设计,我的想法主要是页面能够显得整洁大方,当用户在使用本系统进行考研信息的交流和查找的时候,能够一眼就找到想要的信息,所以在本系统页面设计主要涉及以下几个方面。第一点,考研学生登录系统页面需要设计的简简单单,当考研学生登录信息正确的时候,能够直接登录系统,进入下一个页面,当登录信息不正确的时候,便也会提醒考研学生用户名或者密码错误。第二点,系统前端页面整体设计较为干净,布局较为合理,让使用者体验感较佳,同时也应该做到让用户对于网站基调有总体的印象,类似于阿里橙色,饿了么蓝色,美团黄色等类似的印象。第三点,当管理员使用系统后台页面的时候,能够方便的管理相关功能信息,不需要考虑其他东西,唯一需要遵循的原则就是“方便”管理即可。图3-SEQ图3-\*ARABIC3图3-SEQ图3-\*ARABIC3前端页面布局图

图3-SEQ图3-\*ARABIC4图3-SEQ图3-\*ARABIC4后台页面布局图系统功能实现与界面展示普通用户登录模块登录模块功能描述普通用户登录,主要实现的就是用户输入用户名、密码,且实现用户的登录,如果用户名密码输入正确,则登录成功,如果输入信息错误或者不匹配,则在登录页面会提醒相应的错误信息(如图4-2账户或密码失败)。为了安全起见,当每次输入用户名和密码的时候,都需要输入验证码,且每次验证码均不相同,防止恶意登录(如图4-1验证码错误)。图4-SEQ图4-\*ARABIC图4-SEQ图4-\*ARABIC1验证码错误登录模块图4-SEQ图4-\*ARABIC图4-SEQ图4-\*ARABIC2账户或密码失败登录模块功能流程图(如图4-3)图4-SEQ图4-\*ARABIC3登录模块功能流程图登录成功界面登录成功界面图(如图4-4)图4-SEQ图4-\*ARABIC4登录成功界面图验证码实现代码<?php

//开启SESSION

session_start();

//创建黑色画布

$image

=

imagecreatetruecolor(100,

30);

//为画布定义背景颜色

$bgcolor

=

imagecolorallocate($image,

255,

255,

255);

//填充颜色

imagefill($image,

0,

0,

$bgcolor);

//定义验证码的内容

$content

=

"ABCDEFGHJKMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz23456789";

//去除了易混的字母数字

//创建变量存储验证码数据

$captcha

=

"";

for

($i

=

0;

$i

<

4;

$i++){

$fontsize

=

10;

$fontcolor

=

imagecolorallocate($image,

mt_rand(30,

120),

mt_rand(30,

120),

mt_rand(30,

120));

$fontcontent

=

substr($content,

mt_rand(0,

strlen($content)),

1);

$captcha

.=

$fontcontent;

$x

=

($i

*

100

/

4)

+

mt_rand(5,

10);

$y

=

mt_rand(5,

10);

imagestring($image,

$fontsize,

$x,

$y,

$fontcontent,

$fontcolor);

}

$_SESSION["captcha"]

=

$captcha;

//设置背景干扰元素

for

($i=0;

$i

<

100;

$i++){

$pointcolor

=

imagecolorallocate($image,

mt_rand(50,

200),

mt_rand(50,

200),

mt_rand(50,

200));

imagesetpixel($image,

mt_rand(1,

99),

mt_rand(1,

29),

$pointcolor);

}

//设置干扰线

for

($i

=

0;

$i

<

3;

$i++){

$linecolor

=

imagecolorallocate($image,

mt_rand(50,

200),

mt_rand(50,

200),

mt_rand(50,

200));

imageline($image,

mt_rand(1,

99),

mt_rand(1,

29),

mt_rand(1,

99),

mt_rand(1,

29),

$linecolor);

}

//向浏览器输出图片头信息

header('content-type:image/png');

//输出图片到浏览器

imagepng($image);

//销毁图片

imagedestroy($image);?>普通用户注册模块注册模块功能描述图4-SEQ图4-\*ARABIC5图4-SEQ图4-\*ARABIC5注册报错图

注册模块功能流程图注册模块图4-SEQ图4-\*ARABIC6图4-SEQ图4-\*ARABIC6注册模块功能流程图注册界面注册界面图(如图4-7)图4-SEQ图4-\*ARABIC7注册界面注册信息验证实现代码$(document).ready(function(){$.validator.addMethod("checkUserName",function(value,element,params){varcheckName=/^\w{4,20}$/g;returnthis.optional(element)||(checkName.test(value));},"使用正则表达式,只允许4-20位英文字母、数字或者下画线!");$("#signupForm").validate({rules:{username:{required:true,rangelength:[4,20],checkUserName:true},password:{required:true,minlength:6},repassword:{required:true,minlength:6,equalTo:"#password"},email:{required:true,email:true},vcode:{required:true}},messages:{username:{required:"请输入用户名",rangelength:"请输入4-20位用户名"},password:{required:"请输入密码",minlength:"密码长度不能小于6位"},repassword:{required:"请输入密码",minlength:"密码长度不能小于6位",equalTo:"两次密码输入不一致"},vcode:{required:"请输入验证码"},email:{required:"请输入邮箱",email:"请输入一个正确的邮箱"}}});});发文模块发文模块功能描述发文模块是专门用于普通用户在不同板块下发表不同的文章,用户可以根据不同的发文内容对文章进行编辑,点击发布主题即可成功发布。在编辑器的选择上,引入了第三方markdown编辑器,提高了用户使用的方便程度和降低了开发的难度。发文模块功能流程图发文模块功能流程图(如图4-8)图4-图4-SEQ图4-\*ARABIC8发文模块功能流程图发文界面发文界面图(如图4-9)图4-图4-SEQ图4-\*ARABIC9发文界面图后台模块后台模块功能描述管理员的账户和密码是预先在数据库中设置了,所以不开放注册管理员功能。故进入后台管理登录页面后,通过管理员用户名和密码,即可进入后台首页(如图4-10后台首页页面),在后台首页页面可以清晰的看到当前系统的用户数、话题数、评论数。点击进入用户管理界面,就可以看到用户的具体信息(如图4-11用户管理界面),并且点击修改,也可以对用户的具体信息进行修改。图4-SEQ图4-\*ARABIC图4-SEQ图4-\*ARABIC10后台首页页面图4-SEQ图4-\*ARABIC图4-SEQ图4-\*ARABIC11用户管理界面后台首页实现代码<?phpini_set("error_reporting","E_ALL&~E_NOTICE");header("Content-type:text/html;charset=utf-8");require('../config.inc.php');//判断是否是登录状态,如果登录跳转至登录界面if(!isset($_SESSION['username'])){header("Location:signin.php");}//将站点统计计算出来,并发送到SESSION范围//会员数$sql_user_count="SELECTCOUNT(*)FROMforum_user";$result_user_count=mysql_query($sql_user_count);$rows_user_count=mysql_fetch_array($result_user_count);$usercount=$rows_user_count[0];//主题数$sql_topic_count="SELECTCOUNT(*)FROMforum_topic";$result_topic_count=mysql_query($sql_topic_count);$rows_topic_count=mysql_fetch_array($result_topic_count);$topiccount=$rows_topic_count[0];//回帖数$sql_reply_count="SELECTCOUNT(*)FROMforum_reply";$result_reply_count=mysql_query($sql_reply_count);$rows_reply_count=mysql_fetch_array($result_reply_count);$replycount=$rows_reply_count[0];session_start();$_SESSION["usercount"]=$usercount;$_SESSION["topiccount"]=$topiccount;$_SESSION["replycount"]=$replycount;//将用户的信息发送至SESSION$username=$_SESSION['username'];$sql_user="SELECT*FROMforum_userWHEREusername='$username'";$result_user=mysql_query($sql_user);$rows_user=mysql_fetch_array($result_user);$curuser_email=$rows_user['email'];$curuser_phonenum=$rows_user['phonenum'];$_SESSION['curuser_email']=$curuser_email;//$_SESSION['curuser_phonenum']=$curuser_phonenum;?>系统测试系统测试介绍系统测试的主要目的就是为了,当系统整体上线后,不会出现一些bug,能够保证稳定运行。[10]所以在系统测试的时候我们应该考虑的比较齐全,包括很多极端情况下也应该考虑到,避免未来出现一些不可预知的状态。结合本信息系统,主要需要测试如下模块,包括普通用户登录注册功能测试、发文功能测试、回帖功能测试等。信息系统测试普通用户登录注册功能测试对于普通用户登录注册功能进行测试,需要模拟普通用户先注册,后登录的流程,先在注册页面输入用户名、密码、电话号码等相关信息,随即页面跳转至登录页面,先在数据库中查看是否刚才注册成功,然后在登录页面输入刚刚注册的用户名和密码,若显示登录成功则没问题。发文功能测试发文功能是建立在成功登录的基础上,点

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论