diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb
index 545fbce85..3562be4f3 100644
--- a/app/controllers/homework_commons_controller.rb
+++ b/app/controllers/homework_commons_controller.rb
@@ -10,7 +10,8 @@ class HomeworkCommonsController < ApplicationController
                                      :create_subject_homework, :multi_destroy, :add_to_homework_bank]
   before_action :find_homework, only: [:edit, :show, :update, :group_list, :homework_code_repeat, :code_review_results,
                                        :code_review_detail, :show_comment, :settings, :works_list, :update_settings,
-                                       :reference_answer, :publish_groups, :end_groups, :alter_name, :update_explanation]
+                                       :reference_answer, :publish_groups, :end_groups, :alter_name, :update_explanation,
+                                       :update_score, :update_student_score]
   before_action :user_course_identity
   before_action :homework_publish, only: [:show, :works_list, :code_review_results, :show_comment, :settings, :reference_answer, :update_student_score]
   before_action :teacher_allowed, only: [:new, :edit, :create, :update, :shixuns, :subjects, :create_shixun_homework,
diff --git a/app/controllers/shixuns_controller.rb b/app/controllers/shixuns_controller.rb
index f7172021c..0d913a0a1 100644
--- a/app/controllers/shixuns_controller.rb
+++ b/app/controllers/shixuns_controller.rb
@@ -733,14 +733,14 @@ class ShixunsController < ApplicationController
 
 private
 	def shixun_params
-		raise("实训名称不能为空") if params[:name].blank?
+		raise("实训名称不能为空") if params[:shixun][:name].blank?
 		params.require(:shixun).permit(:name, :trainee, :webssh, :can_copy, :use_scope, :vnc, :test_set_permission,
 																	 :task_pass, :repo_name, :multi_webssh, :opening_time, :mirror_script_id, :code_hidden,
 																	 :hide_code, :forbid_copy)
 	end
 	def shixun_info_params
-		raise("实训描述不能为空") if params[:description].blank?
-		raise("评测脚本不能为空") if params[:evaluate_script].blank?
+		raise("实训描述不能为空") if params[:shixun_info][:description].blank?
+		raise("评测脚本不能为空") if params[:shixun_info][:evaluate_script].blank?
 		params.require(:shixun_info).permit(:description, :evaluate_script)
 	end
 
diff --git a/app/models/challenge.rb b/app/models/challenge.rb
index 18b177e1c..e7a382a51 100644
--- a/app/models/challenge.rb
+++ b/app/models/challenge.rb
@@ -52,7 +52,7 @@ class Challenge < ApplicationRecord
 
   # 开启挑战
   def open_game user_id, shixun
-    game = self.games.first
+    game = self.games.where(user_id: user_id).first
     if game.present?
       shixun.task_pass || game.status != 3 ? "/tasks/#{game.identifier}" : ""
     else
diff --git a/app/templates/exercise_export/exercise_export.css b/app/templates/exercise_export/exercise_export.css
index f0eeb0f4c..2745382f7 100644
--- a/app/templates/exercise_export/exercise_export.css
+++ b/app/templates/exercise_export/exercise_export.css
@@ -41,6 +41,9 @@ p{
 .mt8{
     margin-top:8px;
 }
+.mt10{
+    margin-top:10px;
+}
 .mbt10{
     margin: 10px 0;
 }
@@ -109,6 +112,9 @@ p{
     white-space: normal;
     min-height:12px;
 }
+.null-answer p{
+    display: inline-block;
+}
 .choose-radio{
     display: inline-block;
     width: 12px;
diff --git a/app/templates/exercise_export/exercise_user.html.erb b/app/templates/exercise_export/exercise_user.html.erb
index bb3723373..1e3d88a44 100644
--- a/app/templates/exercise_export/exercise_user.html.erb
+++ b/app/templates/exercise_export/exercise_user.html.erb
@@ -181,19 +181,19 @@
               <% if q_type ==  0 %>
                 <% q.exercise_choices.each do |s| %>
                   <% check_answer = (user_answer.present? && (s.id == user_answer.first.exercise_choice_id)) ? "choose-answer" : '' %>
-                  <div class="pbt5 clearfix main-choice">
-                    <span class="choose-radio <%= check_answer %> pull-left mt8"></span>
+                  <div class="pbt10 clearfix main-choice">
+                    <span class="choose-radio <%= check_answer %> pull-left mt10"></span>
                     <span class="inline-block pull-left ml10 choice-text"><%= to_markdown(s.choice_text,@request_url) %></span>
                   </div>
                 <% end %>
               <% elsif q_type == 1 %>
                 <% q.exercise_choices.each do |s| %>
                   <% check_answer = (user_answer.present? && (user_answer.pluck(:exercise_choice_id).include?(s.id))) ? true : false %>
-                  <div class="pbt5 clearfix main-choice">
+                  <div class="pbt10 clearfix main-choice">
                     <% if check_answer %>
-                      <span class="choose-checkbox choose-answer-multi mt8" ></span>
+                      <span class="choose-checkbox choose-answer-multi mt10 pull-left" ></span>
                     <% else %>
-                      <span class="choose-checkbox pull-left mt8"></span>
+                      <span class="choose-checkbox pull-left mt10"></span>
                     <% end %>
                     <span class="inline-block pull-left choice-text ml10"><%= to_markdown(s.choice_text,@request_url) %></span>
                   </div>
@@ -222,14 +222,16 @@
                   <% end %>
                   <p class="pbt10 flex-nowrap">
                     <span class="pull-left line-34">答案(填空<%= index+1 %>):</span>
-                    <span class="null-answer"><%= to_markdown(check_answer) %></span>
+                    <span class="null-answer"><%= to_markdown(check_answer,@request_url) %></span>
                   </p>
                 <% end %>
               <% elsif q_type == 4 %>
                 <% check_answer = (user_answer.present?  ? user_answer.first.answer_text : '--') %>
-                <p class="flex-nowrap">
-                  <span class="null-answer main-height"><%= to_markdown(check_answer) %></span>
-                </p>
+                <div class="flex-nowrap">
+                  <div class="null-answer main-height">
+                    <%= to_markdown(check_answer,@request_url) %>
+                  </div>
+                </div>
               <% else %>
                 <div class="mbt10">
                   <p class="text-gray mbt10">