实现记事本功能模板_第1页
实现记事本功能模板_第2页
实现记事本功能模板_第3页
实现记事本功能模板_第4页
实现记事本功能模板_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

数学与计算机工程学院程序设计类课程设计报告设计题目: 实现记事本功能 学生学号: 专业班级: 2012级计算机科学与技术一班 学生姓名: 学生成绩: 指导教师(职称): (教授) 课题工作时间: 2013-12-9 至 2013-12-23 说明:1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个学生。2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。3、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。答辩由指导教师实施。4、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设计的情况另行规定。5、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按不及格处理。数学与计算机工程学院程序设计类课程设计任务书学生姓 名学号专业班级2012级计科一班设计题目实现记事本功能主要任务及设计要求:任务: 用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。要求:1、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2、系统设计要实用,编程简练,可用,功能全面3、记录设计情况(备查,也为编写设计说明书作好准备);4、要求上机调试通过和按设计报告格式。 5、功能要求:用图形用户界面实现。 6、能实现编辑、保存、另存为、查找替换等功能。指导教师: 日 期:2013年12月9日成绩评定表学生姓名: 学号: 专业/班级: 2012级计科一班 类别合计分值各项分值评分标准实际得分合计得分备注平时表现1010按时参加设计指导,无违反纪律情况。完成情况3020按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。10能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。报告质量3515报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。5课题背景介绍清楚,综述分析充分。5设计方案合理、可行,论证严谨,逻辑性强,具有说服力。5符号统一;图表完备、符合规范要求。5能对整个设计过程进行全面的总结,得出有价值的结论或结果。答辩情况2510在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。15在规定时间内能准确、完整、流利地回答教师所提出的问题。总评成绩: 分 指导教师: (签字)日 期: 年 月 日西安文理学院数学与计算机工程学院 课程设计报告目 录 第一章 课题概述 . 11.1 摘要 .21.2 关键字.21. 3 前言.21. 4 目的.2第二章设计简介及设计方案论述 .42.1 程序设计思路.4 2.2 模块说明图.4 2.3 程序流程图.4 2.4 程序相关说明.5第三章详细设计. .63.1 构建菜单栏及其下拉菜单.6 3.2“文件”菜单的事件监听.63.3“编辑”菜单的事件监听.7 3.4 异常处理.7第四章设计结果及分析. .94.1 测试分析.9 4.2 源程序.10 总 结 .16 附录 主要程序代码 .18参考文献.20 第一章 课题背景(或绪论、概述) 1.1摘要本次课程设计的题目是用JAVA语言编写记事本程序,要求是:用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。本程序主要用到了Java swing组件和事件监听器,还用到了文件的输入输出流。记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。1.2 关键字 记事本程序;Java语言;MyEclipse 1.3 前言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的开发工具中主要的有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。 在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的MyEclipse开发工具。 1.4 目的1) 复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;3)培养学生在项目开发中团队合作精神、创新意识及能力。第二章 设计简介及设计方案论述2.1程序设计思路在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了JScrollPane,JMenuMyListener,JFrame等。JMenu用来制作菜单,菜单的内容包括“文件”“编辑”“关于”。 JTextArea主要用来输入文本。2.2 模块说明图 在图 1中,首先创建一个名为Notebook的类并继承JFrame类作为最底层的容器 2.3 程序流程图 图 2-3 2.4 程序相关说明整个记事本分为2快:菜单栏和内容输入区。本程序中首先定义一个Notebook类继承JFrame作为最底层容器。(1) .JScrollPane为程序文本输入区。(2) .Menu为菜单栏。(3)要想记事本完成需求分析中相应的功能,还必须添加事件监听器。事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。 第三章 详细设计3.1 构建菜单栏及其下拉菜单/ 设置菜单分类JMenu menuFilemenuEditmenuViewmenuHelp; Private void setMenu() menuFile= newJMenu(文件(F),true); menuEdit= new JMenu(编辑(E), true); menuView= new JMenu(察看(V)true); menuHelp = newJMenu(帮助(H), true); JMenuItem optionofmenu=new JMenuItem new JMenuItem(新建), new JMenuItem(打开), new JMenuItem(保存), new JMenuItem(退出) , new JMenuItem(复制), new JMenuItem(剪切), new JMenuItem(粘贴), new JMenuItem(颜色) , new JMenuItem(关于) 3.2“文件”菜单的事件监听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) mynotepad f=new mynotepad(); int s=JOptionPane.showConfirmDialog(f, 退出?,退出,JOptionPane.YES_NO_OPTION);3.3.“编辑”菜单的事件监听else if(剪切.equals(name) content.cut(); else if(复制.equals(name) content.copy(); else if(粘贴.equals(name) content.paste(); else if(颜色.equals(name) color=JColorChooser.showDialog(mynotepad.this,color); content.setForeground(color); 3.4 异常处理在运行程序代码是有可能会产生异常情况或异常事件,为了避免这种情况,就需要在程序中用到Java异常处理机制。本程序中选用的异常处理机制是try,catch。捕获处理异常的第一步是用try选定要监控的异常范围,try后跟随catch代码块。saving() try FileWriter Writef=new FileWriter(file); Writef.write(content.getText(); Writef.close(); catch(Exception e)e.printStackTrace(); void unfold() try FileReader Readf=new FileReader(file); int len=(int)file.length(); char buffer=new charlen; Readf.read(buffer,0,len); Readf.close(); content.setText(new String(buffer); catch(Exception e)e.printStackTrace(); 第四章 设计结果及分析4.1 测试分析 图4-1 “文件”菜单中的“打开”对话框 打开文件后 “关于”对话框4.2 源程序import java.awt.*;import java.awt.event.*; import javax.swing.*; import java.io.*; class mynotepad extends JFrame File file=null; Color color=Color.red; mynotepad() initTextContent(); /初始化组件initMenu(); initAboutDialog(); void initTextContent() getContentPane().add(new JScrollPane(content); /滚动面板对象 JTextPane content=new JTextPane(); / /创建/内容输入区JFileChooser openfile=new JFileChooser(); /创建打开文件对话框JColorChooser opencolor=new JColorChooser(); /颜色选择JDialog about=new JDialog(this); /关于对话框JMenuBar menu=new JMenuBar(); /创建菜单栏/菜单栏的各个菜单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(颜色) , new JMenuItem(关于) ; void initMenu() for(int i=0;imenus.length;i+) menu.add(menusi); for(int j=0;joptionofmenui.length;j+) menusi.add(optionofmenuij); optionofmenuij.addActionListener( action ); this.setJMenuBar(menu); 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) mynotepad f=new mynotepad(); int s=JOptionPane.showConfirmDialog(f,退出?,退出,JOptionPane.YES_NO_OPTION); /提示用户是否退出if(s=JOptionPane.YES_OPTION) System.exit(0); else if(剪切.equals(name) /监听“剪切”事件content.cut(); else if(复制.equals(name) /监听“复制”事件content.copy(); else if(粘贴.equals(name) /监听“粘贴”事件content.paste(); else if(颜色.equals(name) /监听“颜色”事件color=JColorChooser.showDialog(mynotepad.this,color); content.setForeground(color); /对颜色进行设置else if(关于.equals(name) about.setSize(300,150); /设置“关于”对话框大小为300150 about.show(); /显示“关于”对话框 ; void saving() try FileWriterWritef=newFileWriter(file); /创建文件写入器Writef.write(content.getText(); Writef.close(); catch(Exception e)e.printStackTrace(); void unfold() try FileReaderReadf=newFileReader(file); /文件读入int len=(int)file.length();char buffer=new charlen; Readf.read(buffer,0,len); Readf.close(); content.setText(new String(buffer); catch(Exception e)e.printStackTrace(); void initAboutDialog() about.setLayout(new GridLayout(3,1); /将“关于”对话框设置为3行1列about.getContentPane().setBackground(Color.white); /设置对话框背景色about.getContentPane().add(new JLabel(我的记事本程序);/对话框内容about.getContentPane().add(new JLabel(制作者:FXC); about.getContentPane().add(new JLabel(2013年12月); about.setModal(true); /设置对话框前端显about.setSize(100,100); about.setLocation(250,170); /设置对话框显示位置 public class Notepad public static void main(String args) /入口main函数mynotepad noted=new mynotepad(); noted.addWindowListener(new WindowAdapter() ); noted.setTitle(我的记事本程序); /记事本标题noted.setSize(640,320); /设置记事本大小noted.show();noted.setLocation(150,100); /设置记事本显示位置 结束语经过努力,基本上完成我的Java课程设计简单的记事本程序,也基本上实现了老 师需求分析时所预期的功能。通过这次的课程设计,使将我从书本上学习到的理论知识用到了实践上,从而进一步巩固和丰富了我所学过的知识,让我更深层次地认识到Java及其强大的功能。同时,做这门课程设计也进一步加强了我的动手能力。为了完成好这次课程设计,我一边上网查找相关资料,另一方面查阅相关书籍。在这过程中也无形中锻炼了我的思维分析、遇到问题及想方设法通过各种途径解决问题的能力。但是,设计过程遇到了不少的困难,经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获龋最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了很多知识!我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没 有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。 实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。 我认为,在这学期的实验中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师和同学。使我再专业知识和动手实践方面都得了到很好的提升,在此,要对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!课设的成功,少不了老师的耐心指导和同学的热心帮助,以及小组中其他成员的大力配合。没有大家的默契,也收获不了今日的成功,在课设的过程中每一个人都努力查找资料,仔细检查,认真核对,都付出了自己的努力和艰辛,在此,谢谢所有人的努力和帮助,才使实验能够得以顺利地完成。 附录主要程序代码:import java.awt.*;import java.awt.event.*; import javax.swing.*; import java.io.*; class mynotepad extends JFrame File file=null; Color color=Color.red; mynotepad() initTextContent();initMenu(); initAboutDialog(); void initTextContent() getContentPane().add(new JScrollPane(content); JTextPane content=new JTextPane(); JColorChooser opencolor=new JColorChooser(); new JMenu new JMenu JMenuItem optionofmenu=new JMenuItem new JMenuItem; void initMenu() for(int i=0;imenus.length;i+) menu.add(menusi); for(int j=0;joptionofmenui.length;j+) menusi.add(optionofmenuij); optionofmenuij.addActionListener this.setJMenuBar(menu); ActionListener action=new ActionListener() public void actionPerformed(ActionEvent e) String name = e.getActionCommand(); JMenuItem MI=(JMenuItem)e.getSource(); 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(); else if .equals(name) mynotepad f=new my

温馨提示

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

评论

0/150

提交评论