public SysScore GetSysScore(Guid studentId, Guid teacherId, int courseId) { //获得学生创建博客数量 int countBlog = db.BlogTitle.SqlQuery("select * from BlogTitles t where t.CourseId=@courseId and t.CreatId=@studentId", new SqlParameter[] { new SqlParameter("@courseId", courseId), new SqlParameter("@studentId", studentId) }).Count <BlogTitle>(); //获得学生创建小组数量 int countGroup = db.CourseGroupTitle.SqlQuery("select * from CourseGroupTitles t where t.CourseId=@courseId and t.CourseGroupCreatId=@studentId", new SqlParameter[] { new SqlParameter("@courseId", courseId), new SqlParameter("@studentId", studentId) }).Count <CourseGroupTitle>(); //获得学生消息数量 int countMsg = db.Question.SqlQuery("select * from Questions t where t.FromId=@studentId and t.ToId=@teacherId", new SqlParameter[] { new SqlParameter("@studentId", studentId), new SqlParameter("@teacherId", teacherId) }).Count <Question>(); SysScore sysScore = new SysScore() { CreatMsgCount = countMsg, CreatGroupCount = countGroup, CreatBlogCount = countBlog }; return(sysScore); }
/// <summary> /// /// </summary> /// <param name="sysScore"></param> /// <param name="HomeWorkScore"></param> /// <returns></returns> public double ObjectiveScore(SysScore sysScore, double HomeWorkScore) { double BlogScore, LearnTimeScore, GroupScore, MsgScore; //博客帖子数量计算出博客成绩 if (sysScore.CreatBlogCount > 10) { BlogScore = 100.0; } else if (sysScore.CreatBlogCount <= 0) { BlogScore = 0; } else { BlogScore = sysScore.CreatBlogCount * 10; } //学习时长计算成绩----------- todo //LearnTime.TotalMinutes TimeSpan LearnTime = sysScore.ExitCourseTime - sysScore.EnterCourseTime; LearnTimeScore = GetLearnTimeScore(LearnTime); //计算小组分数-----------todo GroupScore = GetGroupScore(sysScore.CreatGroupCount); //消息分数------------todo MsgScore = GetMsgScore(sysScore.CreatMsgCount); this.objectiveScore = BlogScore * Config.BlogScorePercent + HomeWorkScore * Config.HomeWorkScorePercent + LearnTimeScore * Config.LearnTimeScorePercent + GroupScore * Config.GroupNumScorePercent + MsgScore * Config.MsgNumScorePercent; return(this.objectiveScore); }
public ActionResult GetStudentScore() { Guid studentId = new Guid(Request.QueryString["SId"]); int courseId = Convert.ToInt32(Request.QueryString["CId"]); List <CouScore> listCs = db.CouScore.Where(cs => cs.CourseId == courseId && cs.StudentId == studentId).OrderBy(cs => cs.ModuleTag).ToList(); ViewBag.listCs = listCs; string courseName = db.Course.Where(c => c.Id == courseId).FirstOrDefault().CourseName; ViewBag.courseName = courseName; //计算成绩并显示学生各个部分的 SysScore score = GetSysScore(studentId, new Guid(teacherId), courseId); //ViewData["SysScore"] = score; ScoreHelper scoreHelper = new ScoreHelper(); scoreHelper.ObjectiveScore(score, 90); List <double> listMoudule = new List <double>(); int left = listCs.Count <CouScore>(); //认为模块的成绩是顺序的,不存在跳跃式的成绩评价,只会出现123,不出现135 for (int i = 0; i <= 4; i++) { if (i >= left) { listMoudule.Add(0.0); } else if (listCs[i].ModuleTag == i + 1) { listMoudule.Add(Convert.ToDouble(listCs[i].ModuleScore)); } } double AllScore = scoreHelper.TerminateScore(listMoudule, teacherId, courseId); ViewData["AllScore"] = AllScore; return(View(score)); }