笔试考试系统 上周进度【补发】---项目已完成

1.本周完成任务:

(1)试卷管理

(2)学生端个人信息修改

(3)学生进行考试

(4) 试卷成绩查看

(5) 错题查看

(6) 成绩统计

  (7)   项目部署调试

2.核心源码

1.试卷列表显示

 

 

后台代码:

  1 public ActionResult Index(int page = 1)
  2 {
  3 IPagedList list = PaperRuleService.GetList(page);
  4 return View(list);
  5 }
  6 public ActionResult DeleteRuleDetail(int id)
  7 {
  8 try
  9 {
 10 RuleDetailService.Delete(id);
 11 }
 12 catch (Exception ex)
 13 {
 14 
 15 return Json(new { msg = "删除失败" + ex, success = false });
 16 }
 17 return Json(new { msg = "删除成功", success = false });
 18 }
 19 public ActionResult AddPaper()
 20 {
 21 return View();
 22 }
 23 public ActionResult RuleDetail(int id)
 24 {
 25 ViewBag.Paper =PaperRuleService.FindPaperRuleByID(id);
 26 ViewData["Num"] = RuleDetailService.GetDetailQuestionCount(id).ToString();
 27 
 28 var list = RuleDetailService.GetList(id);
 29 return View(list);
 30 }
 31 /// <summary>
 32 /// 编辑试卷规则详情信息
 33 /// </summary>
 34 /// <param name="id"></param>
 35 /// <returns></returns>
 36 public ActionResult EditRuleDetail(int id)
 37 {
 38 var list = LibraryService.GetAll();
 39 ViewBag.data = RuleDetailService.GetDetailByID(id);
 40 return View(list);
 41 }
 42 [HttpPost]
 43 public ActionResult EditRuleDetail(int questionnum, int libraryid, int ruleid,int paperruleid,int oldnum)
 44 {
 45 try
 46 {
 47 ///查询规则详情中 试卷题目数量
 48 int num = RuleDetailService.GetDetailQuestionCount(paperruleid);
 49 //查询试卷规则 题目总数
 50 
 51 var data = PaperRuleService.FindPaperRuleByID(paperruleid);
 52 if (questionnum > data.QuestionNum - num+ oldnum)
 53 {
 54 return Json(new { msg = "修改失败,要添加的题目数量大于试卷题目总数", success = false });
 55 }
 56 else
 57 {
 58 Exam_RuleDetail detail = new Exam_RuleDetail { QuestionNum = questionnum, LibraryID = libraryid, PaperRuleID = paperruleid, RuleID=ruleid };
 59 RuleDetailService.Update(detail);
 60 }
 61 }
 62 catch (Exception ex)
 63 {
 64 return Json(new { msg = "修改失败" + ex, success = false });
 65 
 66 }
 67 return Json(new { msg = "修改成功", success = false });
 68 }
 69 
 70 [HttpPost]
 71 public ActionResult AddPaper(string rulename, string rulestarttime, int time, int Score, int questionnum)
 72 {
 73 try
 74 {
 75 DateTime dt = Convert.ToDateTime(rulestarttime);
 76 Exam_PaperRule paperRule = new Exam_PaperRule
 77 {
 78 QuestionNum = questionnum,
 79 RuleStartDate = dt,
 80 RuleEndDate = dt.AddMinutes(time),
 81 RuleName = rulename,
 82 Score = Score,
 83 States = true
 84 };
 85 PaperRuleService.InsertPaperRule(paperRule);
 86 }
 87 catch (Exception ex)
 88 {
 89 return Json(new { msg = "添加失败" + ex, success = false });
 90 
 91 }
 92 return Json(new { msg = "添加成功", success = true });
 93 }
 94 /// <summary>
 95 /// 编辑试卷规则
 96 /// </summary>
 97 /// <param name="id"></param>
 98 /// <returns></returns>
 99 public ActionResult EditPaper(int id)
