基于web的在线问卷调查系统的设计实现分析报告_第1页
基于web的在线问卷调查系统的设计实现分析报告_第2页
基于web的在线问卷调查系统的设计实现分析报告_第3页
基于web的在线问卷调查系统的设计实现分析报告_第4页
基于web的在线问卷调查系统的设计实现分析报告_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

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

文档简介

范文范文.范例.参考沈阳航空航天大学课程设计名称:软件综合课程设计基于web的在线问卷调查系统的设计与实现院〔系〕:计算机学院专 业:计算机科学与技术班 级:学 号:2姓 名:指导教师:〔优秀、良好、中等、及格、不及格〕作为相关教环节考核必要依据;版格式不符合要求;数据不实,不予通过。报告和电子数据必需作为试验现象重复的关键依据。版范文.范文.范例.参考版版学术诚信声明本人声明:所呈交的报告〔含电子版及数据文件〕是我个人在导师指导下独立进展设计工作及取得的争论结果。尽我所知,除了文中特别或撰写过的争论结果,也不包含其它教育机构使用过的材料。与我一同工作的同学对本争论所做的任何奉献均己在报告中做了明确的说明并表示了谢意。报告资料及试验数据假设有不实之处,本人情愿承受本教学环节“不及格”和“重修或重做”的评分结论并担当相关一切后果。本人签名: 日期: 年 月 日沈阳航空航天大学课程设计任务书课程设计名称软件综合课程设计 专业 计算机科学与技术学生姓名 班级 学号

基于web的在线问卷调查系统的设计与实现2023 年12月19日起至 2023 年 1 月13 日止课设内容和要求:在校园、企事业单位里,由于各种调查争论的需要,常常会有各种各样的调查问卷,分发、调查、回收、统计的系统,根本解决传统问卷的上述老大难问题。实现用户治理系统,注册用户可以公布、编辑问卷;非注册用户只可以填写问卷。实现问卷公布治理系统,可以对问卷进展增加,修改,删除,查询等操作。实现数据可视化,对问卷统计结果通过图表进展呈现。界面美观,用户交互、体验良好。参考资料:PHP&MySQL[M].中国电力出版社,2023.MySQLWeb[M].人民邮电出版社,2023.教研室审核意见: 教研室主任签字:指导教师〔签名〕2023年12月16日〔签名〕2023年12月19日课程设计总结:PHPlaravel,Mysql在这次课程设计中,使我懂得了理论与实际相结合是很重要的,只有学问是所学理论知与实践相结合起来从中得出才能真正为社会效劳,从而提高自己的实思考。才能真正为社会效劳,从而提高自己的实际动手力和独立思考。才能真正为社会效劳,从而提高自己的实际动手力和独立思考。系统中存在的一些缺乏和设计上存在的缺憾,说明自己这些方面还有很多缺乏之处有待自己进一步学习、提高。很大的促进作用。目 录需求分析1\l“_TOC_250039“系统开发背景 1\l“_TOC_250038“系统开发目的 1\l“_TOC_250037“系统开发意义 2\l“_TOC_250036“概要设计 3\l“_TOC_250035“总体设计 3\l“_TOC_250034“功能设计 3\l“_TOC_250033“用户系统设计 3\l“_TOC_250032“问卷系统设计 3\l“_TOC_250031“数据库设计 4\l“_TOC_250030“2.3交互设计 6\l“_TOC_250029“具体设计 7\l“_TOC_250028“用户治理系统 7\l“_TOC_250027“用户注册 7\l“_TOC_250026“用户登录 9\l“_TOC_250025“问卷治理系统 9\l“_TOC_250024“问卷信息治理 9\l“_TOC_250023“题目信息治理 12\l“_TOC_250022“选项信息治理 15\l“_TOC_250021“问卷结果统计 17\l“_TOC_250020“问卷生成 18\l“_TOC_250019“问卷提交 20\l“_TOC_250018“4测试 21\l“_TOC_250017“消灭的错误 21\l“_TOC_250016“解决方法 21\l“_TOC_250015“参考文献 22\l“_TOC_250014“附 录〔关键局部程序清单〕 23\l“_TOC_250013“路由文件 23\l“_TOC_250012“用户治理后台文件 24\l“_TOC_250011“问卷后台治理文件 28\l“_TOC_250010“问卷生成文件 43\l“_TOC_250009“登录界面 47\l“_TOC_250008“注册页面 48\l“_TOC_250007“问卷信息治理页面 50\l“_TOC_250006“题目信息治理页面 52\l“_TOC_250005“选项信息治理页面 55\l“_TOC_250004“选择题统计信息呈现 58\l“_TOC_250003“简答题统计信息呈现 61\l“_TOC_250002“错误页面 61\l“_TOC_250001“CSS文件 63\l“_TOC_250000“JAVASCRIPT文件 79需求分析系统开发背景来越受到很多评估争论机构和媒介机构的关注与运用。上述老大难问题。很强的系统。系统开发目的分析更加的便利,应具有以下的功能特点:向用户提交交互式,共性化的问卷调查效劳。智能的后台治理,可以在线生成调查问卷,可分析统计调查的结果。使用简洁、便利,问卷生成,投放,结果分析简洁易用。具有灵敏性,能应用不同的调查环境。系统开发意义求者把握资料供给便利。调查结果。可以依据不同的需求灵敏设计问卷。支持多种题型,如单项选择、多项选择、简答等。概要设计总体设计系统的总体设计可以分为以下几个局部:户治理。MysqlJavasScript,AjaxCSS使用HighCharters功能设计用户系统设计一般用户可直接访问系统。3系统治理员:治理系统和全部用户的问卷。注册用户:设计、编辑、公布问卷,查看问卷统计结果。一般用户:填写问卷。问卷系统设计〔增加,删除,修改,查询〕与问卷对应的题目、选项。问卷属性:问卷标题,公布者,公布时间,有效时间,提交量,题目。题目属性:题号,题目,题目类型,选项。选项属性:选项号,选项值。题目类型:单项选择题、多项选择题、简答题。题。数据库设计5用户表问卷表subjects〔题目表〕,options〔选项表〕,short_answers〔简答表〕。全部表E-R题目题目id问卷id创建者问卷标题提交量有效时间删除标识创建时间更时间问卷id创立者1问卷n题号用户id题目内容拥有创立用户名题目类型n1用户邮箱选项数题目用户删除标识用户密码创立时间11用户组更时间拥有拥有创立时间nn更时间简答选项回答id题目id回答内容删除标识创建时间更时间选项id题目id创建者选项号选项内容提交数删除标识创建时间更时间2.1E-Rusers2.1用户表users字段名称字段类型注释idint(10)用户标识,唯一,主键,自增namevarchar(255)用户名,唯一emailvarchar(255)用户邮箱passwordvarchar(60)用户密码groupint(11)用户组〔治理员、注册用户〕created_attimestamp创立时间updated_attimestamp更时间2.2问卷表字段名称iduser_nametitlecountsactive_timedelete_tokencreated_atupdated_at字段名称idquestionnaire_iduser_namenumbertitletypeoption_countdelete_tokencreated_atupdated_at

