![[计算机软件及应用]高级程序实验报告.doc_第1页](http://file.renrendoc.com/FileRoot1/2019-1/11/3ff5c75d-7ed3-4037-9e39-91a8616c0e42/3ff5c75d-7ed3-4037-9e39-91a8616c0e421.gif)
![[计算机软件及应用]高级程序实验报告.doc_第2页](http://file.renrendoc.com/FileRoot1/2019-1/11/3ff5c75d-7ed3-4037-9e39-91a8616c0e42/3ff5c75d-7ed3-4037-9e39-91a8616c0e422.gif)
![[计算机软件及应用]高级程序实验报告.doc_第3页](http://file.renrendoc.com/FileRoot1/2019-1/11/3ff5c75d-7ed3-4037-9e39-91a8616c0e42/3ff5c75d-7ed3-4037-9e39-91a8616c0e423.gif)
![[计算机软件及应用]高级程序实验报告.doc_第4页](http://file.renrendoc.com/FileRoot1/2019-1/11/3ff5c75d-7ed3-4037-9e39-91a8616c0e42/3ff5c75d-7ed3-4037-9e39-91a8616c0e424.gif)
![[计算机软件及应用]高级程序实验报告.doc_第5页](http://file.renrendoc.com/FileRoot1/2019-1/11/3ff5c75d-7ed3-4037-9e39-91a8616c0e42/3ff5c75d-7ed3-4037-9e39-91a8616c0e425.gif)
已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高级程序语言设计 记事本结业报告1.课程设计主要目的: 本课程设计是高级程序语言设计学习中很重要的实践性环节之一,是在学习完高级程序语言课程后进行的一次全面的综合练习。旨在巩固加深学生对高级程序语言课程的基本知识的理解和掌握,掌握QT编程和程序调试的基本技能;利用QT进行基本软件的设计,提高运用高级程序语言解决实际问题的基本能力。2.技术任务及技术要求: 2.1主要任务 (1)根据要求分析题目。 (2)设计软件方案。包括:软件功能结构、各功能模块的详细描述、关键程序流程图等。 (3)使用C+语言,并结合QT creator 设计界面,实现软件功能。 (4)调试、修改并完善程序。 (5)撰写课程设计报告。 2.2 技术要求 (1)文本文档的新建、打开、保存、另存为。 (2)文本内容的编写、修改和删除、查找替换、字体的选择。 (3)文本页面的设置、打印等功能。 (4)文本的撤销和删除等操作。3.总体设计 3.1系统功能分析(1)新建操作:用户可以根据需要,建立新的记事本文档,进行操作。(2)打开操作:用户在可以打开任何文本内容进行操作。(3)保存操作:用户在对文本操作进行以后,可以按照需求进行保存操作。(4)撤销操作:若文本内容不符合用户的需求,可以撤销当前的操作。(5)剪切操作:用户可以可按照需求,对需要的内容进行剪切,将其移植其他处。(6)复制操作:移植的内容可以进行复制,这样更方便用户修改相应内容。(7)粘贴操作:将要复制的内容进行粘贴。(8)删除操作:删除不需要的内容。(9)查找操作:该功能为了方便用户进行查找文本内容中需要的内容。(10)替换操作:用户根据需要选择自己需要替换的内容,方便使用。(11)全选操作:全选内容方便用户进行相应的剪切,复制,粘贴等内容。(12)格式操作:用户可根据需求将文本内容进行字体设置。(13)退出操作:用户不需要进行任何操作时候,可以退出。3.2 设计目标 通过分析,主要实现如下目标:(1)编写新建模块。用户新建任何文本文档。(2)编写打开模块。用户可打开电脑中的任何文本文档。(3)编写保存模块。保存已操作的文本内容。(4)编写退出模块。退出记事本。(5)编写撤销模块。撤销当前编辑的文本内容。(6)编写剪切模块。将需要编辑的内容进行剪切。(7)编写复制模块。复制用户选中的内容。(8)编写粘贴模块。粘贴需要复制的内容。(9)编写删除模块。删除选中的文本内容。(10)编写查看模块。查找用户需要的内容。(11)编写替换模块。替换文本中的一些内容。(12)编写全选模块。选中需要进行操作的文本内容。(13)编写格式模块。按照需求对文本内容进行相应设置。3.3概要设计本应用软件是简单的记事本,其能实现文件的新建、打开、保存、另存、退出,撤销、剪切、复制、粘贴、删除、全选、查找、替换,对字体进行设置。为实现这些功能,需要设置以下模块:主模块如图3.1所示:记事本文件相关功能模块块文档编辑模块格式设置模块图3.1主模块文件相关功能模块如图3.2所示:文件相关功能模块新建模块打开模块保存模块另存模块退出模块图3.2 实现文件功能的模块文档编辑模块如图3.3所示:文档编辑模块撤销模块剪切模块复制模块粘贴模块查找模块替换模块图3.3 文档编辑模块格式设置模块如图3.4所示:设置字体设置字形设置大小格式设置模块图3.4 格式设置模块3.4详细设计3.4.1文件模块的详细设计3.4.1.1新建模块的详细设计用户选择新建后,先检测当前的文本内容是否修改过。如果未修改过,则新建一个空文本文档。如果修改过,先弹出提示保存对话框,提示用户是否保存,如果选择“是”,先保存当前文本内容,再新建一个空文本文档。如果选择“否”,则直接新建一个空文本文档。如图4.1所示:开始新建文件当前的文本内容是否修改过设置一个新文本结束否弹出提示保存对话框是否保存是否保存文件是图4.1 新建模块流程图3.4.1.2打开模块的详细设计用户选择打开时,先检测文件是否存在。如果存在,选择需要打开的文件,则文本区域内显示被选中文本的内容。如图4.2所示:开始打开或新建文件保存或另存文件文件内容是否修改结束是否开始打开文件文件是否存在文本区显示文本内容是结束否图4.2 打开模块流程图 图4.3 保存、另存模块流程图3.4.1.3保存、另存模块的详细设计当用户选择保存或另存时,先检测文件内容是否修改过。如果修改过,保存对文档的修改。如图4.3所示:3.4.1.4退出模块的详细设计当用户选择退出时,弹出提示保存对话框,询问用户是否保持。如果选择“是”,先保存文档,再退出程序。如果选择“否”,直接退出程序。如图4.4所示:是否已修改文本否结束是撤消上一步的操作撤消编辑/右键菜单开始打开文本点击退出文件开始弹出提示保存对话框是否保存退出文件否保存文件是结束图4.4 退出模块流程图 图4.5撤销模块流程图3.4.2编辑模块的详细设计3.4.2.1撤销模块的详细设计打开一个文本文档,当用户选择编辑或右键弹出菜单中的撤消操作后,判断一个文本是否已被修改,若已修改,撤消上一步的操作,否则不进行任何操作。如图4.5所示:4.2.2.2剪切模块的详细设计打开一个文本文档,当用户选择编辑菜单或右键弹出菜单中的剪切操作后,判断一个文本是否被选中,若已选中,删除选中的文字,并将选中的文字传输到系统剪切板中,否则不进行任何操作。如图4.6所示:开始打开文本编辑/右键菜单复制是否已选中文字将选中文字传输到系统剪切板中结束是否开始打开文本编辑/右键菜单剪切是否已选中文字删除选中文字并将其传到剪切板结束是否图4.6剪切模块流程图 图4.7复制模块流程图3.4.2.3复制模块的详细设计打开一个文本文档,当用户选择编辑菜单或右键弹出菜单中的复制操作后,判断一个文本是否被选中,若已选中,将选中的文字传输到系统剪切板中,否则不进行任何操作。如图4.7所示:3.4.2.4粘贴模块的详细设计运行程序,打开一个文本文档,在菜单栏上选中编辑菜单或者在文档中右键鼠标菜单,选中“粘贴”,判断文本文档是否进行了复制和剪切操作(即判断系统剪切板是否有内容),如果有就将剪切板的内容粘贴到光标处,没有就继续执行其他操作步骤。如图4.8所示:否是否已选中了内容是结束删除选中文本内容删除编辑/右键菜单打开文本开始开始打开文本编辑/右键菜单粘贴是否已复制或剪切了内容将系统剪切板中内容粘贴到文本中结束是否图4.8 粘贴模块流程图 图4.9删除模块流程图3.4.2.5删除模块的详细设计运行程序,打开一个文本文档,在菜单栏上选中编辑菜单或者在文档中右键鼠标菜单选中“删除”,程序判断文本文档是否有已选中的内容,如果有就将选中的内容删除掉,没有就执行其他操作。如图4.9所示:3.4.2.6全选模块的详细设计运行程序,打开一个文本文档,在菜单栏上选中编辑菜单或者在文档中右键鼠标菜单,选中“全选”,就选中了文本的所有内容。如图4.10所示:开始打开文本编辑/右键菜单全选选中文本所有内容结束图4.10 全选模块流程图3.4.2.7查找、替换模块的详细设计查找、替换模块实现对文档中内容的查找和替换操作,方便用户查询所要查找的内容,加快对文档的编辑。首先在编辑菜单中设置菜单项“查找”和“替换”,然后增加菜单项的监听者,最后实现监听,即实现查找和替换功能。包括设置响应事件后弹出的对话框界面布局及对应功能按钮的事件处理。用户运行程序后,先写入要编辑的文本或直接打开文件,然后点击编辑菜单中的“查找”,会弹出查找对话框。输入要查找的内容后点击“查找”按钮,若查找内容存在则显示出内容,若内容不存在则弹出对话框对用户进行提示。如图 4.11 所示:点击编辑菜单中的“替换”,会弹出替换对话框。在文本框中分别输入要查找和替换的内容,然后点击“替换”按钮,若查找的内容存在则替换成功,若内容不存在则提示用户查找的内容不存在。如图 4.12 所示:查找成功查找不到查找的内容是否存在查找编辑菜单打开文件开始结束是否替换成功查找不到查找的内容是否存在替换编辑菜单打开文件开始结束是否 图4.11查找模块流程图 图4.12替换模块流程图3.4.3格式模块的详细设计格式菜单主要对编辑的文本文档进行字体设置方便用户的使用。在主函数中添加格式事件接听器,然后实现接听事件,并写出相应字体设置的用到调用函数,接着利用对话框对字体进行设置。最后,在对话框中实现对字体的设置。用户首先打开任何文档文件,然后选择格式菜单里的字体,会出现对话框,对话框包括三个模块,第一个模块主要是字体,大小两个列表以及字形复选框,第二个模块是样例标签,方便用户预览选中字体,第三个模块是确定取消按钮模块,用户根据选择响应对应按钮。选择对应按钮,用户所打开文本内容相应改变。如图4.12所示:文本内容无任何改变开始打开文件格式菜单字体字体字形 大小文本内容相应改变结束是否确定是否图4.12退出模块流程图4重要代码分析有些细节已在程序之中详细备注 4.1全部链接函数void dispLineNum();/显示当前行数 void on_action_About_triggered();/关于 void on_action_Delete_triggered();/撤销 void on_action_Quit_triggered();/退出 void on_action_goToLine_triggered();/转到行 void on_action_FindNext_triggered();/查找下一个 void setAutoLine(bool);/自动换行 void setNeedSave();/保存文件(自动命名) void on_action_SaveAs_triggered();/保存为 void on_action_Create_triggered();/新建 void on_action_Save_triggered();/保存 void on_action_Open_triggered();/打开 void on_action_Date_triggered();/日期/时间 void on_action_PageSet_triggered();/页面设置 void on_action_Print_triggered();/打印 void on_action_Font_triggered();/字体 void on_action_Find_triggered();/查找 void on_action_Undo_triggered();/撤销 void on_action_SelectAll_triggered();/全选 void on_action_Redo_triggered();/恢复 void on_action_Paste_triggered();/粘贴 void on_action_Cut_triggered();/剪切void on_action_Copy_triggered();/复制关于粘贴复制新建保存及字体的有关内容我们在以前已经学过,在这里就不再重复了,这次我们的记事本新加了查找替换功能,显示当前行数,自动换行,页面设置,打印等,所以仅做这些新功能的函数分析.4.2查找替换void DialogFind:findNextUp(QString text,Qt:CaseSensitivity cs)/向上查找 if(cs=Qt:CaseSensitive) this-mytextArea-find(text,QTextDocument:FindCaseSensitively|QTextDocument:FindBackward); if(cs=Qt:CaseInsensitive) this-mytextArea-find(text,QTextDocument:FindBackward);void DialogFind:findNextDown(QString text,Qt:CaseSensitivity cs)/向下查找 if(cs=Qt:CaseSensitive) this-mytextArea-find(text,QTextDocument:FindCaseSensitively); if(cs=Qt:CaseInsensitive) this-mytextArea-find(text);void DialogFind:on_pushButton_Find_clicked()/查找 Qt:CaseSensitivity cs; if(ui-checkBox_Case-isChecked() cs=Qt:CaseSensitive; else cs=Qt:CaseInsensitive; if(ui-radioButton_Down-isChecked() findNextDown(ui-lineEdit_Find-text(),cs); else if(ui-radioButton_Up-isChecked() findNextUp(ui-lineEdit_Find-text(),cs); void DialogFind:on_checkBox_Replace_clicked(bool checked)/替换触发 ui-groupBox_2-setVisible(checked);void DialogFind:on_lineEdit_Find_textChanged(QString )/替换为(查找后选择替换) if(ui-lineEdit_Find-text().isEmpty() ui-pushButton_Find-setEnabled(false); else ui-pushButton_Find-setEnabled(true); void DialogFind:on_pushButton_Replace_clicked()/替换 if(this-mytextArea-textCursor().selectedText().isEmpty() QMessageBox:information(this,提醒,请先选中或者查找要替换的文本!); return ; this-mytextArea-cut(); this-mytextArea-insertPlainText(ui-lineEdit_Replace-text();4.3显示当前行数void SourceInsight:dispLineNum()/显示当前行数 ui-statusBar-showMessage(当前位于第 +QString:number(ui-textEdit-textCursor().blockNumber()+1)+ 行);4.4自动换行 具体由Qt实现void SourceInsight:setAutoLine(bool chlicked)/自动换行 if(chlicked) ui-textEdit-setWordWrapMode(QTextOption:WrapAtWordBoundaryOrAnywhere); else ui-textEdit-setWordWrapMode(QTextOption:NoWrap); 4.5转到行void gotoTheLine:letGo(int line)/转到行 QTextCursor tc=this-mytextArea-textCursor(); tc.setPosition(0,QTextCursor:MoveAnchor); tc.movePosition(QTextCursor:NextBlock,QTextCursor:MoveAnchor,line-1); this-mytextArea-setTextCursor(tc);void gotoTheLine:setLineNum(int num)/选择转到页 ui-spinBox-setRange(1,num);void gotoTheLine:on_pushButton_ok_clicked() letGo(ui-spinBox-value(); this-hide();4.6页面设置void SourceInsight:on_action_PageSet_triggered()/页面设置 QPrinter printer; QPageSetupDialog pageSet(&printer,this); pageSet.exec();/转页面设置 4.7打印void SourceInsight:on_action_Print_triggered()/打印 QPrinter printer; QPrintDialog print(&printer,this); print.exec();/转到打印程序4.8查看日期/时间QString SourceInsight:getDateTime()/日期/时间 QDateTime current; current=QDateTime:currentDateTime ();/时间设置 return current.toLocalTime().toString(yyyy-MM-dd hh:mm:ss);/显示当前时间4.9全选void SourceInsight:on_action_SelectAll_triggered()/全选 ui-textEdit-selectAll();4.10关于void SourceInsight:on_action_About_triggered()/关于该记事本 Dialog_MyLog *myLog=new Dialog_MyLog(this); myLog-show();5系统测试 5.1程序主界面运行程序后,显示主界面如图5.1所示 图 4.1主界面4.2文件界面 点击文件,显示文件菜单的各种功能,如图5.2所示: 图 4.2文件菜单点击打开,出现以下对话框,如图5.3所示: 图4.3打开文件弹出菜单打开一文件,如图4.4所示: 图 4.4 文字显示点击另存为,弹出保存对话框,如图4.5所示:通过复制或剪切操作获取的内容,粘贴到想要粘贴到的地方。对文件内容粘贴操作如图4.6所示: 图4.6选择粘贴执行粘贴后,如图4.7所示: 图4.7执行粘贴选中想要删除的内容,点击编辑菜单上的删除菜单项进行删除操作,具体步骤如图4.8所示: 图 4.8执行删除选择编辑菜单中的全选操作,然后执行复制,粘贴,操作如下: 图4.9选择全选 图4.10执行全选复制(以右键菜单完成),如图4.11所示: 图4.11选择复制选中一段文字进行剪切操作,如图4.12所示: 图4.12选择剪切执行撤销操作,如图4.13所示:撤销后,如图4.14所示执行恢复操作,如图4.15所示:执行恢复操作后,如图4.16所示:先打开要处理的文本文档,单击编辑菜单下的“查找/替换”,如图4.17所示:然后在弹出的对话框中输入要查找的内容,并选择是向上还是向下查找,点击“查找”按钮,进行查询,若查找成功则显示内容,单击一次“查找”按钮,进行一次查找,此处为向下查找,如图4.18所示: 单击一次“查找”按钮,进行一次查找,此处为向下查找,若查找完毕则弹出对话框对用户进行提示,如图4.19所示:选择菜单下的“替换”,如图4.20所示:执行替换操作后,如图4.21所示:点击字体显示如图,如图4.22所示:执行操作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 解析卷人教版8年级数学上册《分式》定向训练试题(含答案解析)
- 药店制定的药品质量管理制度测试题(附答案)
- 急危重症护理学试题库(含答案)
- 宜宾丝丽雅股份有限公司校园招聘模拟试题附带答案详解及参考答案1套
- 2025年新能源商用车辆在生物质能设备厂运输领域的市场需求与应用报告
- 基础强化沪科版9年级下册期末试题标准卷附答案详解
- 解析卷四川荣县中学7年级数学下册第六章 概率初步同步练习试题(含解析)
- 2025至2030年中国蜜蜂养殖与深加工市场全面调研及行业投资潜力预测报告
- 2025版农业机械设备租赁及技术支持合同
- 2025版商铺装修与物业精细化管理及增值服务协议
- 运维操作规范
- 天气学原理和方法知识点梳理
- 县人民医院(三级乙等)“十五五”规划
- 中学生自残课件
- 拍卖保留价协议
- 医疗纠纷的防范与处理课件
- 2025年度中职学校教师培训工作计划
- 2025年4月自考00107现代管理学试题及答案含评分标准
- 烟气脱硝工艺培训课件
- 2025建筑工程施工标准合同
- 仪表安全培训课件
评论
0/150
提交评论