计算机工程学院
课程设计报告
设计名称: 面向对象课程设计 选题名称: 文本编辑器的设计与实现 姓 名: 学 号: 专业班级: D软件081 系 (院): 计算机工程学院 设计时间: 2010.6.14~2010.6.27 设计地点: 软件实验室、教室
指导教师评语: 成绩: 签名: 年 月 日
1.课程设计目的 《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。 2.课程设计任务与要求: 2.1文本编辑器的设计与实现 设计一个类似于Windows记事本(Notepad)的Java程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。 2.2设计要求: 课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 认真完成需求分析,建议采用UML建模技术进行系统的分析设计,在画出系统用例图和类图,并将UML图复制到设计报告中。认真按时完成课程设计报告,课程设计报告内容包括:课程设计目的、设计任务与要求、设计说明书、设计成果和设计心得五个部分,具体要求见设计报告模板。 通过这次设计,要求掌握以下内容: 1) 面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用 2) 类、包、接口的定义与使用 3) 常用工具类与算法的实现(数组、向量、字符串、链表) 4) java.awt、javax.swing中常用标准GUI组件及相应的事件处理 5) Java的异常处理机制 6) Java的数据库连接技术 7) Java的多线程技术与动画制作 8) Java的网络编程 3.课程设计说明书 1、需求分析 简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。文件操作能够实现新建、保存、打开文档等,编辑操作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查看等功能 2、概要设计 (一)其基本功能包括: 1)基本的文本操作功能。包括新建,保存,打开,保存。 2)基本的编辑功能。包括复制,剪贴,粘贴。 3)基本的格式功能,背景。 4)简单的帮助,关于主题。 (二)主要的组件包括: 1) 基本的Frame框架; 2) 菜单; 3) 打开文件对话框; 4) 保存文件对话框; 5) 颜色对话框; 6) Choice下拉列表,运来实现字体设置; 7) 简单的帮助框架。 (三)设计示意图 建立基本框架 添加编辑区 添加菜单 添加对话框 完善菜单系统 建立下拉列表编辑文字 建立框架实现简单帮助 3、详细设计 1) 文件打开与保存对话框 filedialog_save=new FileDialog(this,\保存文件对话框\VE); filedialog_save.setVisible(false); filedialog_load=new FileDialog(this,\保存文件对话框\filedialog_load.setVisible(false); filedialog_save.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { }); filedialog_save.setVisible(false); } filedialog_load.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { filedialog_load.setVisible(false); } }); public void actionPerformed(ActionEvent e) { if(e.getSource()==itemSave) { filedialog_save.setVisible(true); if(filedialog_save.getFile()!=null) { try {File file=new File(filedialog_save.getDirectory(), filedialog_save.getFile()); tofile=new FileWriter(file); out=new BufferedWriter(tofile); out.write(area.getText(),0,(area.getText()).length()); out.close(); tofile.close(); } catch(IOException e1) {} } } else if(e.getSource()==itemLoad) { filedialog_load.setVisible(true); area.setText(null); String s; if(filedialog_load.getFile()!=null) { try{File file=new File(filedialog_load.getDirectory(),