questionnaires字段类型 注释int(10) 问卷标识,唯一,主键,自增varchar(255) 创立者text 问卷标题int(11) 问卷提交量int(11) 有效时间int(11) 删除标识〔0:未删除,1:已删除〕timestamp 创立时间timestamp 更时间2.3题目表subjects字段类型 注释int(10) 题目标识,唯一,主键,自增int(11) 题目对应的问卷标识〔外键〕varchar(255) 创立者int(11) 题号text 题目内容varchar(255) 题目类型〔单项选择、多项选择、简答〕int(11) 题目对应的选项数int(11) 删除标识〔0:未删除,1:已删除〕timestamp 创立时间timestamp 更时间2.4选项表字段名称idsubject_iduser_namenumbertitleselect_countdelete_tokencreated_atupdated_at字段名称

options字段类型 注释int(10) 选项标识,唯一,主键,自增int(11) 选项对应的题目标识〔外键〕varchar(255) 创立者varchar(255) 选项号text 选项内容int(11) 选项被选择的次数int(11) 删除标识〔0:未删除,1:已删除〕timestamp 创立时间timestamp 更时间2.5简答表short_answers字段类型 注释idsubject_idanswerdelete_tokencreated_atupdated_at

int(10)int(11)varchar(255)int(11)timestamptimestamp

