




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XXXXXXXX计算机学院课程设计报告书学生姓名: XXXX 学 院: 计算机学院 专业班级: 软件工程 专业课程: JAVA语言程序设计 指导教师: 2014 年 6 月 13 日题 目记事本的设计与实现考核项目考核内容得分平时考核(30分)出勤情况、态度、效率;知识掌握情况、基本操作技能、知识应用能力、获取知识能力系统设计(20分)分析系统的功能模块编程调试(20分)实现系统的各个功能模块,并完成调试回答问题(15分)回答老师针对课程设计提出的问题课程设计报告撰写(10分)严格按照规范要求完成课程设计报告源代码(5分)要个按照规范要求完成课程设计源代码的排版总 评 成 绩指导教师评语: 日期: 年 月 日C语言程序设计课程设计目 录第1章 系统设计目的.1第2章 系统实现思路.2第3章 系统详细设计.3第4章 系统调试运行.7第5章 课程设计体会.8第6章 参考文献.9第7章 附录.10I第1章 系统设计目的1.1复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握; 1.2课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;1.3培养学生在项目开发中团队合作精神,创新意识及能力 1.4掌握JAVA语言常用类包及其常用方法和JAVA语言基本语法1.5掌握JAVA语言常用类包及其常用方法和JAVA语言基本语法第2章系统实现思路2.1总体功能实现 图2.1总体功能实现图2.2记事本2.2菜单操作流程图开“文件”菜单操作流程图始“文件”菜单新建退出File=null打开用JFileChooser()选择所有打开文件路径用unfold()读取所选的文件内容到记事本保存用sava()保存文件用JFileChooser()选择文件另存的路径用sava()保存文件退出或关闭文件是否修改用sava()保存文件Y结束N用close()关闭文件图2.2“文件”菜单操作流程图2.3“编辑”菜单操作流程图开始“编辑”菜单剪切全选设置修改标签,text.cut()复制用text.copy()实现粘贴设置修改标签,text.paste()删除设置修改标签,text.replaceRange(, start, end);查找替换用FindAndReplace方法实现用text.selectAll()实现退出或关闭文件是否修改用sava()保存文件并结束用close()关闭文件YN图2.3 “编辑”菜单操作流程图2.4“帮助”菜单操作流程图开始“帮助”菜单关于记事本显示记事本的有关信息结束图2.4 “帮助”菜单操作流程图第3章 系统详细设计3.1界面设计创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息。主要代码:JMenuBar menub=new JMenuBar();JTextArea text=new JTextArea();JMenu files=new JMenu(文件(F));JMenu edit=new JMenu(编辑(E);JMenu formats=new JMenu(格式(O);JMenu help=new JMenu(帮助(H);JMenuItem newFile=new JMenuItem(新建(N);JMenuItem open=new JMenuItem(打开(O).);JMenuItem save=new JMenuItem(保存(S);JMenuItem exit=new JMenuItem(退出(X);JMenuItem cut=new JMenuItem(剪切(T);JMenuItem copy=new JMenuItem(复制(C);JMenuItem paste=new JMenuItem(粘贴(P);JMenuItem selectAll=new JMenuItem(全选(A);JMenuItem color = new JMenuItem(字体颜色(C).);JMenuItem about=new JMenuItem(关于记事本(A);3.2窗口大小主要代码:Notebook(String name)super(name);=name;int x,y;Dimension size=Toolkit.getDefaultToolkit().getScreenSize();x=(size.width-600)/2;y=(size.height-400)/2;setSize(600,400);setLocation(x,y);setMinimumSize(new Dimension(250,150);setDefaultCloseOperation(EXIT_ON_CLOSE); 3.3定义快捷键主要代码:files.setMnemonic(F);edit.setMnemonic(E);formats.setMnemonic(O);help.setMnemonic(H);newFile.setMnemonic(N);open.setMnemonic(O);save.setMnemonic(S);exit.setMnemonic(X);cut.setMnemonic(T);copy.setMnemonic(C);paste.setMnemonic(P);selectAll.setMnemonic(A);color.setMnemonic(C);about.setMnemonic(A);newFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK);open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK);save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK);exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEvent.CTRL_MASK);cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK);copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK);paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK);selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK);3.4功能代码新建:if(source=newFile)text.setText();th.setTitle(name);openedPath=null;opened=false;退出:else if(source=exit)System.exit(0);全选:else if(source=selectAll)text.selectAll();剪贴:else if(source=cut)text.cut();复制:else if(source=copy)text.copy();粘贴:else if(source=paste)text.paste();关于:else if(source=about)JFrame about = new JFrame(记事本); JLabel label1 = new JLabel(记事本); JLabel label2 = new JLabel(作者:XX ); JLabel label3 = new JLabel(电子邮箱:XXXXXXXXXX );保存:else if(source=save)String savePath=openedPath;if(savePath=null)FileDialog saveFile=new FileDialog(th,保存文件.,FileDialog.SAVE);saveFile.setVisible(true);savePath=saveFile.getDirectory()+saveFile.getFile();tryFileOutputStream fos=new FileOutputStream(savePath);fos.write(text.getText().getBytes();fos.close();catch(Exception ex)ex.printStackTrace();if(source=save)openedPath=savePath;打开:if(source=open)FileDialog openFile=new FileDialog(th,打开文件.,FileDialog.LOAD);openFile.setVisible(true);String filePath=openFile.getDirectory()+openFile.getFile();tryFileInputStream fis=new FileInputStream(filePath);byte content=new bytefis.available();fis.read(content);text.setText(new String(content);text.setCaretPosition(0);if(openFile.getFile()!=null)th.setTitle(openFile.getFile()+name);openedPath=filePath;opened=true;fis.close();catch(Exception ex)ex.printStackTrace();opened=true;颜色:else if(source=color)Color color=JColorChooser.showDialog(text, 选择颜色, Color.BLACK); text.setForeground(color);第4章 系统调试运行4.1 “文件”运行状况图4.1 文件4.2“编辑”运行状况图4.2 编辑4.3“格式”运行状况图4.3 格式4.4“帮助”运行状况图4.4 帮助第5章 课程设计体会这次综合实验我很早就开始准备了,在代码上花费的时间也很多。我深深地体会到编出一个程序是不容易的,编好一个程序更是不容易的。在很多功能上,比如说在“关闭”“新建”“打开”记事本时,如果文本没保存或者又被修改,要弹出“询问保存”的对话框,我设置好这一项后,再测试,另一项又出问题了,反复测试反复修改,研究问题的所在。其实这些或许是没必要的,但是一个程序真正的要做到“健壮性”不出现BUG,确实要下功夫的。通过这次实验,我还明白了,我们应该学会是如何学习的方法而不仅仅是知识。JAVA世界很大很开阔,书上的那些知识太少了,课堂上的时间是有限的,我们应该掌握的是学习的方法,比如说学会如果查API解决问题。读别人的程序是一个不错的方法,在别人的程序中我学到了很多知识。可能仅仅是几句代码就会使程序得到很大的改善。比如说我记事本构造方法开头中有一个设置“观感”的语句,这就是我在看别人的程序时看到的,加上这几句后记事本的样式就得到了很大改变,看上去和Windows的记事本差不了多少了。编程序还是要多练习,练得多了就熟练了,对知识的掌握也更加深入了。这次综合实验是我第一次独立地编写了一个完整的程序,虽然还有很多不足,但毕竟也是自己的心血啊,对于这个结果自己还是很满意很欣慰的,更重要的是我收获了很多,无论是专业知识还是学习方法,我相信对我以后的生活和学习都会产生积极影响的!第6章参考文献1: 孙涛 ,Java语言课程设计实践教程. 北京:清华大学出版社,2012.2: 张思民.Java语言程序设计. 北京:清华大学出版社,2007.附录:源代码 import java.io.*;import java.awt.*;import javax.swing.*;import java.util.Date;import java.awt.event.*;public class Notebook extends JFrameJMenuBar menub=new JMenuBar();JTextArea text=new JTextArea();JMenu files=new JMenu(文件(F));JMenu edit=new JMenu(编辑(E);JMenu formats=new JMenu(格式(O);JMenu help=new JMenu(帮助(H);JMenuItem newFile=new JMenuItem(新建(N);JMenuItem open=new JMenuItem(打开(O).);JMenuItem save=new JMenuItem(保存(S);JMenuItem exit=new JMenuItem(退出(X);JMenuItem cut=new JMenuItem(剪切(T);JMenuItem copy=new JMenuItem(复制(C);JMenuItem paste=new JMenuItem(粘贴(P);JMenuItem selectAll=new JMenuItem(全选(A);JMenuItem color = new JMenuItem(字体颜色(C).);JMenuItem about=new JMenuItem(关于记事本(A);JPopupMenu popupMenu = new JPopupMenu(); JMenuItem MenuMouseCut = new JMenuItem(剪切(T); JMenuItem MenuMouseCopy = new JMenuItem(复制(C); JMenuItem MenuMousePaste = new JMenuItem(粘贴(P); JMenuItem MenuMouseselectAll = new JMenuItem(全选(A); JFrame th=this;String name;String openedPath=null;boolean opened=false;boolean reworked=false;Notebook(String name)super(name);=name;int x,y;Dimension size=Toolkit.getDefaultToolkit().getScreenSize();x=(size.width-600)/2;y=(size.height-400)/2;setSize(600,400);setLocation(x,y);setMinimumSize(new Dimension(250,150);setDefaultCloseOperation(EXIT_ON_CLOSE); void init()files.setMnemonic(F);edit.setMnemonic(E);formats.setMnemonic(O);help.setMnemonic(H);newFile.setMnemonic(N);open.setMnemonic(O);save.setMnemonic(S);exit.setMnemonic(X);cut.setMnemonic(T);copy.setMnemonic(C);paste.setMnemonic(P);selectAll.setMnemonic(A);color.setMnemonic(C);about.setMnemonic(A);newFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK);open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK);save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK);exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEvent.CTRL_MASK);cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK);copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK);paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK);selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK);files.add(newFile);files.add(open);files.add(save);files.addSeparator();files.add(exit);edit.addSeparator();edit.add(cut);edit.add(copy);edit.add(paste);edit.addSeparator();edit.add(selectAll);formats.add(color);help.add(about);menub.add(files);menub.add(edit);menub.add(formats);menub.add(help);setJMenuBar(menub); getContentPane().add(new JScrollPane(text);popupMenu.add(MenuMouseCut); popupMenu.add(MenuMouseCopy); popupMenu.add(MenuMousePaste); popupMenu.add(MenuMousePaste); popupMenu.add(MenuMouseselectAll);Listen listen=new Listen();Listen1 listen1=new Listen1();newFile.addActionListener(listen);open.addActionListener(listen);save.addActionListener(listen);exit.addActionListener(listen);cut.addActionListener(listen);copy.addActionListener(listen);paste.addActionListener(listen);selectAll.addActionListener(listen);color.addActionListener(listen);about.addActionListener(listen);open.addActionListener(listen1);save.addActionListener(listen1);text.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e)checkForTriggerEvent(e); public void mouseReleased(MouseEvent e)checkForTriggerEvent(e); private void checkForTriggerEvent(MouseEvent e) if(e.isPopupTrigger() popupMenu.show(e.getComponent(),e.getX(),e.getY(); ); MenuMouseCut.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e)text.cut(); ); MenuMouseCopy.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e)text.copy(); ); MenuMousePaste.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e)text.paste(); ); MenuMouseselectAll.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e)text.selectAll(); );class Listen implements ActionListenerpublic void actionPerformed(ActionEvent e)Object source=e.getSource();if(source=newFile)text.setText();th.setTitle(name);openedPath=null;opened=false;else if(source=exit)System.exit(0);else if(source=selectAll)text.selectAll();else if(source=cut)text.cut();else if(source=copy)text.copy();else if(source=paste)text.paste();else if(source=about)JFrame about = new JFrame(记事本); JLabel label1 = new JLabel(记事本); JLabel label2 = new JLabel(作者:王合); JLabel label3 = new JLabel(电子邮箱:1635408799.com); GridBagLayout layout = new GridBagLayout(); about.setLayout(layout); GridBagConstraints n1 = new GridBagConstraints(); n1.gridx = 0; n1.gridy = 0; n1.gridwidth = 10; n1.gridheight= 10; n1.anchor=GridBagConstraints.WEST; GridBagConstraints n2 = new GridBagConstraints(); n2.gridx = 0; n2.gridy = 15; n2.gridwidth = 10; n2.gridheight= 10; n2.anchor=GridBagConstraints.WEST; GridBagConstraints n3 = new GridBagConstraints(); n3.gridx = 0; n3.gridy = 25; n3.gridwidth = 10; n3.gridheight= 10; n3.anchor=GridBagConstraints.WEST; layout.setConstraints(label1,n1); layout.setConstraints(label2,n2); layout.setConstraints(label3,n3); about.add(label1); about.add(label2); about.add(label3); about.setSize(200,100); about.setLocation(300,200); about.setVisible(true); about.setResizable(false);else if(source=color)Color color=JColorChooser.showDialog(text, 选择颜色, Color.BLACK); text.setForeground(color);class Listen1 implements ActionListenerpublic void actionPe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 煤矿支护考试题及答案
- 数学旋转考试题及答案
- 康复治疗面试题及答案
- 储能系统运维安全手册
- java自增自减面试题及答案
- 家电公司采购合同管理办法
- 西藏环卫工人考试试题及答案
- 海曙社工面试题及答案
- 咸宁叉车考试题及答案
- 物理磁学考试题及答案
- 2025汽车智能驾驶技术及产业发展白皮书
- 苯职业病防护课件
- 2025年铸牢中华民族共同体意识基本知识测试题及答案
- 2025年湖北省中考道德与法治真题(解析版)
- 2025-2030年中国胃食管反流病行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国苯丙酮尿症(PKU)行业市场发展趋势与前景展望战略研究报告
- 2025至2030年中国PA10T行业市场竞争态势及未来前景分析报告
- 催收新人培训管理制度
- DZ/T 0089-1993地质钻探用钻塔技术条件
- 2025-2030中国铁路道岔行业市场现状供需分析及投资评估规划分析研究报告
- 特种设备安全法培训课件
评论
0/150
提交评论