基于MFC的考试管理系统
该资源详细的讲解了怎样开发考试管理系统的步骤以及有大部分的代码资源。有利于学习开发、对照有关的系统开发。目录摘要…ABSTRACTII目录II第I章引言1开发背景…误!未定义书签。112选题意义误!未定义书签。113研究内容第2章系统的相关技术介绍…21MFC简介22 SQL SERVER2000简介423ODBC简介24 CRECORDSET类和 CRECORDVIEW类简介+“++++++++4+++25 POWERDESIGNER1简介24本章小结第3章系统的分析与设计.··中·“·::···········:··················“···:··*······3.1需求分析32系统设计321概要设计…非着丰非非目非非自83.2.2系统总体流程图…323系统模块设计,…324菜单设计.103.3本章小结…11第4章数据库设计4I数据库的需求分析124.2数据库表设计4.3数据库建表语句1344本章小结…19第5章系统实现205.1登录模块实现*····-··········*·=·····205.2基本信息模块实现1面错误!未定义书签。2052.1管理员信息…误!未定义书签。20522系部信息错误!未定义书签。24523班级信25524学生信错误!未定义书签。26525教师信息→·+“·*错误!未定义书签。275.2.6章节信息285.3题库管理模块实现.295.3.1判断题信息29532填空题信息*→··*→···········“····“=:··*····*······*·················“·533单选题信息…错误!未定义书签。30534多选题信息错误!未定义书签。3054试卷管理模块实现,…+++++++++++++++++++…误!未定义书签。31541定制试卷中··中中·和中·,···非中…{误!未定义书签。31542试卷管理错误!未定义书签。3455备份惨改模块实现.375.3.修改密码.5.32备份数据库13956本章小结日着南·前非非非非非第6章结束语.141致谢42参考文献43第1章引1.1开发背景在各学校开始逐步引入计算机的今天,试卷作为考察教学成果的重要手段之直没有得到较好的改善,试卷的编辑、整珥工作占了很大的工作量叫传统的手工出卷过程,存在不少弊端:◆出现不必要的重复劳动,造成人力资源及时间上的浪费:◆缺乏科学的衡量、评价及统一试卷难易度、试卷质量的有效手段;◆存在自教自考,考前漏题的情况◆试卷容易出现错漏缺现象,引起不必要的麻烦在以往的教学中,老师出试卷大多由手工出卷,这样生成的试卷往往会有知识点分布太集中、难易程度不当、分值分布不均等一些缺点;这样,既增加了老师的负担,也没有达到很好考查学生学习的真实水平,造成教学上的失误。基于以上的原因,有很多从事软件开发的人员,在试卷自动生成方面做了很大的研究。本系统希望利用计算杋强大的数据处理功能,由计算机逐步代替传统的人工出卷,并且规范岀卷程序,使出卷工作更加和学化、现代化,使教育工作更上一层楼。1.2选题意义w. docIn co考试管理系统,此课题目的是在我们以往学习数据库的基础上,灵活运用数据库开发软件C艹+和结构化查询语言SQL2000,开发出能供教学使用的一套出试卷系统,以方便教学。应用所学的有关数据库的知识,更深入地学习VC+和SQL200,将所学的书面知道和实际应用结合起来,以达到学以致用的日的。在各学校开始逐步引入计算机的今天,试卷作为考察教学成果的重要手段之·,通用试卷自动生成系统升化了传统的手工出卷,解决了很多问题,例如:遥免了不必要的重复劳动:节约了人力资源及时间;使用科学的衡量、评价及统一试卷难易度、试卷质量的有效手段;大幅度降低了试卷出现错漏缺的机率;减少不必要的麻烦。1.3开发内容班级考试管理系统主要涉及的信息数据包括系统管理员信息,系部信息,班级信息,学生信息,教师信息,试卷信息和各种题库等数据,涉及的操作主要包括各种信息数据的管理,为考试定制的试卷,试卷管理等管理操作,教师密码修改,备份数据库等。经考查与分析,典型的考试管理系统主要应具有以下功能:◆基本信息管理:包括对系统管理员信息,系部信息,班级信息,学生信息,救师信息,章节信息的录入,修改和删除等功能。◆试卷管理:包括对已创建的试卷数据的删狳,定制考试试卷,选择考试试卷等功能◆题库管理:包扦对判断题,填空题,单项选择题,多项选择题等题库的管理功能。QOc(m豆丁www.docin.com第2章系统的相关技术介绍21MFC介绍MFC( Microsoft Foundation Class Library)屮的各种类结合起来构成了一个应用程序框架,它的日的就是让程序员在此基础上来建立 Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用稈序特有的东西填入这个轮廓。 MicrosoftⅤ Visual c++提供了相应的工具来完成这个工作: App wizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口; Class wizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑3。MFC实现了对应用程序概念的封装,把类、类的继承、动态约束、类的关系和相互作用等封装起来。这样封装的结果对科序员来说,是一套开发模板(或者说模式)。针对不同的应用和目的,程序员采用不同的模板。例如,SD应用程序的模板,MDI应用程序的模板,规则DIL应用程序的模板,扩展DLL应用程序的模板, OLE ACTIVEX应用程序的模板,等等。这些模板都采用了以文档-视为中心的思想,每一个模板都包含一组特定的类。典型的MD应用程序的构成将在下节具体讨论。为了支持对应用程序概念的封装,MC内部必须作大量的作。例如,为了实现消息映射机制,M℃编程框架必须要保证首先得到消息,然后按既定的方法进行处理。又如,为了实现对DLL编程的支持和多线程编程的支持,MIFC内部使用了特别的处理方法,使用模块状态、线程状态等来管理一些重要信息。虽然,这些内部处理对程序员来说是透明的,但是,懂得和理解MFC内部机制有助于写出功能灵活而强大的程序。MFC借助C艹的优势为 Windows开发开辟了一片新天地,同时也借助 Application wizzard使开发者摆脱离」那些每次都必与基本代码,借助 Class Wizard和消息映射使丌发者摆脱了定义消息处理时那种混乱和冗长的代码段。更令人兴合的是利用C++的封装功能使开发者摆脱 Windows中各种句炳的困扰,只需要面对C+中的对象,这样一来使开发更接近开发语言而远离系统。正因为MFC是建立在C++的基础上,所以我强调CC+语言基础对开发的重要性。利用C++的封装性开发者可以更容易理解和操作各种窗口对象;利用C+的派生性开发者可以减少开发自定义窗口的时间和创造出可重用的代码:利用虚拟性可以在必要时更好的控制窗口的活动。而且C++本身所具备的超越C语言的特性都可以使开发者编写出更易用,更灵活的代码在MFC中对消息的处理利用了消息映射的方法,该方法的基础是宏定义实现,通过宏定义将消息分派到不同的成员函数进行处理。因此对于开发系统具有一定的优势。总之,MFC封装了Win32API, OLE APⅠ, ODBC API等底层函数的功能,并提供更高一层的接口,简化了 Windows编程。同时,MC攴持对底层API的直接调用。MFC提供了一个 Windows应用程序开发模式,对程序的控制主要是由MFC框架完成的,而且MFC也完成了大部分的功能,预定义或实现了许多事件和消息处理,等等。框架或者由其本身处理事件,不依赖程序员的代码;或者调用程序员的代码来处理应用稈序特定的事件。MFC是C++类库,程序员就是通过使用、继承和扩展适当的类来实现特定的目的。例如,继承时,应用程序特定的事件由程序员的派生类来处理,不感兴趣的山基类处理。实现这种功能的基础是C++对继承的支持对虚拟函数的支持,以及MFC实现的消息映射机制22 SQL SERVER2000介绍SQL( Structured Query Language,结构查询语言)是个功能强大的数据库语言。SQL通常使用于数据库的遥讯。ANS(美目国家标准学会)声称,SQL是关系数据库管理系统的标准话言。SQL语句通常用于完成一些数据库的操作任务,比如在数据庠中更新数据,或者从数据库中检索薮据。使用SQL的常见关系数据库管理系统有: Oracle、 Sybase、 Microsoft SQL Server、 Access, Ingres等等吊然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如" Select"、" Insert"、" Update"Delete"、" Create"和"Drop"常常被用于完成绝大多数数据库的操作但是,不像其它的语言,如C、 Pascal等,SOL没有循环结构(比如 if-then-lse、do- while以及函数定义等等的功能。而且SQL只有一个数据类型的固定设置,换句话说,你不能在使用其它编程语言的时候创建你自己的数据类型。SL功能强人,但是概括起来,它可以分成以下几组◆DML( Data Manipulation Language,数据操作语言):用于检索或者修改数据◆DDL( Data Definition Language,数据定义语言):用于定义数据的结构,比如创建、修改或者删除数据库对象;◆DCI.( Data Control Language,数据控制语言):用于定义数据库用户的杈限DML组可以细分为以下的几个语句:◆ SELECT:用于检索数据。◆ INSERT:用于增加数据到数据库。◆ UPDATE:用于从数据库中修改现存的数据。◆ DELETE:用于从数据库中删除数据23ODBC介绍ODBC( Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA, Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对薮据庳访问的标准API(应用程序编程接口)。这些AP利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打父道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是 FoxPro、Aes, MYSQL还是Oracle数据库,均可用 ODBC AP进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。一个完整的ODBC由下列几个部件组成:应用程序( Application)ODBC管理器( Administrator),该程序位于 Windows95控制面板( Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。驱动程序管理器 Driver Manager)。驱动程序管理器包含在ODBC32DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件数据源。数据源包含∫数据库位置和数据库类型等信息,实际上是一种数据逹接的抽象。应用程序要汸问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据厍位置、数据厍类型及ODBC驱动程序笭信息,建立起ODBC与貝体数据库的联系.这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。在ODBC中, ODBC API不能直接访问数据库,必须通过驱动稈序管理器与数据库交换信息。驱动程序管理器负责将应月程序对 ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。在访问ODBC数据源时需要ODBC驱动程序的支持,用 Visual++6.0安装程序可以安装SQLServer、 Access、 Paradox、 dBase、 FoxPro、 Excel、 Oracle和 Microsoft Text等驱动程序.在缺省情况下,VC6.0只会安装 SQL Server、 Access、 FoxPro和d Base的驱动程序.如果用户需要安装别的驱动程序,则需要重新运行VC6.0的安装程序并选择所需的驱动程序。ODBC使用层次的方法来管理数据厍,在数据库通信结构的每一层,对可能出现依赖数据库产品自身特性的地方,ODBC都引入一个公共接口以解决潜在的不一致性,从而很好地解决了基于数据库系统应用程序的相对独立性,这也是ODBC一绎推出就获得巨大成功的重要原因之一。24 CRecordSet类和 CRecord View类CRecordset对象代表从一个数据源选择的一组记录的集合,被称作“记录集”。CRecordset对象可以以两种形式使用:动态集和快照。动态集是与其它用户的数据更新保持同步的动态数据集。快照是数据的静态视图。每一种形式都代表打开记录集吋定的组记录,但是当滚动到动态集中的个记录时,动态集将反怏后来由其它用户或由应用程序巾其它记录集对此记录所做的改变。要使用任何一种记录集,通常需要从 CRecordset派生一个应用程序指定的记录集类。记录集从一个数据源中选择记录,然后用户就可以◆在这些记录中滚动更新记录并指定一种加锁模式。过滤记录集,以获得那些从数据源中选择出来的可利用的记录排序记录集。◆参数化该记录集以定制它的具有要直到运行时才知道的信息的选项。CRecord view对象是在控件中显小数据库记录的视这种视是一种直接连接到一个〔 Recordset对象上的格式视。此视是从一个对话框模板资源创建的,并将CRecordSet对象的字段显示在对话框模板的控件中。 CRecordview对象利用对话框数据交换(DDX)和记录字段交换(RFX)机制,使格式上的控件和记录集的
- 2020-12-01下载
- 积分:1
利用Hilbert变换提取信号瞬时特征的算法实现
研究了在工程中如何通过算法来实现利用 Hilbert 变换提取信号的瞬时特征。深入地分析了如何利用数值微分法提高提取瞬时频率特征的精度。最后,给出了一种可行的算法,并通过实验验证了这种方法可以在工程中有效地提取信号的瞬时频率特征。84微机发展第13卷①H(x)=y;H(x)=y;(i=0,1,…n)(j=0,1(11)②在每个小区间/x1,x1+17i=0,1,…,n-1)上由相关定理知:当划分的小区间的长度趋于零时H(x)是三次多项式。s(x)及其一至三阶导数分别一致收敛到f(x)及其一至可以写出分段三次 Hermite插值函数的分段表达式:三阶导数。所以用三次样条插值函数去近似表达用离散值(x)=(1+2x-x过+)2v;+表示的原函数,具有较高的可靠性。3)两种插值的比较挨尔米特 Hermite插值较三次样I-i,1+2条插值具有较好的稳定性与收敛性,但它只能休让各段曲线在连接点上的连续性,而不能保证整条曲线在这些点上y+1Ditl的光滑性。而有时不仅要求曲线连续,而且要求曲线的曲X/(i=0,18)率也连续即要求分段插值函数具有连续的一阶导数,埃H(x)的导数为尔米特 Hermite插值此时就不能满足上述要求6次样条插值较埃尔米特 Hermite插值具有较好的H(x光滑程度,用三次样条插值函数求数值导数比用埃尔米特+2(x-x2(xHermite插值可靠性大,但计算比较复杂,二者的区别见图h2yV+17, h(i-0,12)三次样条插值。已知函数y=f(x)在区间/a,b上的n+1个节点上的值y=f(x;)(i=0,1,…m),求插值函数s(x),使(i=0,1图4 Hermite插值与三次样条插值的比较图2在每个小区间x,x+1(=0.1.…n-1)上利用埃尔米特 Hermite插值得到的2FSK信号的瞬时s(x是三次多项式,记为s(x频率见图5,利用二次样条插值得到的该信号的瞬时频率③3(x)在la,b/上二阶连续可徵。见图6。数s(x)称为f(x)的三次样条插值函数可以利用节点处的二阶导数值为参数,也可以利用节点处的导数值为参数求三次样条插值涵数的表达式。若利用节点处的一阶导数值为参数,求得的三次样条插值函数的表达式为(x)=M-1x-x-)36 h6 hMihi5 DEMeN5a亩pai66hx∈[x;,x+17,b-x+1-x,S"(x)=M图5由 Hermite插值提取图6由三次样条插值提取(j=0,1的2FSK信号的瞬时频率的2FSK信号的瞬时频率对s(x)进行求导,利用S(x)在节点处一阶导数连从图5、图6可以看出利用三次样条插值得到的瞬时续的性质结合边界条件求解出参数M,把求得的参数代频率可以准确反映出信号具有的的摒时频率特征而利用入公式(10),即得三次样条插值函数的s(x)分段表示式。埃尔米特 Hermite插值得到的瞬时频率与信号具有的瞬s;(x)的导数为时频率特征不符。这是因为利用数值微分法求瞬时频率插值以后喫进行求导。三次样条插值函数具有连续的二阶M2 hiM; 2 hj导数,因而具有较好的光滑程度,符合求导条件,所以可以J+1-h(M2+1-M/)准确求出信号的瞬时频率;而埃尔米特 Hernite插值.不够光滑,虽能保证插值多项式收敛于原函数,但不能保证插x Elx,x;+1 h,=xi+I-x, S(xj )=M;值多顷式的导数收敛于原函数的导数,所以求得的值与信o1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreservedhttp://www.cnki.net第6期刘慧婷等:利用 Hilbert变提取信号瞵时特征的算法实现号实际的瞬时频率值不符。实验结果和理论分析结果是(1) Hilbert变换只能近似应用于窄带信号,即形如纹的(t)=a(1)cosu+6(1)),其中>>B(B为信号带2.3.3结论宽)的信号。但实际应用中,存在许多非窄带信号, Hilbcrt利用数值微分法求瞬时频率ω(t)的步骤可以归纳变换对这些信号无能为力为:首先通过三次样条插值得到分段多项式p(1),(2)对于任意给定时刻,通过 Hilbert变换运算后的结pp(抄);然后分别对分段多项式p(t),Pp()关于变量t果只能存在一个频率值,即只能处理任何时刻为单一频率进行求导,得到pd(,ppd(t);最后求出每一时刻t所对的信号。这显然不合理,因为在实东中同一信号会含有多应的导数值,即求得t(t,u(t)。再把求得的值代入公种频率成分式(6)就完成了提取瞬时频率ω(1)的过程。求解结果见(3)对信号进行 Hilbert变换时,信号的两端会出现严图7重的端点效应。提取某些信号瞬时特征所得的瞬时频率在局部出现了负数,端点效应是造成负频率的一个原因而端点效应可以通过利用特征波对原有数据序列进行延拓的方法来解决,具体解决办法将在今后讨论。尽管目前出现了EMD担论4,其目的是将不满足Hibt变换的信号进行分解得到若干个IMF( intrinsic mode function),然后进行 Hilbert运算,达到提取信号瞬时特征的目的。该理论开辟了信号处理的新空间。但它还不够成熟还需喫进一步的完善和研究图7利用数值微分法提取信号的瞬时频率特征参考文献从图7可以看出,以三次烊条指值进行的数值微分可[]黄长蓉. Hilbert变换及其应用[J].成都气象学院学报以准确岀提取岀信号的瞬时频率特征。199,14(3):273-276.[2]杨小牛,楼A义,徐建良.软件无线电原理与应用[M].北3结束语京:电子工业出版社,2001在工程中, Hilbert变换使得我们对短信号和复杂信号[3]丁丽妤.数值计算方法[M].北京:北京理工大学出版社,的摒时特征的提取成为可能特别是对瞬时频率特征提1997取,在工程中具有十公重要的意义。文中讨论的利用三次[4] Huang N e. The empirical mode decomposition and the hilbert样条插值进行数值徵分以提取瞬时特征的方法是可行的,spectrum for nonlinear and nor stationary time series anal ysis但还存在着如下问题。[].Proc.R.soc.Lond.A,1998,454:903-995(上接第81页)218994。例22(x)=(1-2siny=223101075一般的(A算法计算了120代,求到的最大值为454176.219。154370083改进的α算法计算了34代,求到的最大值为1048575.875。改进后的αA算法收敛速度(指迭代次数)比一般GA算法几乎快了一个数量级,精度也提高了不少,特别是例2的最大值提高一倍多,速度提高这么快是未曾料到的y=74958参考文献+4X Axl Thla[1]陈国良.遗传算法及其应用[M]·北京:人民邮电出版社,图2函数2的图像1996一般GA算法计算了20代,求到的最大值为[2]袁亚湘,孙文瑜.最优化理沦与方法[M]北京:科学出版社,19991.218983[3]张铃,张钹·遗传算法杋理的硏究[J]·软件学报,改进(A算法计算了5代,求到的最大值为2000,11(7):945952o1994-2010ChinaacAdemicJournalElectronicPublishingHouse.Allrightsreservedhttp://www.cnki.net
- 2020-12-05下载
- 积分:1