3.2.2 窗体功能简介 下图软件的登陆界面 paper51.com
在这里输入用户名及密码就可以进行入软件的主界面了!! 内容来自论文无忧网 www.paper51.com 下图是软件的主界面: copyright paper51.com 在以上的软件主界面的左边是各个功能模块的调用接口!! 内容来自论文无忧网 www.paper51.com 如: http://www.paper51.com 抽取现有试卷:点击后进入抽取现有试卷的功能界面。 copyright paper51.com 自动生成试卷:点击后进入自动生成试卷的功能界面。 http://www.paper51.com 手动生成试卷:点击后进入手动生成试卷。 内容来自www.paper51.com
题库录入:在这里可以往数据库里添加试题。 paper51.com 题库维护:在这里可以对数据库里已有试题进行维护。 copyright paper51.com 选项设置:在这里可以对软件的其它选项进行设置。 内容来自www.paper51.com 软件的右上角有“帮助”和“关于”按钮!!在这里可以得到软件的使用帮助,和有关此软件的一些开发信息!! http://www.paper51.com 下图是自动生成试卷的界面: copyright paper51.com 上图中标为“第一部分”的树形控件是用来设置要生成的试卷的试题的抽取范围。 copyright paper51.com 上图中标为“第二部分”的是用来设置各种题型的量及其分数。 内容来自论文无忧网 www.paper51.com
上图中标为“第三部分”的是功能按钮,其中“生成试卷”用来根据“第二部分”的设置自动生成一份试卷。“预览试卷”是用来预览刚生成的试卷。“试卷答案”是用来查看刚生成的试卷的答案。“保存试卷”是用来保存刚生成的试卷的信息。 paper51.com
下图是手动生成试卷的界面图: 内容来自论文无忧网 www.paper51.com 上图中标为“第一部分”的树形控件是用来设置要生成的试卷的试题的抽取范围。 paper51.com 上图中标为“第二部分”的是用来设置各种题型的量及其分数。 内容来自论文无忧网 www.paper51.com 上图中标为“第三部分”的是用来设置试卷的部分。 http://www.paper51.com 上图中标为“第五部分”的是用来选择要加入试卷的试题。 内容来自www.paper51.com 上图中标为“第四部分”的是功能按钮,其中“加入试卷”用来把在“第五部分”的选择试题加入到要生成的试卷中。“保存试卷”是用来保存刚生成的试卷的信息。 内容来自www.paper51.com 下图是用户管理的界面: 内容来自www.paper51.com 上图中标为“第一部分”显示当前系统已有的用户。 内容来自论文无忧网 www.paper51.com 上图中标为“第二部分”选择要进行的操作。 paper51.com
上图中标为“第三部分”设置相应的信息。 http://www.paper51.com 上图中标为“第四部分”。可以删除用户或是提交对用户信息的修改。 内容来自www.paper51.com 下图是数据库功能模块的界面: http://www.paper51.com
上图中标为“第一部分”可以改变数据库的存放路径。 内容来自www.paper51.com
上图中标为“第二部分”选择要进行的操作。 copyright paper51.com 上图中标为“第三部分”选择还原的时间点或是执行备份操作。 http://www.paper51.com 4 . 软件实现 http://www.paper51.com 4.1 OOP简介 内容来自论文无忧网 www.paper51.com 每一个软件开发人员都会经常听到,看到“面向对象”这个词,程序员也时常把它挂在嘴上。那么什么还是真正的“面向对象”?什么是面向对象的编程?是不是写几个类就算面向对象了?为什么要面向对象?? 内容来自论文无忧网 www.paper51.com “面向对象是一种思维方式,一种方法论!” http://www.paper51.com “结构化编程”(SP)是一种编程方法,是从计算机的视角来抽象问题的方法。而“面向对象编程”(OOP)也是一种编程方法,只不过它是从更接近真实世界的视角来分析问题,使用更接近人们理解真实世界的方法来抽象问题,这种方法称为“面向对象”(OO)!! copyright paper51.com “面向对象”这个词代表的是一种认识世界,分析问题,解决问题的方法,因此它是一种方法论。而面向对象编程则是将这种方法应用于程序设计的方法。当你会使用面向对象的方法去思考,用面向对象的模式支分析和解决问题的时候,才是真正的“面向对象”了!! http://www.paper51.com “面向对象”最主要的特性有三个: 内容来自www.paper51.com u 继承性。Delphi提供大量的可被二次开发的类。每个类都可被继承。 内容来自www.paper51.com
u 封装性。Delphi的封装性主要由类的私有域和保护域来实现的。 http://www.paper51.com u 多态性。Delphi的多太性主要是通过虚拟方法和动态方法来实现的。 copyright paper51.com 4.2 开发的关键技术 内容来自论文无忧网 www.paper51.com 1.VBA编程技术 http://www.paper51.com Visual Basic forApplications(简称VBA)是新一代标准宏语言。在没有VBA 以前,一些应用软件如Excel, Word, Access等都采用自己的宏语言供用户开发使用,但每一种宏语言都是相互独立的并且它们之间是互不兼容的。这导致了应用软件之间不能在程序上互联。找到一种可被所有的Microsoft可编程应用软件所共享的通用宏语言是Microsoft 公司长期追求的目标。VBA 作为新一代的标准宏语言具有了跨越多种OFFICE 应用软件并且控制应用软件对象的能力。 copyright paper51.com Delphi里封装的三个主要交互控件:TWordApplication,TWordDocument,TwordFont. paper51.com
本程序的主要实现技术如下: http://www.paper51.com const 内容来自论文无忧网 www.paper51.com BF_Name:array[1..10] of String=('一、','二、','三、','四、','五、','六、','七、', copyright paper51.com '八、','九、','十、'); copyright paper51.com JG:String=' '; 内容来自论文无忧网 www.paper51.com var copyright paper51.com ItemIndex:OleVariant; copyright paper51.com NewDocument:_Document; 内容来自www.paper51.com FZ,TL,BF,STH,i,WTS,YTS:integer; 内容来自www.paper51.com temp,AppPath,BGName:string; http://www.paper51.com procedureSetFont(aBold,aItalic,aShadow,aSize:integer); http://www.paper51.com begin paper51.com SJ_WF.ConnectTo(SJ_WD.Sentences.Get_Last.Font); paper51.com SJ_WF.Name:='宋体'; copyright paper51.com
SJ_WF.Bold := aBold; 内容来自论文无忧网 www.paper51.com SJ_WF.Italic := aItalic; http://www.paper51.com SJ_WF.Shadow := aShadow; copyright paper51.com SJ_WF.Size := aSize; paper51.com end; http://www.paper51.com
begin copyright paper51.com
AppPath:=ExtractFilePath(Application.ExeName); //取得本程序的路径 http://www.paper51.com //显示进度窗口 内容来自www.paper51.com RateProcess_F.Show; 内容来自论文无忧网 www.paper51.com RateProcess_F.CZ_P.Caption:='正在链接MicrosoftOffice Word......'; http://www.paper51.com
RateProcess_F.Rate_Gauge.MaxValue:=SJT_ADOQ.RecordCount+25; 内容来自www.paper51.com
RateProcess_F.Repaint; //重绘窗口,否则显示不出新设置的控件属性 内容来自论文无忧网 www.paper51.com
try 内容来自www.paper51.com SJ_WA.Connect; 内容来自www.paper51.com except paper51.com MessageBox(handle,'无法连接,也许没有安装Word','连接出错',MB_Ok or MB_ICONERROR); http://www.paper51.com RateProcess_F.Close; paper51.com Abort; http://www.paper51.com
end; paper51.com RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+10; http://www.paper51.com //SJ_WA.Visible := False; copyright paper51.com
//SJ_WA.Caption := '题库系统与试卷生成'; 内容来自www.paper51.com //建立一个新文档 内容来自论文无忧网 www.paper51.com
NewDocument:=SJ_WA.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam); paper51.com RateProcess_F.CZ_P.Caption:='正在新建MicrosoftOffice Word 文档......'; 内容来自论文无忧网 www.paper51.com RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5; 内容来自www.paper51.com RateProcess_F.Repaint; http://www.paper51.com
//建立WordDocument连接, 用第二种方法不容易出错 copyright paper51.com
//SJ_WD.ConnectTo(SJ_WA.Documents.Item(ItemIndex)); paper51.com SJ_WD.ConnectTo(NewDocument); paper51.com
SJ_WD.Windows.Item(ItemIndex).Caption:='数据库原理与应用期末试卷'; copyright paper51.com //此文档的第一个窗口的标题 copyright paper51.com RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5; http://www.paper51.com RateProcess_F.Repaint; copyright paper51.com //因为Word进行拼写检查需要很多时间,所以首先关闭检查 copyright paper51.com SJ_WA.Options.CheckSpellingAsYouType :=False; http://www.paper51.com
SJ_WA.Options.CheckGrammarAsYouType :=False; 内容来自www.paper51.com //设置Word的字体 copyright paper51.com SetFont(1,0,0,22); http://www.paper51.com //设置段落对齐方式 内容来自www.paper51.com SJ_WD.Range.InsertAfter('数据库原理与应用期末试卷'+#13); paper51.com RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5; paper51.com RateProcess_F.Repaint; http://www.paper51.com
//SJ_WA.Documents.Item(ItemIndex).Paragraphs.Alignment:=wdAlignParagraphLeft; paper51.com SJ_WD.Range.InsertAfter('学校___________班级________ 姓名___________得分_____ ' +#13); 内容来自论文无忧网 www.paper51.com SetFont(0,0,0,14); 内容来自www.paper51.com |