竞赛管理系统的设计与实现-定稿_第1页
竞赛管理系统的设计与实现-定稿_第2页
竞赛管理系统的设计与实现-定稿_第3页
竞赛管理系统的设计与实现-定稿_第4页
竞赛管理系统的设计与实现-定稿_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

竞赛管理系统的设计与实现摘要随着国家教育体制的改革,竞赛活动的举办也越来越频繁,报名参赛的学生数量也是越来越多。面对如此众多参与者信息的录入,人工采集信息的方式已经不能满足当下的需求。竞赛信息的管理又是一份繁琐的工作,参赛者的信息量很大,而且通常不允许出现错误。如果执行手工操作,则必须手动填写大量表格,这将使比赛管理工作又增加一个难度。本论文所讲述的竞赛管理系统是在PyCharm环境下用Python中的Django框架和MySQL数据库来实现的,它具有检索迅速、查找方便、可靠性高、存储量大等特点。该系统分为前端和后端两大部分,前端使用Bootstrap框架,主要实现的功能是用户的注册、登录、浏览赛事、搜索赛事、各个赛事浏览统计、报名、评审打分、排名等功能;后端主要实现的是对用户信息、赛事信息、排名信息的管理。关键词:竞赛管理系统;PyCharm;Django;MySQLDesignandimplementationofcompetitionmanagementsystemAbstractWiththereformofthenationaleducationsystem,competitionsarebeingheldmoreandmorefrequently,andthenumberofstudentsregisteringforcompetitionisalsoincreasing.Facedwiththeinputofinformationfromsomanyparticipants,thewayofmanuallycollectinginformationcannolongermeetthecurrentneeds.Themanagementofthecompetitioninformationisanothertedioustask.Theinformationofthecontestantsisverylarge,anderrorsareusuallynotallowed.Ifyouperformmanualoperations,youmustmanuallyfilloutalargenumberofforms,whichwillmakethegamemanagementworkmoredifficult.ThecompetitionmanagementsystemdescribedinthispaperisimplementedinthePyCharmenvironmentusingtheDjangoframeworkandMySQLdatabaseinpython.Ithasthecharacteristicsoffastretrieval,convenientsearch,highreliabilityandlargestoragecapacity.Thesystemisdividedintotwoparts:front-endandback-end.Thefront-endusesthebootstrapframework.Themainfunctionsareuserregistration,login,browsingevents,searchingevents,browsingstatisticsofvariousevents,registration,reviewscoring,ranking,etc.Themainrealizationisthemanagementofuserinformation,eventinformation,rankinginformation.Keywords:CompetitionManagementSystem;PyCharm;Django;MySQL

