记事本系统的开发

上传人:xuey****n398 文档编号:166979708 上传时间:2022-11-02 格式:DOC 页数:24 大小:277KB
返回 下载 相关 举报
记事本系统的开发_第1页
第1页 / 共24页
记事本系统的开发_第2页
第2页 / 共24页
记事本系统的开发_第3页
第3页 / 共24页
点击查看更多>>
资源描述
信息科学与技术学院软件工程课程设计题目名称:记事本系统的开发学生姓名:张振新高玉龙杨怀智学 号:200608180420070819982007081982专 业:信息管理与信息系统班 级:07级(2.3.3)班指导教师:戴建国职 称:讲师完成日期:2010年6月20号目 录第一章 简介11.1简介1第二章 需求分析22.1需求分析2功能设计2外部环境需求2可靠性和可用性需求3逆向需求32.2概要设计3程序设计思路3程序运行界面4模块说明图5程序相关说明6第三章 系统分析与设计73.1系统功能实现7文本菜单功能模块7编辑菜单模块功能7查找菜单功能模块83.2程序详细设计与分析9初始化组件9构建菜单栏及其下拉菜单9构建菜单条MYMENUBAR93.2.4 构建文件MYFILE103.2.5. 构建剪贴板MYCLIPBOARD113.2.6.异常处理11类之间的关系12用例图13第四章 系统运行14第五章 开发总结与分工17第一章 简介1.1简介报告中的程序是使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能,该程序主要用到了Java awt和事件监听等。它只具备最基本的编辑功能,所以体积小巧,启动快,占用内存低,容易使用。“记事本”的功能虽然连“写字板”都比不上,但它还是有它自己的独门绝技的。下面我们就来看看记事本吧。相对于微软的Word来说“记事本”的功能确实是太单薄了,只有:新建,保存,打印,查找,替换这几个功能。但是“记事本”却拥有一个Word不可能拥有的优点:打开速度快,文件小。我相信对于这一点大家一定是深有感触地,一点就打开;同样的文本文件用Word保存和用记事本保存的文件大小就大不相同,所以对于大小在64KB以下的纯文本的保存最好还是采用记事本。记事本另一项不可取代的功能是:可以保存无格式文件。你可以把记事本编辑的文件保存为:“.html”, “.java”,“.asp”等等任意格式。这使得“记事本”又找到了一个新的用途:作为程序语言的编辑器。翻开任何一本介绍一门编程语言的入门教材,里面都会建议学生在记事本中编写源程序。Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了UltraEdit-32,JDK1.6开发工具。第二章 需求分析2.1需求分析现在网络上各种文档编辑器数不胜数,功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。功能设计本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:(1)菜单中有“文件”,“编辑”,“查找”三个主菜单。(2)“文件”有“新建”“打开”“保存”“退出”四个子菜单:分别用于新建文件,打开文件,保存文件,全选文件。(3)“编辑”中有“剪切”“复制”“粘贴”“清除”“全选”三个字菜单:用于剪切文字复制文字,粘贴文字。“清除”子菜单来对所选文字进行清除。(4)“查找”菜单中有查找和替换,用于查找文字和替换一些文字。(5)“帮助”菜单用于使用户对记事本系统进一步的了解,以及作者的信息等,由于时间紧迫,未能实现。2.1.2外部环境需求1.开发环境:Windows XP2.开发工具:UltraEdit-32,JDK1.63.运行环境:Windows XP等由于本软件是以款很大众化实用性很高的软件,所以,在一般的Windows环境下都能很好的运行。2.1.3可靠性和可用性需求本着“一切为了用户,一切服务于用户”宗旨,本软件设计时都从客户的使用角度出发进行设计,而且本软件的功能和操作都很简单。由于功能是简单的文字处理和存储,所以客户在操作的过程中不会出现软件错误也没有出错提示。客户完成文字处理后,可轻易的将文本内容储存在目标文件夹下。操作性极强。2.1.4逆向需求由于本软件较为简单,所以对文本的编辑能力有限,不支持像word一样复杂精细的文本编辑。例如文字颜色、对齐方式、表格添加等等。2.2概要设计2.2.1程序设计思路在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了MenuBar,MenuItems,Menu,File,TextArea等。Menu用来制作菜单,菜单包括“文件”“编辑”“查找”“帮助”。 TextArea主要用来输入文本。2.2.2程序运行界面图2-1运行界面图2.2.3模块说明图implementsActionListenermymemoJFrameextends图2-2主类mymemo在图2中,首先创建一个名为mymemo的类并继承JFrame类作为最底层的容器。构造方法添加事件监听初始化容器组件初始化初始化文字输入区菜单栏查找编辑文件查找查找替换清除粘贴复制剪切退出保存打开新建 图2-3模块说明2.2.4程序相关说明整个记事本分为2快:菜单栏和内容输入区。本程序中首先定义一个mymemo类继承JFrame作为最底层容器。 (1).TextArea为程序文本输入区。 (2).Menu为菜单栏。 (3).FileDialog为关于对话框。 (4).要想记事本完成需求分析中相应的功能,还必须添加事件监听器。事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。 另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。第三章 系统分析与设计3.1系统功能实现文本菜单功能模块此子菜单中包括的功能模块有新建,打开,保存,退出。public void actionPerformed(ActionEvent e)String selected=e.getActionCommand();新建功能方法 if(selected.equals(新建)editor.setText();打开功能方法else if(selected.equals(打开)tryeditor.setText(mf.getData();catch(IOException ie)保存功能方法else if(selected.equals(保存)trymf.setData(editor.getText();catch(IOException ie)退出功能方法else if(selected.equals(退出)dispose();3.1.2编辑菜单模块功能此子菜单中包括的功能模块有:剪贴,复制,粘贴,清除,全选。剪贴功能方法else if(selected.equals(剪贴)cb.setData(editor.getSelectedText();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();清除功能方法else if(selected.equals(清除)editor.replaceRange(,editor.getSelectionStart(),editor.getSelectionEnd();全选功能方法else if(selected.equals(全选)editor.setSelectionStart(0);editor.setSelectionEnd(editor.getText().length();查找菜单功能模块此子菜单中包括的功能模块有:查找,查找替换。查找功能方法else if(selected.equals(查找)findDlg.showFind();查找替换功能方法else if(selected.equals(查找替换)findDlg.showReplace();(4)使用的布局方法和容器有:Frame,FileDialog,FlowLayout()。3.2程序详细设计与分析3.2.1初始化组件TextContent();Menu();FileDialog();3.2.2构建菜单栏及其下拉菜单public MyMemo(String title) /构造函数super(title);MyMenuBar mb=new MyMenuBar(this); /添加需要的菜单及菜单项mb.addMenus(new String文件,编辑,查找,帮助);mb.addMenuItems(0,new String新建,打开,保存,null,退出);mb.addMenuItems(1,new String剪贴,复制,粘贴,清除,null,全选);mb.addMenuItems(2,new String查找,null,查找替换);mb.addMenuItems(3,new String我的记事本信息);add(editor); /为菜单项注册动作时间监听器mb.addActionListener(this);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)MyMemo.this.dispose(););3.2.3构建菜单条MyMenuBarclass MyMenuBar extends MenuBarpublic MyMenuBar(Frame parent)parent.setMenuBar(this);public void addMenus(String menus)for(int i=0;imenus.length;i+)add(new Menu(menusi);public void addMenuItems(int menuNumber,String items)for(int i=0;iitems.length;i+)if(itemsi!=null)getMenu(menuNumber).add(new MenuItem(itemsi);else getMenu(menuNumber).addSeparator();public void addActionListener(ActionListener al)for(int i=0;igetMenuCount();i+)for(int j=0;jgetMenu(i).getItemCount();j+)getMenu(i).getItem(j).addActionListener(al);3.2.4 构建文件MyFileclass MyFileprivate FileDialog fDlg;public MyFile(Frame parent)fDlg=new FileDialog(parent,FileDialog.LOAD);private String getPath()return fDlg.getDirectory()+fDlg.getFile();public String getData() throws IOExceptionfDlg.setTitle(打开);fDlg.setMode(FileDialog.LOAD);fDlg.setVisible(true);BufferedReader br=new BufferedReader(new FileReader(getPath();StringBuffer sb=new StringBuffer();String aline;while(aline=br.readLine()!=null)sb.append(aline+n);br.close();return sb.toString();public void setData(String data) throws IOExceptionfDlg.setTitle(保存);fDlg.setMode(FileDialog.SAVE);fDlg.setVisible(true);BufferedWriter bw=new BufferedWriter(new FileWriter(getPath();bw.write(data);bw.close();3.2.5. 构建剪贴板MyClipboardclass MyClipboardprivate Clipboard cb;public MyClipboard()cb=Toolkit.getDefaultToolkit().getSystemClipboard();public void setData(String data)cb.setContents(new StringSelection(data),null);public String getData()Transferable content=cb.getContents(null);tryreturn (String) content.getTransferData(DataFlavor.stringFlavor);catch(Exception ue)return null;3.2.6.异常处理在运行程序代码是有可能会产生异常情况或异常事件,为了避免这种情况,就需要在程序中用到Java异常处理机制。本程序中选用的异常处理机制是try,catch。捕获处理异常的第一步是用try选定要监控的异常范围,try后跟随catch代码块。tryreturn(String)content.getTransferData(DataFlavor.stringFlavor);/DataFlavor.stringFlavor会将剪贴板中的字符串转换成Unicode码形式的String对象。/DataFlavor类是与存储在剪贴板上的数据的形式有关的类。catch(Exception ue)3.2.7类之间的关系My MemoMyFindDialogMy ClipboardMy FileMy Menu BarFileDialogFind()Showfind()showReplace()MenuItemsMenu图3-1类之间的关系图3.2.8UML用例图图3-2 UML用例图第四章 系统运行运行记事本程序,打开记事本图4-1系统运行图打开所需要的文件图4-2打开文件保存文件图4-3保存文件记事本的全选功能图4-4全选功能查找替换功能图4-5查找替换功能第五章 开发总结与分工经过我们的努力,基本上完成我们的软件工程课程设计简单的记事本程序,也基本上实现了我在需求分析时所预期的功能。通过这次的课程设计,使将我们从书本上学习到的理论知识用到了实践上,从而进一步巩固和丰富了我们所学过的知识。同时,做这门课程设计也进一步加强了我们的动手能力。为了完成好这次课程设计,我们提前做了较多的准备,一边上网查找相关资料,另一方面查阅相关书籍。在这过程中也无形中锻炼了我们的思维分析、遇到问题及想方设法通过各种途径解决问题的能力。但是,设计过程中也存在一些问题,本来一开始想给这个记事本程序加上一张背景图片,以及添加字体设置功能,帮助等,但是由于我们的知识浅陋以及各种其他原因,使得这些想法没有实现,这是这次课程设计的一点遗憾。通过指导老师的指导和我们的不懈的努力,经过这段时间的程序课程设计让我感受很深,很是受益匪浅,同时也感谢我们的戴老师给了我们这次机会,通过这次课程设计的完成使我们对知识的掌握更牢固,谢谢老师。我们的分工情况是:高玉龙编写代码,张振新需求分析和报告的编写,杨怀智资料的查找和汇总。评语:附录:部分源代码import java.awt.*;import java.awt.event.*;import java.io.*;import java.awt.datatransfer.*;public class MyMemo extends Frame implements ActionListenerprivate TextArea editor=new TextArea(); private MyFile mf=new MyFile(this); private 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新建,打开,保存,null,退出); mb.addMenuItems(1,new String剪贴,复制,粘贴,清除,null,全选); mb.addMenuItems(2,new String查找,null,查找替换); mb.addMenuItems(3,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.getActionCommand(); 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(退出) dispose(); else if(selected.equals(剪贴) cb.setData(editor.getSelectedText(); 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(); else if(selected.equals(清除) editor.replaceRange(,editor.getSelectionStart(),editor.getSelectionEnd(); else if(selected.equals(全选) editor.setSelectionStart(0); editor.setSelectionEnd(editor.getText().length(); else 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); memo.setVisible(true); 说明:1、 全文最多分三级标题,第一级标题黑体三号(加粗),第二级标题黑体小三(不加粗),第三级标题黑体四号(不加粗)。第一级标题居中对齐,二、三级标题靠左对齐(具体看第二章示例)。2、 正文宋体小四,行间距固定值18磅。3、 从正文开始出现页码,封面和目录不能有页码。4、 每一章单独另起一页开始5、 所有图、表必须有序号和名字,序号和名字采用5号字,图的序号和名字在图的正下方,表的序号和名字在表的正上方。假设第二章第二幅图,实例如下:图2-2 系统用例图6、 第四章介绍系统运行的部分示例,第五章说明开发过程的心得与分工情况7、 双面打印A3骑马装8、 附录可以打印部分源码,不用全部打印9、 评语放在最后,由指导教师填写
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 中学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!