〔外键〕答复内容〔0:未删除,1:已删除〕创立时间更时间2.3交互设计HighCharters具体设计用户治理系统用户注册本模块用于实现用户的信息注册,在注册页面检查用户输入是否合法:邮箱格式是否正确,是否已被注册。用户名是否和已注册用户重复。两次密码输入是否全都。假设用户输入合法,允许注册,并跳转至用户界面;否则,给出错误提示。“://localhost/auth/register“同下〕UI用户注册页面开头开头邮箱地址合法T用户名不重复T两次密码输入全都提交表单F注册页面提交的表单信息不为空FT写入数据库,user表,写Session出错完毕3.2用户注册流程图开头开头存在SessionT进入问卷呈现页面F输入用户名和密码输入正确FT写Session,进入系统出错完毕3.3用户登录流程图用户登录否则,提示用户错误信息。“://localhost/“Session,跳转至问卷呈现页面。UI用户登录界面问卷治理系统问卷信息治理创立问卷、更问卷、删除问卷等操作。要呈现的问卷信息有:问卷ID〔系统内唯一,在创立问卷时由系统自动生成〕。问卷标题。问卷创立者的用户名。问卷的创立时间和有效时间〔在有效时间内问卷可以答题〕。问卷的提交量。查看问卷统计信息的链接。查看问卷地址的链接。编辑问卷内题目的链接。问卷操作按钮,包括问卷更按钮和问卷删除按钮。“://localhost/userconsole/“不同用户进入自己问卷治理页面的条件。“://localhost/userconsole/“://localhost/userconsole/{名}/updatequestionnaire。“://localhost/userconsole/“://localhost/userconsole/{名}/deletequestionnaire。UI问卷信息呈现页面除此之外还有一个添加问卷按钮使用JavaScript捕获按钮点击消息生成建立问卷对话框,用户填写问卷标题与有效时间后可以创立问卷。使用数据库,做到平滑操作,改善用户体验。添加表单的 post 地址为:“://localhost/userconsole/“://localhost/userconsole/{用户名}/addquestionnaireUI3.73.8开头开头SessionSessionURL中用户名全都T表中此用户创立delete_token0的问卷信息Fid降序的挨次排列问卷信息输出信息输出错误信息完毕3.6问卷信息呈现流程图开头开头添加按钮按下生成对话框F填写问卷标题和有效时间填写信息不为空T写入数据库完毕3.7建立问卷流程图3.8建立问卷页面题目信息治理题目、更题目、删除题目等操作。要呈现的题目信息有:题号,用于呈现问卷时的题目排序。题目内容。题型〔单项选择题、多项选择题、简答题〕。编辑题目对应选项的链接〔简答题除外〕。题目操作按钮,包括题目更按钮和题目删除按钮。此页面 URL 为:“://localhost/userconsole/“://localhost/userconsole/{用户名}/questionnaire/{问卷id}。UI题目信息呈现页面开头开头SessionSession用户名与URL中用户名全都T问卷id是此用户创立TF联立questionnaires 表与subjects表,找出subjects表中此问卷id的delete_token 为0的问卷信息以题目id降序的挨次排列问卷信息输出信息输出错误信息完毕3.10题目信息呈现流程图JavaScript成建立题目对话框,用户通过下拉框选择题号与题型,输入题目后可以创立题目,已有的题号不会消灭在下拉框中,防止生成问卷的题号重复。使用Ajax与效劳器沟通将问卷信息写入数据库,做到平滑操作,改善用户体验。添加题UI1建立题目页面开头开头添加按钮按下生成对话框F选择题号、题型,填写题目填写信息不为空T写入数据库完毕3.12建立题目流程图选项信息治理选项、更选项、删除选项等操作。要呈现的选项信息有:选项号,用于呈现题目时的选项排序。选项内容。选项操作按钮,包括选项更按钮和选项删除按钮。此页面URL为:“://localhost/userconsole/“://localhost/userconsole/{用户名}/subject/{题目id}。UI3选项信息治理页面开头开头存在Session,且SessionURL中用户名全都T题目id是此用户创立TF联立subjects表与optionsoptions表中此问卷id的delete_token为0的问卷信息id降序的挨次排列问卷信息输出信息输出错误信息完毕3.14选项信息治理流程图JavaScript成建立选项对话框,用户通过下拉框选择选项号,输入选项内容后可以创立选项,已有的选项号不会消灭在下拉框中,防止生成问卷的题号重复。使用Ajax与效劳器沟通将问卷信息写入数据库,做到平滑操作,改善用户体验。添加题UI5建立选项页面开头开头添加按钮按下生成对话框F选择选项号,填写选项填写信息不为空T写入数据库完毕3.16建立选项流程图问卷结果统计依据用户填写的问卷信息,统计选择题每一道选项的选项次数以及简答题的答案。同一道题目不同选项选择次数使用饼状图显示百分比。使用HighCharte库绘制饼状图。URL“://localhost/userconsole/“://localhost/userconsole/{用户名}/questionnaire/id}/UI7问卷统计选择题呈现页面3.18问卷统计简答题呈现页面问卷生成URL“://localhost/questionnaire/“://localhost/questionnaire/{id}UI3.19所示。3.19问卷页面问卷提交UI如图3.203.20反响信息测试消灭的错误用户权限问题,导致注册用户可以编辑其他用户创立的题目以及选项。无法通过Laravel的MVC框架联立不同的数据库表格。更数据库时,导致多个行被错误修改。解决方法Session否全都,假设全都,转入编辑页面;不全都,转到错误页面。外键与主键设置错误,修改即可。MVCfindwhere参考文献[1]麦克劳克林.PHP&MySQL[M].2023.PHPMySQLWeb[M].人民邮2023.陈惠贞,陈俊荣.PHP&MySQL程序设计实例讲座[M].2023.孔潇.PHP&MySQL[M].国防工业出版社,2023.[5]TimBoronczyk,MartinE.Psinas.PHP&MySQL[M].2023.[M].西南交通大学出版社,2023.[7]陆凯.PHP[M].人民邮电出版社,2023.[M].2023.附 录〔关键局部程序清单〕路由文件<?phpRoute::get(”/”,”Auth\AuthController@index”);//身份验证Route::group([”prefix”=>”auth”,”namespace”=>”Auth”],function{Route::post(”loginCheck”,”AuthController@loginCheck”);});

Route::get(”register”,”AuthController@register”);Route::post(”registerCheck”,”AuthController@registerCheck”);Route::post(”registerEmailCheck”,”AuthController@registerEmailCheck”);Route::post(”registerNameCheck”,”AuthController@registerNameCheck”);//问卷呈现页Route::group([”prefix”=>”questionnaire”,”namespace”=>”Questionnaire”],function{});