100 {
101 var list = PaperRuleService.FindPaperRuleByID(id);
102 return View(list);
103 }
104 [HttpPost]
105 public ActionResult EditPaper(int id,string rulename, string rulestarttime, int time, int Score, int questionnum)
106 {
107 try
108 {
109 DateTime dt = Convert.ToDateTime(rulestarttime);
110 Exam_PaperRule paperRule = new Exam_PaperRule
111 {
112 QuestionNum = questionnum,
113 RuleStartDate = dt,
114 RuleEndDate = dt.AddMinutes(time),
115 RuleName = rulename,
116 Score = Score,
117 States = true,
118 PaperRuleID=id
119 };
120 PaperRuleService.Update(paperRule);
121 }
122 catch (Exception ex)
123 {
124 return Json(new { msg = "添加失败" + ex, success = false });
125 
126 }
127 return Json(new { msg = "添加成功", success = true });
128 }
129 public ActionResult AddPaperRule()
130 {
131 
132 ViewBag.Library = LibraryService.GetAllEnable();
133 var list = PaperRuleService.GetAll();
134 
135 return View(list);
136 }
137 [HttpPost]
138 public ActionResult AddPaperRule(int questionnum, int libraryid, int paperruleid)
139 {
140 try
141 {
142 int libraryquestionnum = QuestionService.GetCountByLibraryID(libraryid);
143 
144 ///查询规则详情中 试卷题目数量
145 int num = RuleDetailService.GetDetailQuestionCount(paperruleid);
146 //查询试卷规则 题目总数
147 
148 var data = PaperRuleService.FindPaperRuleByID(paperruleid);
149 if (questionnum > data.QuestionNum - num)
150 {
151 return Json(new { msg = "添加失败,要添加的题目数量大于试卷题目总数", success = false });
152 }
153 else if(libraryquestionnum < questionnum)
154 {
155 return Json(new { msg = "添加失败,题库中的题目数量小于您输入的数量", success = false });
156 }
157 else
158 {
159 Exam_RuleDetail detail = new Exam_RuleDetail { QuestionNum = questionnum, LibraryID = libraryid, PaperRuleID = paperruleid };
160 RuleDetailService.AddRuleDetail(detail);
161 }
162 }
163 catch (Exception ex)
164 {
165 return Json(new { msg = "添加失败" + ex, success = false });
166 
167 }
168 return Json(new { msg = "添加成功", success = true });
169 }
170 
171 /// <summary>
172 /// 禁用试卷
173 /// </summary>
174 /// <param name="id"></param>
175 /// <returns></returns>
176 public ActionResult EnablePaper(int id)
177 {
178 try
179 {
180 int res = PaperRuleService.EnablePaperRule(id);
181 }
182 catch (Exception ex)
183 {
184 return Json(new { msg = "启用失败" + ex, success = false });
185 
186 }
187 return Json(new { msg = "启用成功", success = true });
188 }
189 /// <summary>
190 /// 禁用试卷
191 /// </summary>
192 /// <param name="id"></param>
193 /// <returns></returns>
194 public ActionResult DisablePaper(int id)
195 {
196 try
197 {
198 int res = PaperRuleService.DisablePaperRule(id);
199 }
200 catch (Exception ex)
201 {
202 return Json(new { msg = "禁用失败" + ex, success = false });
203 
204 }
205 return Json(new { msg = "禁用成功", success = true });
206 }

