简单记事本课程设计说明书_第1页
简单记事本课程设计说明书_第2页
简单记事本课程设计说明书_第3页
简单记事本课程设计说明书_第4页
简单记事本课程设计说明书_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、简单记事本系统系统 院(系)名称 信息工程学院 专 业 班 级 2010 级计算机科学与技 术(嵌入式方向) 学 号 学 生 姓 名 指 导 教 师 2010 年 5 月 30 日 简单记事本的设计与实现 摘 要 随着科学技术的快速发展,计算机程序设计早已成为了趋势,java 是计算机专业 的核心课程,是计算机的算法理论基础和软件设计的基础。java 是实践性很强的课程。 课程设计是加强实践能力的一个强有力手段。要求掌握 java 的应用、编写、上机调试 的基本方法。本次课程设计实现了一个简单记事本系统所需的功能,以及具体的设计 步骤。该报告中的程序是使用 java 程序编写,能够进行输入文字

2、操作,并具有新建文 件,打开文件,能实现编辑、保存、另存为、查找替换等功能等功能。该程序主要用 到了 java swing 和事件监听等 在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选 择了适合初学者使用的 jcreator 开发工具。 。 关键词:java , java swing,事件监听,简单记事本 目 录 1 绪论.1 1.1 研究背景 .1 1.2 开发意义 .1 2 记事本程序需求分析.2 2.1 功能分析 .2 2.2 设计目标 .2 2.3 开发及运行环境 .2 3 系统概要设计.3 4 系统模块详细设计.4 4.1 系统主模块 .4 4.2 文件菜单模

3、块 .6 4.2.1 打开菜单.7 4.2.2 保存菜单.8 4.3 编辑菜单模块 .9 4.4 查找菜单模块.10 4.4.1 查找菜单.10 4.4.2 查找替换菜单.11 5 系统运行与测试.12 5.1 系统调试 .12 5.2 测试与运行 .12 5.2.1 测试的目的.12 5.2.2 测试的原则.13 5.2.3 测试的内容.14 5.2.4 测试用例.15 5.3 测试结论 .15 结 论.16 参考资料.17 程序任务分工.18 1 绪 论 1.1 研究背景 传统记事本存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说 太大;有的功能太繁杂,使初级使用者一时难以掌握

4、。然而,本系程序对以上缺点设 计,也是科学化、正规化的管理,与世界接轨的重要条件。 1.2 开发意义 现在网络上各种文档编辑器数不胜数,有 emeditor ,uestudio ,gridinsoft notepad ,notepad+,win32pad ,skimedit,unired, xint 。功能也是应有尽有, 有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问 题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一 时难以掌握。从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。 本程序设计就是依照这样一种使用需要设计了一个简

5、单的记事本程序。 2 记事本程序需求分析 2.1 功能分析 经过调查、分析,本系程序设计实现以下功能。 (1)可以实现文件的打开,保存功能。 (2)提供文件的复制,剪贴,粘贴,清楚等功能 (3)能实现文件的查找及查找替换功能 2.2 设计目标 通过分析,主要实现如下目标: (1)菜单中有“文件” , “编辑” , “查找”三个主菜单。 (2) “文件”有“新建” “打开” “保存”三个子菜单:分别用于新建文件,打开 文件,保存文件。 (3) “编辑”中有“剪切” “复制” “粘贴” “清除”四个子菜单:用于剪切文字, 复制文字,粘贴文字和清除文件。 (4) “查找”中有“查找” “查找替换”两

6、个子菜单:用于查找字符串,替换字 符串。 2.3 开发及运行环境 1、硬件平台: (1)cpu:p41.8ghz。 (2)内存:256mb 以上。 2、软件平台: (1)操作系统:windows xp。 (2)数据库:sql server 2005。 (3)开发工具:eclipse。 3 系统概要设计 记事本系统结构设计,根据本课程所学知识和程序的分析,最终画出程序的功能 图: 文件 查找 新 建 打 开 保 存 查 找 替 换 剪 切 复 制 粘 贴 清 除 查 找 编辑 记事本 4 系统模块详细设计 4.1 系统主模块 记事本主面板提供对文件的打开,编译,查找等功能,效果图如图所示。 主模