Route::get(”{questionnaireid}”,”QuestionnaireController@index”);Route::post(”{questionnaireid}/result”,”QuestionnaireController@result”);//用户后台Route::group([”prefix”=>”userconsole”,”namespace”=>”UserConsole”],function{//呈现用户的问卷Route::get(”{username}”,”UserConsoleController@index”);//增加问卷Route::post(”{username}/addquestionnaire”,”UserConsoleController@addquestionnaire”);//修改问卷Route::post(”{username}/updatequestionnaire”,”UserConsoleController@updatequestionnaire”);//删除问卷Route::post(”{username}/deletequestionnaire”,”UserConsoleController@deletequestionnaire”);//呈现问卷的题目Route::get(”{username}/questionnaire/{questionnaireid}”,”UserConsoleController@questionnaire”);//提交结果统计Route::get(”{username}/questionnaire/{questionnaireid}/result”,”UserConsoleController@submitresult”);Route::get(”{username}/questionnaire/{questionnaireid}/result/{subjectid}”,”UserConsoleController@answerresult”);//增加题目Route::post(”{username}/questionnaire/{questionnaireid}/addsubject”,”UserConsoleController@addsubject”);//修改题目Route::post(”{username}/questionnaire/{questionnaireid}/updatesubject”,”UserConsoleController@updatesubject”);//删除题目Route::post(”{username}/questionnaire/{questionnaireid}/deletesubject”,”UserConsoleController@deletesubject”);//呈现题目的选项Route::get(”{username}/subject/{subjectid}”,”UserConsoleController@subject”);//增加选项Route::post(”{username}/subject/{subjectid}/addoption”,”UserConsoleController@addoption”);//修改选项Route::post(”{username}/subject/{subjectid}/updateoption”,”UserConsoleController@updateoption”);//删除选项Route::post(”{username}/subject/{subjectid}/deleteoption”,”UserConsoleController@deleteoption”);});用户治理后台文件<?phpnamespaceApp\\Controllers\Auth;useApp\\Controllers\Controller;useIlluminate\Contracts\Auth\Guard;useIlluminate\Contracts\Auth\Registrar;useIlluminate\Foundation\Auth\AuthenticatesAndRegistersUsers;useApp\User;useSession;classAuthControllerextendsController{/*|--------------------------------------------------------------------------|Registration&LoginController|--------------------------------------------------------------------------||Thiscontrollerhandlestheregistrationofnewusers,aswellasthe|authenticationofexistingusers.Bydefault,thiscontrolleruses|asimpletraittoaddthesebehaviors.Whydon”tyouexploreit?|*/useAuthenticatesAndRegistersUsers;/**Createanewauthenticationcontrollerinstance.*@param\Illuminate\Contracts\Auth\Guard$auth@param\Illuminate\Contracts\Auth\Registrar$registrar@returnvoidpublicfunction construct(Guard$auth,Registrar$registrar){$this->auth=$auth;$this->registrar=$registrar;$this->middleware(”guest”,[”except”=>”getLogout”]);}*//**登陆页面呈现*@returnResponse*/publicfunctionindex{returnview(”auth.login”);}/**登录验证*@returnResponse*/publicfunctionloginCheck{//处理表单:if((!empty($_POST[”user_nicename”]))&&(!empty($_POST[”user_pass”]))){$user_nicename =htmlspecialchars(stripslashes(trim($_POST[”user_nicename”])));$user_pass =htmlspecialchars(stripslashes(trim($_POST[”user_pass”])));$user_pass=md5($user_pass);//查找与用户名对应行$user_info=User::where(”name”,$user_nicename)->first;//信息匹配if($user_info!=NULLAND$user_info->password==$user_pass){Session::put(”auth_state”,”1”);Session::put(”user_name”,“$user_nicename“);return“1“;}//信息不匹配else{return“0“;}}else{return“0“;}}/**注册界面*@returnResponse*/publicfunctionregister{returnview(”auth.register”);}/**注册验证*@returnResponse*/publicfunctionregisterCheck{//处理表单:if((!empty($_POST[”user_nicename”]))&&(!empty($_POST[”user_pass”]))&&(!empty($_POST[”user_email”]))){$user_nicename =htmlspecialchars(stripslashes(trim($_POST[”user_nicename”])));$user_pass =htmlspecialchars(stripslashes(trim($_POST[”user_pass”])));$user_pass=md5($user_pass);$user_email =htmlspecialchars(stripslashes(trim($_POST[”user_email”])));$created_at=$updated_at=date(”Y-m-dH:i:s”);$userurl_id=User::insertGetId(array(”name” =>$user_nicename,”email” =>$user_email,”password” =>$user_pass,”created_at”=>$created_at,”updated_at”=>$updated_at));}}/**