BLL层代码:

  1 public class PaperRuleService
  2 {
  3 /// <summary>
  4 /// 获取所有试卷
  5 /// </summary>
  6 /// <param name="lmid"></param>
  7 /// <param name="page"></param>
  8 /// <returns></returns>
  9 public static IPagedList GetList(int page = 1)
 10 {
 11 using (ExamSysDBContext db = new ExamSysDBContext())
 12 {
 13 int pagesize = 10;
 14 IPagedList list = db.Exam_PaperRule.OrderBy(x => x.PaperRuleID).ToPagedList(page, pagesize);
 15 return list;
 16 }
 17 
 18 }
 19 
 20 /// <summary>
 21 /// 获取所有试卷 状态正常的
 22 /// </summary>
 23 /// <param name="lmid"></param>
 24 /// <param name="page"></param>
 25 /// <returns></returns>
 26 public static IPagedList GetListEnable(int page = 1)
 27 {
 28 using (ExamSysDBContext db = new ExamSysDBContext())
 29 {
 30 int pagesize = 10;
 31 IPagedList list = db.Exam_PaperRule.Where(x=>x.States==true).OrderBy(x => x.PaperRuleID).ToPagedList(page, pagesize);
 32 return list;
 33 }
 34 
 35 }
 36 public static List<Exam_PaperRule> GetAll()
 37 {
 38 using (ExamSysDBContext db = new ExamSysDBContext())
 39 {
 40 var list = db.Exam_PaperRule.ToList();
 41 return list;
 42 }
 43 
 44 }
 45 /// <summary>
 46 /// 增加试卷
 47 /// </summary>
 48 /// <param name="library"></param>
 49 /// <returns></returns>
 50 public static int InsertPaperRule(Exam_PaperRule paperRule)
 51 {
 52 using (ExamSysDBContext dBContext = new ExamSysDBContext())
 53 {
 54 dBContext.Exam_PaperRule.Add(paperRule);
 55 return dBContext.SaveChanges();
 56 }
 57 
 58 }
 59 
 60 /// <summary>
 61 /// 通过ID找到该试卷
 62 /// </summary>
 63 /// <param name="id"></param>
 64 /// <returns></returns>
 65 public static Exam_PaperRule FindPaperRuleByID(int id)
 66 {
 67 using (ExamSysDBContext dBContext = new ExamSysDBContext())
 68 {
 69 var data = dBContext.Exam_PaperRule.Where(x => x.PaperRuleID == id).FirstOrDefault();
 70 return data;
 71 }
 72 
 73 }
 74 /// <summary>
 75 /// 禁用试卷
 76 /// </summary>
 77 /// <param name="id"></param>
 78 /// <returns></returns>
 79 public static int DisablePaperRule(int id)
 80 {
 81 using (ExamSysDBContext dBContext = new ExamSysDBContext())
 82 {
 83 var data = dBContext.Exam_PaperRule.Where(x => x.PaperRuleID == id).FirstOrDefault();
 84 
 85 data.States = false;
 86 return dBContext.SaveChanges();
 87 }
 88 }
 89 /// <summary>
 90 /// 启用试卷
 91 /// </summary>
 92 /// <param name="id"></param>
 93 /// <returns></returns>
 94 public static int EnablePaperRule(int id)
 95 {
 96 using (ExamSysDBContext dBContext = new ExamSysDBContext())
 97 {
 98 
 99 var data = dBContext.Exam_PaperRule.Where(x => x.PaperRuleID == id).FirstOrDefault();
100 
101 data.States = true;
102 return dBContext.SaveChanges();
103 }
104 
105 }
106 /// <summary>
107 /// 修改试卷信息
108 /// </summary>
109 /// <param name="library"></param>
110 /// <returns></returns>
111 public static int Update(Exam_PaperRule paperRule)
112 {
113 using (ExamSysDBContext dBContext = new ExamSysDBContext())
114 {
115 
116 var data = dBContext.Exam_PaperRule.Where(x => x.PaperRuleID == paperRule.PaperRuleID).FirstOrDefault();
117 data.RuleName = paperRule.RuleName;
118 data.RuleStartDate = paperRule.RuleStartDate;
119 data.RuleEndDate = paperRule.RuleEndDate;
120 data.Score = paperRule.Score;
121 data.QuestionNum = paperRule.QuestionNum;
122 
123 return dBContext.SaveChanges();
124 }
125 }
126 }

2.学生信息修改

 后台代码:

 1       public ActionResult Edit(string uname, string Name, string phone, string id)
 2         {
 3             Exam_User u = new Exam_User { UserID = System.Convert.ToInt32(id), RealName = Name, UserName = uname, Phone = phone };
 4             try
 5             {
 6                 StudentMannerService.Update(u);
 7             }
 8             catch (Exception ex)
 9             {
10                 return Json(new { msg = "修改失败" + ex, success = false });
11 
12             }
13             return Json(new { msg = "修改成功", success = true });
14 
15         }

3.学生考试

 查看已经考过的试卷

 进入考试:

提交试卷:

 

完成考试即可查看试卷 获取成绩

 后台代码:

