




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
烟台大学毕业论文(设计)试题库系统设计毕业论文目 录1 绪 论11.1 本课题的研究意义及必要性11.2 相关领域国内外应用的现状及发展趋势21.3 试题库系统建立原理32 系统分析42.1 系统功能要求42.2 系统开发功能42.3 系统的可行性分析53 总体设计63.1 功能模块划分63.2 系统模块设计图63.3 系统流程图73.4 开发工具和开发框架介绍93.4.1 Visual C+ 6.0 介绍93.4.2 MFC介绍93.4.3 ACCESS 数据库介绍94 详细设计104.1 各模块的功能10WORD嵌入的实现104.2 系统数据库的设计114.2.1 数据库表的结构114.2.2 数据库选择及理由135 系统实现135.1试题及答案的录入135.1自动组卷过程166 综合测试256.1简单功能实现256.1.1 登录和用户管理界面256.1.2 试题管理界面266.1.3 试卷管理界面266.1.4 试卷定义276.1.5 手动组卷276.1.6 自动组卷286.2系统运行环境28结 束 语29致 谢30参考文献311 绪 论1.1 本课题的研究意义及必要性世界上首台计算机诞生于上个世纪40年代,经过六十多年的发展,计算机技术已经非常成熟。近十年来,随着计算机的小型化和普及,计算机也越来越多的走进人们的生活,在人们的生活,工作中扮演者越来越重要的角色。计算机办公始于上个世纪80年代,人们利用计算机软件技术,根据人们的需求来设计符合要求的软件,帮助人们处理日常工作中的事务。该技术的应用,不仅将我们从繁琐的工作中解放出来,提高了工作效率,而且使办公朝着无纸化,自动化方向发展。在目前的大多数学校中,出卷过程仍然是由任课老师手动完成。任课老师往往凭借多年的教学经验,综合考虑到各个知识点,试题难度,参照往年试题,从庞大的试题库中抽取相应的试题等,才能组成一份合格的试卷,其任务的繁琐程度可想而知。大大增加了老师的工作量。利用计算机软件技术,来完成从试题的存储,到组成一份合格的考试试卷的过程,不仅能够大大降低了老师的任务量,提高任课老师工作效率,更加有利于教育事业朝着科技化,自动化,数字化方向发展。与此同时,从试题的存储到出卷整个过程全部交给计算机完成,整个过程可以做到无纸化,节约了纸张,响应低碳生活的号召。由于系统将整个流程全部交给计算机本身完成,抽题的环节做到了随机抽取试题,试卷的保密性也得到了保证,同时有利于知识面的全面覆盖。 1.2 相关领域国内外应用的现状及发展趋势基于上述原因,国内外有许多软件从事人员,科研机构,商业公司都对试题库系统投入了研究,在试卷自动生成技术方面得出了许多宝贵的经验。随着需求的不断提高,试题库系统也从最初单一的试题存储功能,逐步拓展到了集试题存储,试题管理,试卷生成,试卷存储,试卷管理等功能于一体的完整系统。目前,虽然国内也有比较成熟的试题库系统,但由于我国自动化办公起步较晚,数字化教学成本较高等问题,许多学校,尤其是中小学,其出卷的过程仍然由任课老师手动完成。计算机技术在教育教学方面的普及性还有待提高。在国外,试题库系统正在朝着更加完善的方向发展,成为计算机辅助教学(CAI)中非常重要的一个组成部分。计算机辅助教学(Computer Aided Instruction ,简称CAI)是在计算机辅助下进行的各种教学活动,以对话方式与学生讨论教学内容、安排教学进程、进行教学训练的方法与技术。CAI为学生提供一个良好的个人化学习环境。综合应用多媒体、超文本、人工智能和知识库等计算机技术,克服了传统教学方式上单一、片面的缺点。它的使用能有效地缩短学习时间、提高教学质量和教学效率,实现最优化的教学目标1。我国目前也在大力推行教育改革,计算机辅助教学也将成为教育教学过程中重要的方式。计算机辅助教学能够有力的辅助老师完成教育教学过程中的每个环节,是教育改革过程中非常重要的手段之一。它能够促进教学手段的改革进度,推进教学方式改革,大大普及现代化教学手段的应用。根据国外经验,试题库系统势必将会伴随着计算机辅助教学系统在学校中的普及,而成为用户组卷过程中重要的辅助工具。1.3 试题库系统建立原理试题库管理和试卷库管理是该试题库系统中最重要的两个部分。试题库的管理过程,又包含了试题的录入和试题的存储。试题录入过程中,因为每个学科中有各种公式,图片等学科专有内容,所以该试题库系统中用到了 OLE嵌入WORD技术,将WORD 文本框嵌入到系统,做到了公式,图片的最大化兼容。试题的存储过程中,因为试题和答案中既可以包含文字,也可以包含图片等信息。所以试题在数据库中的存储采用长二进制数据的方式。本系统采用二进制流的方式,完成数据从WORD到数据库的互相导入和导出。试卷库管理过程,自动组卷过程,采用随机数算法,从试题库中抽取试题来组成试卷。该系统是采用C+语言,基于MFC 进行开发,具体原因如下:C+是一种使用非常广泛的计算机编程语言。C+是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格2。MFC(Microsoft Foundation Classes),是一个微软公司提供的类库(class libraries),以C+类的形式封装了Windows的API,并且包含一个应用程序框架,以较少程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类3。2 系统分析2.1 系统功能要求本系统设计要求,开发一个能够达到实用程度的试题库系统。本系统允许用户对试题进行存储,对试题进行管理,并能根据设定条件,从试题库中抽取试题组成一份符合设定条件的试卷。为了系统的安全性考虑,使用者分成两种不同的权限,即管理员和普通用户。管理员可以对该试题库进行所有操作,包括对用户进行管理。普通用户仅有使用该系统的权限。为了满足用户的需求,软件模拟人工的整个组卷流程,从试题集中抽取试题,综合各方面信息,比如题型,各个题型的分值,总分数,试题与往年的重复性等问题,组成一份试卷,同时生成这份试卷的参考答案。为了能够让自动生成的试卷能够实用,不需做任何修改,生成的试卷必须有通用试卷的试卷格式。本系统旨在运用计算机软件技术将考试过程中复杂繁琐的出卷过程实现自动化,从而减少出卷人的工作量,提高教学办公效率。2.2 系统开发功能试题库系统要求集成试题的存储与管理,试卷的存储与管理,组卷和试卷打印等功能于一体。该系统要实现如下功能:(1) 数据库的设计数据库包括注册用户的信息,学科和各个学科下的单元信息,试题和试题答案以及组成的试卷。(2) 实现WORD 文本框嵌入考试试题中难免会包含公式,图片等非文本信息,为了能够实现这些信息的最简单录入,满足用户需求,系统采用OLE技术嵌入WORD文本框4,实现了公式,图片等非文本信息的最大化兼容,同时,组成的试卷和答案可以导出为WORD格式,支持打印。(3) 实现自动组卷过程用户提前设计组卷参数,系统自动生成符合要求的试卷,提高了系统的安全性和公平性。(4) 系统界面设计用户界面,用户可以在该界面和子菜单下对系统进行相关操作,包含用户管理,试题管理,试卷管理等功能。2.3 系统的可行性分析试题库系统虽然有比较成熟的产品,但由于使用成本,实用性以及适用性等原因,目前试题库系统在学校中的普及性不高,尤其是中小学学校。所以一款通用的,具有良好的适应性的试题库系统的开发是很有必要的。本课题采用C+语言基于MFC技术在VC+ 6.0环境下进行开发。C+语言是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。C+语言具有安全,可靠,稳定等优点,所以非常适合大中型软件的开发。MFC技术是微软公司提供的基础类库,同时包含应用程序框架,可以大大减少程序开发人员的代码量。因此本系统是基于MFC技术进行开发。其中试题以及答案的录入部分采用了OLE 嵌入WORD技术,不仅支持文本编辑,还支持图片和公式的插入,实现了文本编辑和文本兼容性的最大化。3 总体设计3.1 功能模块划分根据试题库系统的实际需要,实现起来大致可分为以下几个方面:(1) 用户管理用户管理包括用户的增加,删除,权限赋予,同时区分不同权限用户对系统的使用权限。(2) 课程设置课程设置包含课程的增加,删除,以及相关课程下各个单元的增加,删除,修改。(3) 题型设置因为每个学科的试卷包含的题型各不相同,所以用户可以 根据自己的需求来进行题型的增加,删除。(4) 手动组卷用户根据自身需求,手动从试题库中抽取试题,组成符合要求的试卷,同时自动生成试卷答案。(5) 自动组卷将组卷的过程交给计算机,计算机根据提前设定的参数,来随机从试题库中抽取试题,组成试卷,并生成答案。(6) 试卷管理对系统生成的试卷进行管理,包括试卷删除,试卷导出,试卷相关答案的导出。因为导出的试卷和答案是WORD 格式,所以可以对其进行打印。3.2 系统模块设计图根据以上功能模块的划分,可得出系统的模块设计图(图3.1)。用户管理部分,主要是用于添加用户,修改密码。在添加用户的同时,用户必须选择新建用户的权限,管理员权限具有系统的所有功能,普通用户仅有使用系统的权限。条件设置部分包含了课程的管理,该课程下单元知识的管理以及题型的管理。题型管理主要为了满足不同课程之间对试卷题型的不同要求。试卷设置部分,含有试卷管理,试题的管理,试卷的定义,试卷的定义的功能用于预先设定组卷的参数。自动组卷功能依据试卷定义功能所设定的参数在数据库中进行抽题组卷。手动组卷部分同样依据试卷定义部分的参数,来从试题库中手动筛选试题。具体系统模块图如图3.1所示。试题库系统用户管理条件设置试卷管理生成试卷用户管理修改密码重新登录课程设置知识单元题型设置试题管理试卷管理试卷定义手动组卷自动组卷图 3.1 系统的模块设计图3.3 系统流程图该系统的使用流程如下,用户登录之后,首先要做生成试卷之前的准备工作,即添加试题。第一步是添加课程信息。课程信息下又包括该课程下的单元知识信息。然后添加该试卷所用到的题型。第一步完成之后,就可以添加试题。试题的信息包含了该试题所属的科目,所属的单元,以及该试题的题型,试题难度等。第二步是定义试卷。试卷的参数由用户自己完成,包含试卷的总分值,总难度,总频度,试卷的题型,每个题型的试题个数,每个题型每道试题的分值等。 上述两步准备工作完成之后,就可以开始进行组卷。系统提供了两种组卷方式,分别是手动组卷和自动组卷。手动组卷是用户根据预先设置的试卷参数,手动选择试题来组成试卷;自动组卷方式将这个过程交给系统自动完成。组卷完毕之后,用户可以查看试卷,可以将试卷以及答案保存为(*.doc)格式的文档,进行修改,打印等后续工作,试题库系统功能完毕,即可退出系统。程序开始试卷定义自动组卷?手动组卷?开始组卷查看试卷?退出系统YN图3.3.2 系统流程图YNNYNNYY用户验证导出试卷和答案试题编号是否存在?试题数量足够3.4 开发工具和开发框架介绍3.4.1 Visual C+ 6.0 介绍Visual C+ 6.0 是微软公司推出的一款C+编译器,将高级编程语言翻译成机器语言的程序。Visual 是“可视化”的意思。Visual C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境。Visual C+6.0内包含了编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。Visual C+ 6.0具有如下优点:1 有面向对象的可视化设计工具Visual C+ 6.0提供可视化平台,把Windows界面设计的复杂性封装起来,编程人员不必为界面的设计编写大量的代码。只需按照编程的需要,用Visual C+ 6.0提供的工具箱在界面上添加各种对象,此时,所见即所得。而界面的设计代码是由Visual C+ 6.0自动产生的,编程人员只需编写实现功能的那部分代码,从而大大提高了编程效率。事件驱动的编程机制在事件驱动的应用程序中,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段。事件可以由用户操作触发,还可以由应用程序本身的消息触发,可以由来自操作系统或其他应用程序的消息触发。2 构化的程序设计语言Visual C+ 6.0是在C语言的基础上发展起来的,它吸收了其他结构化程序设计语言的优点,具有丰富的数据类型和函数,结构化程序结构,易学易用。3 数据库功能与网络支持由于应用程序中三层体系结构的出现,使得网络、应用程序以及数据库的连接更加紧密起来。Visual C+ 6.0提供了一些接口来实现网络以及数据库的连接。Visual C+ 6.0有很强的数据库管理功能,可以通过直接访问或建立连接的方式访问并操作后台数据库。4 分利用Windows资源Visual C+ 6.0通过三种技术来实现与Windows资源的交互,这三种技术是:动态数据交换编程技术、对象链接与嵌入技术以及动态链接库技术。3.4.2 MFC介绍MFC是微软公司提供的基础类(Microsoft Foundation Classes)。其伴随着微软的C+开发工具 Microsoft Visual C+ 发布。MFC的主要优点是效率高。MFC采用可视化编程,把Windows界面设计的复杂性封装起来,编程人员不必为界面的设计编写大量的代码。提高了代码编写效率。同时它还保持了所有C+编程的特点,比如继承和封装。3.4.3 ACCESS 数据库介绍美国Microsoft公司于1994年推出的微机数据库管理系统。它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面数据库管理系统。其主要特点如下: (1)完善地管理各种数据库对象,具有强大的数据组织、用户管理、安全检查等功能。 (2)强大的数据处理功能,在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE(DBASE、FoxBASE的统称)数据库系统所无法实现的客户服务器(Client/Server)结构和相应的数据库安全机制,Access具备了许多先进的大型数据库管理系统所具备的特征,如事务处理/出错回滚能力等。 (3)可以方便地生成各种数据对象,利用存储的数据建立窗体和报表,可视性好。 (4)作为Office套件的一部分,可以与Office集成,实现无缝连接。 (5)能够利用Web检索和发布数据,实现与Internet的连接。 Access主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。4 详细设计4.1 各模块的功能由本人和胡越同学完成,我们合作的一项重要原因就是集合两个人的能力,将本系统做的完美。其中,本人主要负责word 嵌入和自动组卷部分,下面重点介绍这两部分,其余部分做简单介绍。WORD嵌入的实现(1) 设计需求本课题设计之初,我们就考虑到试卷中难免会包含公式,图片等。其中公式的插入也可以用图片的方式插入,但无疑会增加使用者的使用难度。因此,我们考虑到了通用的编辑文档word ,即实现试题的录入,答案的录入过程依托于word 文本框,这样即可以在录入过程中直接拷贝粘贴,又同时支持图片和公式的直接插入。(2) OLE技术介绍OLE(Object Linking and Embedding,对象连接与嵌入)。OLE不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为部件对象模型(Component Object Model,简称COM)。OLE可以用来创建复合文档,复合文档包含了创建于不同源应用程序,有着不同类型的数据,因此它可以把文字、声音、图像、表格、应用程序等组合在一起。(3) 功能实现就本课题而言,我们要在系统中嵌入word ,实际就是将 word 类型库中需要用到的类添加到程序中,这样程序中就会多出几十个甚至上百个类,可以通过这些类提供的接口来实现必要的功能。我们的程序也是以word 类型库中提供的类为设计主框架。4.2 系统数据库的设计数据库是该系统重要的组成部分,为了满足系统设计需求,设计下面所示的数据项和数据结构:l 用户信息表:该表中有用户名,用户密码和用户的权限三个字段。l 课程以单元知识表:该表用于存储用户添加的课程信息以及课程下的单元知识。l 试卷表:用于存储系统生成的试卷。包含试卷编号,试卷名称,试卷,试卷答案,组卷方式,试卷难度等信息。l 试题表:试题表用于存储试题。包含有试题彪悍,试题所属课程,试题题型,试题所属单元,试题,试题答案,试题难度等信息。l 题型表:存储用户保存的题型。4.2.1 数据库表的结构(1) 用户信息表表名:t_user, 在该表中保存了用户注册的基本资料,数据表结构如表4.1所示。表 4.1 用户信息表字段名称数据类型数据长度备注ID长整形8用户名编号Username文本50用户名password文本50用户密码Userright文本50用户权限 (2)单元信息表表名:t_examunit, 在该表中保存了用户添加的课程单元信息,其数据结构如表4.2所示。表 4.2 单元信息表字段名称数据类型数据长度备注ID长整形8课程名编号textname文本50课程名examunit文本50单元名 (3) 试题信息表表名:t_problem, 该表用于存储试题以及试题答案信息,其数据结构如表4.3所示。表4.3 试题信息表字段名称数据类型数据长度备注ID长整形8试题编号tno文本50试题号ttextname文本50试题所属课程tprotype文本50试题所属题型texamunit文本50试题所属单元tproblemOLE 对象试题tanswerOLE 对象试题答案tdiffcul数字8试题难度tscore数字8试题分值tcount数字8试题频度 (4) 试卷信息表表名:t_paper,该表用于存储生成的试卷。其数据结构如表4.4所示。表 4.4 试卷信息表字段名称数据类型数据长度备注ID长整形8试卷编号pno文本50试卷号pname文本50试卷名称pproblemOLE 对象试卷panswerOLE 对象试卷答案pway文本50组卷方式pdiffcul数字8试卷总难度pscore数字8试卷总分值pcount数字8试卷总频度4.2.2 数据库选择及理由 本系统应用的数据库是Microsoft ACCESS。ACCESS数据库是微软公司office 组件之一,它继承了office 办公软件良好的界面和简洁的操作风格。同时,ACCESS可以与其他office 工具实现无缝对接,在试卷的导入和导出过程中更加方便。同时,本系统用户主要针对老师或者某一课题小组,数据量比较小,一般不会超过100M,因此ACCESS比较合适本系统。5 系统实现本系统核心模块分为两部分,第一部分是试题以及答案的录入过程,第二个是自动组卷的过程。下面就这两个模块做介绍。5.1试题及答案的录入(1)试题的保存过程void Problem:OnButtonProblemsave() if(probopen)m_pProblem-MyWordSaveAsCtwo();m_pProblem-MyWordClose();CopyFile(c:test2.doc,c:test.doc,false);probopen=false;UpdateData(TRUE);/关闭问题和答案浏览/if(probopen)probopen=false;m_pProblem-MyWordClose();/避免使用内存使用冲突/CString strSQL;UpdateData(true);strSQL.Format(select * from t_problem where tno=%s,m_strTNO);if(!m_rProblemData.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;m_rProblemData.Edit();m_rProblemData.m_tno=m_strTNO; m_rProblemData.m_ttextname=m_strTextName;m_rProblemData.m_tprobtype=m_strExamName;m_rProblemData.m_texamunit=m_strExamUnit;m_rProblemData.m_tdifficult=m_intDiff;m_rProblemData.m_tscore=m_intScore;m_rProblemData.m_tcount=0;/将WORD文件加入/加入问题/CFile fileword; CFileStatus fileStatus; CString fileLocate; fileLocate=c:test.doc; fileword.Open(fileLocate,CFile:modeRead);fileword.GetStatus(fileStatus); m_rProblemData.m_tproblem.m_dwDataLength=fileStatus.m_size; HGLOBAL hGlobal = GlobalAlloc(GPTR,fileStatus.m_size); m_rProblemData.m_tproblem.m_hData=GlobalLock(hGlobal);fileword.ReadHuge(m_rProblemData.m_tproblem.m_hData,fileStatus.m_size); m_rProblemData.SetFieldDirty(&m_rProblemData.m_tproblem);m_rProblemData.SetFieldNull(&m_rProblemData.m_tproblem,false);GlobalUnlock(hGlobal);fileword.Close();m_rProblemData.Update();m_rProblemData.Close();MessageBox(保存成功!);(2) 答案的保存过程void Problem:OnButtonAnswersave() if(answopen)m_pAnswer-MyWordSaveAsCtwo();m_pAnswer-MyWordClose();CopyFile(c:test2.doc,c:test1.doc,false);answopen=false;UpdateData(TRUE);/关闭问题和答案浏览/if(answopen)answopen=false;m_pAnswer-MyWordClose();/避免使用内存使用冲突/CString strSQL;UpdateData(true);strSQL.Format(select * from t_problem where tno=%s,m_strTNO);if(!m_rProblemData.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;m_rProblemData.Edit();m_rProblemData.m_tno=m_strTNO; m_rProblemData.m_ttextname=m_strTextName;m_rProblemData.m_tprobtype=m_strExamName;m_rProblemData.m_texamunit=m_strExamUnit;m_rProblemData.m_tdifficult=m_intDiff;m_rProblemData.m_tscore=m_intScore;m_rProblemData.m_tcount=0;/将WORD文件加入/CFile fileword; CFileStatus fileStatus; CString fileLocate; /加入答案/fileLocate=c:test1.doc; fileword.Open(fileLocate,CFile:modeRead);fileword.GetStatus(fileStatus); m_rProblemData.m_tanswer.m_dwDataLength=fileStatus.m_size; HGLOBAL hnGlobal = GlobalAlloc(GPTR,fileStatus.m_size); m_rProblemData.m_tanswer.m_hData=GlobalLock(hnGlobal);fileword.ReadHuge(m_rProblemData.m_tanswer.m_hData,fileStatus.m_size); m_rProblemData.SetFieldDirty(&m_rProblemData.m_tanswer);m_rProblemData.SetFieldNull(&m_rProblemData.m_tanswer,false);GlobalUnlock(hnGlobal);fileword.Close();/m_rProblemData.Update();m_rProblemData.Close();MessageBox(保存成功!);5.1自动组卷过程void AutoPanel:OnAutoStart() AfxEnableControlContainer(); /允许应用程序作为控件容器来使用 CString str1,str2; UpdateData(TRUE); CString strTNO,strSQL; HANDLE hFind; CString strFileName; CMyWordOffice wd; CString tempno200,minno200; int tempscore200,tempdiff200,tempcount200,tempvalue; int minscore,mindiff,mincount,minvalue=10000; int tempscount=0; int recordcount=0; BOOL temphave;/检测编号是否存在/ strSQL.Format(select * from t_paper where pno=%s,m_strPaperNo); if(!m_rPaperData.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL) MessageBox(打开数据库失败!,数据库错误,MB_OK);return ; if(m_rPaperData.GetRecordCount()!=0)m_rPaperData.Close();MessageBox(该编号已经存在,请重新输入编号!);return; m_rPaperData.Close(); m_ctrProgress.SetRange(0,m_intRandCount);/设置进度条最大范围/ /开始随机抽取试题/for(int i=0;im_intRandCount;i+)/在随机抽取次数内抽取,FOR-1/tempscount=0;m_ctrProgress.SetPos(i); for(int j=0;jtypecount;j+) strSQL.Format(select * from t_problem where tprobtype=%s and ttextname=%s,etypej,m_strTextName); if(!m_rProblemData.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL) MessageBox(打开数据库失败!,数据库错误,MB_OK); return ;m_rProblemData.MoveFirst();recordcount=0; /统计记录数 while(!m_rProblemData.IsEOF() recordcount+; m_rProblemData.MoveNext(); if(recordcount0) m_rProblemData.MoveFirst(); m_rProblemData.Move(rand()%recordcount);/随机抽取 temphave=false; for(int ii=0;iitempscount;ii+) if(tempnoii=m_rProblemData.m_tno) temphave=true; break; if(!temphave) tempnotempscount=m_rProblemData.m_tno; tempscoretempscount=m_rProblemData.m_tscore; tempdifftempscount=m_rProblemData.m_tdifficult; tempcounttempscount=m_rProblemData.m_tcount; tempscount+; ecountj-; m_rProblemData.Close(); tempvalue=0;for(int jj=0;jjtempscount;jj+) tempvalue+=abs(tempscorejj-totalscore); tempvalue+=abs(tempdiffjj-totaldiff); tempvalue+=abs(tempcountjj-totalcount);if(tempvalue=minvalue)minscore=0,mindiff=0,mincount=0; for(int kk=0;kktempscount;kk+) minnokk=tempnokk;minscore+=tempscorekk;mindiff+=tempdiffkk;mincount+=tempcountkk; m_intAscore=minscore;m_intAdiff=mindiff;m_intAcount=mincount; minvalue=tempvalue;/在随机次数内抽取结束,FOR-1/随机抽取试题结束/将空白文档复制两份,分别用来保存问题和答案/ CopyFile(c:blank.doc,c:test.doc,FALSE); CopyFile(c:blank.doc,c:test1.doc,FALSE);/打开文档,准备进行组卷/ wd.CreateDocuments(); wd.OpenDocument(c:test.doc); wd.SetFont(黑体,14,0,0); wd.SetFont(true,false,false); wd.WriteText( 烟台大学_年度+m_strTextName+m_strPaperName+rn); wd.SetFont(黑体,14,0,0); wd.SetFont(true,false,false); wd.WriteText( 班号:_姓名:_学号:_rn);m_ctrProgress.SetRange(0,typecount*2); /for(int ii=0;iitypecount;ii+)/根据题型来确定生成试卷类型,for-1 m_ctrProgress.SetPos(ii);/ wd.SetFont(宋体,12,0,0); wd.SetFont(true,false,false); str1.Format(%d,escoreii/etcountii); str2.Format(%d,escoreii); wd.WriteText(enumberii+、+etypeii+(每题+str1+分,共+str2+分)rn); ecountii=0;for(int j=0;jtempscount;j+)/for-2/ strTNO=minnoj; / MessageBox(strTNO); st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 60794-1-110:2025 FR Optical fibre cables - Part 1-110: Generic specification - Basic optical cable test procedures - Mechanical tests methods - Kink,Method E10
- 部编人教版小学6六年级语文下册教案
- 重庆知识教育培训课件
- 暑假培优练:实验综合练 -2025高一物理暑假专项提升(人教版)
- 外研版八年级英语上册Module1单元测试试卷-含答案03
- 统编版语文八年级下册第四单元练习 (含答案)
- 重大危险源管控
- 老年人身体变化课件
- 《中外语言对比》课程简介与教学大纲
- CN115359845B 一种融合单细胞转录组的空间转录组生物组织亚结构解析方法(广东工业大学)
- 绿化养护服务投标方案(技术标)
- 电力营销考试题库
- 护理专业实训室设备管理制度
- TB-T 3356-2021铁路隧道锚杆-PDF解密
- 2024届陕西省渭南市临渭区小升初语文重难点模拟卷含答案
- (正式版)HGT 6313-2024 化工园区智慧化评价导则
- 配电自动化终端缺陷处理
- 《电力系统治安反恐防范要求 第4部分:风力发电企业》
- 小区物业接管方案
- 《生产部月报模板》课件
- 骨质疏松性骨折应对策略骨折联络服务研究进展及应用探讨
评论
0/150
提交评论