public override void ReLoad(int pid) { CleanData(); addnew = false; PID = pid; newProblem = InfoControl.getProProblem(pid); rtbPContent.Text = newProblem.problem; foreach (ProgramAnswer ans in newProblem.ansList) { object[] values = new object[2]; values[0] = ans.SeqNum; values[1] = ans.SeqNum.ToString() + ": " + ans.Output; dtAnsList.Rows.Add(values); } switch (newProblem.language) { case PLanguage.C: InfoControl.ClientObj.LoadCCompletion(pid, Convert.ToInt32(InfoControl.User.Id)); tbProblemFile.Text = InfoControl.config["CompletionPath"] + "p" + pid.ToString() + ".c"; break; case PLanguage.CPP: InfoControl.ClientObj.LoadCppCompletion(pid, Convert.ToInt32(InfoControl.User.Id)); tbProblemFile.Text = InfoControl.config["CompletionPath"] + "p" + pid.ToString() + ".cpp"; break; case PLanguage.VB: InfoControl.ClientObj.LoadVbCompletion(pid, Convert.ToInt32(InfoControl.User.Id)); tbProblemFile.Text = InfoControl.config["CompletionPath"] + "p" + pid.ToString() + ".vb"; break; } InfoControl.ClientObj.ReceiveFiles(); }
public override void ReLoad(int pid) { CleanData(); addnew = false; PID = pid; newProblem = InfoControl.getProProblem(pid); rtbPContent.Text = newProblem.problem; AnsList = newProblem.ansList; foreach (ProgramAnswer ans in newProblem.ansList) { dtAnsList.Rows.Add(new object[2] { ans.Input, ans.Output }); } switch (newProblem.language) { case PLanguage.C: InfoControl.ClientObj.LoadCFunctionA(pid, Convert.ToInt32(InfoControl.User.Id)); InfoControl.ClientObj.LoadCFunctionP(pid, Convert.ToInt32(InfoControl.User.Id)); tbProblemFile.Text = InfoControl.config["FunctionPath"] + "p" + pid.ToString() + ".c"; tbAnswerFile.Text = InfoControl.config["FunctionPath"] + "a" + pid.ToString() + ".c"; break; case PLanguage.CPP: InfoControl.ClientObj.LoadCppFunctionA(pid, Convert.ToInt32(InfoControl.User.Id)); InfoControl.ClientObj.LoadCppFunctionP(pid, Convert.ToInt32(InfoControl.User.Id)); tbProblemFile.Text = InfoControl.config["FunctionPath"] + "p" + pid.ToString() + ".cpp"; tbAnswerFile.Text = InfoControl.config["FunctionPath"] + "a" + pid.ToString() + ".cpp"; break; case PLanguage.VB: InfoControl.ClientObj.LoadVbFunctionA(pid, Convert.ToInt32(InfoControl.User.Id)); InfoControl.ClientObj.LoadVbFunctionP(pid, Convert.ToInt32(InfoControl.User.Id)); tbProblemFile.Text = InfoControl.config["FunctionPath"] + "p" + pid.ToString() + ".vb"; tbAnswerFile.Text = InfoControl.config["FunctionPath"] + "a" + pid.ToString() + ".vb"; break; } InfoControl.ClientObj.ReceiveFiles(); }
/// <summary> /// 获取程序题答案 /// </summary> /// <param name="pro">所要获取答案的程序题</param> /// <returns></returns> private static ProgramProblem getPAnswer(IdScoreType pro) { ProgramProblem programProblem = new ProgramProblem(); switch (pro.pt) { case ProblemType.CProgramCompletion: case ProblemType.CProgramModification: case ProblemType.CProgramFun: programProblem.language = PLanguage.C; break; case ProblemType.CppProgramCompletion: case ProblemType.CppProgramModification: case ProblemType.CppProgramFun: programProblem.language = PLanguage.CPP; break; case ProblemType.VbProgramCompletion: case ProblemType.VbProgramModification: case ProblemType.VbProgramFun: programProblem.language = PLanguage.VB; break; } switch (pro.pt) { case ProblemType.CProgramCompletion: case ProblemType.CppProgramCompletion: case ProblemType.VbProgramCompletion: programProblem.Type = ProgramPType.Completion; break; case ProblemType.CppProgramFun: case ProblemType.VbProgramFun: case ProblemType.CProgramFun: programProblem.Type = ProgramPType.Function; break; case ProblemType.CppProgramModification: case ProblemType.CProgramModification: case ProblemType.VbProgramModification: programProblem.Type = ProgramPType.Modify; break; } programProblem.type = pro.pt; programProblem.score = pro.score; programProblem.ansList = ScoreControl.oesData.FindProgramAnswerByPID(pro.id); return programProblem; }
private void CleanData() { newProblem = new ProgramProblem(); rtbPContent.Text = ""; tbProblemFile.Text = ""; BlankCount = 0; AnsCount = 0; dtAnsList = new DataTable(); dtAnsList.Columns.Add("SeqNum", typeof(int)); dtAnsList.Columns.Add("Value", typeof(string)); dvAnsList = new DataView(dtAnsList); dvAnsList.Sort = "SeqNum"; lbAnsList.DataSource = dvAnsList; lbAnsList.DisplayMember = "Value"; }
private List<ProgramProblem> DataSetToListProgram(DataSet Ds) { DataTable p_Data = Ds.Tables[0]; // 返回值初始化 List<ProgramProblem> result = new List<ProgramProblem>(); for (int j = 0; j < p_Data.Rows.Count; j++) { ProgramProblem problem = new ProgramProblem(); PLanguage language=(PLanguage)Convert.ToInt32(p_Data.Rows[j]["Language"]); ProgramPType type = (ProgramPType)Convert.ToInt32(p_Data.Rows[j]["Type"]); switch (language) { case PLanguage.C: switch (type) { case ProgramPType.Completion: problem = new PCompletion(ProblemType.CProgramCompletion); break; case ProgramPType.Modify: problem = new PModif(ProblemType.CProgramModification); break; case ProgramPType.Function: problem = new PFunction(ProblemType.CProgramFun); break; } break; case PLanguage.CPP: switch (type) { case ProgramPType.Completion: problem = new PCompletion(ProblemType.CppProgramCompletion); break; case ProgramPType.Modify: problem = new PModif(ProblemType.CppProgramModification); break; case ProgramPType.Function: problem = new PFunction(ProblemType.CppProgramFun); break; } break; case PLanguage.VB: switch (type) { case ProgramPType.Completion: problem = new PCompletion(ProblemType.VbProgramCompletion); break; case ProgramPType.Modify: problem = new PModif(ProblemType.VbProgramModification); break; case ProgramPType.Function: problem = new PFunction(ProblemType.VbProgramFun); break; } break; } problem.problemId = Convert.ToInt32(p_Data.Rows[j]["PID"]); problem.problem = p_Data.Rows[j]["PContent"].ToString(); problem.unit.UnitId = Convert.ToInt32(p_Data.Rows[j]["Unit"]); problem.unit.UnitName = p_Data.Rows[j]["UnitName"].ToString(); problem.Plevel = Convert.ToInt32(p_Data.Rows[j]["PLevel"]); result.Add(problem); } return result; }