




已阅读5页,还剩94页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳航空航天大学 课课 程程 设设 计计 报报 告告 课程设计名称:软件综合课程设计软件综合课程设计 课程设计题目:基于基于 webweb 的在线问卷调查的在线问卷调查 系统的设计与实现系统的设计与实现 院(系):计算机学院 专 业:计算机科学与技术 班 级: 学 号:2 姓 名: 指导教师: 说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依 据;格式不符合要求;数据不实据;格式不符合要求;数据不实,不予通过。报告和电子数据必须作为实验现象重复不予通过。报告和电子数据必须作为实验现象重复 的关键依据。的关键依据。 沈阳航空航天大学课程设计报告 学术诚信声明 本人声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导 师指导下独立进行设计工作及取得的研究结果。尽我所知,除了文中 特别 或撰写过的研究结果,也不包含其它教育机构使用过的材料。与 我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的 说明并表示了谢意。报告资料及实验数据若有不实之处,本人愿意接 受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一 切后果。 本人签名: 日期: 年 月 日 沈阳航空航天大学课程设计报告 I 沈阳航空航天大学沈阳航空航天大学 课课程程设设计计任任务务书书 课程设计名称软软件件综综合合课课程程设设计计专业计计算算机机科科学学与与技技术术 学生姓名班级学号 题目名称基于 web 的在线问卷调查系统的设计与实现 起止日期2016年 12月 19日起至2017年1月 13日止 课设内容和要求: 在校园、企事业单位里,由于各种调查研究的需要,经常会有各种各样的调查问卷, 在传统模式下,人们不但要花费不少的费用印刷问卷,而且还要消耗大量时间和精 力对调查问卷进行发放和回收,对调查问卷进行统计,并且人工操作调查问卷随意 性较大,容易产生遗漏等问题。本系统建立在信息技术基础上,构建一个在线的问 卷设计、分发、调查、回收、统计的系统,基本解决传统问卷的上述老大难问题。 1. 实现用户管理系统,注册用户可以发布、编辑问卷;非注册用户只可以填写问卷。 2. 实现问卷发布管理系统,可以对问卷进行增加,修改,删除,查询等操作。 3. 实现数据可视化,对问卷统计结果通过图表进行展示。 4. 界面美观,用户交互、体验良好。 参考资料: 麦克劳克林. PHP Route:get(register, AuthControllerregister); Route:post(registerCheck, AuthControllerregisterCheck); Route:post(registerEmailCheck, AuthControllerregisterEmailCheck); Route:post(registerNameCheck, AuthControllerregisterNameCheck); ); /问卷展示页 Route:group(prefix = questionnaire, namespace = Questionnaire, function() Route:get(questionnaireid, QuestionnaireControllerindex); Route:post(questionnaireid/result, QuestionnaireControllerresult); ); /用户后台 Route:group(prefix = userconsole, namespace = UserConsole, function() /展示用户的问卷 Route:get(username, UserConsoleControllerindex); /增加问卷 Route:post(username/addquestionnaire, UserConsoleControlleraddquestionnaire); /修改问卷 Route:post(username/updatequestionnaire, UserConsoleControllerupdatequestionnaire); /删除问卷 Route:post(username/deletequestionnaire, UserConsoleControllerdeletequestionnaire); /展示问卷的题目 Route:get(username/questionnaire/questionnaireid, UserConsoleControllerquestionnaire); /提交结果统计 Route:get(username/questionnaire/questionnaireid/result, UserConsoleControllersubmitresult); Route:get(username/questionnaire/questionnaireid/result/subjectid, 沈阳航空航天大学课程设计报告 22 UserConsoleControlleranswerresult); /增加题目 Route:post(username/questionnaire/questionnaireid/addsubject, UserConsoleControlleraddsubject); /修改题目 Route:post(username/questionnaire/questionnaireid/updatesubject, UserConsoleControllerupdatesubject); /删除题目 Route:post(username/questionnaire/questionnaireid/deletesubject, UserConsoleControllerdeletesubject); /展示题目的选项 Route:get(username/subject/subjectid, UserConsoleControllersubject); /增加选项 Route:post(username/subject/subjectid/addoption, UserConsoleControlleraddoption); /修改选项 Route:post(username/subject/subjectid/updateoption, UserConsoleControllerupdateoption); /删除选项 Route:post(username/subject/subjectid/deleteoption, UserConsoleControllerdeleteoption); ); 2. 用户管理后台文件用户管理后台文件 auth = $auth; $this-registrar = $registrar; $this-middleware(guest, except = getLogout); */ /* * 登陆页面展示 * * return Response */ public function index() return view(auth.login); /* * 登录验证 * * return Response */ public function loginCheck() / 处理表单: if ( (!empty($_POSTuser_nicename) $user_pass = htmlspecialchars(stripslashes(trim($_POSTuser_pass); $user_pass = md5($user_pass); 沈阳航空航天大学课程设计报告 24 /查找与用户名对应行 $user_info = User:where(name, $user_nicename)-first(); /信息匹配 if($user_info != NULL AND $user_info-password = $user_pass) Session:put(auth_state, 1); Session:put(user_name, $user_nicename); return 1; /信息不匹配 else return 0; else return 0; /* * 注册界面 * * return Response */ public function register() return view(auth.register); /* * 注册验证 * * return Response */ public function registerCheck() / 处理表单: if ( (!empty($_POSTuser_nicename) $user_pass = htmlspecialchars(stripslashes(trim($_POSTuser_pass); $user_pass = md5($user_pass); $user_email = htmlspecialchars(stripslashes(trim($_POSTuser_email); $created_at = $updated_at = date(Y-m-d H: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); /* * 注册验证-邮箱 * * return Response */ public function registerEmailCheck() / 处理表单: if ( !empty($_POSTuser_email) ) /查找与用户名对应行 $user_info = User:where(email, $_POSTuser_email)-first(); /邮箱信息存在 if($user_info != NULL) return 1; else return 0; 沈阳航空航天大学课程设计报告 26 /* * 注册验证-用户名 * * return Response */ public function registerNameCheck() / 处理表单: if ( !empty($_POSTuser_name) ) /查找与用户名对应行 $user_info = User:where(name, $_POSTuser_name)-first(); /用户信息存在 if($user_info != NULL) return 1; else return 0; 3. 问卷后台管理文件问卷后台管理文件 first(); $QuestionnairesList = $user-hasManyQuestionnaire()-where(delete_token, 0)- orderBy(id,desc)-get(); return view(userconsole.index)-with(QuestionnairesList,$QuestionnairesList); /显示错误信息 else return view(errors.authority); /* 添加问卷 * * return Response */ public function addquestionnaire($userName) /登陆用户正确,显示用户控制台 if(Session:has(auth_state) $NewQuestionnaireTime = $_POSTNewQuestionnaireTime; /插入一行记录 $created_at = $updated_at = date(Y-m-d H:i:s); 沈阳航空航天大学课程设计报告 28 $questionnaire = Questionnaire:insertGetId( array( user_name = $userName,/问卷创建 者 title = $NewQuestionnaireTitle, /问卷标题 active_time= $NewQuestionnaireTime, /有效时间 delete_token = 0,/删除标记 created_at= $created_at,/创建时间 updated_at = $updated_at)/更新时间 ); return success; else return inputnull; /显示错误信息 return view(errors.authority); /* 修改问卷 * * return Response */ public function updatequestionnaire($userName) /登陆用户正确,显示用户控制台 if(Session:has(auth_state) $UpdateQuestionnaireTime = $_POSTUpdateQuestionnaireTime; $QuestionnaireId = $_POSTQuestionnaireId; /更新一行记录 $created_at = $updated_at = date(Y-m-d H:i:s); $questionnaire = Questionnaire:where(id, $QuestionnaireId)-update( array( title = $UpdateQuestionnaireTitle, /问卷标题 active_time = $UpdateQuestionnaireTime)/有效时间 ); 沈阳航空航天大学课程设计报告 29 return success; else return inputnull; /显示错误信息 return view(errors.authority); /* 删除问卷 * * return Response */ public function deletequestionnaire($userName) /登陆用户正确,显示用户控制台 if(Session:has(auth_state) /更新一行记录 $created_at = $updated_at = date(Y-m-d H:i:s); $questionnaire = Questionnaire:where(id, $QuestionnaireId)-update( array( delete_token = 1/删除标记 ) ); return success; else return inputnull; /显示错误信息 return view(errors.authority); 沈阳航空航天大学课程设计报告 30 / /* * 问卷编辑 * * return Response */ public function questionnaire($userName, $questionnaireId) /登陆用户正确,显示用户控制台 if(Session:has(auth_state) /此问卷表创建者与登录用户一致 if($Questionnaire-user_name = $userName) $SubjectsList = $Questionnaire-hasManySubject()-where(delete_token, 0)- orderBy(number)-get(); $AllNumber = array(); for($i=1; $inumber); $otherSubjectNumber = array_diff($AllNumber,$SubjectNumbers); return view(userconsole.questionnaire)-with(SubjectsList, $SubjectsList)/题目列表 -with(QuestionnaireId, $questionnaireId)/问卷 ID - with(QuestionnaireTitle,$Questionnaire-title)/问卷标题 -with(SubjectNumbers, $otherSubjectNumber);/可用选项 /显示错误信息 沈阳航空航天大学课程设计报告 31 return view(errors.authority); /* 给指定问卷添加新题目 * * return Response */ public function addsubject($userName, $questionnaireId) /登陆用户正确,显示用户控制台 if(Session:has(auth_state) /此题目创建者与登录用户一致 if($Questionnaire-user_name = $userName) /处理添加新选项的表单 if ( (!empty($_POSTNewSubjectNumber) $NewSubjectType = $_POSTNewSubjectType; $NewSubjectTitle = $_POSTNewSubjectTitle; /插入一行记录 $created_at = $updated_at = date(Y-m-d H:i:s); $subject_id = Subject:insertGetId( array( questionnaire_id= $questionnaireId,/问卷 id user_name = $userName,/ 问卷创建者 number = $NewSubjectNumber,/题号 title = $NewSubjectTitle,/题目 type = $NewSubjectType,/ 题目类型(单选,多选,简答) delete_token = 0,/删除 标记 created_at = $created_at,/创建 时间 updated_at = $updated_at)/更新 时间 沈阳航空航天大学课程设计报告 32 ); return success; else return inputnull; /显示错误信息 return view(errors.authority); /* 修改指定题目的值 * * return Response */ public function updatesubject($userName, $questionnaireId) /登陆用户正确,显示用户控制台 if(Session:has(auth_state) /此问卷表创建者与登录用户一致 if($Questionnaire-user_name = $userName) /处理添加新题目的表单 if ( (!empty($_POSTUpdateSubjectNumber) $UpdateSubjectNumber = $_POSTUpdateSubjectNumber; $UpdateSubjectTitle = $_POSTUpdateSubjectTitle; /更新一行记录 $subject_id = Subject:where(id, $SubjectId)-update( array( number= $UpdateSubjectNumber,/题号 title= $UpdateSubjectTitle/题目 ) ); 沈阳航空航天大学课程设计报告 33 return success; else return inputnull; /显示错误信息 return view(errors.authority); /* 删除指定题目的值 * * return Response */ public function deletesubject($userName, $subjectId) /登陆用户正确,显示用户控制台 if(Session:has(auth_state) /此问卷表创建者与登录用户一致 if($Questionnaire-user_name = $userName) /处理删除题目的表单 if ( (!empty($_POSTSubjectId) ) $SubjectId = $_POSTSubjectId; /更新一行记录,将删除标记置 1 $subject_id = Subject:where(id, $SubjectId)-update( array( delete_token = 1/删除标记 ) ); return success; else return inputnull; 沈阳航空航天大学课程设计报告 34 /显示错误信息 return view(errors.authority); / /* * 题目编辑 * * return Response */ public function subject($userName, $subjectId) /登陆用户正确,显示用户控制台 if(Session:has(auth_state) /此题目创建者与登录用户一致 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($OptionsList as $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) 沈阳航空航天大学课程设计报告 35 /题目 ID -with(SubjectIdType, $Subject- type)/题目类型 -with(SubjectIdTitle, $Subject- title)/题目内容 -with(SubjectIdNumber,$Subject- number)/题号 -with(OptionsCount, $Subject- option_count)/某选项已选次数 -with(OptionNumbers, $otherOptionNumber);/可用选项 /显示错误信息 return view(errors.authority); /* 给指定题目添加新选项 * * return Response */ public function addoption($userName, $subjectId) /登陆用户正确,显示用户控制台 if(Session:has(auth_state) /此题目创建者与登录用户一致 if($Subject-user_name = $userName) /处理添加新选项的表单 if ( (!empty($_POSTNewOptionNumber) $NewOptionValue = $_POSTNewOptionValue; /插入一行记录 $created_at = $updated_at = date(Y-m-d H:i:s); $option_id = Option:insertGetId( array( subject_id = $subjectId,/题目 id 沈阳航空航天大学课程设计报告 36 user_name= $userName,/问卷 创建者 number= $NewOptionNumber,/选项号 (A、B、C、D.) title = $NewOptionValue,/选项内容 select_count = 0,/选择数目 delete_token = 0,/删除标记 created_at= $created_at,/创建时间 updated_at= $updated_at)/更新时间 ); return success; else return inputnull; /显示错误信息 return view(errors.authority); /* 修改指定项目的值 * * return Response */ public function updateoption($userName, $subjectId) /登陆用户正确,显示用户控制台 if(Session:has(auth_state) /此题目创建者与登录用户一致 if($Subject-user_name = $userName) /处理添加新选项的表单 if ( (!empty($_POSTOptionId) $UpdateOptionValue = $_POSTUpdateOptionValue; 沈阳航空航天大学课程设计报告 37 /更新一行记录 $option_id = Option:where(id, $OptionId)-update( array( title= $UpdateOptionValue/选项内容 ) ); return success; else return inputnull; /显示错误信息 return view(errors.authority); /* 删除指定项目的值 * * return Response */ public function deleteoption($userName, $subjectId) /登陆用户正确,显示用户控制台 if(Session:has(auth_state) /此题目创建者与登录用户一致 if($Subject-user_name = $userName) /处理删除选项的表单 if ( (!empty($_POSTOptionId) ) $OptionId = $_POSTOptionId; /更新一行记录,将删除标记置 1 $option_id = Option:where(id, $OptionId)-update( array( delete_token = 1/删除标记 ) 沈阳航空航天大学课程设计报告 38 ); return success; else return inputnull; /显示错误信息 return view(errors.authority); / /* 提交结果统计-选择 * * return Response */ public function submitresult($userName, $questionnaireId) /登陆用户正确,显示用户控制台 if(Session:has(auth_state) $QuestionnaireCount = $Questionnaire-counts;/问卷提交量 $SubjectArray = array();/存储题目信息的数组 /此问卷表创建者与登录用户一致 if($Questionnaire-user_name = $userName) $SubjectsList = $Questionnaire-hasManySubject()-where(delete_token, 0)- orderBy(number)-get(); $SubjectsArray = array(); foreach($SubjectsList as $OneSubject) $Subject = array(); $Subjectid = $OneSubject-id; /题目 id $Subjectquestionnaire_id = $OneSubject-questionnaire_id; /问卷 id $Subjectuser_name = $OneSubject-user_name; /问卷创建者 沈阳航空航天大学课程设计报告 39 $Subjectnumber = $OneSubject-number; /题号 $Subjecttitle = $OneSubject-title;/ 题目 $Subjecttype = $OneSubject-type;/ 题目类型(单选,多选,简答) $Subjectoption_count = $OneSubject-option_count;/ 选项数目 $Subjectdelete_token = $OneSubject-delete_token;/ 删除标记 $Subjectoptions = array();/ 题目的选项 /本题对应的选项 $OptionArray = array(); if( $OneSubject-type != 简答题) $Subjectoptions = $OneSubject-hasManyOption()- where(delete_token, 0)-orderBy(number)-get(); array_push($SubjectsArray, $Subject); return view(userconsole.result)-with(Questionnaires,$Questionnaire) /问卷基本信息 -with(Subjects, $SubjectsArray);/题目信息 /显示错误信息 return view(errors.authority); /* 提交结果统计-简答 * * return Response */ public function answerresult($userName, $questionnaireId, $subjectid) /登陆用户正确,显示用户控制台 if(Session:has(auth_state) $Subject = Subject:where(id, $subjectid)-first(); /此问卷表创建者与登录用户一致 if($Questionnaire-user_name = $userName return view(userconsole.answerresult)-with(Questionnaire, $Questionnaire)/问卷信息 -with(Subject, $Subject)/题目信息 - with(ShortAnswerList,$ShortAnswerList);/答案信息 /显示错误信息 return view(errors.authority); 4. 问卷生成文件问卷生成文件 first(); $SubjectsArray = array(); / 判断问卷是否包含题目 if( 0 != $SubjectsIsNull = Subject:where(questionnaire_id, $questionnaireId)-count() /题目列表,以题号排序 $SubjectsList = $Questionnaire-hasManySubject()-where(delete_token, 0)- orderBy(number)-get(); /打包题目与选项 foreach($SubjectsList as $OneSubject) $Subject = array(); $Subjectid = $OneSubject-id;/ 题目 id $Subjectquestionnaire_id = $OneSubject-questionnaire_id; /问卷 id $Subjectuser_name = $OneSubject-user_name;/ 问卷创建者 $Subjectnumber = $OneSubject-number;/ 题号 $Subjecttitle = $OneSubject-title;/题目 $Subjecttype = $OneSubject-type;/题目 类型(单选,多选,简答) $Subjectoption_count = $OneSubject-option_count;/选项 数目 $Subjectdelete_token = $OneSubject-delete_token;/删除 标记 $Subjectoptions = array();/题目 的选项 /本题对应的选项 $OptionArray = array(); if( $OneSubject-type != 简答题) $Subjectoptions = $OneSubject-hasManyOption()- where(delete_token, 0)-orderBy(number)-get(); array_push($SubjectsArray, $Subject); return view(questionnaire.index)-with(Questionnaires,$Questionnaire)/问卷 沈阳航空航天大学课程设计报告 42 基本信息 -with(Subjects, $SubjectsArray); /题目信息 /* * 问卷提交及投票结果展示 * * return Response */ public function result($questionnaireId) /处理添加新选项的表单 if ( !empty($_POSTOptionIdArray) ) $questionnaire_id = Questionnaire:where(id, $questionnaireId)-increment(counts); $OptionIdArray = $_POSTOptionIdArray;/选项 id 数组(选项号) /选项对应选择数+1 foreach($OptionIdArray as $OptionId) /更新一行记录 $option_id = Option:where(id, $OptionId)-increment(select_count); $AnswerTextArray = $_POSTAnswerTextArray;/简答题答案数组(题号, 答案) foreach($AnswerTextArray as $AnswerText) if(trim($AnswerText1) != )/提交的答案非空 /插入一行记录 $created_at = $updated_at = date(Y-m-d H:i:s); $short_answerId = Short_answer:insertGetId( array( subject_id = $AnswerText0,/题目 id anwaser= $AnswerText1,/回答 delete_token = 0,/删除标记 created_at= $created_at,/创建时间 沈阳航空航天大学课程设计报告 43 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($SubjectsList as $OneSubject) $Subject = array(); $Subjectid = $OneSubject-id;/题目 id $Subjectquestionnaire_id = $OneSubject-questionnaire_id; /问卷 id $Subjectuser_name = $OneSubject-user_name;/问卷 创建者 $Subjectnumber = $OneSubject-number;/题号 $Subjecttitle = $OneSubject-title;/题目 $Subjecttype = $OneSubject-type;/题目类型 (单选,多选,简答) $Subjectoption_count = $OneSubject-option_count;/选项数目 $Subjec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辅警工作培训课件
- 农业银行2025钦州市金融科技岗笔试题及答案
- 邮储银行2025遵义市秋招英文面试题库及高分回答
- 中国银行2025广安市秋招笔试综合模拟题库及答案
- 交通银行2025商洛市秋招结构化面试经典题及参考答案
- 2025年3D打印的智能制造技术
- 2025社会救助行业发展趋势报告
- 建设银行2025荆州市秋招无领导模拟题角色攻略
- 邮储银行2025七台河市笔试行测高频题及答案
- 工商银行2025黄南藏族自治州秋招笔试性格测试题专练及答案
- 滑板项目选材指标与标准
- 额窦手术课件
- 智慧养猪解决方案演示课件
- 最新中医骨伤科学考试题库及答案
- 产品形态设计课件完整
- 德国巴斯夫抗氧剂和紫外线吸收剂
- SG-A088接地装置安装工程工检验批质量验收记录
- 《芯片原理与技术》课件微流控芯片
- 混凝土外观质量缺陷及治理措施PPT课件
- 十四条经络养生课件
- 麻醉医师资格分级授权管理能力评价与再授权制及程序培训考核试题及答案
评论
0/150
提交评论