目录TOC\o"1-3"\h\u1绪论 11.1本设计的目的及意义 11.2本设计在国内的发展概况及存在的问题 11.3本设计应解决的主要问题 12需求分析 22.1可行性需求分析 22.1.1社会可行性 22.1.2经济可行性 22.2非功能性需求分析 22.3功能性需求分析 32.3.1竞赛信息管理功能 32.3.2用户信息管理功能 32.3.3参赛选手信息管理功能 33运行环境 33.1硬件环境 33.2软件环境 44开发技术及开发工具 44.1开发技术介绍 44.1.1B/S结构及其优势 44.1.2web开发框架—django 54.1.3MTV设计模式 64.2开发工具介绍 64.2.1JetBrainsPyCharm2018.3.5x64 64.2.2MySQL5.7 74.2.3Navicat12forMySQL 75系统概要设计 85.1系统功能结构设计 85.2数据库连接 85.3数据库E-R图 95.4数据表详细设计 106系统详细设计 126.1注册功能模块 126.2登录功能模块 146.3忘记密码功能模块 156.4浏览赛事统计并显示 156.5导航条 166.6赛事信息 176.7赛事详细信息 196.8查询功能模块 206.9报名功能模块 216.2.10名人堂模块 226.2.11个人中心模块 236.2.12后台管理模块 237系统测试 247.1测试目的 247.2功能测试 258结论 29参考文献 30PAGE41绪论1.1本设计的目的及意义本设计来源于举办方对竞赛管理系统的实际需要,如果实行手工操作,在参赛人数太多时往往容易出错,但是竞赛项目是要保持公正严谨,不容许有丝毫错误发生。该设计的目的是使参与者信息的输入和管理自动化,标准化和系统化,从而提高管理效率。并围绕此管理目标对系统所需要的用户信息,选手信息,赛事信息,排名信息等进行管理和维护。1.2本设计在国内的发展概况及存在的问题随着国家教育体制的改革,竞赛活动的举办也越来越频繁,报名参赛的学生数量也是越来越多。面对如此众多参与者信息的录入,通过人工采集信息的方式已经不能满足当下的需求。如何利用现代信息技术使组织者具有快速高效的信息反馈能力和高效率,是目前举办方特别关心的一个问题。建立一个功能齐全的竞赛管理系统,避免由于人工操作产生的缺陷,已成为当今社会举办高校竞赛的重中之重。1.3本设计应解决的主要问题要实现竞赛管理系统代替人工来工作,主要解决的问题有以下几个:报名功能的实现:用户可以在线上报名所想要参加的赛事。评审打分功能的实现:评审在评审打分入口实现评分功能。排名功能的实现:选手的成绩会进入排行榜内,选手可在排行榜中查询成绩,可以按照不同的排名规则进行排名。评审给参赛人员打完分后,立马出成绩,排行榜实时更新。数据库实时更新:在后端添加信息后,保证前端能实时更新。操作简单、界面简洁、功能齐全。2需求分析2.1可行性需求分析2.1.1社会可行性随着国家教育制度的改革,竞赛活动越来越多,参赛人员也越来越多。如果一直使用人工来记录跟踪赛事,往往会有很多因素导致工作失误。人们需要用一个集合多功能的竞赛管理系统来帮助他们完成这些工作,提高工作效率,减少工作失误。2.1.2经济可行性经济可行性是软件带来的经济效益与开发设计所需要的投资费用相比较是否适当,软件是否会比人工节省。当然,一场大型赛事往往会聘请很多工作人员,而竞赛管理系统往往只需要一个超级管理员即可管理,相比之下,竞赛管理系统可以节省很多费用,设计系统是经济可行的。2.2非功能性需求分析系统应当满足以下系统性能指标:系统稳定性和可靠性。一般查询响应时间≤6秒。系统拓展性。系统满足界面的友好性,系统界面的友好性将会直接影响用户使用系统的效率,要尽可能满足用户已有的使用习惯。系统应确保不间断工作。系统独立性。2.3功能性需求分析2.3.1竞赛信息管理功能前端实现竞赛信息的展示,后端实现对竞赛信息的管理。竞赛信息可以自定义。竞赛信息列表:对竞赛信息进行增删改查操作。赛事分类:按不同评分规则分类,方便用户查找自己想要看的赛事信息。赛事报名:用户如果有中意的赛事,方可进行报名。热门赛事:对赛事每天的浏览量做一个统计并以表格的形式体现出来。查询赛事:用户可以查询自己想要查找的赛事。2.3.2用户信息管理功能用户对自己的信息进行查询或者修改等操作。个人中心:用户对自己的信息查看或修改。绑定邮箱:用户忘记密码时,可通过绑定的邮箱来找回自己的密码。2.3.3参赛选手信息管理功能参赛选手对自己的成绩进行查询,修改报名信息。名人堂:选手可以输入自己的准考证号进行查询,用户可以按照不同排名方式进行排名。修改报名信息:用户对自己的报名信息进行修改。3运行环境3.1硬件环境处理器:Intel(R)Core(TM)i7-6498DUCPU@2.50GHz2.60GHz系统类型:64位操作系统,基于x64的处理器内存:4.00GB磁盘空间:256GB3.2软件环境操作系统:Windows10服务器框架:django框架数据库:MySQL5.7浏览器:GoogleChrome虚拟环境:virtualenv4开发技术及开发工具4.1开发技术介绍4.1.1B/S结构及其优势B/S结构是对C/S结构的一种改进。用户的工作界面是通过WWW浏览器来实现的。WEB浏览器成为了\t"/item/B/S%E7%BB%93%E6%9E%84/_blank"客户端上最主要的\t"/item/B/S%E7%BB%93%E6%9E%84/_blank"应用软件。该模式下它统一了\t"/item/B/S%E7%BB%93%E6%9E%84/_blank"客户端,将系统功能实现的核心部分集中在\t"/item/B/S%E7%BB%93%E6%9E%84/_blank"服务器上并简化了系统的开发和维护。该技术超越了传统的“客户机/服务器”两层结构,采用了用户界面层/事务层/数据库层这三层结构。各层之间的功能联系如表4.1所示。表4.1B/S三层体系结构之间的功能及联系层次功能及联系用户界面层只有简单的输入输出功能,处理极少部分的事务逻辑。由于客户不需要安装客户端,只要有浏览器就能上网浏览,所以它面向的是大范围的用户,界面设计就要简单、通用。事务层它扮演着传送的角色。当用户想要访问数据库时,首先会向WEB服务器发送请求,WEB服务器统一请求后会向数据库服务器发送访问数据库的请求,这个请求是以SQL语句实现的。数据库层它存储了大量的数据,并发挥着重要作用。当数据库服务器接收WEB服务器发出的请求时,它将处理该SQL语句并将结果发送到WEB服务器,然后将收到的数据结果转换为HTML文本格式并将其发送给浏览器,这就是我们打开浏览器看到的界面。所以B/S架构具有以下四点优点:它不需要安装任何软件即可运行,只需要一台可以访问Internet的计算机,客户端实现零安装、零维护,使得系统非常容易进行拓展。这也是它最大的一个特点。通过需求推动ajax技术的发展,它的程序也能在客户端电脑上进行部分处理,从而减轻服务器的负担并增加了交互性,可以进行局部实时刷新。B/S结构利用日益成熟的Web浏览器技术:将浏览器的多种脚本语言和ActiveX技术相结合,用通用浏览器实现原来需要复杂专用软件才能实现的强大功能。界面统一(均为浏览器模式),操作相对简单。4.1.2web开发框架—djangodjango项目起源于一个在线新闻网站。它是一个用Python语言编写的开源Web开发框架,遵循MVC设计模式。它强调代码重用,多个组件可以很容易以“插件”的形式服务于整个框架,django有很多强大的第三方插件,可以开发出自己的工具包。使得django具有很强的可扩展性,它还强调快速开发和DRY原则。于2005年以开源的形式展示出来,django框架的核心模块有:urls.py网址入口,关联对应的views.py中的一个函数(或者generic类),访问网址就对应该函数。views.py处理urls.py中对应的用户请求,可以通过在templates模板中呈现网页,将需要看到的内容输入到网页中。models.py与数据库操作有关,它用于保存或读取数据,不需要引用数据的时候可以不使用。forms.py表单,用户在浏览器上输入数据提交时,实现验证数据并生成输入框的功能。templates文件夹views.py中的函数渲染templates中的html模板,以获取web页面动态内容。当然可以通过缓存来提高速度。admin.pydjango自带的后台,只需要少量的代码就可以实现后台的管理。settings.pydjango的设置,配置文件,比如用QQ发送验证码的配置、静态文件的位置、网页的语言、时区等。static静态文件,用户存放js和css代码。4.1.3MTV设计模式django已经成为web开发者的常用框架,MTV是Model、Template、View三个单词的简写,分别代表模型、模版、视图。在django中,控制器接受用户输入的部分由框架自行处理。它们各自的职责如下表4.2所示:表4.2MTV模式中各自的职责层次职责模型(Model),数据存取层处理与事务相关的所有事务:如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。模板(Template),表现层处理与表现相关的决定:如何在页面或其他类型文档中进行显示视图(View),业务逻辑层存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。可以看出django视图不需要处理用户的输入,只需要决定显示哪些数据给用户即可,django模板则是实现如何显示django视图指定的数据。换言之,django把MVC中的视图分解为django视图和django模板这两个部分,分别决定“显示哪些数据”和“如何显示”,使得django的模板可以根据需要随时替换,而不仅仅限制于内置的模板。4.2开发工具介绍4.2.1JetBrainsPyCharm2018.3.5x64PyCharm是Python的一个IDE,能够帮助用户在使用Python语言进行开发时提高该效率,例如调试、、项目管理、、智能提示、代码的跳转、单元测试以及版本控制等等。另外,该IDE还拥有一些高级功能,它自带HTML,CSS和JavaScript编辑器,以用于支持django框架下的专业Web开发。4.2.2MySQL5.7MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),它有以下优点:适用性高,基本适用于所有平台开源,版本更新较快性能出色提供用于管理、检查、优化数据库操作的管理工具支持多线程,充分利用CPU资源4.2.3Navicat12forMySQLNavicat是一套快速可靠的数据库管理工具,专为简化数据库的管理及降低系统管理的成本而设。可以让你以安全并且简单的方式创建、组织、访问、共用信息。

