记事本程序设计
- 格式:doc
- 大小:178.50 KB
- 文档页数:19
mfc 编写记事本课程设计一、课程目标知识目标:1. 理解MFC(Microsoft Foundation Classes)的基本概念和原理,掌握MFC编程的基本框架。
2. 学会使用MFC控件,尤其是与记事本相关的控件,如文本编辑框、菜单和工具栏。
3. 掌握在MFC中处理文件操作的方法,包括打开、保存和另存为记事本文件。
技能目标:1. 能够独立创建一个具备基本功能的记事本应用程序,包括文本输入、编辑、复制、粘贴和撤销操作。
2. 培养学生通过MFC编写具有良好用户界面的程序,提升界面设计和实现能力。
3. 能够运用调试技巧,解决在MFC编程过程中遇到的问题,提高程序调试和排错能力。
情感态度价值观目标:1. 培养学生积极探索计算机编程知识的精神,增强其对编程学习的兴趣和自信。
2. 通过团队合作开发记事本应用程序,提高学生的沟通协作能力和团队意识。
3. 使学生认识到编程在生活中的应用价值,激发其将计算机技术应用于解决实际问题的意识。
课程性质:本课程为信息技术课程,结合MFC编程,以实践操作为主,注重培养学生的动手能力和实际应用能力。
学生特点:学生为高年级学生,具备一定的编程基础,对Windows应用程序开发有一定了解。
教学要求:教师需以学生为主体,引导学生主动探究,关注个体差异,提供针对性指导,确保学生在课程结束后能够达到预设目标。
同时,注重理论与实践相结合,确保学生能够将所学知识应用于实际项目中。
二、教学内容1. MFC基础概念:复习MFC框架结构,重点掌握CWinApp、CFrameWnd 等核心类及其作用。
- 教材章节:第三章 MFC框架结构与核心类2. MFC控件使用:学习常用控件的使用方法,如CEdit、CMenu和CToolBar 等,结合记事本功能需求,设计用户界面。
- 教材章节:第四章 MFC常用控件3. 文件操作:介绍CFile类,学会实现记事本的打开、保存、另存为等功能。
- 教材章节:第五章 文件操作4. 界面设计与实现:根据记事本功能需求,设计界面布局,编写代码实现界面交互。
课程设计(论文)题目名称记事本程序课程名称java 程序设计课程设计学生姓名学号系、专业指导教师2010年1 月3 日摘要本次课程设计的题目是用JA V A语言编写记事本程序,要求是:用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。
本程序主要用到了Java swing组件和事件监听器,还用到了文件的输入输出流。
记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。
关键词:记事本程序;Java语言;swing组件目录1 问题描述 (3)2 需求分析 (3)3 概要设计 (3)3.1自定义类说明 (3)3.2 程序流程图 (7)4 详细设计 (7)4.1 jishiben类的实现 (7)4.2 GUI程序界面设计 (7)4.3 事件处理 (9)5 测试分析 (12)6 课程设计总结 (16)6.1设计体会 (16)6.2致谢 (16)参考文献 (17)附录(源程序清单) (18)1 问题描述设计一个具有GUI界面的记事本,含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。
这次课程设计由卢炜、刘秀春、伍霜霜和我四个人合作完成。
卢炜负责概要设计,刘秀春负责4.1 jishiben类的实现和4.2 GUI程序界面设计,伍霜霜负责5测试分析。
由于4.3事件处理和撰写程序关系密切,这两项都由我负责。
并且根据伍霜霜的测试的结果重新调整程序。
2 需求分析本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:(1)、菜单中有“文件”、“编辑”、“帮助”三个主菜单;(2)、“文件”有“新建”、“打开”、“保存”、“另存为”、“退出”分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。
(3)、“编辑”中,有“剪切”、“复制”、“粘贴”、“删除”、“查找”、“替换”、“全选”七个子菜单:用于剪切文字,复制文字,粘贴文字,删除文字,查找文件中的指定的字符串,替换文件中的指定的字符串,选定整个文件。
JAVA程序设计论文课题名称:多文档编辑器(记事本)开发人员:***指导教师:**院系专业:计算机科学与技术专业提交日期:2010-12-18目录1 选题依据 (2)2 需求分析 (2)3 系统分析 (3)3.1 系统开发环境 (3)3.2 系统功能实现 (3)3.2.1 系统界面 (3)3.2.2 系统的非功能性需求 (4)3.2.3 系统的软件实现 (4)4 测试分析 (8)4.1 关于文件模块的操作测试 (8)4.2 关于编辑模块的操作测试 ........................... 错误!未定义书签。
4.3 关于其他模块的操作测试 (16)5 系统缺点 (18)6 个人总结 .....................................................................错误!未定义书签。
7 参考文献 .....................................................................错误!未定义书签。
附录……………………………………………………………………错误!未定义书签。
一:选题依据经过一个学期JA V A课程的学习,发现JA V A功能强大,应用也很广泛。
虽然之前已经学过一门面向对象语言——C++,但仅仅是皮毛,而且并没有真正领会到面向对象语言的思想和操作,所以想借这次期末论文设计好好深入学习JA V A的应用。
但是自己在计算机语言方面基础薄弱,这次基本算是从头学起,所以就想到从设计一个小型项目做起,当时软件工程代课老师建议我做个小型记事本即类似微软记事本的多文档编辑,并给予一些思路和建议,于是我便动手做了这个小项目。
本程序为JCreator开发的单机小程序,不需要网络环境的支持,结合了面向对象和软件工程的开发思路。
. 二:需求分析一个文档编辑器的基本模块一般就包含:文件,编辑,格式,查看等;基本功能无非是:新建,打开已有文件,保存,另存为,页面设置,复制粘贴,字体等。
java课程设计记事本设计报告一、教学目标本课程旨在通过Java编程语言实现一个记事本应用程序,让学生掌握Java编程的基本概念和方法,培养学生的编程能力和解决问题的能力。
1.理解Java编程语言的基本语法和结构。
2.掌握Java编程中的数据类型、变量、运算符、控制语句等基本概念。
3.学习Java中的类和对象的概念,理解封装、继承和多态的原理。
4.熟悉Java中的常用类库和方法。
5.能够运用Java编程语言编写简单的程序。
6.能够使用Java编程语言实现一个记事本应用程序,包括文本的增删改查等功能。
7.能够分析并解决编程过程中遇到的问题。
情感态度价值观目标:1.培养学生的团队合作意识和沟通能力,通过小组合作完成项目。
2.培养学生的创新思维和解决问题的能力,鼓励学生进行自主学习和探索。
3.培养学生的学习兴趣和自信心,让学生感受到编程的乐趣和成就感。
二、教学内容本课程的教学内容主要包括Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现。
1.Java编程语言的基本概念和方法:–数据类型、变量、运算符、控制语句等基本概念。
–类和对象的概念,封装、继承和多态的原理。
–常用类库和方法的使用。
2.记事本应用程序的设计和实现:–用户界面设计:创建文本框、按钮等控件,实现用户输入和显示功能。
–文件操作:实现文件的打开、保存、关闭等功能,使用文件读写技术。
–文本处理:实现文本的增删改查等功能,使用数据结构和算法进行文本管理。
三、教学方法本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:教师通过讲解Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现,引导学生掌握相关知识。
2.讨论法:学生分组进行讨论,分享自己的理解和思路,互相学习和交流。
3.案例分析法:分析实际案例,让学生了解记事本应用程序的实际应用场景和设计思路。
4.实验法:学生通过编写代码和进行实验,实现记事本应用程序的功能,培养学生的实际编程能力和解决问题的能力。
第9课使用记事本教学目标[知识目标]:会使用记事本。
[技能目标]:认识记事本窗口,会保存文件,在记事本编辑区输入字符,退出记事本。
[情感目标]:培养学生养成正确操作鼠标、键盘的好习惯。
[重点和难点]重点:会在记事本编辑区输入字符,并保存文件、退出记事本。
难点:记事本文件的保存。
[教学过程]:导入师:今天我们要来认识一款Windows操作系统自带的一个应用软件——记事本。
打开(运行)记事本,我们就可以使用键盘输入、编辑、保存字母、数字、汉字以及其他符号等。
活动一:认识记事本窗口师:记事本藏在哪呢?我们一起来找一找。
做一做:打开记事本程序单击开始----程序----附件-----记事本,打开记事本窗口。
学生结合书本55页图2,自主认识记事本窗口说一说:记事本窗口有哪些部分组成。
活动二:保存文件1、教师演示保存文件步骤。
2、学生动手操作,把文件以“abc”名字保存指定路径。
活动三:在记事本编辑区中输入字符师:编辑区中一闪一闪的光标叫插入点光标,它是提示你要输入的字符的所在位置,键入一个字符,插入点光标就会自动后移一格。
学生动手操作:输入字符。
(1)在编辑区输入一行字符abcdefg(2)按回车键,插入点光标移到下一行的起点处,再输入一行字符。
2、移动插入点光标。
师:在键盘上有左、上、右、下光标移动键,能让光标快速移动。
让学生找出键盘标有←、↑、→、↓符号的键,分别按下这几个光标移动键,观察光标移动的方向。
说一说:你按了这几个光标移动键发现了什么?3、删除字符。
师:在输入的过程中难免会输错,那出现了错误该怎么办呢?请同学们认真观察,老师是怎么做的。
教师演示如何删除字符,学生学习并操作。
教师巡视指导。
五、活动四:退出记事本师:用完记事本,我们要把它退出来,请同学们参照书本59页找一找,有几种方法退出记事本。
学生自主操作并小结退出记事本的方法:(1)使用菜单命令退出记事本。
(2)使用关闭窗口按钮退出记事本。
《Java课程设计》记事本课程设计报告书目录一、设计课题二、设计目的三、操作环境四、设计场所(机房号、机器号或自己机器)五、设计过程(设计内容及主要程序模块)六、本次设计中用到的课程知识点(列出主要知识点)七、设计过程中遇到的问题及解决办法八、程序清单五、设计过程(设计内容及主要模块,不少于3000字)1.设计要求1)界面设计2)功能实现(1)文件菜单:新建、打开、保存、另存为、退出等。
(2)其中新建菜单项可以新建一个记事本程序;打开菜单项可以打开一个用户指定的文本文件,并将其内容显示在记事本的文本区域;保存和另存为菜单项可分别实现文件的保存和另存为3)编辑菜单:复制、剪切和粘贴等4)帮助菜单:软件版本信5)右键弹出快捷菜单2.总体设计1)功能模块图:图一功能模块图2)功能描述1、打开记事本。
首先是标准型的记事本,拥有文件、编辑。
格式和帮助。
如图1所示:图1标准型记事本界面2、在标准型的记事本界面中,进行的新建一个本件名字叫新记事本。
如图2记事本文件帮助新建打开保存另存为退出复制剪切粘贴编辑关于记事本右键快捷格式字体颜色图2新建记事本功能3、用打开文件打开刚刚新建的新记事本。
如图三所示。
图3—打开文件4、点击退出即可退出,如图4所示:图4—退出记事本5、点击帮助可以看到有关记事本的相关信息,其中有作者名、版本、许可条款、隐私声明等必要信息。
如图5所示:图5—帮助相关信息6、右键可实现复制、粘贴、剪切、清除等常用功能,方便用户可以快捷方便的使用记事本。
如图6所示:图6—右键功能7、编辑也可实现制、粘贴、剪切、清除等常用功能,方便用户选择自己适合的方式,自由选择方便的快捷方式使用。
如图7:图7—编辑八、程序清单package test;import java.io.File;import java.io.*;import java.awt.event.*;import java.awt.Toolkit;import java.awt.*;import javax.swing.*;import javax.swing.filechooser.*;public class Notebook extends JFrame implements ActionListener,ItemListener{ //组件创建JButton b_save,b_close; //按钮JTextArea textArea; //文本框File tempFile; //文件JPanel jp; //面板JMenu file,edit,style,help; //菜单JMenuItemf_new,f_open,f_save,f_close,f_saveas,e_copy, e_paste,e_cut,e_clear,e_selectAll,e_find,e_rep lace,s_font,s_color,h_editor,h_help; //菜单条JMenuBar jmb;JScrollPane jsp; //滚动面板JPopupMenu popUpMenu = new JPopupMenu(); //右键弹出式菜单JLabel stateBar;//标签JLabel jl,jj;JFileChooser jfc = new JFileChooser(); //文件选择JMenuItemje_copy,je_paste,je_cut,je_clear,je_selectAll,je _find,je_replace; //弹出式菜单条public Notebook(){jfc.addChoosableFileFilter(new FileNameExtensionFilter("文本文件(*.txt)","txt"));jmb = new JMenuBar();textArea = new JTextArea();jsp = new JScrollPane(textArea);file = new JMenu("文件");edit = new JMenu("编辑");style = new JMenu("格式");help = new JMenu("帮助");je_copy = new JMenuItem("复制(C) ");je_paste = new JMenuItem("粘贴(P) ");je_cut = new JMenuItem("剪切(X) ");je_clear = new JMenuItem("清除(D) ");je_selectAll = new JMenuItem("全选(A) ");je_find = new JMenuItem("查找(F) ");je_replace = new JMenuItem("替换(R) ");je_copy.addActionListener(this); //给弹窗式的各组件添加监听器je_paste.addActionListener(this);je_cut.addActionListener(this);je_clear.addActionListener(this);je_selectAll.addActionListener(this);je_find.addActionListener(this);je_replace.addActionListener(this);//给界面上方的菜单条添加监听器f_new = new JMenuItem("新建(N)");f_new.setAccelerator(KeyStroke.getKeyS troke('N',InputEvent.CTRL_MASK,false)); //设置带修饰符快捷键f_new.addActionListener(this);f_open = new JMenuItem("打开(O)");f_open.setAccelerator(KeyStroke.getKey Stroke('O',InputEvent.CTRL_MASK,false));f_open.addActionListener(this);f_save = new JMenuItem("保存(S)");f_save.setAccelerator(KeyStroke.getKey Stroke('S',InputEvent.CTRL_MASK,false));f_save.addActionListener(this);f_saveas = new JMenuItem("另存为");f_saveas.setAccelerator(KeyStroke.getKe yStroke(KeyEvent.VK_S,InputEvent.CTRL_ MASK|InputEvent.SHIFT_MASK));f_saveas.addActionListener(this);f_close = new JMenuItem("退出(W)");f_close.setAccelerator(KeyStroke.getKey Stroke('W',InputEvent.CTRL_MASK,false));f_close.addActionListener(this);e_copy = new JMenuItem("复制(C)");e_copy.setAccelerator(KeyStroke.getKey Stroke('C',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_paste = new JMenuItem("粘贴(V)");e_paste.setAccelerator(KeyStroke.getKeyStro ke('V',InputEvent.CTRL_MASK,false));e_paste.addActionListener(this);e_cut = new JMenuItem("剪切(X)"); e_cut.setAccelerator(KeyStroke.getKeyStroke ('X',InputEvent.CTRL_MASK,false));e_cut.addActionListener(this);e_clear = new JMenuItem("清除(D)");e_clear.setAccelerator(KeyStroke.getKeyStrok e('D',InputEvent.CTRL_MASK,false));e_clear.addActionListener(this);e_selectAll = new JMenuItem("全选(A)");e_selectAll.setAccelerator(KeyStroke.getKey Stroke('A',InputEvent.CTRL_MASK,false));e_selectAll.addActionListener(this);e_find = new JMenuItem("查找(F)");e_find.setAccelerator(KeyStroke.getKeyStrok e('F',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_replace = new JMenuItem("替换(R)");e_replace.setAccelerator(KeyStroke.getK eyStroke('R',InputEvent.CTRL_MASK,false)) ;e_replace.addActionListener(this);s_font = new JMenuItem("字体(T)");s_font.setAccelerator(KeyStroke.getKeyStrok e('T',InputEvent.CTRL_MASK,false));s_font.addActionListener(this);s_color = new JMenuItem("颜色(C)...");s_color.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_C,InputEvent.CTRL_MAS K | InputEvent.SHIFT_MASK));s_color.addActionListener(this);h_editor = new JMenuItem("关于记事本");h_editor.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_E,InputEvent.CTRL_MAS K));h_editor.addActionListener(this);h_help = new JMenuItem("帮助信息(H)");h_help.setAccelerator(KeyStroke.getKeyStrok e(KeyEvent.VK_I,InputEvent.CTRL_MASK) );h_help.addActionListener(this);//添加右键弹出式菜单popUpMenu.add(je_copy);popUpMenu.add(je_paste);popUpMenu.add(je_cut);popUpMenu.add(je_clear);popUpMenu.addSeparator();popUpMenu.add(je_selectAll);popUpMenu.add(je_find);popUpMenu.add(je_replace);//编辑区鼠标事件,点击右键弹出"编辑"菜单textArea.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e) {if(e.getButton() == MouseEvent.BUTTON3)popUpMenu.show(e.getComponent(), e.getX(), e.getY());} //e.getComponent()和textArea具有同等效果public void mouseClicked(MouseEvent e){if(e.getButton() == MouseEvent.BUTTON1)popUpMenu.setVisible(false);}});this.setJMenuBar(jmb);this.setTitle("记事本程序");file.add(f_new); //添加文件菜单组件file.add(f_open);file.addSeparator(); //加分隔线file.add(f_save);file.add(f_saveas);file.addSeparator();file.add(f_close);edit.add(e_copy); //添加编辑菜单组件edit.add(e_paste);edit.add(e_cut);edit.add(e_clear);edit.addSeparator();edit.add(e_selectAll);edit.add(e_find);edit.add(e_replace);style.addSeparator();style.add(s_font);style.add(s_color);jmb.add(file); //添加格式菜单组件jmb.add(edit);jmb.add(style);jmb.add(help);help.add(h_editor); //添加帮助菜单组件help.add(h_help);//textArea.setWrapStyleWord(true); //设置在单词过长的时候是否要把长单词移到下一行。
记事本项目介绍1. 项目背景在现代社会中,人们面临着大量的信息和任务,需要及时记录和管理。
为了满足人们的需求,记事本应运而生。
记事本是一种简单易用的工具,可以用于记录、编辑和保存文本信息。
它提供了一个方便快捷的方式来记录重要的事项、备忘录、想法和其他相关信息。
2. 项目目标记事本项目的目标是开发一个功能完善、易于使用的记事本应用程序。
它将提供以下主要功能:•创建新的笔记:用户可以通过记事本应用程序创建新的笔记,并为每个笔记指定一个标题。
•编辑和保存笔记:用户可以编辑已创建的笔记,并将其保存到应用程序中。
•查看和搜索笔记:用户可以浏览并搜索已保存在应用程序中的所有笔记。
•笔记分类和标签:用户可以为每个笔记指定分类和标签,以便更好地组织和管理它们。
•笔记共享与同步:用户可以选择将特定笔记与其他人共享,并实现多设备间同步。
3. 技术实现前端技术前端部分主要使用HTML、CSS和JavaScript来构建用户界面。
通过HTML定义页面结构,CSS实现样式设计,JavaScript实现与用户的交互。
用户界面设计用户界面应简洁、直观、易于使用。
可以采用响应式布局,以适应不同设备上的显示。
通过合理的布局和颜色搭配,增强用户体验。
用户交互通过JavaScript实现与用户的交互。
例如,响应用户的点击事件、输入事件等,对笔记进行创建、编辑、保存等操作。
后端技术后端部分主要使用服务器端编程语言和数据库来处理数据存储和业务逻辑。
服务器端编程语言可以选择使用Java、Python等常用的服务器端编程语言。
这些语言具有良好的跨平台性能和丰富的开发资源。
数据库管理系统为了存储和管理笔记数据,需要使用数据库管理系统(DBMS)。
常见的选择有MySQL、PostgreSQL等。
通过数据库,可以实现对笔记的增删改查操作,并支持数据备份和恢复功能。
安全性考虑在开发过程中,需要考虑数据安全性问题。
例如,对用户密码进行加密存储,在数据传输过程中采用HTTPS协议加密通信等。
记事本程序java课程设计一、教学目标本课程旨在通过记事本程序的设计与实现,让学生掌握Java编程的基本语法、面向对象编程思想,以及常用数据结构的使用。
在知识目标上,要求学生能够熟练运用Java语言编写简单的记事本程序,理解并应用面向对象编程的基本概念,如封装、继承和多态。
在技能目标上,培养学生分析问题、解决问题的能力,以及良好的编程习惯。
在情感态度价值观目标上,激发学生对计算机科学的兴趣,培养学生的创新意识和团队协作精神。
二、教学内容本课程的教学内容主要包括Java语言基础知识、面向对象编程、常用数据结构、记事本程序设计等。
具体安排如下:1.Java语言基础知识:介绍Java编程语言的基本语法、数据类型、运算符、控制结构等。
2.面向对象编程:讲解类与对象、封装、继承和多态等概念,并引导学生通过实例掌握面向对象编程的方法。
3.常用数据结构:介绍数组、链表、栈、队列等数据结构的基本原理和应用。
4.记事本程序设计:引导学生运用所学知识编写一个简单的记事本程序,掌握文件操作、文本编辑等技能。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,如讲授法、案例分析法、实验法等。
在教学过程中,教师将引导学生通过查阅教材、观看教学视频、编写代码和参与讨论,从而深入理解Java编程知识和记事本程序设计技巧。
同时,鼓励学生进行自主学习和团队合作,培养学生的创新意识和解决问题的能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《Java编程思想》等。
2.参考书:《Java核心技术》、《Java Web开发》等。
3.多媒体资料:教学视频、PPT课件等。
4.实验设备:计算机、网络设备等。
通过以上教学资源的支持,学生将能够更好地学习Java语言和记事本程序设计,提高自己的编程技能。
五、教学评估本课程的教学评估将采用多元化的评价方式,以全面、客观、公正地评估学生的学习成果。
一、实验目的、内容1.了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2.基本掌握面向对象程序设计的基本思路和方法;3.掌握用VC++开发应用程序的一般步骤和方法;4. 本实验建立了一个MFC单文档项目,采用MFC中单文档的基类CEditView类实现了不少记事本的功能,另外自己再需添加几个功能,如:添加显示系统日期时间,改变字体大小,改变背景颜色,添加日历项,使EditSoft应用程序成为多文档程序等等。
包含的类主要有CMainFrame,CMyApp,CMyDoc,CMyView,C CalendarDlg,C TipDlg, CAboutDlg.二.设计思路本实验中因为大部分借助了系统的功能,所以实现起来较简单。
添加显示系统日期时间:在应用程序的右下角的状态栏中显示出来,用到的是CMainFrame的OnCreate函数。
改变字体大小和背景颜色:在菜单栏中可以改变字体与颜色,用到的是文档类和视图类。
应用程序添加每日提示:用到的是CTipDlg类。
添加日历项:在菜单栏的帮助中添加了日历项目,可以做到看日历的功能,用到的是C CalendarDlg类。
使EditSoft应用程序成为多文档程序: 在状态栏的左上角有新建的图标,实现的是新建一个文本对话框的功能,用到的主要是应用类。
应用程序窗口左上角标题栏上的应用程序图标动起来:图标看起来是动态的,用到的类是主框架类CMainFrame。
保存前面设置的字体颜色、背景颜色和字体大小,用到的主要是文档类与视图类。
三.代码实现1.动态图标实现的代码:void CMainFrame::LoadNewIcon(UINT nIconID){HICON hIconNew=AfxGetApp()->LoadIcon(nIconID);HICON hIconOld=(HICON)GetClassLong(m_hWnd,GCL_HICON);ASSERT(hIconNew);ASSERT(hIconOld);if(hIconNew!=hIconOld){DestroyIcon(hIconOld);SetClassLong(m_hWnd,GCL_HICON,(long)hIconNew);RedrawWindow(NULL,NULL,RDW_FRAME|RDW_ERASE|RDW_INVALIDATE);}}在主框架类的int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)函数中添加一个定时器。
XX大学《面向对象程序设计》课程设计报告题目简单的记事本姓名: XX学号: XX专业计算机科学与技术班级: XX指导教师: XX职称副教授计算机与电子工程学院2010年1月课程设计评审表课程设计作品验收表注:1. 除“验收情况”栏外,其余各栏均由学生在作品验收前填写。
2. “验收情况”栏由验收小组按实际验收的情况如实填写。
目录1 课程设计过程概述 (1)2课程设计题目描述和基本设计要求 (1)2.1题目描述 (1)2.2基本设计要求 (1)3系统需求分析 (2)3.1功能需求分析 (2)3.2其他需求分析 (2)4系统设计 (2)4.1总体设计 (2)4.3记事本典界面设计 (3)4.4各功能模块设计 (7)4.4.1打开模块设计 (7)4.4.2保存模块设计 (8)4.4.3退出模块设计 (8)4.4.4 打印模块设计 (8)4.4.5 复制模块设计 (9)4.4.6 粘贴模块设计 (9)4.4.7 剪切模块设计 (10)4.4.8 日期模块设计 (10)4.5 异常处理情况说明 ...........................................错误!未定义书签。
5系统实现与测试 (12)6课程设计总结 (14)6.1遇到的问题及解决办法 (14)6.2心得体会 (14)参考文献 (15)简单的记事本1 课程设计过程概述大二第一学期临近期末,学院对我们进行了为期两周的Java课程培训,要求我们在实验楼二楼网络机房进行了学年度课程设计。
这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象软件开发的思维,初步了解软件开发的一般流程,提高用Java编程的实际动手能力并增强大家对面向对象的了解。
这次课程设计的主要内容是独立用Java语言开发一个小的应用程序、网络应用程序或者是管理系统。
我开发了一个简单的记事本,可以实现记事本的一些常用功能。
2课程设计题目描述和基本设计要求2.1题目描述现在网络上各种文档编辑器数不胜数,功能也是应有尽有,又能改变字体的,又能改变字体颜色的。
但是,这些软件又存在各种各样的瑕疵和问题:有的文件体积相对于一般文字编辑来说太大;有的功能太复杂,是初级使用者难以掌握。
仅从日常应用方面来说,一个文本编辑器仅需一些简单实用的功能就够了。
本程序就是依照这样一种使用需要设计了一个简单的记事本程序。
我设计的简单的记事本是基于Java的awt组建应用的小应用程序(Java Application),记事本界面上的按钮、菜单栏选项有文件和编辑两个菜单,其中的菜单项可以满足记事本新建文本文档,打开电脑中已有的文档,保存新建文本文件,打印文件,退出当前文件,以及文档内容的复制,粘贴,剪切,查找,全选等基本操作功能。
另外,还可通过编辑菜单中的date菜单项获得本地当时时间等各项日常熟悉的功能。
2.2基本设计要求(1)功能齐全;(2)保证文件安全,操作简捷;(3)操作方便、简单,界面友好;(4)易于维护和扩充;(5)对系统的运行效率要高,绝对不能出错;程序响应速度要求不高。
3系统需求分析3.1功能需求分析本记事本的主要功能如下所述:(1)本记事本提供新建任意形式的文本文件并保存在当前电脑中;(2)可以根据用户的需要用记事本的方式打开当前电脑中的文件,亦可推出当前所编文档;(3)用户可以对打开的记事本文档进行复制、粘贴、查找,全选以及剪切;(4)记事本界面可显示本地当前时间等信息。
3.2其他需求分析(1)性能描述实时性好、灵活性强、可以实现各种简单的操作。
(2)设计约束开发工具:Java运行环境:Windows 2000以上能实现用户所定义的各项需求。
(3)界面要求以windows窗口形式显示,标题栏为记事本名称,右上角有最小化按钮、最大化按钮、关闭按钮,菜单栏有文件、编辑两个菜单项,均有子菜单。
窗口右边和下边是显示文本的文本滚动条,打开各菜单项时可显示各自对应的对话框。
4系统设计4.1总体设计记事本主要分为文件、编辑菜单模块;其中文件模块又由新建,打开,保存,打印,退出等模块组成,编辑模块由复制,粘贴,剪切,查找,全选,日期等操作模块组成。
程序时使用Java程序编写,能够进行文字输入操作,并具有一些特殊的功能,该程序主要用到了Java swing和事件监听等。
简单的记事本的功能模块图如图1所示:图1 功能模块图4.3简单的记事本界面设计一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。
我设计的界面主要分为窗体、菜单、按钮和文本输入框几个部分,分别执行相应的操作。
界面如下:图2 主界面图3 点击file出现的界面图4 点击Edit出现的界面界面中需要用到的类的层次关系如图5所示:图5 类的层次关系(1)窗体的设计窗体整个框架使用JFrame类构造,JFrame有自己的外边框和自己的标题,创建JFrame时可以指定其窗口标题,我创建的窗口标题是一个简单的记事本。
相应源代码为:public NotePad(){ super("一个简单的记事本");}。
向JFrame窗口中添加组件使用add()。
每个JFrame在其右上角都有三个控制图标,分别代表将窗口最小化、窗口最大化和关闭的操作,其中最小化和最大化操作JFrame可自动完成,而关闭窗口操作实现需要书写有关的代码,在我的程序中我采用的是对WINDOWS_CLOSING事件做出响应,调用dispose()方法关闭窗口。
JFrame也可以引发WindowsEvent类代表的窗口事件。
相应源代码为:addWindowListener(new WindowAdapter() //窗口侦听器,以从此窗口接收窗口事件{public void windowClosing(WindowEvent e) //处理窗口关闭事件{ System.exit(0); }});}(2)菜单的设计菜单是非常主要的GUI组件,每个菜单组件包括一个菜单条MenuBar。
每个菜单条又包括若干个菜单Menu。
每个菜单再包含若干个菜单项MenuItem。
本系统菜单条中设计了文件、编辑两个菜单,在文件菜单下面包含“新建”、“打开”、“保存”、“退出”、“打印”五个菜单项;在编辑菜单项下面包含“复制”、“粘贴”、“剪切”、“全选”、“查找”、“查找下一个”六个菜单项;为了定义各个菜单项所对应的命令和操作,首先需要将各个菜单项给予实现了动作事件的监听接口ActionListener的监听者,然后为监听者定义actionPerformed(ActionEvent e)方法,我设计的这个记事本源程序中采用在主类中创建多个内部类的方式为各菜单项提供监听器。
通过这些实现了actionPerformed(ActionEvent e)方法的内部类创建对象来监听各个菜单项的动作事件,方便而简捷。
(3)对话框(Dialog)事件和JFrame一样,Dialog是有边框、有标题的独立存在的容器,并且不能被其他容器所包容;但是Dialog不能作为程序的最外层容器,也不能包含菜单项。
与Window一样,Dialog必须隶属于一个JFrame并由其负责弹出。
Dialog通常起到与用户交互的对话框作用。
本系统设计了几个对话框。
提示用户所执行的操作的正确与否。
例如:在执行退出操作时,若点击exit按钮,则弹出警告对话框。
部分源代码为:class exitl implements ActionListener{public void actionPerformed(ActionEvent e){NotePad f=new NotePad();int s=JOptionPane.showConfirmDialog(f,"你真的要结束吗","结束程序",JOptionPane.YES_NO_CANCEL_OPTION);if(s==JOptionPane.YES_OPTION)System.exit(0);}}4.4各功能模块设计4.4.1打开模块设计记事本实现打开文件是通过在打开菜单项中添加监听器。
当用户点击open按钮时便会弹出对话框。
在主类中建立open菜单项,再给open菜单项添加监听器。
另创建一个内部类实现该事件的方法。
这样便可打开当前电脑中的所有可打开的文件。
此模块相应的部分源代码为:内部类代码:class openl implements ActionListener{public void actionPerformed(ActionEvent e){JFileChooser jf=new JFileChooser();jf.showOpenDialog(NotePad.this);}}主类中代码:JMenuItem mOpen=new JMenuItem("Open",KeyEvent.VK_O);mOpen.addActionListener(new openl());mFile.add(mOpen);4.4.2保存模块设计记事本实现保存文件是通过在保存菜单项中添加监听器。
当用户点击save按钮时便会弹出对话框。
在主类中建立save菜单项,再给save菜单项添加监听器。
另创建一个内部类实现该事件的方法。
这样便可打开当前电脑中的所有可打开的文件。
此模块相应的部分源代码为:内部类代码:class savel implements ActionListener{public void actionPerformed(ActionEvent e){JFileChooser jf = new JFileChooser();jf.showSaveDialog(NotePad.this);}}主类中代码:JMenuItem mSave=new JMenuItem("Save");mSave.addActionListener(new savel());mFile.add(mSave);4.4.3退出模块设计记事本实现保存文件是通过在保存菜单项中添加监听器。
当用户点击save按钮时便会弹出对话框。
在主类中建立save菜单项,再给save菜单项添加监听器。
另创建一个内部类实现该事件的方法。
这样便可打开当前电脑中的所有可打开的文件。
此模块相应的部分源代码为:内部类代码:class exitl implements ActionListener{public void actionPerformed(ActionEvent e){NotePad f=new NotePad();int s=JOptionPane.showConfirmDialog(f,"你真的要结束吗","结束程序",JOptionPane.YES_NO_CANCEL_OPTION);if(s==JOptionPane.YES_OPTION)System.exit(0);}}主类中代码:JMenuItem mExit=new JMenuItem("Exit");mExit.addActionListener(new exitl());mFile.add(mExit);mFile.setMnemonic(KeyEvent.VK_F);4.4.4 打印模块设计记事本实现保存文件是通过在保存菜单项中添加监听器。