数学与计算机工程学院 程序设计类课程设计报告
设计题目: 实现记事本功能 学生学号: 专业班级: 2012级计算机科学与技术一班 学生姓名: 学生成绩: 指导教师(职称): (教授) 课题工作时间: 2013-12-9 至 2013-12-23 说明: 1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个学生。 2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。 3、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。答辩由指导教师实施。 4、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设计的情况另行规定。 5、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按不及格处理。 数学与计算机工程学院程序设计类课程设计任务书 学生姓 名 学号 专业班级 2012级计科一班
设计题目 实现记事本功能
主要任务及设计要求:
任务: <1>用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。
要求: 1、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理; 2、系统设计要实用,编程简练,可用,功能全面 3、记录设计情况(备查,也为编写设计说明书作好准备); 4、要求上机调试通过和按设计报告格式。 5、功能要求:用图形用户界面实现。 6、能实现编辑、保存、另存为、查找替换等功能。
指导教师:
日 期:2013年12月9日 成绩评定表 学生姓名: 学号: 专业/班级: 2012级计科一班 类别 合计 分值 各项分值 评分标准 实际得分 合计得分 备注 平时表现 10 10 按时参加设计指导,无违反纪律情况。
完成情况 30 20 按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。
10 能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。
报告质量 35 15 报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。
5 课题背景介绍清楚,综述分析充分。
5 设计方案合理、可行,论证严谨,逻辑性强,具有说服力。 5 符号统一;图表完备、符合规范要求。 5 能对整个设计过程进行全面的总结,得出有价值的结论或结果。
答辩情况 25 10 在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。
15 在规定时间内能准确、完整、流利地回答教师所提出的问题。
总评成绩: 分 指导教师: (签字) 日 期: 年 月 日 西安文理学院数学与计算机工程学院 课程设计报告
- 2 - 目 录
第一章 课题概述 …………………………………………………………………. 1 1.1 摘要 …………………………………………………………………………....2 1.2 关键字……………………………………………………..…………………....2 1. 3 前言……………………………………………………..…………………........2 1. 4 目的……………………………………………………..……………………....2 第二章 设计简介及设计方案论述 ………………………………………………....4 2.1 程序设计思路……………………………………..………………………….….4 2.2 模块说明图………………………………………………..………………….….4 2.3 程序流程图……………………………………………..………………………..4 2.4 程序相关说明……………………………………………..………………….….5 第三章 详细设计…………………………………………………………..……….. .6 3.1 构建菜单栏及其下拉菜单……………………………..………………………..6 3.2“文件”菜单的事件监听………………………………..………………………..6 3.3“编辑”菜单的事件监听……………………………..…………………………..7 3.4 异常处理……………………………..………………………….……………….7 第四章 设计结果及分析…………………………………………………..……….. .9 4.1 测试分析……………………………………….……………………….…..........9 4.2 源程序.…………………………………………………..……………………...10 总 结 …….……………………………………………………..…………………...16 附录 主要程序代码 ………...………………………………..…………………...18 参考文献…….……………………………………………………..…………...........20 西安文理学院数学与计算机工程学院 课程设计报告
- 3 - 第一章 课题背景(或绪论、概述) 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)培养学生在项目开发中团队合作精神、创新意识及能力。 西安文理学院数学与计算机工程学院 课程设计报告 - 4 - 第二章 设计简介及设计方案论述 2.1程序设计思路 在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了JScrollPane,JMenuMyListener,JFrame等。JMenu用来制作菜单,菜单的内容包括“文件”“编辑”“关于”。 JTextArea主要用来输入文本。
2.2 模块说明图
在图 1中,首先创建一个名为Notebook的类并继承JFrame类作为最底层的容器
2.3 程序流程图
图 2-3 西安文理学院数学与计算机工程学院 课程设计报告
- 5 - 2.4 程序相关说明 整个记事本分为2快:菜单栏和内容输入区。本程序中首先定义一个Notebook类继承JFrame作为最底层容器。
(1).JScrollPane为程序文本输入区。 (2).Menu为菜单栏。 (3)要想记事本完成需求分析中相应的功能,还必须添加事件监听器。事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。
西安文理学院数学与计算机工程学院 课程设计报告
- 6 - 第三章 详细设计 3.1 构建菜单栏及其下拉菜单 // 设置菜单分类 JMenu menuFilemenuEditmenuViewmenuHelp; Private void setMenu() { menuFile= new JMenu("文件(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();