简单记事本课程设计说明书.doc

上传人:laozhun 文档编号:2387591 上传时间:2023-02-17 格式:DOC 页数:22 大小:440.50KB
返回 下载 相关 举报
简单记事本课程设计说明书.doc_第1页
第1页 / 共22页
简单记事本课程设计说明书.doc_第2页
第2页 / 共22页
简单记事本课程设计说明书.doc_第3页
第3页 / 共22页
简单记事本课程设计说明书.doc_第4页
第4页 / 共22页
简单记事本课程设计说明书.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《简单记事本课程设计说明书.doc》由会员分享,可在线阅读,更多相关《简单记事本课程设计说明书.doc(22页珍藏版)》请在三一办公上搜索。

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

2、编辑、保存、另存为、查找替换等功能等功能。该程序主要用到了Java swing和事件监听等在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的JCreator开发工具。关键词:java , Java swing,事件监听,简单记事本目 录1 绪论11.1 研究背景11.2 开发意义12 记事本程序需求分析22.1 功能分析22.2 设计目标22.3 开发及运行环境23 系统概要设计34 系统模块详细设计44.1 系统主模块44.2 文件菜单模块64.2.1 打开菜单74.2.2 保存菜单84.3 编辑菜单模块94.4 查找菜单模块104.4.1 查找菜单1

3、04.4.2 查找替换菜单115 系统运行与测试125.1 系统调试125.2 测试与运行125.2.1 测试的目的125.2.2 测试的原则135.2.3 测试的内容145.2.4 测试用例155.3 测试结论15结 论16参考资料17程序任务分工181 绪 论1.1 研究背景 传统记事本存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。然而,本系程序对以上缺点设计,也是科学化、正规化的管理,与世界接轨的重要条件。1.2 开发意义现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Note

4、pad ,Notepad+,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。2 记事本程序需求分析2.1 功能分析经过调查、分析,本系程序设计实现以下功能。(1)可以实现文件的打开,保存功能。(2)提供文件的复制,剪贴,粘贴,清楚等功能 (3)能实现文件的查找及查找替换功能2.

5、2 设计目标通过分析,主要实现如下目标:(1)菜单中有“文件”,“编辑”,“查找”三个主菜单。(2)“文件”有“新建”“打开”“保存”三个子菜单:分别用于新建文件,打开文件,保存文件。 (3)“编辑”中有“剪切”“复制”“粘贴”“清除”四个子菜单:用于剪切文字,复制文字,粘贴文字和清除文件。 (4)“查找”中有“查找”“查找替换”两个子菜单:用于查找字符串,替换字符串。2.3 开发及运行环境1、硬件平台:(1)CPU:P41.8GHz。(2)内存:256MB以上。2、软件平台:(1)操作系统:Windows XP。(2)数据库:SQL Server 2005。(3)开发工具:Eclipse。3

6、 系统概要设计记事本系统结构设计,根据本课程所学知识和程序的分析,最终画出程序的功能图:文件查找新建打开保存查找替换剪切复制粘贴清除查找编辑记事本4 系统模块详细设计4.1 系统主模块记事本主面板提供对文件的打开,编译,查找等功能,效果图如图所示。主模块MyMemo的主要代码:public class MyMemo extends Frame implements ActionListener private TextArea editor=new TextArea(); /可编辑的TextArea private MyFile mf=new MyFile(this);/MyFile对象 pr

7、ivate MyClipboard cb=new MyClipboard(); private MyFindDialog findDlg=new MyFindDialog(this,editor); public MyMemo(String title)/构造函数 super(title); MyMenuBar mb=new MyMenuBar(this); /添加需要的菜单及菜单项 mb.addMenus(new String文件,编辑,查找); mb.addMenuItems(0,new String新建,打开,保存); mb.addMenuItems(1,new String剪贴,复制,

8、粘贴,清除); mb.addMenuItems(2,new String查找,查找替换);add(editor); /为菜单项注册动作时间监听器 mb.addActionListener(this); addWindowListener(new WindowAdapter()/关闭记事本代码 public void windowClosing(WindowEvent e) MyMemo.this.dispose();); /构造函数完public void actionPerformed(ActionEvent e)/事件执行方法String selected=e.getActionComma