5系统概要设计5.1系统功能结构设计竞赛管理系统的功能结构图如图5.1所示:图5.1竞赛管理功能结构图5.2数据库连接数据库连接代码如下图5.2所示:图5.2连接数据库关键代码Django很容易连接到数据库,只需要输入数据库类别、数据库名字、用户名和密码等即可进行连接。5.3数据库E-R图竞赛管理系统数据库E-R图如图5.3所示:图5.3竞赛管理系统E-R图5.4数据表详细设计赛事信息详细设计如表5.1所示,对应的代码设计如图5.4所示:表5.1赛事信息表字段名称数据类型字段说明event_namevarchar(32)赛事名称event_full_marksvarchar(10)赛事满分event_start_timevarchar(32)赛事开始时间event_end_timevarchar(32)赛事结束时间event_placevarchar(100)赛事地点event_rulelongtext赛事规则event_typevarchar(15)赛事类型(外键)图5.4赛事信息代码设计赛事类型详细设计如表5.2所示,对应的代码设计如图5.5所示:表5.2赛事类型表字段名称数据类型字段说明type_namevarchar(15)类型名称type_score_rulelongtext类型对应评分规则图5.5赛事类型代码设计选手信息详细设计如表5.3所示,对应的代码设计如图5.6所示:表5.3选手信息表字段名称数据类型字段说明player_namevarchar(100)选手名字player_registration_numberint准考证号player_scoreint选手分数player_score_namevarchar(15)选手分数对应的赛事名称(外键)图5.6选手信息代码设计报名信息详细设计如表5.4所示,对应的代码设计如图5.7所示:表5.4报名信息表字段名称数据类型字段说明enroll_player_namevarchar(32)报名选手名字enroll_player_id_cardvarchar(18)报名选手身份证号enroll_player_phone_numvarchar(11)报名选手手机号码enroll_player_gradevarchar(10)包名选手所在年级enroll_player_event_namevarchar(32)报名选手所要参加的赛事enroll_player_schoolvarchar(30)报名选手所在学校图5.7报名信息代码设计6系统详细设计6.1注册功能模块用户注册时需要创建用户名,然后输入自己的邮箱,输入密码,两次密码必须一致,输入完之后先点击发送验证码,发送验证码之后30s不能再次发送,用户输入的邮箱将会收到一个4位数字验证码,输入正确的验证码点击注册即可注册成功。注册界面如图6.1所示:图6.1注册界面由于django中内置了发送邮件功能,只需要在QQ邮箱官网中点击“设置”找到账户开启 IMAP/SMTP服务,对应的views.py中的核心代码如图6.2所示:图6.2views.py中发送邮件核心代码setting.py中的核心代码如下图6.3所示:图6.3setting.py中的核心代码6.2登录功能模块用户进入首页点击“登录”即可跳转至登录页面,登录账号可以是用户名也可以是绑定的邮箱号,输入正确的账号密码方可进行登录。登录界面如图6.4所示:图6.4登录界面在django中有一个用户认证系统auth模块,登录时只需引用即可。对应的核心代码如图6.5所示:图6.5登录核心代码