public class ExamController : Controller
    {
        private static Dictionary<int, List<Exam_Answer>> listanswer = new Dictionary<int, List<Exam_Answer>>();
        // GET: Exam
        public ActionResult Index(int page = 1)
        {
            var currentuser = Session[CommonFeild.SessionName] as Exam_User;
            ViewBag.ID = currentuser.UserID;
            IPagedList list = PaperRuleService.GetListEnable(page);
            return View(list);
        }
        [HttpGet]
        /// <summary>
        /// 开始考试
        /// </summary>
        /// <param name="ruleid"></param>
        /// <returns></returns>
        public ActionResult BeginExam(int ruleid)
        {          
            var currentuser = Session[CommonFeild.SessionName] as Exam_User;
            var data = PaperRuleService.FindPaperRuleByID(ruleid);
            ViewBag.Rule = data;
            ViewBag.date = data.RuleEndDate.ToString("yyyy/MM/dd HH:mm:ss");
            
            var list = ExamPaperService.GeneratePaper(ruleid, currentuser.UserID);
            if(!listanswer.ContainsKey(currentuser.UserID))
            {
                listanswer.Add(currentuser.UserID, list);
            }           
            //获取questioID数组
            List<Exam_Question> questionlist = new List<Exam_Question>();
            List<ExamPaperBLL> paperbll = new List<ExamPaperBLL>();
            foreach (var item in listanswer[currentuser.UserID])
            {
                ExamPaperBLL examPaperBLL = new ExamPaperBLL();
                examPaperBLL.Exam_Question = QuestionService.GetdataByID(item.QuestionID);
                examPaperBLL.AnswerOptionID = item.AnswerOptionID;
                paperbll.Add(examPaperBLL);
                // questionlist.Add(QuestionService.GetdataByID(item.QuestionID));
            }
            return View(paperbll);
        }
        /// <summary>
        /// 单选题
        /// </summary>
        /// <param name="data"></param>
        public void GetRadioData(string data)
        {
            var currentuser = Session[CommonFeild.SessionName] as Exam_User;
            string[] arry = data.Split(',');
            string optionid = arry[0];
            int questionid = Convert.ToInt32(arry[1]);
            //防止并发
            lock (this)
            {
                var answer = listanswer[currentuser.UserID].Where(x => x.QuestionID == questionid).FirstOrDefault();
                answer.AnswerOptionID = optionid;
            }

        }
        /// <summary>
        /// 多选题
        /// </summary>
        /// <param name="data"></param>
        /// <param name="check"></param>
        public void GetChechData(string data, bool check)
        {
            var currentuser = Session[CommonFeild.SessionName] as Exam_User;
            string[] arry = data.Split(',');
            string optionid = arry[0];
            int questionid = Convert.ToInt32(arry[1]);
            //判断是否是选中 或者取消
            if (check)
            {
                //防止并发
                lock (this)
                {
                    var answer = listanswer[currentuser.UserID].Where(x => x.QuestionID == questionid).FirstOrDefault();
                    answer.AnswerOptionID += optionid + ",";

                }
            }
            else
            {
                //防止并发
                lock (this)
                {
                    var answer = listanswer[currentuser.UserID].Where(x => x.QuestionID == questionid).FirstOrDefault();
                    string temp = answer.AnswerOptionID;
                    if (temp.Contains(optionid))
                    {
                        int index = temp.IndexOf(optionid);
                        string newstr = temp.Remove(index, optionid.Length + 1);
                        answer.AnswerOptionID = newstr;
                    }
                }
            }
        }
        /// <summary>
        /// 保存
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public ActionResult Save()
        {
            var currentuser = Session[CommonFeild.SessionName] as Exam_User;

            try
            {
                foreach (var item in listanswer[currentuser.UserID])
                {
                    if (item.AnswerOptionID != "")
                    {
                        if (item.AnswerOptionID.EndsWith(","))
                        {
                            string temp = item.AnswerOptionID;
                            item.AnswerOptionID = temp.Remove(temp.Length - 1, 1);
                        }
                    }
                    AnswerService.Update(item);
                }
            }
            catch (Exception ex)
            {

                return Json(new { success = false, msg = "保存失败" + ex });
            }
            return Json(new { success = true, msg = "保存成功"});

        }
        [HttpPost]
        public ActionResult GetCount()
        {
            var currentuser = Session[CommonFeild.SessionName] as Exam_User;
            int count = listanswer[currentuser.UserID].Where(x => x.AnswerOptionID == "").Count();
            
            return Json(new { success = true,num=count });

        }

        /// <summary>
        /// 提交
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public ActionResult Conmit()
        {
            var currentuser = Session[CommonFeild.SessionName] as Exam_User;
            int paperid = 0;
            try
            {
                foreach (var item in listanswer[currentuser.UserID])
                {
                    paperid = item.PaperID;
                    if (item.AnswerOptionID != "")
                    {
                        if (item.AnswerOptionID.EndsWith(","))
                        {
                            string temp = item.AnswerOptionID;
                            item.AnswerOptionID = temp.Remove(temp.Length - 1, 1);
                        }
                    }
                    //提交试卷
                    AnswerService.Update(item);
                }
                //更新试卷状态 获取分数
                AnswerService.GetScore(paperid, currentuser.UserID);
            }
            catch (Exception ex)
            {

                return Json(new { success = false, msg = "提交失败" + ex });
            }
            return Json(new { success = true, msg = "提交成功" });
        }
        /// <summary>
        /// 试卷详情
        /// </summary>
        /// <param name="PaperID">试卷编号</param>
        /// <returns></returns>
        public ActionResult ExamDetail(int ruleid)
        {
            var currentuser = Session[CommonFeild.SessionName] as Exam_User;

            //获取考试信息
            var paper = ExamPaperService.CheckPaper(ruleid,currentuser.UserID);

            ViewBag.User = currentuser;
            ViewBag.Rule = PaperRuleService.FindPaperRuleByID(paper.RuleID);
            ViewBag.Score = paper.UserScore;
            //获取答题信息 
            List<Exam_Answer> list = AnswerService.GetAnswer(currentuser.UserID,paper.PaperID);
            //加载试卷模型
            List<ExamPaperBLL> paperbll = new List<ExamPaperBLL>();
            foreach (var item in list)
            {
                ExamPaperBLL examPaperBLL = new ExamPaperBLL();
                examPaperBLL.Exam_Question = QuestionService.GetdataByID(item.QuestionID);
                examPaperBLL.AnswerOptionID = item.AnswerOptionID;
                paperbll.Add(examPaperBLL);
               
            }
            return View(paperbll);
        }
    }