7、块 mymemo 的主要代码: public class mymemo extends frame implements actionlistener private textarea editor=new textarea(); /可编辑的 textarea private myfile mf=new myfile(this);/myfile 对象 private myclipboard cb=new myclipboard(); private myfinddialog finddlg=new myfinddialog(this,editor); public mymemo(string

8、title)/构造函数 super(title); mymenubar mb=new mymenubar(this); /添加需要的菜单及菜单项 mb.addmenus(new string文件,编辑,查找); mb.addmenuitems(0,new string新建,打开,保存); mb.addmenuitems(1,new string剪贴,复制,粘贴,清除); mb.addmenuitems(2,new string查找,查找替换); add(editor); /为菜单项注册动作时间监听器 mb.addactionlistener(this); addwindowlistener(n

9、ew windowadapter()/关闭记事本代码 public void windowclosing(windowevent e) mymemo.this.dispose(); ); /构造函数完 public void actionperformed(actionevent e)/事件执行方法 string selected=e.getactioncommand();/获取菜单项标题 if(selected.equals(新建) editor.settext(); else if(selected.equals(打开) try editor.settext(mf.getdata(); c

10、atch(ioexception ie) else if(selected.equals(保存)/执行保存命令 try mf.setdata(editor.gettext(); catch(ioexception ie) else if(selected.equals(剪贴)/将选中的字符串复制到剪贴板中并清除字符串 cb.setdata(editor.getselectedtext(); editor.replacerange(,editor.getselectionstart(),editor.getselectionend(); else if(selected.equals(复制)/执

11、行复制命令 cb.setdata(editor.getselectedtext(); else if(selected.equals(粘贴)/执行粘贴命令 string str=cb.getdata(); editor.replacerange(str,editor.getselectionstart(),editor.getselectionend();/粘贴在光标位置 else if(selected.equals(清除)/执行清除命令 editor.replacerange(,editor.getselectionstart(),editor.getselectionend(); els

12、e if(selected.equals(查找)/执行查找命令 finddlg.showfind(); else if(selected.equals(查找替换)/执行查找替换命令 finddlg.showreplace(); public static void main(string args)/主函数体 mymemo memo=new mymemo(记事本);/创建我的记事本 memo.setsize(650,450);/大小宽 650,高 450 memo.setvisible(true);/显示窗口 4.2文件菜单模块 4.2.14.2.1 打开菜单 打开主代码: public st

13、ring getdata() throws ioexception fdlg.settitle(打开); /设定文件对话框的标题为打开 fdlg.setmode(filedialog.load); /将文件对话框的模式设定为打开模式 fdlg.setvisible(true);/显示文件对话框 /读取文件对话框选中的文件的内容并将其返回 bufferedreader br=new bufferedreader(new filereader(getpath(); stringbuffer sb=new stringbuffer(); string aline; while(aline=br.re

14、adline()!=null) sb.append(aline+n); br.close(); return sb.tostring(); 4.2.24.2.2 保存菜单 保存主代码: public void setdata(string data) throws ioexception/显示保存模式对话框,并将数据 data 存入选中的文 件中 fdlg.settitle(保存); fdlg.setmode(filedialog.save); fdlg.setvisible(true); bufferedwriter bw=new bufferedwriter(new filewriter(

15、getpath(); bw.write(data); bw.close(); 4.3 编辑菜单模块 主代码: class myclipboard/获取系统剪贴板 private clipboard cb; /声明剪贴板对象 public myclipboard()/构造函数,获取系统剪贴板 cb=toolkit.getdefaulttoolkit().getsystemclipboard(); public void setdata(string data) /将字符串存入剪贴板 cb.setcontents(new stringselection(data),null); public st

16、ring getdata() /从剪贴板读取数据,并将其返回 transferable content=cb.getcontents(null); try return (string) content.gettransferdata(dataflavor.stringflavor); /dataflavor.stringflavor 会将剪贴板中的字符串转换成 unicode 码形式的 string 对象。 /dataflavor 类是与存储在剪贴板上的数据的形式有关的类。 catch(exception ue) return null; 4.4 查找模块查找模块 4.4.1 查找菜单 查找

17、主代码: public void showfind() settitle(查找); /将对话框标题设为查找 setsize(280,60); /将对话框设定为合适大小 setvisible(true); private void find()/查询方法 string text=ta.gettext(); /从 ta 中获取字符串,并存入 text 中 string str=tfind.gettext(); /获取 tfind 字符串,并存入 text 中 int end=text.length(); /获取 ta 字符串的长度 int len=str.length(); /获取 tfind 字

18、符串的长度 int start=ta.getselectionend(); /从关标位置开始查找字符串 if(start=end) start=0; /若关标位于末尾,则从头开始查找 for(;start=end-len;start+) if(text.substring(start,start+len).equals(str)/若找到查找字符串 ta.setselectionstart(start); /选中并显示字符串 ta.setselectionend(start+len); return; /退出方法 /若找不到待查字符串,则将光标置于末尾 ta.setselectionstart(

19、end); ta.setselectionend(end); 4.4.2 查找替换菜单 查找替换主代码: public void showreplace() settitle(查找替换); /标题:查找替换 setsize(280,110); /设定大小 setvisible(true); private void replace()/替换方法 string str=treplace.gettext(); /获取待查字符串 if(ta.getselectedtext().equals(tfind.gettext()/若相同则替换 ta.replacerange(str,ta.getselect

20、ionstart(),ta.getselectionend();/若不同则继续查找 else find(); public void actionperformed(actionevent e) if(e.getsource()=bfind) /按下查找按钮,调用 find()方法 find(); else if(e.getsource()=breplace) /按下替换按钮,调用 replace()方法 replace(); 5 程序运行与测试 5.1 程序调试 程序测试和程序调试都是开发软件过程中必不可少的测试,但它们在方法、目的、 思想等方面存在很大的差异,主要体现在: (1)测试的目的

21、是找出存在的错误;而调试的目的是定位错误、找出错误的原因 并修改程序以修正错误;测试活动中发现的缺陷需要通过调试来进行定位;两者在目 标、方法和思路上有所不同; (2)调试是编码阶段和缺陷修复阶段的活动,测试活动则可以贯穿整个软件的生 命周期; (3)测试是从已知的条件开始,使用预先定义的过程和步骤,有预知的结果;调 试从未知的条件开始,结束时间无法预计; (4)软件测试可以计划,可以预先制定测试用例和过程,工作进度可以度量.而调 试不能计划,进度不可度量; (5)调试是在测试之后,在方法,思路,策略上都有所不同; (6)测试的对像可以是文档和代码而调试的对像只能是代码。 本着以上调试的原则及

22、调试的方法和过程在系统设过程中进行了相关的调试,可 以说调试是一个相当繁琐而又复杂的过程,在本系统调试过程中主要遇到的错误主要 体现在以下几个方面:由于单词的拼写或者是输入法不当造成的程序错误;由于代码 书写格式的不正确而带来的错误;由于自己的技术不够熟练和粗心导致代码位置不正 确带来的错误;由于操作顺序不当带来的错误。 5.2 测试与运行 5.2.1 测试的目的 软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是 否符合开发之前所提出的一些要求。软件测试的目的,第一是确认软件的质量,其一 方面是确认软件做了你所期望的事情(do the right thing) ,另一方面

23、是确认软件以 正确的方式来做了这个事件(do it right) 。第二是提供信息,比如提供给开发人员 或程序经理的反馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件 产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很 多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保 证整个软件开发过程是高质量的。 软件质量是由几个方面来衡量的:(1)在正确的时间用正确的的方法把一个工作 做正确。 (2)符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求, 项目工程中的可维护性、可测试性等要求。 (3)质量本身就是软件达到了最开始所设

24、定的要求,而代码的优美或精巧的技巧并不代表软件的高质量。 (4)质量也代表着它 符合客户的需要。作为软件测试这个行业,最重要的一件事就是从客户的需求出发, 从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问 题。只有这些问题都解决了,软件产品的质量才可以说是上去了。 5.2.2 测试的原则 软件包括源程序、数据和文档,因此,软件测试不是仅对源程序进行测试,开发 各阶段得到的文档包括需求规格说明书、概要设计说明书、详细设计说明书等都是软 件测试的对象。软件测试应力求遵循以下七条原则: (1)所有的测试都应追溯到用户需求。这是因为软件的目的是使用户完成预定的 任务,满足其需

25、求,而软件测试揭示软件的缺陷和错误,一旦修正这些错误就能更好 地满足用户需求。 (2)应尽早地和不断地进行软件测试。由于软件的复杂性和抽象性,在软件生命 周期各阶段都可能产生错误,所以不应把软件测试仅仅看作是软件开发的一个独立阶 段,而应当把它贯穿到软件开发的各个阶段中去。 (3)在有限的时间和资源下进行完全测试找出软件所有的错误和缺陷是不可能的, 软件测试不能无限进行下去,应适时终止。因为,测试输入量大、输出结果多、路径 组合太多,用有限的资源来达到完全测试是不现实的。 (4)测试只能证明软件存在错误而不能证明软件没有错误,测试无法显示潜在的 错误和缺陷,继续进一步测试可能还会找到其它错误和

26、缺陷。 (5)充分关注测试中的集群现象。在测试的程序段中,若发现的错误数目多,则 残存在其中的错误数目也比较多,因此应当花较多的时间和代价测试那些具有更多错 误数目的程序模块。 (6)程序员应避免检查自己的程序。考虑到人们的心理因素,自己揭露自己程序 中的错误是件不愉快的事,自己不愿意否认自己的工作;另一方面,由于思维定势, 自己难以发现自己的错误。因此,测试一般由独立的测试部门或第三方机构进行。 (7)尽量避免测试的随意性。软件测试是有组织、有计划、有步骤的活动,要严 格按照测试计划进行,要避免测试的随意性。 为了发现更多的错误让系统更完善,设计测试用例时不但要选择合理的输入数据 作为测试用

27、例,而且要选择不合理的输入数据作为测试用例,使得系统能应付各种情 况。 5.2.3 测试的内容 根据测试和调试的相关说明,结合本程序的具体实际主要从以下几个系统的功能 方面设计测试用例: (1)主模块是否能顺利的进入; (2)程序是否能实现文件的新建,打开及保存功能; (3)能否对文件进行粘贴复制及清除功能; (4)能否实现对文件的查找功能; (5)能否实现对其进行查找替换功能; 除此之外还要对整个程序(包括数据库在内的)进行集成测试、系统测试、验收 测试和性能测试,其中的性能测试主要有时间性能和空间性能两种。时间性能主要是 指软件的一个具体事务的响应时间(respond time) (1)一

28、般性能测试:指让被测系统在正常的软硬件环境下运行,不向其施加任何 压力的性能测式。 (2)稳妥定性测试:也叫可靠性测试,指连续运行被测系统,检查系统运行的稳 定程度。 (3)负载测试:通常是指让被测系统在其能忍受的压力的极限范围之内连续运行, 来测试系统的稳定性。压力测试:通常是指持续不断地给被测系统增加压力,直到将 被测系统压垮为止,用来测试系统所能承受的最大压力。 5.2.4 测试用例 对程序文件菜单下的打开菜单项测试用例为: 测试用例 1:不填写文件名,点打开按钮,结果不能打开并自动退出。 测试用例 2:填写错误的文件名,点打开按钮,结果不能打开并自动退出。 测试用例 3:填写正确的文件名,点击打开,结果打开该文件。 测试用例 4:选择正确的文件名,点击打开,结果打开该文件。 对程序编辑菜单下的打开菜单项测试用例为: 测试用例 1:选中所用的字符,点击剪贴,再单击粘贴,出现字符,剪贴成功。 测试用例 2:选中所用的字符,点击复制,再单击粘贴,出现字符,粘贴成功。 测试用例 3:选中所用的字符,不点击复制,单击粘贴,字符未出现,粘贴失败。 测试用例 4:选中所用的字符,不点击剪贴,单击粘贴,字符未出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论