面向对象程序设计课程设计-编写一个记事本程序.doc_第1页
面向对象程序设计课程设计-编写一个记事本程序.doc_第2页
面向对象程序设计课程设计-编写一个记事本程序.doc_第3页
面向对象程序设计课程设计-编写一个记事本程序.doc_第4页
面向对象程序设计课程设计-编写一个记事本程序.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1 信息学院本科生课程设计信息学院本科生课程设计 题目题目 编写一个记事本程序编写一个记事本程序 课程名称 面向对象程序设计课程设计 课程编号X031749 所在专业计算机科学与技术 所在班级计科高职 学生学号 学生姓名 指导教师 课程设计时间:2014 年 6 月 21 日-2014 年 6 月 27 日 面向对象程序设计课程设计报告 1 目目 录录 摘要 .2 1.引言 .2 2.功能需求 .2 3.设计方案 .2 3.1 总体设计 .2 3.2 类组合结构图.2 3.3 类详细设计及类实现代码 .3 4.软件操作说明及功能截图 .3 5.课程设计总结 .4 6.附录 .4 面向对象程序设计课程设计报告 2 编写记事本程序编写记事本程序 摘要摘要 该程序是使用 Java 程序编写,能够进行输入文字操作,并具有新建文件,打开文件, 保存文件,退出,复制,粘贴,剪切等功能,该程序主要用到了 Java swing。 1.引言引言 Java 的前身是 Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发 现它还可以被用于更大范围的 Internet 上。1995 年,Java 语言的名字从 Oak 编程了 Java。1997 年 J2SE1.1 发布。1998 年 J2SE1.2 发布,标志 Java2 的诞生。十多年来, Java 编程语言及平台成功地运用在网络计算及移动等各个领域。Java 的体系结构由 Java 语言、Java class、Java API、Java 虚拟机组成。它具有简单、面向对象、健壮、安 全、结构中立、可移植和高效能等众多优点。Java 支持多线程编程,Java 运行时系统 在多线程同步方面具有成熟的解决方案。Java 的平台标准有 Java ME,Java SE 和 Java EE。Java 发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持 Java 的开发工具中主要的 7 有 Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper 和 Eclipse 等。其中 Java Development Kit 简称 JDK 是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者 来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合 适的开发工具。 在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了 适合初学者使用的 Creator 开发工具。 2.功能需求功能需求 现在网络上各种文档编辑器数不胜数,有 EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad+,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽 有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕 疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级 使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用 的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程 序。 3.设计方案设计方案 3.1 总体设计总体设计 本程序要构建的记事本程序参照了 Windows 操作系统的记事本工具,其功能有以下几 个方面: (1)菜单中有“文件” , “编辑” , “关于”三个主菜单。 面向对象程序设计课程设计报告 3 (2) “文件”有“新建” “打开” “保存” “退出”等几个子菜单:分别用于新建文件, 打开文件,保存文件,退出记事本。 (3) “编辑”中有“剪切” “复制”等几个子菜单。分别用于剪切文字,复制文字,粘 贴文字,进行设置。 3.2 类组合结构图类组合结构图 给出各个类之间的整体组合结构,如图所示。 3.3 类详细设计及类实现代码类详细设计及类实现代码 记事本 文件编辑 帮助 新 建 打 开 保 存 另 存 为 退 出 全 选 复 制 剪 切 关 于 粘 贴 3.3 类详细设计及类实现代码类详细设计及类实现代码 整个记事本分为 2 块:菜单栏和内容输入区。本程序中首先定义一个 mynotepad 类继承 JFrame 作为最底层容器。 (1).Textcontent 为程序文本输入区。 (2).Menu 为菜单栏。 (3).AboutDialog 为关于对话框。 (4).要想记事本完成需求分析中相应的功能,还必须添加事件监听器。事件监听器不仅 要添加在菜单栏和内容输入区,还需加在容器中。本程序中 ActListener 实现了 ActionListener 接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。 另外,还用来 WindowListener 来监听处理容器关闭触发的事件,WindowListener 继承了 面向对象程序设计课程设计报告 4 WindowsAdapter 类并覆盖了 WindowsClosing 方法。 3.3.13.3.1 初始化组件初始化组件 initTextContent(); initMenu(); initAboutDialog(); 3.3.13.3.1 初始化组件初始化组件 initTextContent(); initMenu(); initAboutDialog(); 3.3.23.3.2 构建菜单栏及其下拉菜单构建菜单栏及其下拉菜单 JMenu menus=new JMenu new JMenu(文件), new JMenu(编辑), new JMenu(关于) ; JMenuItem optionofmenu=new JMenuItem new JMenuItem(新建), new JMenuItem(打开), new JMenuItem(保存), new JMenuItem(退出) , new JMenuItem(复制), new JMenuItem(剪切), new JMenuItem(粘贴), new JMenuItem(颜色) 面向对象程序设计课程设计报告 5 , new JMenuItem(关于) ; 3.3.3“3.3.3“文件文件”菜单的事件监听菜单的事件监听 ActionListener action=new ActionListener() public void actionPerformed(ActionEvent e) String name = e.getActionCommand(); JMenuItem MI=(JMenuItem)e.getSource(); if(新建.equals(name) content.setText(); file=null; else if(打开.equals(name) if(file !=null)openfile.setSelectedFile(file); int returnVal=openfile.showOpenDialog(mynotepad.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=openfile.getSelectedFile(); unfold(); else if(保存.equals(name) if(file!=null) openfile.setSelectedFile(file); int returnVal=openfile.showSaveDialog(mynotepad.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=openfile.getSelectedFile(); saving(); else if(退出.equals(name) 面向对象程序设计课程设计报告 6 mynotepad f=new mynotepad(); int s=JOptionPane.showConfirmDialog(f,退出?,退出 ,JOptionPane.YES_NO_OPTION); 3.3.4“3.3.4“编辑编辑”菜单的事件监听菜单的事件监听 else if(剪切.equals(name) content.cut(); else if(复制.equals(name) content.copy(); else if(粘贴.equals(name) content.paste(); 4.软件操作说明及功能截图软件操作说明及功能截图 主界面进入方式及界面截图主界面进入方式及界面截图 各功能操作说明及界面截图各功能操作说明及界面截图 (1 1)新建)新建 面向对象程序设计课程设计报告 7 新建以后显示的新空白文档新建以后显示的新空白文档 (2 2)打开)打开 面向对象程序设计课程设计报告 8 (3 3)剪切、复制、粘贴、)剪切、复制、粘贴、 (4 4)保存与退出)保存与退出 (6)关于菜单 5.课程设计总结课程设计总结 经过差不多两天的努力,基本上完成我的 Java 课程设计简单的记事本程序,也 基本上实现了我在需求分析时所预期的功能。通过这次的课程设计,使将我从书本上 面向对象程序设计课程设计报告 9 学习到的理论知识用到了实践上,从而进一步巩固和丰富了我所学过的知识,让我更 深层次地认识到 Java 及其强大的功能。同时,做这门课程设计也进一步加强了我的动 手能力。为了完成好这次课程设计,我提前做了较多的准备,一边上网查找相关资料, 另一方面查阅相关书籍。在这过程中也无形中锻炼了我的思维分析、遇到问题及想方 设法通过各种途径解决问题的能力。但是,设计过程中也存在一些问题,本来一开始 想给这个记事本程序加上一张背景图片,以及添加字体设置功能,但是由于本人知识 浅陋以及各种其他原因,使得这些想法没有实现,这是这次课程设计的一点遗憾。 时间:2014/6/18 附录附录 程序源代码: import java.awt.event.*; import java.awt.*; import java.io.*; import java.lang.String; class jsb implements ActionListener Dialog bb; String strt; int i; FileDialog fd; File file; public Frame f; public TextArea p1; public MenuBar menubar; 面向对象程序设计课程设计报告 10 public Menu menu1,menu2,menu3; public MenuItem item1,item2,item3,item4,item5,item6,item7,item8,item9,item10; jsb(String s) i=0; f=new Frame(s); p1=new TextArea(); f.setSize(500,500); f.setBackground(Color.white); f.setVisible(true); menubar=new MenuBar(); menu1=new Menu(文件); menu2=new Menu(编辑); menu3=new Menu(帮助); item1=new MenuItem(新建); item2=new MenuItem(打开); item3=new MenuItem(保存); item4=new MenuItem(另存为); item5=new MenuItem(退出); item6=new MenuItem(全选); item7=new MenuItem(复制); item8=new MenuItem(剪切); item9=new MenuItem(粘贴); item10=new MenuItem(关于); f.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) f.setVisible(false);System.exit(0); ); menu1.add(item1); menu1.add(item2); menu1.add(item3); menu1.add(item4); menu1.add(item5); menu2.add(item6); 面向对象程序设计课程设计报告 11 menu2.add(item7); menu2.add(item8); menu2.add(item9); menu3.add(item10); menubar.add(menu1); menubar.add(menu2); menubar.add(menu3); f.setMenuBar(menubar); item1.addActionListener(this); item2.addActionListener(this); item3.addActionListener(this); item4.addActionListener(this); item5.addActionListener(this); item6.addActionListener(this); item7.addActionListener(this); item8.addActionListener(this); item9.addActionListener(this); item10.addActionListener(this); f.setLayout(new GridLayout(1,1); f.add(p1);f.pack(); public void actionPerformed(ActionEvent e) String ss; ss=p1.getText().trim(); if (e.getSource()=item5) if (i=0 else System.exit(0); 面向对象程序设计课程设计报告 12 if (e.getSource()=item1) if (i=0 else p1.setText();i=0;f.setTitle(文件对话框); if (e.getSource()=item2) fd=new FileDialog(f,打开文件,0); fd.setVisible(true); try file=new File(fd.getDirectory(),fd.getFile(); f.setTitle(fd.getFile()+文件对话框); FileReader fr=new FileReader(file); BufferedReader br=new BufferedReader(fr); String line = null; String view = ; while(line=br.readLine()!=null) view += line+n; p1.setText(view); br.close(); fr.close(); catch(IOException expIn) 面向对象程序设计课程设计报告 13 if (e.getSource()=item3) if (i=0) bc(); else try file=new File(fd.getDirectory(),fd.getFile(); f.setTitle(fd.getFile()+-记事本); FileWriter fw=new FileWriter(file); BufferedWriter bw=new BufferedWriter(fw); String s =p1.getText(); s = s.replaceAll(n,rn); bw.write(s); bw.flush(); bw.close(); fw.close(); i=1; catch(IOException expOut)i=0; if (e.getSource()=item4) bc(); if (e.getSource()=item10) bb=new Dialog(f,关于); 面向对象程序设计课程设计报告 14 Label l1=new Label(这是我的记事本程序!); bb.add(l1); bb.setSize(250,150); bb.setBackground(Color.white); bb.show(); bb.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) bb.setVisible(false);bb.dispose(); ); if (e.getSource()=item6) p1.setSelectionStart(0); p1.setSelectionEnd(p1.getText().length(); if (e.getSource()=item7) try String str

温馨提示

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

评论

0/150

提交评论