您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 在线测试系统实验报告
课程设计报告(2013--2014年度第一学期)名称:软件设计实践题目:在线测试系统的设计与实现院系:计算机系班级:软件1002学号:201009020229学生姓名:赵江鹏指导教师:袁和金设计周数:2成绩:日期:2013年9月4日一、课程设计的目的与要求1.目的:通过综合性实验的设计,使学生综合训练自己的需求分析、系统设计、编程、测试等各种能力,积累软件开发的经验,提高学生进行软件开发所需具备的专业素质以及团队协作能力。要求:完成一个在线测试系统的分析、设计、编程、测试工作。二、设计正文(1)主要内容:1.编写一个在线测试系统,实现在线的答题、判卷、分析。2.教师都可以生成试卷,并向学生开放答题;3.学生可以登录系统,在规定的考试时间段内进行答题;4.答题结束后,能够自动完成判卷,并给出分析;(2)需求规格分析:需求概述:1:软件需求与描述:学生登陆答题,分数查询。管理员系统管理,用户管理,试题添加管理。考试设置等。2:开发平台,VisualStudio2010+SQLSERVER2008R23:功能需求分析:学生登陆系统,参与答题。成绩查询。后台,管理员系统管理,添加删除用户,试题添加啊修改。考试规则设置等。(3)数据库各表设计如下用户表设计:考试结果表设计:考试表设置:试题表设置:性能需求1)数据精确度本系统数据库字段主要数据类型是int、varchar、在数据精确度上没有太高要求,数据库存储的信息完全可以反应真实数据。设计长度尽可能长。2)时间特性学生,管理员登陆。与数据库信息交互没有时间限制。3)适应性本系统功基本实现了一个小型考试系统所需基本功能,在.Net平台上适应性良好。后面需要在系统管理与规则设置上多做一些整改。(4)运行界面:登陆:选择登陆身份:学生身份登陆:因为此学生已经参加过考试。考试菜单不可用。分数查询:一个新用户登陆:答题完毕,提交试卷:以管理员身份登录,进入管理员操作界面,如图1.2所示。管理员可以添加用户、设置考试参数、查询考试成绩及添加考试题。(5)关键部分代码实现:Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newfrmLogin());privatevoidpictureBox1_Click(objectsender,EventArgse){if(cbbType.Text.Trim()==请选择登录身份){BaseClass.Message(提示:请选择登录身份!,警告);}elseif(txtUser.Text.Trim()==||txtPwd.Text.Trim()==){BaseClass.Message(提示:请输入登录用户名和密码!,警告);}else{if(cbbType.Text.Trim()==学生){conn.Open();SqlCommandcmd=newSqlCommand(select*fromtb_UserwhereUserFlag=0andUserName='+txtUser.Text.Trim()+'andUserPwd='+txtPwd.Text.Trim()+',conn);SqlDataReadersdr=cmd.ExecuteReader();sdr.Read();if(sdr.HasRows){this.Hide();frmStudentExamstudentexam=newfrmStudentExam();studentexam.Username=txtUser.Text.Trim();studentexam.Userpwd=txtPwd.Text.Trim();studentexam.Show();}else{BaseClass.Message(提示:学生用户名或密码错误!,警告);}conn.Close()}else{conn.Open();SqlCommandcmd=newSqlCommand(select*fromtb_UserwhereUserFlag=1andUserName='+txtUser.Text.Trim()+'andUserPwd='+txtPwd.Text.Trim()+',conn);SqlDataReadersdr=cmd.ExecuteReader();sdr.Read();if(sdr.HasRows){this.Hide();frmAdminManageadminmanage=newfrmAdminManage();adminmanage.username=txtUser.Text.Trim();adminmanage.Show();}else{BaseClass.Message(提示:管理员用户名或密码错误!,警告);}conn.Close();}}}}publicstringstudentNum=;SqlConnectionconn=BaseClass.DBCon();SqlCommandcmd;Label[]lbl=newLabel[10];RadioButton[]rb=newRadioButton[100];publicstaticArrayListal=newArrayList();publicstaticArrayListal1=newArrayList();publicstaticArrayListal2=newArrayList();inti=0;intj=0;intk=0;publicstaticstringRightAns=;//publicstaticstringStudentAns=;publicstaticstring[]StudentAns;publicstaticstringRightAns1=;//publicstaticstringStudentAns1=;publicstaticstring[]StudentAns1;publicstaticstring[]RightAns2;//publicstaticstringStudentAns2=;publicstaticstring[]StudentAns2;intexamTime;//考试总时间intxzNum;//选择题比例intxzFz;//选择题分值intpdNum;//判断题比例intpdFz;//判断题分值inttkNum;//填空题比例inttkFz;//填空题分值intxzflag;intpdflag;inttkflag;privatevoidfrmStartExam_Load(objectsender,EventArgse){//获取基本信息tslStudentNum.Text=studentNum;conn.Open();cmd=newSqlCommand(selectUserCHfromtb_UserwhereUserName='+studentNum+',conn);tslStudentName.Text=cmd.ExecuteScalar().ToString();conn.Close();//获取考试总时间及相关信息conn.Open();SqlCommandcd=newSqlCommand(select*fromtb_ExamSet,conn);SqlDataReadersr=cd.ExecuteReader();sr.Read();examTime=Convert.ToInt32(sr[7].ToString());xzNum=Convert.ToInt32(sr[1].ToString());xzFz=Convert.ToInt32(sr[2].ToString());pdNum=Convert.ToInt32(sr[3].ToString());pdFz=Convert.ToInt32(sr[4].ToString());tkNum=Convert.ToInt32(sr[5].ToString());tkFz=Convert.ToInt32(sr[6].ToString());sr.Close();conn.Close();tsslExamTime.Text=examTime.ToString();tsslExamResultTime.Text=examTime.ToString();//随即产生选择题xzflag=xzNum/xzFz;conn.Open();stringstrSQL1=selectcount(*)fromtb_TestwhereTypeID=1;//获取数据库中选择题数量SqlCommandcmdx=newSqlCommand(strSQL1,conn);intjj=Convert.ToInt32(cmdx.ExecuteScalar());conn.Close();if(xzflagjj){BaseClass.Message(提示:抽取试题数量大于数据库中选择题的数量,请联系管理员向数据库中添加选择题后再来答卷!,警告);this.Close();}else{StudentAns=newstring[xzflag];for(intkk=0;kkStudentAns.Length;kk++){StudentAns[kk]=F;}if(xzNum==0){toolStripLabel17.Text=没有抽取试题!;toolStripButton8.Enabled=false;toolStripButton3.Enabled=false;}else{conn.Open();cmd=newSqlCommand(selecttop+xzflag+*fromtb_TestwhereTypeID=1orderbynewid(),conn);SqlDataReadersdr=cmd.ExecuteReader();while(sdr.Read()){al.Add(sdr[0].ToString());RightAns+=sdr[3].ToString().Trim();}sdr.Close();stringsql=select*fromtb_TestwhereID=+Convert.ToInt32(al[0]);SqlCommandcmd1=newSqlCommand(sql,conn);SqlDataReadersdr1=cmd1.ExecuteReader();sdr1.Read();txtTiMu.Text=sdr1[2].ToString();txtA.Text=sdr1[4].ToString();txtB.Text=sdr1[5].ToString();txtC.Text=sdr1[6].ToString();txtD.Text=sdr1[7].ToString();conn.Close();toolStripLabel17.Text=[共有+al.Count.ToString()+道试题];}}//随即产生判断题pdflag=pdNum/pdFz;conn.Open();stringstrSQL2=selectcount(*)fromtb_TestwhereTypeID=2;//获取数据库中判断题数量SqlCommandcmdm=newSqlCommand(strSQL2,conn);intdd=Convert.ToInt32(cmdm.ExecuteScalar());conn.Close();if(pdflagdd){BaseClass.Message(提示:抽取试题数量大于数据库中判断题的数量,请联系管理员向数据库中添加判断题后再来答卷!,警告);this.Close();}else{StudentAns1=newstring[pdflag];for(intmm=0;mmStudentAns1.Length;mm++){StudentAns1[mm]=F;}if(pdNum==0){to
本文标题:在线测试系统实验报告
链接地址:https://www.777doc.com/doc-6340854 .html