6.3忘记密码功能模块当用户忘记自己的登录密码时,可以在登录界面点击“忘记密码”进入忘记密码界面,输入注册时绑定的邮箱号,然后输入自己的新密码,点击发送验证码,在自己绑定的邮箱中可以收到验证码,输入获得的验证码点击重置即可。忘记密码界面如图6.6所示:图6.6忘记密码界面6.4浏览赛事统计并显示用户登录后可以看到这样的一个折线图表,折线图表记录了每天的总浏览量,该图表下面的热门赛事则记录了每场赛事的浏览量并取前5场热门赛事显示出来,这个也可以作为一个因素,间接影响用户是否报名该场赛事。用户可以直接点击该热门赛事,进入赛事详细信息界面。浏览赛事统计并显示界面如图6.7所示:图6.7浏览赛事统计并显示界面为了防止有用户恶意刷赛事的浏览次数,特意限制了一个用户在一天内用同一个浏览器看对应的赛事只能增加1次的阅读次数。对应的核心代码如图6.8所示:图6.8阅读次数核心代码6.5导航条当点击导航条里的“竞赛管理系统”或“首页”时,都会跳转至首页这个页面。导航条里还包括了“赛事信息”,“名人堂”,“报名”,“搜索”功能。当用户未登录时,导航条的右边会有登录注册按钮,当用户已登录时导航条的右边会显示用户的用户名。用户名可以下拉,包括了“个人中心”,“后台管理”,“退出”功能。用户未登录时导航条界面如图6.9所示:图6.9用户未登录时导航条界面用户已登录时导航条界面如图6.10所示:图6.10用户已登录时导航条界面用户名下拉的界面如图6.11所示:图6.11用户名下拉的界面6.6赛事信息赛事信息界面分为两列,左边一列是赛事列表,把所有的赛事都显示出来,并且把重要的赛事信息跟着一起显示出来,右边则是赛事类型以及各个类型的评分标准,点击类型分类中的赛事类型可以跳转至对应的页面。当赛事太多时需要分页,所以在界面的最下边设置了分页,点击页码即可跳转对应的页面,也可以点击“<<”和“>>”,分别对应前一页和后一页,当当前页码是第一页时,系统判定“<<”为不可点击,当当前页码为最后一页时,系统判定“>>”为不可点击。以每5场赛事为一页进行分页显示,并在最下端显示出第几页。当赛事过多时,为了界面简洁,将多余的页码用省略号表示。赛事信息界面如图6.12所示:图6.12赛事信息界面赛事分类界面如图6.13所示:图6.13赛事分类界面赛事较少时页码如图6.14所示:图6.14分页显示赛事过多时页码如图6.15所示:图6.15页面较多时分页显示赛事显示核心代码如图6.16所示:图6.16赛事显示核心代码6.7赛事详细信息当用户点击赛事名称进入赛事详细信息界面,该界面包括了赛事详细信息,在信息的下端有“点我报名”跟“评审打分入口”。如果用户浏览完信息后觉得自己想报名该场赛事即可点击“点我报名”进入报名界面。在最下端还设计了一点细节,用户浏览完这场赛事信息后可以不用切换出去,点击最下端的前一场或者后一场赛事即可赛事详细信息界面如图6.17所示:图6.17赛事详细信息界面

赛事详细信息显示的核心代码如图6.18所示:图6.18赛事详细信息显示核心代码6.8查询功能模块当用户输入自己想要查找的赛事或者关键字之后,以输入“小学”为例。查找界面会显示符合查找要求的所有赛事并显示出来。查询功能界面如图6.19所示:图6.19查询功能界面

查询功能核心代码如图6.20所示:图6.20查询功能核心代码6.9报名功能模块用户报名可以点击导航条里的“名人堂”,也可以点击赛事详细信息里的“点我报名”。用户可以帮他人报名,需要输入参赛选手的姓名、身份证号、手机号码、所在学校及所读年级、所参加的赛事。确认信息后方可进行报名。报名界面如图6.21所示:图6.21报名界面6.2.10名人堂模块名人堂初始的排名是所有选手依据分数进行的排名,用户可以在这里看到各个选手的分数排名情况,可以选择排名方式,也可以查询选手的准考证号来查询选手的成绩。名人堂界面如图6.22所示:图6.22名人堂界面点击赛事名称可以下拉选择不同赛事进入对应的排名,如下图6.23所示图6.23排名方式