Bll方法:

public class ExamPaperService
    {
        /// <summary>
        /// 根据试卷规则编号生成试卷,并将题目生成到答题信息表中
        /// </summary>
        /// <param name="ruleid"></param>
        /// <param name="UserID"></param>
        public static List<Exam_Answer> GeneratePaper(int ruleid, int UserID)
        {
            //定义答题卡
            List<Exam_Answer> AnswerList = new List<Exam_Answer>();
            //定义试卷变量
            List<Exam_Question> QuestionList = new List<Exam_Question>();
            //定义组卷详情变量
            List<Exam_RuleDetail> RuledetailList = RuleDetailService.GetDetailQuestion(ruleid);
            int answercount = 0;
            //查询试卷总题目数量
            int num = PaperRuleService.FindPaperRuleByID(ruleid).QuestionNum;
            //判断试卷信息表是否已经存在,如果不存在需要创建(需要考虑中途退出的同学)
            Exam_Paper paper = CheckPaper(ruleid, UserID);
            if (paper == null)
            {
                paper = CreatePaper(ruleid, UserID);
                //生成答题卡           
            }
            //判断答题卡是否存在信息
            answercount = AnswerService.GetUserQuestionCount(UserID, paper.PaperID);
            //如果存在的话 将试卷信息加载出来
            if (answercount == num)
            {
                var data = AnswerService.GetAnswer(UserID, paper.PaperID);
                AnswerList.AddRange(data);
            }
            ///如果不存在  随机生成试题
            else
            {
                using (ExamSysDBContext db = new ExamSysDBContext())
                {
                    //先将答题卡清空
                    AnswerService.Clear(UserID, paper.PaperID);
                    //根据规则详情 随机生成试题
                    foreach (var item in RuledetailList)
                    {
                        var temp = db.Exam_Question.Where(x => x.LibraryID == item.LibraryID).OrderBy(x => Guid.NewGuid()).Take(item.QuestionNum).ToList();
                        QuestionList.AddRange(temp);
                    }
                    //将试题 添加到答题卡
                    foreach (var question in QuestionList)
                    {

                        Exam_Answer answer = new Exam_Answer
                        {
                            AnswerOptionID = "",
                            LibraryID = question.LibraryID,
                            PaperID = paper.PaperID,
                            UserID = UserID,
                            QuestionID = question.QuestionID,
                            OptionID = QuestionOptionsService.GetOptionID(question.QuestionAnswer, question.QuestionID),
                        };

                        AnswerList.Add(answer);
                    }
                    //将答题信息添加到数据库
                    db.Exam_Answer.AddRange(AnswerList);
                    db.SaveChanges();
                }
            }
            return AnswerList;
        }
        /// <summary>
        /// 检查试卷是否已经生成,将试卷信息返回
        /// </summary>
        /// <param name="ruleid"></param>
        /// <param name="UserID"></param>
        /// <returns></returns>
        public static Exam_Paper CheckPaper(int ruleid, int userid)
        {
            using (ExamSysDBContext db = new ExamSysDBContext())
            {
                return db.Exam_Paper.Where(x => x.RuleID == ruleid && x.UserID == userid).FirstOrDefault();
            }
        }
        /// <summary>
        ///   创建试卷
        /// </summary>
        /// <param name="ruleid"></param>
        /// <param name="userid"></param>
        /// <returns></returns>
        public static Exam_Paper CreatePaper(int ruleid, int userid)
        {
            //获取试卷规则信息
            var rule = PaperRuleService.FindPaperRuleByID(ruleid);

            //获取用户信息
            var user = UsersService.GetUserByID(userid);
            //添加试卷规则
            Exam_Paper paper = new Exam_Paper { States = false, RealName = user.RealName, UserID = user.UserID, RuleID = rule.PaperRuleID, TotalScore = rule.Score, UserScore = 0 };
            var Newpaper = AddPaper(paper);
            return Newpaper;

        }
        /// <summary>
        /// 添加试卷
        /// </summary>
        /// <param name="paper"></param>
        /// <returns></returns>
        public static Exam_Paper AddPaper(Exam_Paper paper)
        {
            using (ExamSysDBContext db = new ExamSysDBContext())
            {
                db.Exam_Paper.Add(paper);
                db.SaveChanges();
                return paper;
            }
        }
        /// <summary>
        /// 更新试卷分数
        /// </summary>
        /// <param name="paperid"></param>
        /// <param name="score"></param>
        public static void UpdateScore(int paperid, int score)
        {
            using (ExamSysDBContext db = new ExamSysDBContext())
            {
                var data = db.Exam_Paper.Where(x => x.PaperID == paperid).FirstOrDefault();
                data.UserScore = score;
                db.SaveChanges();
            }
        }
        /// <summary>
        /// 获取试卷规则编号
        /// </summary>
        /// <param name="paperid"></param>
        /// <returns></returns>
        public static Exam_Paper GetPaper(int paperid)
        {
            using (ExamSysDBContext db = new ExamSysDBContext())
            {
                var data = db.Exam_Paper.Where(x => x.PaperID == paperid).FirstOrDefault();
                return data;

            }
        }
        /// <summary>
        /// 获取试卷状态 已提交还是未提交
        /// </summary>
        /// <param name="ruleid"></param>
        /// <param name="userid"></param>
        /// <returns></returns>
        public static bool CkeckScore(int ruleid, int userid)
        {
            using (ExamSysDBContext db = new ExamSysDBContext())
            {
                var data = db.Exam_Paper.Where(x => x.RuleID == ruleid && x.UserID == userid).FirstOrDefault();
                if(data==null)
                {
                    return false;
                }
                else
                {
                    return data.States;
                }               
            }
        }

        /// <summary>
        /// 统计成绩信息
        /// </summary>
        /// <param name="ruleid"></param>
        /// <returns></returns>
        public static ScoreTotleModel GetScoreModel(int ruleid)
        {
            ScoreTotleModel score = new ScoreTotleModel();
            using (ExamSysDBContext db = new ExamSysDBContext())
            {
                score.MaxScore = db.Exam_Paper.Where(x => x.RuleID == ruleid).Select(x => x.UserScore).Max();

                score.MinScore = db.Exam_Paper.Where(x => x.RuleID == ruleid).Select(x => x.UserScore).Min();

                score.ScoreAvg = db.Exam_Paper.Where(x => x.RuleID == ruleid).Select(x => x.UserScore).Average();
                score.Score60 = db.Exam_Paper.Where(x => x.RuleID == ruleid && x.UserScore < 60).Count();
                score.Score6070 = db.Exam_Paper.Where(x => x.RuleID == ruleid && 60 <= x.UserScore && x.UserScore < 70).Count();
                score.Score7080 = db.Exam_Paper.Where(x => x.RuleID == ruleid && 70 <= x.UserScore && x.UserScore < 80).Count();
                score.Score8090 = db.Exam_Paper.Where(x => x.RuleID == ruleid && 80 <= x.UserScore && x.UserScore < 90).Count();
                score.Score90100 = db.Exam_Paper.Where(x => x.RuleID == ruleid && 90 <= x.UserScore && x.UserScore < 100).Count();
                score.Score100 = db.Exam_Paper.Where(x => x.RuleID == ruleid && 100 <= x.UserScore).Count();

                score.StudentNum = db.Exam_Paper.Where(x => x.RuleID == ruleid).Count();
                return score;

            }
        }

    }

