收藏 分销(赏)

项目一-模块三-项目代码实现.ppt

上传人:天**** 文档编号:10307879 上传时间:2025-05-22 格式:PPT 页数:39 大小:2.28MB
下载 相关 举报
项目一-模块三-项目代码实现.ppt_第1页
第1页 / 共39页
项目一-模块三-项目代码实现.ppt_第2页
第2页 / 共39页
点击查看更多>>
资源描述
【,初级篇,】,项目一:在线考试系统,模块三 项目代码实现,PHP,基础语法,流程控制语句,文件包含语句,函数与数组,任务一,任务二,任务三,项目结构划分,设计题库,在线答题,任务四,扩展提高,电脑阅卷,PHP,错误处理,目录,在一个完整的项目中不仅需要,PHP,程序、还需要,HTML,、,CSS,、,JavaScript,和图片等文件。因此,在项目开发时,需要对项目文件进行合理的管理。,现规定该项目的三个主要文件,及其功能分别如下:,index.php,是系统的首页,用于显示考试系统中的题库,。,test.php,用于完成在线考试功能,实现读取题库显示到网页中,学生在网页中答题,。,total.php,文件用于接收学生提交的试卷答案,实现自动阅卷并显示考试成绩的功能,。,任务一:项目结构划分,具体项目结构划分:,文件,说明,common,公共文件目录,data,数据目录(保存题库),css,CSS,样式文件目录,js,JavaScript,文件目录,image,图片文件目录,view,HTML,模板文件目录,index.php,系统首页,test.php,在线考试功能,total.php,查看考试成绩功能,任务一:项目结构划分,在实现考试的功能前,需要先准备题库。题库是项目中的数据部分,通常情况下使用,MySQL,等专业的数据库进行存储,然后用,PHP,将题库从数据库读取到数组中。,但为了初学者更好地掌握开发技能,本项目在设计题库时,将直接使用,PHP,数组进行存储。,任务二:设计题库,创建题库文件,title=PHP,基础语法考试题(一),/,试题标题,timeout=1800,/,答题时限(单位:秒),data=/,试题数组,binary=,/,判断题,single=,/,单选题,multiple=,/,多选题,fill=/,填空题,;,任务二:设计题库,创建题型数据,multiple=,name=,判断题,/,题型名称,score=20,/,题型分数,data=/,试题内容,binary=,name=,判断题,/,题型名称,score=20,/,题型分数,data=/,试题内容,single=,name=,单选,题,/,题型名称,score=20,/,题型分数,data=/,试题内容,fill=,name=,判断题,/,题型名称,score=20,/,题型分数,data=/,试题内容,任务二:设计题库,创建题型数据,multiple=,name=,判断题,/,题型名称,score=20,/,题型分数,data=/,试题内容,binary=,name=,判断题,/,题型名称,score=20,/,题型分数,data=/,试题内容,single=,name=,单选,题,/,题型名称,score=30,/,题型分数,data=/,试题内容,fill=,name=,判断题,/,题型名称,score=20,/,题型分数,data=/,试题内容,任务二:设计题库,创建题型数据,multiple=,name=,判断题,/,题型名称,score=30,/,题型分数,data=/,试题内容,binary=,name=,判断题,/,题型名称,score=20,/,题型分数,data=/,试题内容,single=,name=,单选,题,/,题型名称,score=20,/,题型分数,data=/,试题内容,fill=,name=,判断题,/,题型名称,score=20,/,题型分数,data=/,试题内容,任务二:设计题库,创建题型数据,multiple=,name=,判断题,/,题型名称,score=20,/,题型分数,data=/,试题内容,binary=,name=,判断题,/,题型名称,score=20,/,题型分数,data=/,试题内容,single=,name=,单选,题,/,题型名称,score=20,/,题型分数,data=/,试题内容,fill=,name=,判断题,/,题型名称,score=20,/,题型分数,data=/,试题内容,任务二:设计题库,创建各题型试题,1=,question=,使用,PHP,写好的程序,在,Linux,和,Windows,平台上都可以运行。,answer=yes,2=,question=PHP,可以支持,MySQL,数据库,但不支持其它的数据库。,answer=no,.,判断题,任务二:设计题库,创建各题型试题,1=,question=,下列选项中,不是,URL,地址中所包含的信息是()。,option=,主机名,端口号,网络协议,软件版本,answer=D,2=,question=PHP,是一种()的编程语言。,option=,解释型,编译型,两者都是,两者都不是,answer=A,单选题,任务二:设计题库,创建各题型试题,1=,question=,若在当前运行的脚本中需要调用其他文件的函数,,可以使用以下哪个语句()。,option=import,namespace,include,require,answer=C,D,2=,question=,下列选项中,可以作为,PHP,的输出语句的是()。,option=echo,var_dump,print_r,以上答案都不正确,answer=A,B,C,多选题,任务二:设计题库,创建各题型试题,1=,question=Apache,的,httpd,服务程序默认使用的是,_,端口。,answer=80,2=,question=,在,PHP,中,,_,函数能将数组转化为字符串。,answer=implode,提空题,任务二:设计题库,实现题库首页展示,通过,glob(),函数返回与指定模式相匹配的文件名,通过,count(),函数获取,data,目录中题库的数量,通过,for,循环依次载入,data,目录中的每套题库,从题库中读取数据,,内容包括题库标题、答题时限和总分数,对获取的答题时限进行单位换算,通过自定义函数计算每套试题的分值,在首页中展示获取到的试题内容,开发思路,任务二:设计题库,实现题库首页展示,效果展示,任务二:设计题库,编写公共函数,比如:点击“开始考试”,每套试题都需要获取题库编号以及相应的试题内容。因此,为了提高代码的可维护性,可以将这些代码抽取到公共函数中。,接下来在公共目录“,common,”目录中创建文件“,function.php,”,完成公共函数的编写。,任务三:在线答题,编写公共函数,开发思路,获取题库,ID,根据序号载入题库,根据序号拼接题库文件路径,判断题库文件是否存在,题库存在,读取并返回数据;题库不存在,返回,false,读取用户通过访问的题库序号,限制题库的序号最小为,1,任务三:在线答题,载入题库数据,开发思路,载入函数库,获取题库编号,并载入相应题库,判断题库是否存在,若题库,不存在,,,则提示信息并退出,若题库,存在,,则将题库数组输出到网页中,进行测试查看,任务三:在线答题,载入题库数据,效果展示,任务三:在线答题,转义,HTML,特殊字符,当题库中试题的题干、选项或答案中出现,HTML,标记时,会被浏览器解析,导致不能按照原样显示,因此需要对题库进行,HTML,特殊字符转义。,接下来在“,./common/function.php,”中编写函数实现,HTML,特殊字符转义。,任务三:在线答题,转义,HTML,特殊字符,开发思路,编写一个转义,HTML,特殊字符的函数,利用,htmlspecialchars(),函数,转义字符串中的,HTML,特殊字符,利用,str_replace(),函数替换,htmlspecialchars(),函数不能转义的,空格,字符,若开发需要转义换行符,则可以使用,nl2br(),函数,完成转义,利用匿名函数对题库数组进行递归转义,use,关键字对函数保存的变量进行引用传参,利用,foreach,完成对题库的循环,判断数组元素,如果是数组,则继续递归,如果是字符串,则转义,任务三:在线答题,转义,HTML,特殊字符,效果展示,任务三:在线答题,获取题库信息,开发思路,在公共函数库中编写,getDataInfo(),函数,获取题库的信息,创建两个空数组变量,分别用于保存某种题型的题目数量和每题的分值,从题库中读取信息,计算各题型下的题目个数和各题型中单题的分值,以二维数组形的式进行返回,在,test.php,在线考试页面中利用,list(),接收从,getDataInfo(),函数中的返回值,任务三:在线答题,实现在线答题页面,开发思路,在,test.php,在线考试页面中载入模板文件,在模板文件的对应位置输出获取的题库数据,任务三:在线答题,实现在线答题页面,效果展示,任务三:在线答题,实现在线答题页面,效果展示,任务三:在线答题,实现在线答题页面,效果展示,任务三:在线答题,实现在线答题页面,效果展示,任务三:在线答题,提交表单测试,当用户答题完成后,即可单击“交卷”按钮提交表单。,当表单提交后,表单中填写的信息就会通过,POST,方式发送给“,total.php,”,。,为了测试表单的编写是否正确,可以在“,total.php,”输出表单提交的结果。,任务三:在线答题,提交表单测试,效果展示,$_POST=,binary=1=yes,2=no,3=yes,4=yes,5=no,single=1=A,2=C,3=B,4=D,4=C,multiple=1=A,B,2=B,D,3=A,C,D,fill=1=80,2=implode,;,提交表单测试,任务三:在线答题,电脑阅卷开发思路:,任务四:电脑阅卷,效果展示:,任务四:电脑阅卷,PHP,错误处理,在实际开发过程中,不可避免的会出现各种各样的错误。为了提高开发效率,,PHP,提供了错误处理机制,该机制可以控制是否显示错误以及显示错误的级别等。,扩展提高,E_ERROR,:致命的运行时错误,这类错误不可恢复,导致脚本停止运行,E_WARNING,:运行时警告,仅提示信息,但是脚本不会停止执行,E_PARSE,:语法解析错误,说明代码存在语法错误,无法运行,E_NOTICE,:运行时通知,表示脚本遇到可能会表现为错误的情况,E_STRICT,:严格语法检查,确保代码具有互用性和向前兼容性,E_ALL,:表示所有的错误和警告信息(在,PHP 5.4,之前不包括,E_STRICT,),PHP,中常见的错误级别,上述提到的错误都是由,PHP,解释器自动触发的。,例如,发生“,E_ERROR,”级别的错误时,,PHP,会在页面中输出“,Fatal error,”并附有一段英文的错误说明。,扩展提高,自定义错误,扩展提高,log_errors=On,error_log=c:/web/php-error.log,开启错误日志记录功能,打开,php.ini,,找到,log_errors,和,error_log,log_errors,是错误记录的开关,error_log,是错误日志文件的保存路径,在项目上线时,不推荐将错误信息直接显示到网页中。,设置完成后,当,PHP,脚本发送错误时,即使“,display_errors,”关闭错误显示,在日志文件“,c:/web/php-error.log,”中也可以看到错误信息,。,扩展提高,在线考试系统开发完成后,既可以在电脑的浏览器上答题,也可以在手机等移动设备的浏览器上答题。当网站在局域网内上线后,手机可以通过,WIFI,连接到局域网中访问。,手机端答题,需要注意的是,如果网页按照传统的方式设计,在手机浏览器中访问可能会出现排版问题,为此可以将网页设计成响应式布局。接下来请动手实现在线考试系统的手机端答题,通过响应式布局使页面符合手机端的浏览体验。,课后练习,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服