对应的核心代码如图6.24所示:图6.24赛事排名核心代码6.2.11个人中心模块用户登录后通过点击用户名下拉后再点击个人中心按钮进入个人中心模块。在个人中心中可以进行信息的查看,会显示上一次登录的时间,可以根据上一次登录的时间来看是否自己被盗号,可以进行密码修改,报名信息修改,但是不能修改已绑定的邮箱。如果用户自己绑定的邮箱没用了或者被盗号了可以联系管理员将其原先的邮箱号删除,然后重新绑定邮箱号。个人中心界面如图6.25所示:图6.25个人中心界面6.2.12后台管理模块后台管理只有给定权限的用户才能进去,在后台可以进行所有信息和用户的管理。后台管理界面如图6.26所示:图6.26后台管理界面7系统测试7.1测试目的系统测试是系统设计时比较重要的一部分。在竞赛管理系统开发时,人类的主观理解不能完全符合客观现实,因此不可避免地会在系统开发的每个阶段发生错误。在每个阶段结束之前通过简单的测试来发现更多的错误。测试的目的有以下四点:通过测试发现与用户需求之间存在的缺陷。通过测试来发现并解决这些缺陷,提高用户对产品质量的信心。通过测试来积累经验,降低该软件产品失败的风险,同样也起到一个预防作用。通过测试活动了解被测对象的质量状况,为决策提供数据依据。7.2功能测试针对竞赛管理系统的各部分功能以及可靠性进行了黑盒测试,测试用例如下:注册功能测试:测试用户注册填写所需要的信息错误时是否有对应的提示,注册成功是否跳转至登录页面。测试用例表如下表7.1所示:表7.1注册功能测试用例表序号功能模块用例标题测试步骤期望结果实际结果ZC_001注册输入所有的正确信息,进行注册打开首页点击注册按钮,进入注册页面输入所有的正确信息,点击注册按钮注册成功,并跳转至首页注册成功,并跳转至首页ZC_002注册不输入用户名打开首页点击注册按钮,进入注册页面不输入用户名,输入其他正确信息,点击注册按钮提示“请填写此字段”提示“请填写此字段”ZC_003注册输入的用户名长度少于2位打开首页点击注册按钮,进入注册页面输入用户名长度小于2位,输入其他正确信息,点击注册按钮提示“请将该内容增到到2个或更多字符”提示“请将该内容增到到2个或更多字符”ZC_004注册输入已存在的用户名打开首页点击注册按钮,进入注册页面输入已存在的用户名,输入其他正确信息,点击注册按钮提示“*用户名已存在”提示“*用户名已存在”ZC_005注册不输入邮箱打开首页点击注册按钮,进入注册页面不输入用户名,输入其他正确信息,点击注册按钮提示“请填写此字段”提示“请填写此字段”ZC_006注册输入错误的邮箱打开首页点击注册按钮,进入注册页面输入错误的邮箱,输入其他正确信息,点击注册按钮提示“请在电子邮件地址中包括‘@’”提示“请在电子邮件地址中包括‘@’”ZC_007注册输入已存在的邮箱打开首页点击注册按钮,进入注册页面输入已存在的邮箱,输入其他正确信息,点击注册按钮提示“*邮箱已存在”提示“*邮箱已存在”ZC_008注册不输入验证码打开首页点击注册按钮,进入注册页面不输入用户名,输入其他正确信息,点击注册按钮提示“*验证码不能为空”提示“*验证码不能为空”ZC_009注册输入错误的验证码打开首页点击注册按钮,进入注册页面输入错误的验证码,输入其他正确信息,点击注册按钮提示“验证码错误”无提示ZC_010注册不输入密码打开首页点击注册按钮,进入注册页面不输入用户名,输入其他正确信息,点击注册按钮提示“请填写此字段”提示“请填写此字段”ZC_011注册输入的密码长度少于6位打开首页点击注册按钮,进入注册页面输入密码长度小于6位,输入其他正确信息,点击注册按钮提示“请将该文本增到为6个字符或更多”提示“请将该文本增到为6个字符或更多”ZC_012注册不输入请再输入一次密码打开首页点击注册按钮,进入注册页面不输入请再输入一次密码,输入其他正确信息,点击注册按钮提示“请填写此字段”提示“请填写此字段”ZC_013注册输入请再输入一次密码长度小于6位打开首页点击注册按钮,进入注册页面输入请再输入一次密码长度小于6位,输入其他正确信息,点击注册按钮提示“请将该文本增到为6个字符或更多”提示“请将该文本增到为6个字符或更多”ZC_014注册请再输入一次密码和密码不一致打开首页点击注册按钮,进入注册页面再输入一次密码和密码不一致,其他正确信息,点击注册按钮提示“*两次密码输入不一致”提示“*两次密码输入不一致”2.登录功能测试:通过登录信息的填写,测试用户是否可以正确的登录。测试用例表如下表7.2所示:表7.2登录功能测试用例表测试性能登录功能用例目的测试系统的登录功能前提条件必须有正确的登录信息输入期望的输出实际情况示例1:1.用户进入首页2.用户点击登录按钮,进入登录界面3.在用户名或邮箱中输入“谢文杰”或“952284281@”,密码中输入“xwj12345”4.点击登录按钮示例2:同示例1,输入错误密码“xwj1234”示例1:登录成功,跳转至当时用户未登录时所在的页面示例2:登录失败,提示“用户名或密码不正确”实现系统登录功能3.忘记密码功能测试:测试是否真的可以通过邮箱接收验证码来重置密码。测试用例表如下表7.3所示:表7.3忘记密码功能测试用例表测试性能忘记密码功能用例目的测试系统是否可以通过忘记密码来重置自己的密码前提条件必须记得自己注册时绑定的邮箱输入期望的输出实际情况示例1:1.用户进入首页,并点击登录按钮,进入登录界面2.用户点击左下角的“忘记密码?”进入重置密码界面3.在邮箱中输入“952284281@”,密码中输入“xwj123456”4.点击发送验证码按钮5.输入收到的验证码“5318”6.点击重置示例2:同示例1,输入错误的验证码“5317”示例1:重置成功,跳转至登录页面示例2:重置失败,提示“验证码不正确”示例1:重置成功,跳转至登录页面示例2:重置失败,无提示信息4.修改密码功能测试:测试密码是否能修改正确。测试用例表如下表7.4所示:表7.4修改密码功能测试表测试性能修改密码功能用例目的测试系统是否可以通过修改密码来修改自己的密码前提条件用户必须处于登录状态输入期望的输出实际情况示例1:1.用户登录后点击导航条里的用户名2.下拉点击个人中心,进入个人中心界面3.用户点击修改密码进入修改密码界面4.在旧密码中输入“xwj123456”,新密码中输入“xwj12345”,请再输入一次密码中输入“xwj12345”。5.点击修改按钮示例2:同示例1,在旧密码中输入错误的密码“xwj1234”示例1:修改成功,跳转至首页页面示例2:修改失败,提示“*旧的密码错误”实现修改密码功能