4.试卷成绩查看

后台代码:

 /// <summary>
        /// 试卷详情
        /// </summary>
        /// <param name="PaperID">试卷编号</param>
        /// <returns></returns>
        public ActionResult ExamDetail(int ruleid)
        {
            var currentuser = Session[CommonFeild.SessionName] as Exam_User;

            //获取考试信息
            var paper = ExamPaperService.CheckPaper(ruleid,currentuser.UserID);

            ViewBag.User = currentuser;
            ViewBag.Rule = PaperRuleService.FindPaperRuleByID(paper.RuleID);
            ViewBag.Score = paper.UserScore;
            //获取答题信息 
            List<Exam_Answer> list = AnswerService.GetAnswer(currentuser.UserID,paper.PaperID);
            //加载试卷模型
            List<ExamPaperBLL> paperbll = new List<ExamPaperBLL>();
            foreach (var item in list)
            {
                ExamPaperBLL examPaperBLL = new ExamPaperBLL();
                examPaperBLL.Exam_Question = QuestionService.GetdataByID(item.QuestionID);
                examPaperBLL.AnswerOptionID = item.AnswerOptionID;
                paperbll.Add(examPaperBLL);
               
            }
            return View(paperbll);
        }

5.错题查看:

 后台代码:

 public ActionResult MyError()
        {
            var currentuser = Session[CommonFeild.SessionName] as Exam_User;                                   
            //获取答题信息 
            List<Exam_Answer> list = AnswerService.GetError(currentuser.UserID);
            //加载试卷模型
            List<ExamPaperBLL> paperbll = new List<ExamPaperBLL>();
            foreach (var item in list)
            {
                ExamPaperBLL examPaperBLL = new ExamPaperBLL();
                examPaperBLL.Exam_Question = QuestionService.GetdataByID(item.QuestionID);
                examPaperBLL.AnswerOptionID = item.AnswerOptionID;
                paperbll.Add(examPaperBLL);

            }
            return View(paperbll);
        }

6.成绩统计

 

 后台代码:

 public class ExamMannageController : Controller
    {
        // GET: ExamMannage
        public ActionResult Index(int page = 1)
        {
            IPagedList list = PaperRuleService.GetList(page);
            return View(list);

        }
        /// <summary>
        /// 统计分数
        /// </summary>
        /// <param name="ruleid"></param>
        /// <returns></returns>
        public ActionResult Totle(int ruleid)
        {
            Exam_PaperRule rule = PaperRuleService.FindPaperRuleByID(ruleid);
            ViewBag.Info = rule;

            ScoreTotleModel score = ExamPaperService.GetScoreModel(ruleid);
            return View(score);
        }
     
    }

7.项目部署

1.发布项目

 

 发布成功后部署到服务器

 

 点击确定即可访问

 3.遇到问题

4.解决方案

5.Github项目地址:https://github.com/wei19941001/ExamSys

6.服务器地址:http://119.45.138.19/

7.项目燃尽图

猜你喜欢

转载自www.cnblogs.com/zhangdongwei/p/13386937.html
今日推荐