第十四周课程总结&实验报告(简单记事本的实现)
摘要
随着人们生活节奏的加快,要做的事情也越来越多,俗话说:好记性不如烂笔头,我们每个人几乎必备的一款软件就是记事本软件。工作生活中我们往往会被繁重事务压得喘不过气来,导致有些事情忘记做了或者没有及时处理。这时就少不了记事本这个“小秘书”,拥有一款好用的记事本软件就不会经常工作丢三落四了。亦或有一些信息或数据来不及处理,也可以先保存在记事本中,以便之后处理。
关键词记事本程序JAVA工作办公
随着计算机技术的快速发展,如今很多人的工作都离不开电脑,在面对繁多的工作任务时,往往会忘掉一些事情,从而可能造成不必要的损失。所以需要一款软件去记录这些琐事,以提高人们的工作效率与工作质量。有时有一些重要的信息或数据也需要记事本先保存下来以便后续使用。
本记事本程序能实现对文本的保存、编辑,还提供了一些便于对文本进行操作的人性化功能,可以有效解决人们在办公方面的问题。
1.1.1.设计背景
1.1.2.设计任务及目标
记事本程序具体功能如下:
(1)实现新建记事本功能。
(2)实现新窗口功能。
(3)实现打开文本文件的功能。
(4)实现文本文件的保存和另存为功能。
(5)实现退出当前记事本功能。
(6)实现撤销与恢复功能。
(7)实现查找与替换功能。
(8)实现转到指定行功能。
(10)实现选择是否自动换行的功能。
(11)实现更改字体、字形、大小的功能。
(12)实现缩放与一键恢复默认缩放的功能。
(13)实现状态栏显示光标处于第几行第几列、字符数的功能
(14)实现是否显示状态栏的功能。
(15)实现更改背景与字体颜色的功能。
(16)实现提示是否保存更改的功能。
(17)实现从右到左的阅读顺序的功能。
1.2.1开发技术
1.2.2开发环境
本系统选用jdk1.6的版本进行开发。
(1)集成开发工具Eclipse
MyEclipse,是在eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、JavaEE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。
MyEclipse,是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse可以支持JavaServlet,AJAX,JSP,Struts,Spring,Hibernate,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。
新建:如果当前记事本文本未被改变过,则退出当前记事本,打开一个新的记事本;如果当前记事本文本被改变过,则跳出是否保存对话框。
新窗口:打开一个新的记事本。
打开:如果当前记事本文本未被改变过,则跳出文件选择对话框,将选中的文本文件读入记事本文本域;如果当前记事本文本被改变过,则跳出是否保存对话框。
保存:如果文本被保存过,则直接保存到原有文件中;如果文本未被保存过,则执行另存为功能。
另存为:跳出文件选择框,将文件保存到选择的路径下。
退出:如果当前记事本文本未被改变过,则退出当前记事本;如果当前记事本文本被改变过,则跳出是否保存对话框。
撤销/恢复:撤销文本到编辑前的内容/恢复文本到编辑后的内容。
查找/替换:查找指定内容,替换为指定内容;可以选择是否循环查找、是否区分大小写、查找方向前进或后退;文本没有指定查找内容则提示“没有找到**”;查找到文件末尾时发出提示音。
转到:光标转到指定行;输入值为非数字时提示“请输入数字”,输入值大于文本行数时提示“行数超过了总行数”。
从右到左的阅读顺序:文本输入顺序更改为从右到左。
自动换行:选择是否自动换行。
字体:可以更改字体样式、字形、字号。字号输入值为非数字时提示“请输入数字”,没有输入值这一选项时提示“没有此选项”。
缩放:文本放大与缩小;可以一键恢复默认缩放。
状态栏:选择是否显示状态栏。
颜色:更改字体颜色和文本域背景颜色。
(1)文本丢失问题
在点击新建、打开、退出时,如果直接进行新建、打开、退出操作,可能导致已更改文本的丢失,所以如果文本已被修改过,必须提示是否保存当前文本再进行后续操作。
(2)文本保存问题
如果是已经保存过的文本,再次保存应直接保存在原文件中,而未保存过的文本,点击保存按钮执行的应是另存为的方法。
(3)输入值问题
转到行、字体、字形、字号等可以通过输入值来选择选项,但如果输入了非法值或没有的选项则需要提示用户。
(4)多窗口退出问题
当同时存在多个记事本窗口时,只要退出其中一个窗口,就会退出整个系统,其他窗口也会退出。
(1)是否保存对话框解决文本丢失问题
在执行打开、新建、退出操作之前,判断文本是否被改变过,是则跳出是否保存对话框,处理完是否保存对话框之后再执行相应的操作。是否保存对话框选择保存则先执行保存操作。
(2)判断记事本标题解决文本保存问题
在打开文件或保存文件后记事本标题会更改为文件名,如果记事本标题不是无标题则说明文件被保存过至少一次,后续再点击保存按钮就直接保存到原有文件中,否则执行另存为操作。
(3)对选项进行遍历或异常处理解决输入值问题
将所输入的内容与所有选项一个一个进行匹配,如均未匹配成功则提示“没有此选项”,对转到行、字号输入的内容强制转型为整型,如果输入的不是数字则会出现异常,异常处理方法改为提示“请输入数字”。
(4)改变窗口退出模式解决多窗口退出问题
用SetDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)方法实现仅退出当前窗体而不是退出整个系统。
记事本主要功能如图2.1.1所示
图2.1.1
颜色功能如图2.1.2所示
图2.1.2
查找/替换功能如图2.1.3所示
图2.1.3
字体功能如2.1.4所示
图2.1.4
(1)支持环境
操作系统:Windows或者linux。
(2)系统的开发环境
开发语言:JAVA;
开发工具:Eclipse
Notepad类
Main类
publicclassMain{publicstaticvoidmain(String[]args){newNotepad();}}
(1)记事本主界面模块
用户在记事本主界面选择相应的功能,查看编辑文本。记事本主界面如下图4-5所示。
图4-5记事本主界面
(2)查找/替换模块
用户在查找/替换界面输入查找内容、替换内容,选择查找、替换功能。查找/替换界面:如下图4-6-1所示。
图4-6-1查找/替换界面
(3)转到指定行模块
用户在转到指定行界面可以输入指定行,使光标转到指定行。如下图4-7所示。
图4-7转到指定行界面
(4)字体模块
用户在字体界面可以更改字体样式、字形、字号;如下图4-8所示。
图4-8字体界面
(5)颜色选择模块
用户在颜色选择界面可以进行颜色选择;如下图4-9所示。
图4-9
(6)是否保存对话框模块
用户在是否保存对话框界面选择是否保存;如下图4-10所示。
图4-10是否保存对话框界面
(7)文件选择模块
用户在文件选择界面选择文件路径。如下图4-11所示。
图4-11另存为界面
5.1.1对新建功能进行测试
测试结果:文本被更改点击新建跳出了是否保存对话框,处理完是否保存对话框后退出了当前记事本,新建记事本成功。
5.1.2对新窗口功能进行测试
测试结果:成功创建新记事本窗口。
5.1.3对保存功能进行测试
测试结果:文本被保存过实现了直接保存到原有文件,文件未被保存过跳出了另存为窗口。
5.1.4对另存为功能进行测试
测试结果:文本成功保存到了选定路径下。
5.1.5对打开功能进行测试
测试结果:文本被更改点击打开跳出了是否保存对话框,处理完是否保存对话框后跳出了文本选择框,成功打开了文本。
5.1.6对退出功能进行测试
测试结果:文本被更改点击退出跳出了是否保存对话框,处理完是否保存对话框后退出了当前记事本窗口,其他记事本窗口正常。
5.1.7对撤销/恢复功能进行测试
测试结果:实现了文本的撤销与恢复。
5.1.8对查找/替换功能进行测试
测试结果:成功查找到指定内容、成功替换为指定内容。未找到指定内容时跳出了提示框。
5.1.9对转到功能进行测试
测试结果:成功转到指定行。输入非数字字符有提示,超过总行数时提出了提示框。
5.1.11对从左到右的阅读顺序功能进行测试
测试结果:
5.1.12对自动换行功能进行测试
测试结果:实现了自动换行。
5.1.13对字体功能进行测试
测试结果:字体更改成功,对非法输入值有提示。
5.1.14对缩放功能进行测试
测试结果:成功实现放大缩小,一键恢复默认缩放。
5.1.15对状态栏功能进行测试
测试结果:状态栏显示字符数正确,显示光标所在行列数正确,实现了选择不显示状态栏。
5.1.16对颜色功能进行测试
测试结果:成功更改了字体和背景颜色,恢复默认颜色成功。
紧张愉快的课程设计结束了,本人通过努力实现了一个记事本程序。本程序提供了一些基本的人性化功能,要提供功能非常强大的办公软件,还需要进一步地考查调研。所有可能实现的功能都将会在今后的工作中继续分析、设计、逐步实现,力求使本记事本程序更加完善。
在开发过程中,本人本着将所学的理论知识应用于实践的思想,开发出高质量程序的目的,进行了详细的研究,细致耐心的开发与设计,以实事求是的态度开发出本记事本程序。最重要的是通过开发与设计,锻炼了我们分析问题以及进行合理规划与分析设计的能力,同时对开发工具的使用能力也有大幅度提高。我们将所学的理论知识结合到了实际的应用中去,实际的动手能力也有明显的提升。当然,由于自身学识尚浅,经验不足,程序的功能也有一些缺陷。
虽然记事本程序仍有许多待解决的问题和待完善的地方,但相信通过本人的不断努力、继续学习,必定会让该程序更加完美。这次开发过程中所学到的所有知识,将成为本人今后学习工作当中的坚实基础。希望以后还会有这种锻炼自己的实践机会。
我在李津老师的悉心指导下,圆满完成了本次课程设计。在记事本程序的开发过程中,得到了指导老师的细心指导。在开发的过程中遇到了很多问题通过与老师一起研讨,帮助我进行调研和分析,耐心地指导我进行开发和解决问题。在他的帮助下我不断进步并自我提高。在此过程中,对于我遇到的所有问题和困难,老师都给予了细心的解答和真诚的帮助,在此表示衷心的感谢。
在这里我还要感谢我的同学,在开发过程中,我很高兴能在这样有凝聚力和好学上进的氛围中学习和工作,是大家的支持和帮助让我的本次程序设计能够顺利完成!
此外,我们的程序设计课题得以很好的完成,这和学校为我们提供的良好的学习环境,以及设计过程给予我支持和帮助的计算机系各位老师是分不开的,特此向他们表示衷心的感谢!
在此,我向所有帮助过我的老师、同学和朋友们表达美好的祝福。祝愿大家在今后的日子里,工作顺利,更进一步!
课程总结:
老师以较快的速度讲解了JDBC,所以我只是大概了解,还需要按照课本加以网络的指导完成数据库的安装和基础使用操作。
常用SQL操作命令符
增insert删delete改update查select
update更新alter改变
创建数据库createdatabase数据库;
查看指定数据库showcreatedatabase数据库;
查看数据库(所有的)showdatabases;
修改数据库编码alterdatabase数据库defaultcharacterset新编码方式collate新编码方式_bin;
使用数据库usedb
删除数据库dropdatabase数据库;(不能一次删除多个!)
创建表createtable表名(列名数据类型[notnull][primarykey],列名数据类型[notnull],..)
查看所有表showtables
查看一个表数据select*from表名*代表所有列也可以select列名from表名
删除表droptable表名
更改表名renametable旧表名to新表名
增加表内容插入数据insertinto表名(列名,列名...)values(值,值...)
修改列中的一条记录update表名set列=值where列=值
删除列中的一条记录deletefrom表名where列=值
增加一个列Altertable表名add列名数据类型
删除一个列Altertable表名dropcolumn列名
修改一个列名Altertable表名change列名新列名数据类型;
desc降序排列
asc升序排列
delete删除记录结构依然存在即还可以找到执行后有提交过程