8结论PyCharm是一款用非常好用的开发工具,通过这次毕业设计,我基本掌握了用PyCharm开发工具用django框架来实现web开发。经过试运行,竞赛管理系统基本达到应用的需求,可以满足竞赛管理的大多数流程。在做竞赛管理系统这个过程中,学到了很多,真正的静下心来每天跟着视频教学一起学习,一起练习。之前总以为很多技术看起来很难实现,可是真正的去做了才发现并没有那么困难。当然,一个好的系统不仅性能、功能要完善,界面也要有足够的友好性,因为人是最终用户,眼花缭乱的界面会使得用户有不好的操作体验,影响用户操作的心情。本次毕业设计中我查阅了大量资料,因为对django框架的不熟悉,所以每天都得上网查资料,看视频。当然有付出就会有收获,通过自己的努力和老师的指导,我顺利完成了此次毕业设计,希望在以后的生活中我能保持这份干劲。竞赛信息管理、选手信息管理、排名信息管理、报名信息管理等是竞赛管理系统的主要管理功能。选手可以选择自己想要参加的赛事,在时间不冲突的情况下可以一人参加多场赛事,该竞赛管理系统对报名、排名等信息进行了严格监控,保证了竞赛的公平公正性。本系统仍存在一些不足:手机号、身份证号等不能确保正确,只能规定输入的长度。报名只能个人报名,没有设计团队参赛等,这些问题都应该进行改进加强。

参考文献[1]嵩天,礼欣,黄天羽.python语言程序设计基础[M].北京:高等教育出版社,2017:3.[2]django.Documentation[OL]./en/3.0/[3]python技术最差的.pycharm+python+django+mysql开发的web应用[OL]./weixin_44207181/article/details/90725003?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task,2019-06-02[4]HaddyYang.django2.0-course[OL]./HaddyYang/django2.0-course,2018-10-27[5]再敲一行代码.【Django2.0教程】[OL]./252028233/#/channel/detail?cid=28138,2017-12-05[6]wukangkkk.music[OL]./wukangkkk/music,2019-02-21[7]Bootstrap中文网.起步[OL]./getting-started/[8]Bootstrap中文网.组件[OL]./components/[9]Bootstrap中文网.全局CSS样式[OL]./css/[10]HIGHCHARTS.Highcharts演示[OL]./demo/highcharts

谢辞大学四年时光以接近尾声,毕业论文的结束意味着我在北京理工大学珠海学院的学习生活也要画上一个句号!回首以前,感慨良多,这些经历将会是我人生中一份珍贵的记忆。在此特别感谢大学生涯中给予我支持和帮助的老师、同学、亲人们。感谢我的指导老师,给了我很多意见,遇到的问题老师也会耐心的帮助我。当然也感谢我的辅导员,在疫情期间,每天在群里要大家完成问卷,一个都不能落下。记得有一次,也是唯一一次,忘记填问卷了,黄导下午立马打了语音电话过来。在此,向导师和辅导员表示崇高的敬意和衷心的感谢!感谢我的父母,在这大学四年中,他们每天工作都很辛苦,每年也要一大笔花费来供我和我妹妹上学。谢谢他们对我的尊重,不多干涉我的想法。感谢林宇佳、杨泓锐,在我大学这四年,上课基本都是一起去,下课也基本一起走,我们都固定了几个地点专门等人。35栋大树下,三饭侧门,28栋楼下。现在想想还是挺怀念的。出了校门大家也是社会人士了。祝你们前程似锦,大家一起发财!感谢轮滑社的朋友们,大一加入的轮滑社,每天晚上不下雨基本都会下去轮滑场,参加了很多活动,夜刷扬名、从珠海刷到中山、情侣路看日出等,特别感谢他们。感谢我的室友黄高枫、谢高、李昊铭。谢谢他们无微不至的关心,学习上的相互鼓励。最后,感谢帮助过我的同学和老师们,正因为有了你们,我的人生才如此多彩。附录附录1程序源代码get_event_common代码如下:defget_event_common(request,events_all_list):

paginator=Paginator(events_all_list,settings.EACH_PAGE_EVENTS_NUMBER)

page_num=request.GET.get('page',1)#获取url页面参数(GET请求)

page_of_events=paginator.get_page(page_num)

currentr_page_num=page_of_events.number#获取当前页码

#获取当前页码前后各2页的页码范围

