




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
辽 宁 工 业 大 学JAVA程序设计 课程设计(论文)题目: 反转字符串 院(系): 软件学院 专业班级: 软件技术 班 学 号: 学生姓名: 指导教师: 丁宝柱 教师职称: 助 教 起止时间: 2009.12.1至2009.12.16 程序设计专题(报告)任务及评语院(系):软件学院 教研室:软件教研室学 号 学生姓名 专业班级软件技术 程序设计(报告)题目反转字符串程序设计(报告)任务程序设计专题的任务与要求:(1)掌握Java编程、面向对象的基础知识。(2)较熟练地编写Java应用程序Application。(3)了解Java的常用标准类库、编程技巧、异常处理。(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。指导教师评语及成绩成绩: 指导教师签字: 2009 年 12 月 20 日辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目 录第1章 课程设计的目的与要求11.1 课程设计目的11.2 课程设计的实验环境11.3 课程设计的预备知识11.4 课程设计要求1第2章 课程设计内容22.1课程设计主要内容22.2概要设计22.2.1自定义类说明22.3 数据库设计52.4详细设计52.5测试分析142.5.1程序运行情况142.5.2程序异常处理14第3章 课程设计总结15参考资料 16第1章 课程设计的目的与要求1.1 课程设计目的JAVA程序设计是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完JAVA程序设计课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。1.2 课程设计的实验环境硬件要求能运行Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。1.3 课程设计的预备知识熟悉JAVA语言及ECLIPSE开发工具。1.4 课程设计要求按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。第2章 课程设计内容2.1课程设计主要内容Java程序反转字符串是JAVA语言的简单应用。图形界面的实现:考虑到简单、实用、高效等特点,就选择了java窗体实现,在选择组件上,文本编辑区就选用了TaxtArea作为主要的部件。 线程实现文件自动保存:在相关的参考书上查阅到在Frame类中有一个schedule方法可以在后台自动完成一定的功能,而且调用起来相当简单,于是就用了Frame类中的schedule方法来实现文件自动保存及备份功能。由于Java的特性,可能用任何一个编辑器来编辑,于是就将Windows中的记事本作为模仿对象,根据实现情况删减了其中的一些功能,如自动换行,设置字体,打印等功能。 在设计类的时候,考虑到简单明了,就用了两个类,一个主类和一个默认属性类作为程序的整体框架,所有的对象和方法都是在默认属性类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类中实现的。主类完成对象的实例化及显示。这们设计的优点是:条理清晰,容易理解,容易修改。2.2概要设计* 类名: BorderLayoutTest * 作用: 自定义的异常类,用来处理将输入的字符串进行反转* 继承的父类: Frame类 * 实现的接口: 没有 *2.2.1自定义类说明类名:EditInstantiation作用:实例化对象继承的父类:WindowAdapter主要成员变量:Frame myFrm / 定义主窗体TextArea myText / 定义文本编辑区Dialog myDlgFind,myDlgFindont /查找及设置字体对话框TextField TFfind, TFreplace, TffontSize/查找对话框和字体窗体中的文本行Button BfontOK, Bfind, Breplace, Bnext, Bcancel /定义和创建各按钮Label Lf, Lr, Ls /定义和创建各标签 MenuBar Mbbar /定义和创建主菜单 Menu Mfile,Medit,Mformation,Mhelp /定义和创建主菜单中的选项 Toolkit toolKit Clipboard myCB /剪切板对象 FileDialog myFDlg /定义文件对话框 Choice ChfontName /定义和创建字体选择框 private int VIindex = 1; /构成文件名后缀变量 private String VSsubFixStr=.java; /构成文件名扩展名变量 private String VSmyFileName = Document1,VSmyBFileName; /文件名及备份文件名变量 private File VFmyFile=new File(VSmyFileName+VIindex+.java); /文件名变量 private int VIsearchPosition=0; /查找位置指针 private Timer VTtime; /实例化一个Time类 private int VImin=1; / schedule方法中的一个时间参数 private int VItype=JOptionPane.INFORMATION_MESSAGE; /提示对话框类型 private String VStitle; /提示对话框标题 private String VSmessage; /提示对话框信息 private boolean VBchanged = true; /改变字体的一个标识 private int VIfontSizeMin = 8, VIfontSizeMax = 40, VIfontSizeChangedStep = 2; /设置字体大小及步长 define sources 定义各部件 Frame myFrm=new Frame(我的编辑器); /定义窗体 TextArea myText=new TextArea(); /定义窗体 Dialog myDlgFind=new Dialog(myFrm,查找,true); /定义查找对话框 Dialog myDlgFindont=new Dialog(myFrm,字体,true); /定义字体对话框 TextField TFfind=new TextField(30);/定义查找对话中的查找输入框 TextField TFreplace=new TextField(30); /定义查找对话中的替换输入框 TextField TFfontSize,TFfontDemo;/定义字体大小文本框和示例框 Choice CHfontName;/定义字体大小选择框 List LTfontSize; /定义字体大小标签 Button BfontOK,BfontCancel; /定义字体大小对话中的确定及取消按钮 Button Bfind=new Button(查找);/定义查找对话中的查找按钮 Button Breplace=new Button(替换);/定义查找对话中的替换及取消按钮 Button Bnext=new Button(下一个);/定义查找对话中的下一个及取消按钮 Button Bcancel=new Button(取消);/定义查找对话中的确定及取消按钮 Label Lf=new Label(查找内容:); Label Lr=new Label(替换为: ); Label Ls=new Label(字体大小:); FileDialog myFDlg; Clipboard myCB=Toolkit.getDefaultToolkit().getSystemClipboard(); /剪切板对象主要成员方法:public void init() /初始化各部件菜单的定义和事件的监听public void displayEdit ()/显示窗体及调用Time中的schedule方法public void windowClosing () /关闭窗体public void save /保存文件方法a.内部类类名:KeyEvents作用:实现菜单的事件的响应功能继承的父类:KeyAdapter主要成员变量:无成员方法:actionPerformed()、keyPressed() b.内部类类名:FindKeyEvent作用:实现查找中各部件事件的响应功能继承的父类:无主要成员变量:无成员方法:actionPerformed ()c.内部类类名:fontEvent2.3 数据库设计反转字符串的查询方式有很多,在这里介绍一种最常规的方法。如果大家有更多更好的方法,欢迎提出来一起讨论。反转字符串可用于查询和转换字符串和字符串集合。它对文本文件中的半结构化数据尤其有用。查询可与传统的字符串函数和正则表达式结合使用。例如,可以使用 Split 或 Split 方法来创建字符串数组,然后可以使用Frame 来查询或修改此数组。可以在 TFfind查询的子句中使用IsMatch 方法。可以使用TFfind 来查询或修改由正则表达式返回的MatchCollection 结果。2.4详细设计/BorderLayoutTest.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import javax.swing.event.*;public class test1 public static void main(String args) cloneFrame frame = new cloneFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show();class cloneFrame extends JFramepublic cloneFrame() setTitle(机试程序); setSize(600, 400); /define sources 定义各部件 Frame myFrm=new Frame(我的编辑器); /定义窗体 TextArea myText=new TextArea(); /定义窗体 Dialog myDlgFind=new Dialog(myFrm,查找,true); /定义查找对话框 Dialog myDlgFindont=new Dialog(myFrm,字体,true); /定义字体对话框 TextField TFfind=new TextField(30);/定义查找对话中的查找输入框 TextField TFreplace=new TextField(30); /定义查找对话中的替换输入框 TextField TFfontSize,TFfontDemo;/定义字体大小文本框和示例框 Choice CHfontName;/定义字体大小选择框 List LTfontSize; /定义字体大小标签 Button BfontOK,BfontCancel; /定义字体大小对话中的确定及取消按钮 Button Bfind=new Button(查找);/定义查找对话中的查找按钮 Button Breplace=new Button(替换);/定义查找对话中的替换及取消按钮 Button Bnext=new Button(下一个);/定义查找对话中的下一个及取消按钮 Button Bcancel=new Button(取消);/定义查找对话中的确定及取消按钮 Label Lf=new Label(查找内容:); Label Lr=new Label(替换为: ); Label Ls=new Label(字体大小:); FileDialog myFDlg; Clipboard myCB=Toolkit.getDefaultToolkit().getSystemClipboard(); /剪切板对象 Menu Mfile,Medit,Mformation,Mhelp; MenuBar /define varities /定义各变量 private int VIindex = 1; private String VSsubFixStr=.java; private String VSmyFileName = Document1,VSmyBFileName; private File VFmyFile=new File(VSmyFileName+VIindex+.java); private int VIsearchPosition=0; private Timer VTtime; private int VImin=1; / parameter in time schedul private int VItype=JOptionPane.INFORMATION_MESSAGE; private String VStitle; private String VSmessage; / flag of the changeing private boolean VBchanged = true; / the scope of the font private int VIfontSizeMin = 8, VIfontSizeMax = 40, VIfontSizeChangedStep = 2; /* /founction name:init() /parameter :none /attribute :public /founction :initia all compont /* public void init() /初始化各部件 /- set menu - MBbar=new MenuBar(); myFrm.setMenuBar(MBbar); Mfile=new Menu(文件); Medit=new Menu(编辑); Mformation=new Menu(格式); Mhelp=new Menu(帮助);public String id1;public String name1;public String age1;FileOutputStream fos=null;DataOutputStream dout=null;public proposer(String id,String name,String age)this.id1=id;1=name;this.age1=age;voidsave() tryFile proFile=new File(proposer.txt);fos=new FileOutputStream(proFile);dout=new DataOutputStream(fos);dout.writeUTF(id1);dout.writeUTF(name1);dout.writeUTF(age1);dout.close(); catch(Exception err) private JLabel label_2; private int number; private int sum; final JLabel label = new JLabel(); final JLabel label_1 = new JLabel(); public static void main(String args) new game (); public game () super; getContentPane().setLayout(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JButton button = new JButton(); button.addActionListener(new ActionListener() public void actionPerformed(final ActionEvent arg0) onClick(); ); button.setText); button.setBounds(170, 350, 106, 28); getContentPane().add(button); label.setBorder(new LineBorder(Color.black, 1, false); label.setHorizontalAlignment(SwingConstants.CENTER); label.setFont(new Font(, Font.BOLD, 26); label.setText(背面); label.setBounds(158, 81, 137, 153); getContentPane().add(label); label_1.setText(你已经拥有的牌:); label_1.setBounds(109, 22, 270, 45); getContentPane().add(label_1); this.setBounds(200, 300, 501, 528); this.setVisible(true); getContentPane().add(getLabel_2(); public int randNumber() try Thread.sleep(10); catch (InterruptedException e) e.printStackTrace(); return (int) (Math.random() * 10 + 1); public void onClick() number = this.randNumber(); this.sum += number; label.setText( + number); String strTemp = this.label_1.getText(); strTemp += + number + ; label_1.setText(strTemp); String temp = 合计: + sum; label_2.setText(temp); isWin(); public void isWin() if (sum 21) JOptionPane.showMessageDialog(this, 你输了); clear(); return; else if (sum = 21) JOptionPane.showMessageDialog(this, 你赢了); clear(); return; else int i = JOptionPane.showOptionDialog(this, 是否继续?, 提示, JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null); if (i = JOptionPane.OK_OPTION) onClick(); else return; private void clear() label_2.setText(合计:); sum = 0; number = 0; JPanel buttonPanel = new JPanel(); buttonPanel.setBackground(new Color(56,43,85); Button1 = new JButton(点击复制反转字符串); Button1.addActionListener(new turnListener(); buttonPanel.add(Button1); JPanel textPanel = new JPanel(); textPanel.setBackground(new Color(100,100,100) field1 = new JTextField(姓名:老李;学号:2004132028, 20); field2 = new JTextField(反转, 20); field2.setEditable(false); textPanel.add(field1); textPanel.add(field2); private int VIindex = 1; private String VSsubFixStr=.java; private String VSmyFileName = Document1,VSmyBFileName; private File VFmyFile=new File(VSmyFileName+VIindex+.java); private int VIsearchPosition=0; private Timer VTtime; private int VImin=1; / parameter in time schedul private int VItype=JOptionPane.INFORMATION_MESSAGE; private String VStitle; private String VSmessage; / flag of the changeing private boolean VBchanged = true; / the scope of the font JPanel tuPanel = new JPanel(); JLabel label = new JLabel(new ImageIcon(006.gif); tuPanel.add(label); tuPanel.setBackground(new Color(100,100,100); private int VIindex = 1; private String VSsubFixStr=.java; private String VSmyFileName = Document1,VSmyBFileName; private File VFmyFile=new File(VSmyFileName+VIindex+.java); private int VIsearchPosition=0; private Timer VTtime; private int VImin=1; / parameter in time schedul private int VItype=JOptionPane.INFORMATION_MESSAGE; private String VStitle; private String VSmessage; / flag of the changeing private boolean VBchanged = true; / the scope of the font Container contentPane = getContentPane(); contentPane.add(buttonPanel, BorderLayout.SOUTH); contentPane.add(textPanel, BorderLayout.NORTH); contentPane.add(tuPanel, BorderLayout.CENTER); contentPane.setBackground(new Color(100,100,100);myDlgFind.add(Lf); myDlgFind.add(TFfind); myDlgFind.add(Lr); myDlgFind.add(TFreplace); myDlgFind.add(Bfind); myDlgFind.add(Breplace); myDlgFind.add(Bnext); myDlgFind.add(Bcancel);BfontOK = new Button(确定); BfontOK.addActionListener(new fontEvent(); BfontCancel = new Button(取消); BfontCancel.addActionListener(new fontEvent(); /a TextField for demo the font TFfontDemo = new TextField(Java awt,37); TFfontDemo.setEditable(false);private class turnListener implements ActionListener public void actionPerformed(ActionEvent event) String gets = field1.getText(); int i = gets.length(); StringBuffer buffer = new StringBuffer(i); for(int j=i-1;j=0;j-) buffer.append(gets.charAt(j); String gets2 = buffer.toString(); field2.setText(gets2); private JButton Button1;private JTextField field1;private JTextField field2;2.5测试分析2.5.1程序运行情况当程序正常运行的时候,它能清晰的显示出运行结果。但也有例外,如输入的字节太长,此时便不能正常运行,所以我得想办法先把它解决了,如果不解决的话,此程序等于没有或是不底不做。因为它直接影响着此程序能否成功的关键,是此程序的命脉所在,所以必须重视。又因为如果是简单的处理可能还会出现其他情况,所以得条理清晰。解决它很好办,在程序有关字节长短加句else if此时,如果出现太长的字符,就会出现BorderLayoutTest类型的类,然后捕捉结果,进行归零。2.5.2程序异常处理(1)打开文件时的异常处理需要处理的异常:IOException处理方法:捕获异常后,显示捕获的异常(2)保存文件时的异常处理需要处理的异常:IOException处理方法:捕获异常后,显示捕获的异常第3章 课程设计总结随着本学期Java课程的结束,Java基础课程的学习也正式落下了帷幕。这部分知识主要是介绍Java程序设计的基础语法,学习起来不是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮合作协议的基本示本
- 产业链技术标准统一-洞察与解读
- 2025年四川省事业单位教师招聘考试生物学科专业知识真题模拟试卷
- 2025年陕西西安事业单位招聘考试综合类专业能力测试试卷(艺术设计类)真题模拟解析
- 2025年天津市和平区面向靖远籍招聘事业单位工作人员模拟试卷参考答案详解
- 2025年综合类事业单位招聘考试公共基础知识真题模拟试卷(河北)
- 跨境支付合规难题-洞察与解读
- 贺州期末考试卷子及答案
- 2025年中国无线智能可视门铃行业市场分析及投资价值评估前景预测报告
- 北师大版八年级上学期数学第四章一次函数第2节认识一次函数练习题(含答案)
- 粉尘回收安全协议书
- 航空服务艺术与管理专业介绍
- 新质生产力五要素
- 快递员合同协议
- 破产清算造价咨询合同协议
- 配送车辆消毒管理制度
- 手术室循证护理
- 2024-2030年全球汽车级智能座舱SoC芯片行业现状、重点企业分析及项目可行性研究报告
- 2025年高中政治选择性必修二《法律与生活》全册知识点总结
- 冠状动脉微血管疾病诊断和治疗中国专家共识(2023版)解读
- 白兰地酒水知识
评论
0/150
提交评论