9、nd();/获取菜单项标题 if(selected.equals(新建) editor.setText(); else if(selected.equals(打开)try editor.setText(mf.getData();catch(IOException ie) else if(selected.equals(保存)/执行保存命令try mf.setData(editor.getText();catch(IOException ie)else if(selected.equals(剪贴)/将选中的字符串复制到剪贴板中并清除字符串 cb.setData(editor.getSelecte

10、dText(); editor.replaceRange(,editor.getSelectionStart(),editor.getSelectionEnd(); else if(selected.equals(复制)/执行复制命令 cb.setData(editor.getSelectedText(); else if(selected.equals(粘贴)/执行粘贴命令String str=cb.getData(); editor.replaceRange(str,editor.getSelectionStart(),editor.getSelectionEnd();/粘贴在光标位置 e

11、lse if(selected.equals(清除)/执行清除命令 editor.replaceRange(,editor.getSelectionStart(),editor.getSelectionEnd();else if(selected.equals(查找)/执行查找命令 findDlg.showFind(); else if(selected.equals(查找替换)/执行查找替换命令 findDlg.showReplace(); public static void main(String args)/主函数体 MyMemo memo=new MyMemo(记事本);/创建我的记

12、事本 memo.setSize(650,450);/大小宽650,高450 memo.setVisible(true);/显示窗口4.2 文件菜单模块4.2.1 打开菜单打开主代码:public String getData() throws IOException fDlg.setTitle(打开); /设定文件对话框的标题为打开 fDlg.setMode(FileDialog.LOAD); /将文件对话框的模式设定为打开模式 fDlg.setVisible(true);/显示文件对话框/读取文件对话框选中的文件的内容并将其返回 BufferedReader br=new BufferedR

13、eader(new FileReader(getPath(); StringBuffer sb=new StringBuffer(); String aline; while(aline=br.readLine()!=null) sb.append(aline+n); br.close(); return sb.toString();4.2.2 保存菜单保存主代码:public void setData(String data) throws IOException/显示保存模式对话框,并将数据data存入选中的文件中 fDlg.setTitle(保存); fDlg.setMode(FileD

14、ialog.SAVE); fDlg.setVisible(true); BufferedWriter bw=new BufferedWriter(new FileWriter(getPath(); bw.write(data); bw.close(); 4.3 编辑菜单模块主代码:class MyClipboard/获取系统剪贴板 private Clipboard cb; /声明剪贴板对象 public MyClipboard()/构造函数,获取系统剪贴板 cb=Toolkit.getDefaultToolkit().getSystemClipboard(); public void set

15、Data(String data) /将字符串存入剪贴板 cb.setContents(new StringSelection(data),null); public String getData() /从剪贴板读取数据,并将其返回 Transferable content=cb.getContents(null); try return (String) content.getTransferData(DataFlavor.stringFlavor); /DataFlavor.stringFlavor会将剪贴板中的字符串转换成Unicode码形式的String对象。 /DataFlavor类

16、是与存储在剪贴板上的数据的形式有关的类。catch(Exception ue)return null;4.4查找模块4.4.1 查找菜单查找主代码: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=te

17、xt.length(); /获取ta字符串的长度 int len=str.length(); /获取tFind字符串的长度 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);

18、return; /退出方法 /若找不到待查字符串,则将光标置于末尾 ta.setSelectionStart(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.

19、getText()/若相同则替换 ta.replaceRange(str,ta.getSelectionStart(),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 程序调试程序测试和程序调试都是开发软件过程中必不可少

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

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

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

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

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

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

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

27、何压力的性能测式。(2)稳妥定性测试:也叫可靠性测试,指连续运行被测系统,检查系统运行的稳定程度。(3)负载测试:通常是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。压力测试:通常是指持续不断地给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。5.2.4 测试用例对程序文件菜单下的打开菜单项测试用例为:测试用例1:不填写文件名,点打开按钮,结果不能打开并自动退出。测试用例2:填写错误的文件名,点打开按钮,结果不能打开并自动退出。 测试用例3:填写正确的文件名,点击打开,结果打开该文件。测试用例4:选择正确的文件名,点击打开,结果打开该文件。对

28、程序编辑菜单下的打开菜单项测试用例为:测试用例1:选中所用的字符,点击剪贴,再单击粘贴,出现字符,剪贴成功。 测试用例2:选中所用的字符,点击复制,再单击粘贴,出现字符,粘贴成功。测试用例3:选中所用的字符,不点击复制,单击粘贴,字符未出现,粘贴失败。测试用例4:选中所用的字符,不点击剪贴,单击粘贴,字符未出现,粘贴失败。测试用例5:选中所用的字符,点击清除,字符消失,清除成功。测试用例6:不选中所用的字符,点击清除,字符不消失,清除失败。查询模块设计测试用例为:测试用例1:输入不存在的字符,点击查找结果光标置底。 测试用例2:输入存在的字符,点击查找,结果光标在其字符上显示。测试用例3:查找

29、成功,再点击点击查找,结果光标在下一个字符上显示。测试用例4:查找成功,再多次点击查找,结果光标最后置底后重新开始查找。测试用例5:点击替换,查找到的字符被替换。测试用例3:替换成功,再点击点击替换,结果下一个该字符被替换成功。测试用例4:替换成功,再多次点击查找,结果光标最后置底。5.3 测试结论根据集成测试、系统测试、验收测试和性能测试的相关要求及大量的测试用例可以得出此系统的设计符合要求。基本上完成了开题报告中所要求的几大功能。结 论随着计算机迅猛的发展,它已成为人们的日常生活中越来越不可或缺,为我们的生活生产带来了极大的便利。本文所做实验课成绩管理程序是采用Java语言来开发实现的一个

30、小型的记事本程序。该记事本程序的基本功能,如下所示:(1)可以实现文件的打开,保存功能。(2)提供文件的复制,剪贴,粘贴,清楚等功能 (3)能实现文件的查找及查找替换功能但同时由于时间等因素的限制,部分研究工作并没有深入的进行,致使本程序功能还不够全面化、系统化,以及在界面处理上存在不足之处。相信本程序经过进一步的完善和修改后,一定能够更加合理化。参考资料1刘智勇.SQL Server2005宝典M,北京:电子工业出版社, 2007.12陈宝峰,程炜杰.Java 第一步M ,北京:清华大学出版社, 2009.13彭林,余艳编. SQL Server2000 金典教程M,北京:人民邮电出版社,2001.84(美)杰帕逊著,钱毅译.Java数据库编程指南M,北京:电子工业出版社,2004.65李松林,陈华清,任鑫.Eclipse宝典M.北京:电子工业出版社,2007.6程序任务分工裴仁生:图形用户界面;王明琪:另存为、查找替换功能;王伟伟:编辑、保存功能.文档来源网络,版权归原作者。如有侵权,请告知,我看到会立刻处理。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号