page_range=list(range(max(currentr_page_num-2,1),currentr_page_num))+list(range(currentr_page_num,min(currentr_page_num+2,paginator.num_pages)+1))

#加上省略页码标记

ifpage_range[0]-1>=2:

page_range.insert(0,'...')

ifpaginator.num_pages-page_range[-1]>=2:

page_range.append('...')

#加上首页和尾页

ifpage_range[0]!=1:

page_range.insert(0,1)

ifpage_range[-1]!=paginator.num_pages:

page_range.append(paginator.num_pages)

#获取赛事分类对应的赛事数量

event_types=EventType.objects.all()

event_types_list=[]

forevent_typeinevent_types:

event_type.event_count=EventInfo.objects.filter(event_type=event_type).count()

event_types_list.append(event_type)

context={}

context['events']=page_of_events.object_list

context['page_of_events']=page_of_events

context['page_range']=page_range

context['event_types']=event_types_list

returncontext

HYPERLINK电脑快捷知识大全编辑本段一、常见用法F1显示当前程序或者windows的帮助内容。F2当你选中一个文件的话,这意味着“重命名”F3当你在桌面上的时候是打开“查找:所有文件”对话框F10或ALT激活当前程序的菜单栏windows键或CTRL+ESC打开开始菜单CTRL+ALT+DELETE在win9x中打开关闭程序对话框DELETE删除被选择的选择项目,如果是文件,将被放入回收站SHIFT+DELETE删除被选择的选择项目,如果是文件,将被直接删除而不是放入回收站CTRL+N新建一个新的文件CTRL+O打开“打开文件”对话框CTRL+P打开“打印”对话框CTRL+S保存当前操作的文件CTRL+X剪切被选择的项目到剪贴板CTRL+INSERT或CTRL+C复制被选择的项目到剪贴板SHIFT+INSERT或CTRL+V粘贴剪贴板中的内容到当前位置ALT+BACKSPACE或CTRL+Z撤销上一步的操作ALT+SHIFT+BACKSPACE重做上一步被撤销的操作Windows键+L锁屏键Windows键+M最小化所有被打开的窗口。Windows键+SHIFT+M重新将恢复上一项操作前窗口的大小和位置Windows键+E打开资源管理器Windows键+F打开“查找:所有文件”对话框Windows键+R打开“运行”对话框Windows键+BREAK打开“系统属性”对话框Windows键+CTRL+F打开“查找:计算机”对话框SHIFT+F10或鼠标右击打开当前活动项目的快捷菜单SHIFT在放入CD的时候按下不放,可以跳过自动播放CD。在打开word的时候按下不放,可以跳过自启动的宏ALT+F4关闭当前应用程序ALT+SPACEBAR打开程序最左上角的菜单ALT+TAB切换当前程序ALT+ESC切换当前程序ALT+ENTER将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换PRINTSCREEN将当前屏幕以图象方式拷贝到剪贴板ALT+PRINTSCREEN将当前活动程序窗口以图象方式拷贝到剪贴板CTRL+F4关闭当前应用程序中的当前文本(如word中)CTRL+F6切换到当前应用程序中的下一个文本(加shift可以跳到前一个窗口)在IE中:ALT+RIGHTARROW显示前一页(前进键)ALT+LEFTARROW显示后一页(后退键)CTRL+TAB在页面上的各框架中切换(加shift反向)F5刷新CTRL+F5强行刷新目的快捷键激活程序中的菜单栏F10执行菜单上相应的命令ALT+菜单上带下划线的字母关闭多文档界面程序中的当前窗口CTRL+F4关闭当前窗口或退出程序ALT+F4复制CTRL+C剪切CTRL+X删除DELETE显示所选对话框项目的帮助F1显示当前窗口的系统菜单ALT+空格键显示所选项目的快捷菜单SHIFT+F10显示“开始”菜单CTRL+ESC显示多文档界面程序的系统菜单ALT+连字号(-)粘贴CTRL+V切换到上次使用的窗口或者按住ALT然后重复按TAB,切换到另一个窗口ALT+TAB撤消CTRL+Z编辑本段二、使用“Windows资源管理器”的快捷键目的快捷键如果当前选择展开了,要折叠或者选择父文件夹左箭头折叠所选的文件夹NUMLOCK+负号(-)如果当前选择折叠了,要展开或者选择第一个子文件夹右箭头展开当前选择下的所有文件夹NUMLOCK+*展开所选的文件夹NUMLOCK+加号(+)在左右窗格间切换F6编辑本段三、使用WINDOWS键可以使用Microsoft自然键盘或含有Windows徽标键的其他任何兼容键盘的以下快捷键。目的快捷键在任务栏上的按钮间循环WINDOWS+TAB显示“查找:所有文件”WINDOWS+F显示“查找:计算机”CTRL+WINDOWS+F显示“帮助”WINDOWS+F1显示“运行”命令WINDOWS+R显示“开始”菜单WINDOWS显示“系统属性”对话框WINDOWS+BREAK显示“Windows资源管理器”WINDOWS+E最小化或还原所有窗口WINDOWS+D撤消最小化所有窗口SHIFT+WINDOWS+M编辑本段四、“我的电脑”和“资源管理器”的快捷键目的快捷键关闭所选文件夹及其所有父文件夹按住SHIFT键再单击“关闭按钮(仅适用于“我的电脑”)向后移动到上一个视图ALT+左箭头向前移动到上一个视图ALT+右箭头查看上一级文件夹BACKSPACE编辑本段五、使用对话框中的快捷键目的快捷键取消当前任务ESC如果当前控件是个按钮,要单击该按钮或者如果当前控件是个复选框,要选择或清除该复选框或者如果当前控件是个选项按钮,要单击该选项空格键单击相应的命令ALT+带下划线的字母单击所选按钮ENTER在选项上向后移动SHIFT+TAB在选项卡上向后移动CTRL+SHIFT+TAB在选项上向前移动TAB在选项卡上向前移动CTRL+TAB如果在“另存为”或“打开”对话框中选择了某文件夹,要打开上一级文件夹BACKSPACE在“另存为”或“打开”对话框中打开“保存到”或“查阅”F4刷新“另存为”或“打开”对话框F5编辑本段六、桌面、我的电脑和“资源管理器”快捷键选择项目时,可以使用以下快捷键。目的快捷键插入光盘时不用“自动播放”功能按住SHIFT插入CD-ROM复制文件按住CTRL拖动文件创建快捷方式按住CTRL+SHIFT拖动文件立即删除某项目而不将其放入SHIFT+DELETE“回收站”显示“查找:所有文件”F3显示项目的快捷菜单APPLICATION键刷新窗口的内容F5重命名项目F2选择所有项目CTRL+A查看项目的属性ALT+ENTER或ALT+双击可将APPLICATION键用于Microsoft自然键盘或含有APPLICATION键的其他兼容键编辑本段七、Microsoft放大程序的快捷键这里运用Windows徽标键和其他键的组合。快捷键目的Windows徽标+PRINTSCREEN将屏幕复制到剪贴板(包括鼠标光标)Windows徽标+SCROLLLOCK将屏幕复制到剪贴板(不包括鼠标光标)Windows徽标+PAGEUP切换反色。Windows徽标+PAGEDOWN切换跟随鼠标光标Windows徽标+向上箭头增加放大率Windows徽标+向下箭头减小放大率编辑本段八、使用辅助选项快捷键目的快捷键切换筛选键开关右SHIFT八秒切换高对比度开关左ALT+左SHIFT+PRINTSCREEN切换鼠标键开关左ALT+左SHIFT+NUMLOCK切换粘滞键开关SHIFT键五次切换切换键开关NUMLOCK五秒QQ快捷键,玩QQ更方便Alt+S快速回复Alt+C关闭当前窗口Alt+H打开聊天记录Alt+T更改消息模式Ait+J打开聊天纪录Ctrl+A全选当前对话框里的内容Ctrl+FQQ里直接显示字体设置工具条Ctrl+J输入框里回车(跟回车一个效果)Ctrl+M输入框里回车(跟回车一个效果)Ctrl+L对输入框里当前行的文字左对齐Ctrl+R对输入框里当前行的文字右对齐Ctrl+E对输入框里当前行的文字居中Ctrl+V在qq对话框里实行粘贴Ctrl+Z清空/恢复输入框里的文字Ctrl+回车快速回复这个可能是聊QQ时最常用到的了Ctrl+Alt+Z快速提取消息Ctrl+Alt+A捕捉屏幕最常用的快捷键F5刷新DELETE删除TAB改变焦点CTRL+C复制CTRL+X剪切CTRL+V粘贴CTRL+A全选CTRL+Z撤销CTRL+S保存ALT+F4关闭CTRL+Y恢复ALT+TAB切换CTRL+F5强制刷新CTRL+W关闭CTRL+F查找SHIFT+DELETE永久删除CTRL+ALT+DEL任务管理SHIFT+TAB-反向切换CTRL+空格--中英文输入切换CTRL+Shift输入法切换CTRL+ESC--开始菜单CTRL+ALT+ZQQ快速提取消息CTRL+ALT+AQQ截图工具CTRL+ENTERQQ发消息Alt+1保存当前表单Alt+2保存为通用表单Alt+A展开收藏夹列表资源管理器END显示当前窗口的底端HOME显示当前窗口的顶端NUMLOCK+数字键盘的减号(-)折叠所选的文件夹NUMLOCK+数字键盘的加号(+)显示所选文件夹的内容NUMLOCK+数字键盘的星号(*)显示所选文件夹的所有子文件夹向左键当前所选项处于展开状态时折叠该项,或选定其父文件夹向右键当前所选项处于折叠状态时展开该项,或选定第一个子文件夹自然键盘【窗口】显示或隐藏“开始”菜单【窗口】+F1帮助【窗口】+D显示桌面【窗口】+R打开“运行”【窗口】+E打开“我的电脑”【窗口】+F搜索文件或文件夹【窗口】+U打开“工具管理器”【窗口】+BREAK显示“系统属性”【窗口】+TAB在打开的项目之间切换辅助功能按右边的SHIFT键八秒钟切换筛选键的开和关按SHIFT五次切换粘滞键的开和关按NUMLOCK五秒钟切换切换键的开和关左边的ALT+左边的SHIFT+NUMLOCK切换鼠标键的开和关左边的ALT+左边的SHIFT+PRINTSCREEN切换高对比度的开和关运行按“开始”-“运行”,或按WIN键+R,在『运行』窗口中输入:(按英文字符顺序排列)%temp%打开临时文件夹.C:\Documents

温馨提示

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

评论

0/150

提交评论