Session::put(”auth_state”,”1”);Session::put(”user_name”,“$user_nicename“);注册验证--邮箱*@returnResponse*/publicfunctionregisterEmailCheck{//处理表单:if(!empty($_POST[”user_email”])){//查找与用户名对应行$user_info=User::where(”email”,$_POST[”user_email”])->first;//邮箱信息存在if($user_info!=NULL){}}/**

}else{}

return“1“;return“0“;注册验证--用户名*@returnResponse*/publicfunctionregisterNameCheck{//处理表单:if(!empty($_POST[”user_name”])){//查找与用户名对应行$user_info=User::where(”name”,$_POST[”user_name”])->first;//用户信息存在if($user_info!=NULL){}else{}}}}

return“1“;return“0“;问卷后台治理文件<?phpnamespaceApp\\Controllers\UserConsole;useApp\\Requests;useApp\\Controllers\Controller;useApp\User;useApp\Questionnaire;useApp\Subject;useApp\Option;useApp\Short_answer;useSession;useIlluminate\\Request;classUserConsoleControllerextendsController{/**用户把握台*@returnResponse*/publicfunctionindex($userName){//登陆用户正确,显示用户把握台if(Session::has(”auth_state”)&&Session::get(”user_name”)==$userName){//此用户所创立的全部问卷表$user=User::where(”name”,$userName)->first;$QuestionnairesList =$user->hasManyQuestionnaire->where(”delete_token”,”0”)->orderBy(”id”,”desc”)->get;returnview(”userconsole.index”)->with(”QuestionnairesList”,$QuestionnairesList);}//显示错误信息else{returnview(”errors.authority”);}}/*添加问卷*@returnResponse*/publicfunctionaddquestionnaire($userName){//登陆用户正确,显示用户把握台if(Session::has(”auth_state”)&&Session::get(”user_name”)==$userName){//处理添加选项的表单if ( (!empty($_POST[”NewQuestionnaireTitle”])) &&(!empty($_POST[”NewQuestionnaireTime”]))){$NewQuestionnaireTitle=$_POST[”NewQuestionnaireTitle”];$NewQuestionnaireTime=$_POST[”NewQuestionnaireTime”];卷创立者卷标题效时间除标记间时间

//插入一行记录$created_at=$updated_at=date(”Y-m-dH:i:s”);$questionnaire=Questionnaire::insertGetId(array(”user_name” =>$userName, //问”title” =>$NewQuestionnaireTitle,//问”active_time” =>$NewQuestionnaireTime, //有”delete_token”=>0, //删”created_at”=>$created_at, //创建时”updated_at” =>$updated_at) //更}else{}}

);return“success“;return“inputnull“;//显示错误信息returnview(”errors.authority”);}/*修改问卷*@returnResponse*/publicfunctionupdatequestionnaire($userName){//登陆用户正确,显示用户把握台if(Session::has(”auth_state”)&&Session::get(”user_name”)==$userName){//处理添加选项的表单if((!empty($_POST[”UpdateQuestionnaireTitle”]))&&(!empty($_POST[”UpdateQuestionnaireTime”])) &&(!empty($_POST[”QuestionnaireId”]))){$UpdateQuestionnaireTitle=$_POST[”UpdateQuestionnaireTitle”];$UpdateQuestionnaireTime=$_POST[”UpdateQuestionnaireTime”];$QuestionnaireId =$_POST[”QuestionnaireId”];//更一行记录$created_at=$updated_at=date(”Y-m-dH:i:s”);$questionnaire = Questionnaire::where(”id”,$QuestionnaireId)->update(array(”title” =>$UpdateQuestionnaireTitle,//问卷标题效时间);

”active_time”=>$UpdateQuestionnaireTime)//有}else{}}

return“success“;return“inputnull“;//显示错误信息returnview(”errors.authority”);}/*删除问卷*@returnResponse*/publicfunctiondeletequestionnaire($userName){//登陆用户正确,显示用户把握台if(Session::has(”auth_state”)&&Session::get(”user_name”)==$userName){//处理添加选项的表单if(!empty($_POST[”QuestionnaireId”])){$QuestionnaireId=$_POST[”QuestionnaireId”];//更一行记录$created_at=$updated_at=date(”Y-m-dH:i:s”);$questionnaire = Questionnaire::where(”id”,$QuestionnaireId)->update(array(”delete_token”=>1 //删除标记));}else{}}

return“success“;return“inputnull“;//显示错误信息returnview(”errors.authority”);}////////////////////////////////////////////////////////////////////////////////////////////////////////////////**问卷编辑*@returnResponse*/publicfunctionquestionnaire($userName,$questionnaireId){//登陆用户正确,显示用户把握台if(Session::has(”auth_state”)&&Session::get(”user_name”)==$userName){//此问卷表所包含的全部题目$Questionnaire = Questionnaire::where(”id”,$questionnaireId)->first;//此问卷表创立者与登录用户全都if($Questionnaire->user_name==$userName){$SubjectsList =$Questionnaire->hasManySubject->where(”delete_token”,”0”)->orderBy(”number”)->get;$AllNumber=array;for($i=1;$i<100;$i++){array_push($AllNumber,$i);}$SubjectNumbers=array;foreach($SubjectsListas$Subject){array_push($SubjectNumbers,$Subject->number);}$otherSubjectNumber=array_diff($AllNumber,$SubjectNumbers);return view(”userconsole.questionnaire”)->with(“SubjectsList“,$SubjectsList) //题目列表->with(“QuestionnaireId“, $questionnaireId) //ID->with(“QuestionnaireTitle“,$Questionnaire->title) //问卷标题->with(“SubjectNumbers“,$otherSubjectNumber); //可用选项}}//显示错误信息returnview(”errors.authority”);}/*给指定问卷添加题目*@returnResponse*/publicfunctionaddsubject($userName,$questionnaireId){//登陆用户正确,显示用户把握台if(Session::has(”auth_state”)&&Session::get(”user_name”)==$userName){//此问卷表所包含的全部题目$Questionnaire = Questionnaire::where(”id”,$questionnaireId)->first;//此题目创立者与登录用户全都if($Questionnaire->user_name==$userName){//处理添加选项的表单if ( (!empty($_POST[”NewSubjectNumber”])) &&(!empty($_POST[”NewSubjectType”]))&&(!empty($_POST[”NewSubjectTitle”]))){$NewSubjectNumber=$_POST[”NewSubjectNumber”];$NewSubjectType =$_POST[”NewSubjectType”];$NewSubjectTitle=$_POST[”NewSubjectTitle”];id问卷创立者号目

//插入一行记录$created_at=$updated_at=date(”Y-m-dH:i:s”);$subject_id=Subject::insertGetId(array(”questionnaire_id”=>$questionnaireId,//问”user_name”=>$userName, //”number”=>$NewSubjectNumber,//题”title” =>$NewSubjectTitle,//题”type” =>$NewSubjectType, //题目类型(单项选择,多项选择,简答)删除标记建时间时间);

”delete_token”=>0, //”created_at”=>$created_at,//创”updated_at”=>$updated_at)//更}else{}}}

return“success“;return“inputnull“;//显示错误信息returnview(”errors.authority”);}/*修改指定题目的值*@returnResponse*/publicfunctionupdatesubject($userName,$questionnaireId){//登陆用户正确,显示用户把握台if(Session::has(”auth_state”)&&Session::get(”user_name”)==$userName){//此问卷表所包含的全部题目$Questionnaire = Questionnaire::where(”id”,$questionnaireId)->first;//此问卷表创立者与登录用户全都if($Questionnaire->user_name==$userName){//处理添加题目的表单if ( (!empty($_POST[”UpdateSubjectNumber”])) &&(!empty($_POST[”UpdateSubjectTitle”]))&&(!empty($_POST[”SubjectId”]))){$SubjectId =$_POST[”SubjectId”];$UpdateSubjectNumber=$_POST[”UpdateSubjectNumber”];$UpdateSubjectTitle=$_POST[”UpdateSubjectTitle”];//更一行记录$subject_id=Subject::where(”id”,$SubjectId)->update(array(”number”=>$UpdateSubjectNumber,//题号”title”=>$UpdateSubjectTitle //题目));}else{}}}

return“success“;return“inputnull“;//显示错误信息returnview(”errors.authority”);}/*删除指定题目的值*@returnResponse*/publicfunctiondeletesubject($userName,$subjectId){//登陆用户正确,显示用户把握台if(Session::has(”auth_state”)&&Session::get(”user_name”)==$userName){//此问卷表所包含的全部题目$Questionnaire=Questionnaire::where(”id”,$subjectId)->first;//此问卷表创立者与登录用户全都if($Questionnaire->user_name==$userName){//处理删除题目的表单if((!empty($_POST[”SubjectId”]))){$SubjectId=$_POST[”SubjectId”];//1$subject_id=Subject::where(”id”,$SubjectId)->update(array(”delete_token”=>1 //删除标记));}else{}}}

return“success“;return“inputnull“;//显示错误信息returnview(”errors.authority”);}/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////**题目编辑*@returnResponse*/publicfunctionsubject($userName,$subjectId){//登陆用户正确,显示用户把握台if(Session::has(”auth_state”)&&Session::get(”user_name”)==$userName){//此题目所包含的全部选项$Subject=Subject::where(”id”,$subjectId)->first;//此题目创立者与登录用户全都if($Subject->user_name==$userName){$OptionsList=$Subject->hasManyOption->where(”delete_token”,”0”)->orderBy(”number”)->get;$Alphabet =array(“A“,“B“,“C“,“D“,“E“,“F“,“G“,“H“,“I“,“J“,“K“,“L“,“M“,“N“,“O“,“P“,“Q“,“R“,“S“,“T“,“U“,“V“,“W“,“X“,“Y“,“Z“);$OptionNumber=array;foreach($OptionsListas$Option){array_push($OptionNumber,$Option->number);}$otherOptionNumber=array_diff($Alphabet,$OptionNumber);return view(”userconsole.subject”)->with(“OptionsList“,$OptionsList) //选项列表->with(“QuestionnaireId“,$Subject->questionnaire_id)//问卷ID->with(“SubjectId“,$subjectId) //ID$Subject->type) //题目类型$Subject->title) //题目内容

->with(“SubjectIdType“,->with(“SubjectIdTitle“,->with(“SubjectIdNumber“,$Subject->number) //题号->with(“OptionsCount“,$Subject->option_count) //某选项已选次数$otherOptionNumber); //可用选项}

->with(“OptionNumbers“,}//显示错误信息returnview(”errors.authority”);}/*给指定题目添加选项*@returnResponse*/publicfunctionaddoption($userName,$subjectId){//登陆用户正确,显示用户把握台if(Session::has(”auth_state”)&&Session::get(”user_name”)==$userName){//此题目所包含的全部选项$Subject=Subject::where(”id”,$subjectId)->first;//此题目创立者与登录用户全都if($Subject->user_name==$userName){//处理添加选项的表单if ( (!empty($_POST[”NewOptionNumber”])) &&(!empty($_POST[”NewOptionValue”]))){$NewOptionNumber=$_POST[”NewOptionNumber”];$NewOptionValue=$_POST[”NewOptionValue”];卷创立者C、D...)项内容择数目

//插入一行记录$created_at=$updated_at=date(”Y-m-dH:i:s”);$option_id=Option::insertGetId(array(”subject_id”=>$subjectId, //题目id”user_name” =>$userName, //问”number” =>$NewOptionNumber,//选项号(AB、”title” =>$NewOptionValue, //选”select_count”=>0, //选除标记间间

”delete_token”=>0, //删”created_at”=>$created_at, //创建时”updated_at”=>$updated_at) //更时);}else{}}}

return“success“;return“inputnull“;//显示错误信息returnview(”errors.authority”);}/*修改指定工程的值*@returnResponse*/publicfunctionupdateoption($userName,$subjectId){//登陆用户正确,显示用户把握台if(Session::has(”auth_state”)&&Session::get(”user_name”)==$userName){//此题目所包含的全部选项$Subject=Subject::where(”id”,$subjectId)->first;//此题目创立者与登录用户全都if($Subject->user_name==$userName){//处理添加选项的表单if ( (!empty($_POST[”OptionId”])) &&(!empty($_POST[”UpdateOptionValue”]))){$OptionId =$_POST[”OptionId”];$UpdateOptionValue=$_POST[”UpdateOptionValue”];//更一行记录$option_id=Option::where(”id”,$OptionId)->update(项内容

array());

”title”=>$UpdateOptionValue //选}else{}}}

return“success“;return“inputnull“;//显示错误信息returnview(”errors.authority”);}/*删除指定工程的值*@returnResponse*/publicfunctiondeleteoption($userName,$subjectId){//登陆用户正确,显示用户把握台if(Session::has(”auth_state”)&&Session::get(”user_name”)==$userName){//此题目所包含的全部选项$Subject=Subject::where(”id”,$subjectId)->first;//此题目创立者与登录用户全都if($Subject->user_name==$userName){//处理删除选项的表单if((!empty($_POST[”OptionId”]))){$OptionId=$_POST[”OptionId”];//1$option_id=Option::where(”id”,$OptionId)->update(array(”delete_token”=>1 //删除标记));}else{}}}

return“success“;return“inputnull“;//显示错误信息returnview(”errors.authority”);}//////////////////////////////////////////////////////////////////////////////////////////////////////////////*提交结果统计---选择*@returnResponse*/publicfunctionsubmitresult($userName,$questionnaireId){//登陆用户正确,显示用户把握台if(Session::has(”auth_state”)&&Session::get(”user_name”)==$userName){//此问卷表所包含的全部题目$Questionnaire = Questionnaire::where(”id”,$questionnaireId)->first;$QuestionnaireCount=$Questionnaire->counts; //问卷提交量$SubjectArray=array; //存储题目信息的数组//此问卷表创立者与登录用户全都if($Questionnaire->user_name==$userName){$SubjectsList =$Questionnaire->hasManySubject->where(”delete_token”,”0”)->orderBy(”number”)->get;$SubjectsArray=array;foreach($SubjectsListas$OneSubject){//id

$Subject=array;$Subject[“id“] =$OneSubject->id;$Subject[“questionnaire_id“]=$OneSubject->questionnaire_id;//id$Subject[“user_name“]=$OneSubject->user_name;//问卷创立者$Subject[“number“]=$OneSubject->number;//题号$Subject[“title“]=$OneSubject->title;//题目$Subject[“type“]=$OneSubject->type;//题目类型(单项选择,多项选择,简答)$Subject[“option_count“]=$OneSubject->option_count;//选项数目$Subject[“delete_token“]=$OneSubject->delete_token;//删除标记$Subject[“options“]=array(““);//题目的选项//此题对应的选项$OptionArray=array;if($OneSubject->type!=“简答题“){$Subject[“options“] =$OneSubject->hasManyOption->where(”delete_token”,”0”)->orderBy(”number”)->get;}array_push($SubjectsArray,$Subject);}returnview(”userconsole.result”)->with(”Questionnaires”,$Questionnaire) //问卷根本信息->with(”Subjects”,$SubjectsArray); //题目信息}}//显示错误信息returnview(”errors.authority”);}/*提交结果统计---简答*@returnResponse*/publicfunctionanswerresult($userName,$questionnaireId,$subjectid){//登陆用户正确,显示用户把握台if(Session::has(”auth_state”)&&Session::get(”user_name”)==$userName){//此问卷表所包含的全部题目$Questionnaire = Questionnaire::where(”id”,$questionnaireId)->first;$Subject=Subject::where(”id”,$subjectid)->first;题“)

//此问卷表创立者与登录用户全都if($Questionnaire->user_name==$userName&&$Subject->type{$ShortAnswerList = Short_answer::where(”subject_id”,$subjectid)->where(”delete_token”,”0”)->orderBy(”created_at”)->get;returnview(”userconsole.answerresult”)->with(“Questionnaire“,$Questionnaire)//问卷信息->with(“Subject“,$Subject) //题目信息->with(“ShortAnswerList“,$ShortAnswerList);//答案信息}}//显示错误信息returnview(”errors.authority”);}}问卷生成文件<?phpnamespaceApp\\Controllers\Questionnaire;useApp\\Requests;useApp\\Controllers\Controller;useIlluminate\\Request;useApp\Questionnaire;useApp\Subject;useApp\Option;useApp\Short_answer;classQuestionnaireControllerextendsController{/**依据问卷id*@returnResponse*/publicfunctionindex($questionnaireId){//问卷根本信息$Questionnaire=Questionnaire::where(”id”,$questionnaireId)->first;$SubjectsArray=array;//推断问卷是否包含题目if( 0 != $SubjectsIsNull = Subject::where(”questionnaire_id”,$questionnaireId)->count){//题目列表,以题号排序$SubjectsList =$Questionnaire->hasManySubject->where(”delete_token”,”0”)->orderBy(”number”)->get;//打包题目与选项foreach($SubjectsListas$OneSubject){//题目id//问卷id

$Subject=array;$Subject[“id“] =$OneSubject->id;$Subject[“questionnaire_id“]=$OneSubject->questionnaire_id;$Subject[“user_name“]=$OneSubject->user_name;//问卷创立者$Subject[“number“]=$OneSubject->number;//题号$Subject[“title“]=$OneSubject->title;//题目$Subject[“type“]=$OneSubject->type;//题目类型(单项选择,多项选择,简答)$Subject[“option_count“]=$OneSubject->option_count;//选项数目$Subject[“delete_token“]=$OneSubject->delete_token;//删除标记$Subject[“options“]=array(““);//题目的选项//此题对应的选项$OptionArray=array;if($OneSubject->type!=“简答题“){$Subject[“options“] =$OneSubject->hasManyOption->where(”delete_token”,”0”)->orderBy(”number”)->get;}array_push($SubjectsArray,$Subject);}}returnview(”questionnaire.index”)->with(”Questionnaires”,$Questionnaire)//问卷根本信息->with(”Subjects”,$SubjectsArray); //题目信息}/**问卷提交及投票结果呈现*@returnResponse*/publicfunctionresult($questionnaireId){//处理添加选项的表单if(!empty($_POST[”OptionIdArray”])){$questionnaire_id = Questionnaire::where(”id”,$questionnaireId)->increment(”counts”);$OptionIdArray =$_POST[”OptionIdArray”]; //id〔选项号〕//选项对应选择数+1foreach($OptionIdArrayas$OptionId){//更一行记录$option_id = Option::where(”id”,$OptionId)->increment(”select_count”);}}$AnswerTextArray=$_POST[”AnswerTextArray”]; //简答题答案数组〔“题号,答案“〕foreach($AnswerTextArrayas$AnswerText){if(trim($AnswerText[1])!=““) //提交的答案非空{//插入一行记录$created_at=$updated_at=date(”Y-m-dH:i:s”);$short_answerId=Short_answer::insertGetId(array(”subject_id”=>$AnswerText[0], //题目id”anwaser” =>$AnswerText[1], //答复”delete_token”=>0, //删除标记”created_at”=>$created_at, //创立时间”updated_at” =>$updated_at) //间);}}//此问卷表所包含的全部题目$Questionnaire=Questionnaire::where(”id”,$questionnaireId)->first;$QuestionnaireCount=$Questionnaire->counts; //问卷提交量$SubjectArray=array; //存储题目信息的数组$SubjectsList=$Questionnaire->hasManySubject->where(”delete_token”,”0”)->orderBy(”number”)->get;$SubjectsArray=array;foreach($SubjectsListas$OneSubject){idid

$Subject=array;$Subject[“id“] =$OneSubject->id; //$Subject[“questionnaire_id“]=$OneSubject->questionnaire_id; //$Subject[“user_name“] =$OneSubject->user_name; //问卷创立者$Subject[“number“] =$OneSu

温馨提示

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

评论

0/150

提交评论