免费预览已结束,剩余32页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言程序设计实验报告学院:计算机科学与技术专业:计算机科学与技术班级:学号:姓名: 太原理工大学学生实验报告学院名称计算机科学与技术专业班级学号学生姓名 实验日期 2011.9.14 成绩课程名称Java语言程序设计实验题目Java语言基础一 实验目的1. 通过实验,掌握java语言程序设计的基本方法。2. 学会java语言中标识符的命名,运算符和表达式的应用。3. 较熟练地掌握java程序流程控制语句的应用。二 实验内容1. 将本教材中例题程序编辑,调试,并运行。2. 使用for循环语句,不要用顺序结构的System.out.println简单输出,在屏幕的正中间(上下居中,左右居中)输出本章习题3.5中的图案2。3. 编写程序,完成本章习题中第3.9题的编程,调试与运行。三 编译源程序 1. public class Ti_5_2 public static void main(String args)int i,j,k=0;for(i=1;i=4;i+)for(j=0;j=30+i-1;j+)System.out.print( );for(k=1;k=9-2*i;k+)System.out.print(*);System.out.println();for(i=5;i=7;i+)for(j=0;j=30+7-i;j+)System.out.print( );if(i!=7)for(k=1;k=2*(i-3)-1;k+)if(k=1|k=2*(i-3)-1) System.out.print(*); else System.out.print( ); else if(i=7) for(k=1;k 0) rtr_str = ( + m + + + n + i + ); if (n = 0) rtr_str = ( + m + ); if (n this.balance)System.out.println(金额不足,请重新输入);else this.balance-=money; System.out.println(你取了+money+元);public class L02 public static void main(String args) Account a=new Account(*,400); System.out.println(账户余额为+a.getbalance()+元); a.deposit(500); System.out.println(你存入+a.getbalance()+元); System.out.println(账户余额为+a.getbalance()+元); a.withdraw(300); 3. package mymaths;interface Num public void Max(); public void Min();public class interface implements Numint a,b,c;public interface (int a,int b,int c) this.a=a; this.b=b; this.c=c;public void Max() int max; max=ab?a:b; max=maxc?max:c; System.out.println(三个数中最大值是:+max); public void Min() int min; min=ab?a:b; min=minc?min:c; System.out.println(三个数中最小值是:+min); public static void main(String args) interface qr=new interface (8,4,13); qr.Max(); qr.Min(); 4. import java.util.*;public abstract class Cipher public String encrypt(String s) StringBuffer result = new StringBuffer(); StringTokenizer words = new StringTokenizer(s); while (words.hasMoreTokens() result.append(encode(words.nextToken() + ); return result.toString(); public String decrypt(String s) StringBuffer result = new StringBuffer(); StringTokenizer words = new StringTokenizer(s); while (words.hasMoreTokens() result.append(decode(words.nextToken() + ); return result.toString(); public abstract String encode(String word); public abstract String decode(String word);public class Caesar extends Cipher public String encode(String word) StringBuffer result = new StringBuffer(); for (int k = 0; k word.length(); k+) char ch = word.charAt(k); ch = (char)(a + (ch -a+ 3) % 26); result.append(ch); return result.toString(); public String decode(String word) StringBuffer result = new StringBuffer(); for (int k = 0; k word.length(); k+) char ch = word.charAt(k); ch = (char)(a + (ch - a + 23) % 26); result.append(ch); return result.toString(); public class Transpose extends Cipher public String encode(String word) StringBuffer result = new StringBuffer(word); return result.reverse().toString(); public String decode(String word) return encode(word); public class TestEncrypt public static void main(String argv) Caesar caesar = new Caesar(); /Cipher ci =new Cipher(); String plain = this is the secret message; String secret = caesar.encrypt(plain); System.out.println( * Caesar Cipher Encryption *); System.out.println(PlainText: + plain); System.out.println(Encrypted: + secret); System.out.println(Decrypted: + caesar.decrypt(secret); Transpose transpose = new Transpose(); secret = transpose.encrypt(plain); System.out.println(n * Transpose Cipher Encryption *); System.out.println(PlainText: + plain); System.out.println(Encrypted: + secret); System.out.println(Decrypted: + transpose.decrypt(secret); 四实验结果 实验一的运行结果如下: 实验二的运行结果如下: 实验三的运行结果如下: 实验四的运行结果如下: 五试验中遇到的问题及体会 在实验过程中的确遇到过很多问题,不像前几章那样较容易实现各功能,比如在做实验一时开始的时候各个计算的相关算法确实不容易想,后来在与同学进行探讨后才勉强实现实验要求,还有在做第三题时我还分不清类与接口之间的区别与联系,不过经过仔细看书,发现理解起来也不是很困难,至于题中的算法还相对比较容易实现,另外在实验四中一开始案例一的设计都没看懂,最后在别人的帮助下才得以完成实验内容要求。 经过这次实验我发现自己在知识方面还有很多的不足,在平时的练习中也不懂得扩展与举一反三,导致这次的实验做得马马虎虎,除此之外也体会到了面向对象程序设计相对于过程化程序设计的优越性,总之,语言是一门技巧,要想能熟练掌握,必须多加练习。太原理工大学学生实验报告学院名称计算机科学与技术专业班级学号学生姓名 实验日期 2011.10成绩课程名称Java语言程序设计实验题目Java异常处理一实验目的 掌握异常的概念,以及如何定义,抛出和捕获处理异常二实验内容 1.做实验之前要求思考一下问题,作为预习内容: (1)错误和异常有何区别?查看java异常类的关系图。 (2)异常是如何抛出,捕获和处理的? (3)java捕获和处理异常的结构是怎样的? (4)try语句如何嵌套?throw语句有何作用?finally程序块的作用是什么? 2.运行下面的程序,理解异常的抛出,捕获与处理。 import java.io.*;public class ExceptionTest public static void main(String args) for(int i=0;i4;i+) int k; try switch(i) case 0:/divided by zero int zero=0; k=911/zero; break; case 1:/null pointer int b=null; k=b0; break; case 2:/array index out of bound int c=new int2; k=c9; break; case 3:/string index out of bound char ch=abc.charAt(99); break; catch(Exception e) System.out.println(nTestcase#+i+n); System.out.println(e); 实验地点多学科楼六层606室指导教师 相洁 3.仿照例6.5创建一个自己的异常类。 要求:在定义银行类时,若取钱数大于余额则作为异常处理(InsufficientFundsException)。 提示:(1)产生异常的条件是余额小于取款额,因此是否抛出异常要先判断该条件。 (2)确定产生异常的方法,应该在取钱方法(withdrawal)中产生异常Insufficient Funds Exception。 (3)处理异常安排在调用withdrawal的时候,因此withdrawal方法要声明异常,由上级方法捕获并处理。 (4)将例6.7,例6.8输入计算机,观察运行结果。三实验过程 1.(1)错误与异常的区别:错误:指在程序编译时如果程序进入死循环,或递归无法结束,或内存溢出。错误只能在编程阶段解决,只能依靠其他程序干预,否则会一直处于非正常状态。异常:指运算时除数为0,或操作数超过范围,或打开一个文件时发现文件并不存在,或欲装入的类文件丢失,或网络连接中断等。 (2) java提供了一种利用简单易行的方法检查和处理运行时产生的错误的异常处理机制,它是通过面向对象的方法来处理异常的。在java程序的执行过程中,如果出现了异常事件,就会生成一个异常对象。生成的异常对象将传递给java运行时系统,这一异常的产生和提交过程成为抛弃异常。当java运行时系统得到一个异常对象时,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。找到能够处理这类异常的方法后,运行时系统把当前异常对象交给这个方法进行处理,这一过程称为捕获异常。 (3) 根据程序对错误与异常的处理方式,可以将java中的异常分为Error类,RuntimeException类和Exception类。其中Error类包括的是一些严重的程序不能处理的系统错误类,如内存溢出,虚拟机错误,栈溢出等。这类错误一般主要与硬件有关,与程序本身无关,通常由系统进行处理,程序本身无需去捕获和处理。程序运行过程中,可能出现RuntimeException类的异常数量相当大,对于运行时的异常类,如数组越界,算术异常等,应通过程序尽量避免而不是去捕获它。 (4) 为了避免程序运行时可能出现的错误,将程序代码放在try程序块中,紧跟在try语句后面包括一个catch语句,用来指定需要捕获的异常类型。 在程序中发生异常时,程序员可以抛出(throw)一个自定义异常类的实例,将其放到异常队列中去,并激活java的异常处理机制。 当抛出一个异常时,程序的执行就不再是线性的,这样就有可能导致方法的执行中断。在java语言中,使用finally语句来解决此类问题。Finally语句创建一个代码块,在try/catch语句执行后执行,不管是否抛出一个异常,系统都将执行finally语句的程序代码。 2. import java.io.*;public class ExceptionTest public static void main(String args) for(int i=0;i4;i+) int k; try switch(i) case 0:/divided by zero int zero=0; k=911/zero; break; case 1:/null pointer int b=null; k=b0; break; case 2:/array index out of bound int c=new int2; k=c9; break; case 3:/string index out of bound char ch=abc.charAt(99); break; catch(Exception e) System.out.println(nTestcase#+i+n); System.out.println(e); 3. import java.io.*;import java.util.*;public class L_06_07 public static void main(String args) L_06_07 grades=new L_06_07(); grades.calculateGrades(); /Instance variables Vector names=new Vector(); Vector marks=new Vector(); public void calculateGrades() int i; loadData(indata.txt);/调用loadData()方法读数据 for(i=0;ithis.balance) throw new InsufficientFundsException(); this.balance-=money; public void process(boolean save, double money) if(save) System.out.println(你的余额为:+balance); else try double left = withdrawl(money); catch(InsufficientFundsException e) public class Bank public static void main(String args) Account a=new Account(*,400); System.out.println(账户余额为+a.getbalance()+元); a.deposit(500); System.out.println(你存入+a.getbalance()+元); System.out.println(账户余额为+a.getbalance()+元); a.withdrawl(300); 5. class DivideByZeroException extends Exception public Object offender; public DivideByZeroException(Object anObject) super(Divide By Zeroin+anObject); offender=anObject; public class L_06_02 int x,y; public static void main(String args) L_06_02 my=new L_06_02 (5,0); /对5除以0进行测试trymy.test(); catch(DivideByZeroException e) System.out.println(Divide By Zero.零作除数。); public L_06_02 (int a,int b)x=a; y=b; public void test() throws DivideByZeroException if(y=0) throw new DivideByZeroException(this); else System.out.println(x/y); 四 实验结果实验2的运行结果如下: 实验3的运行结果如下: 实验4的运行结果如下: 实验5的运行结果如下: 五试验中遇到的问题及体会 异常指程序在运算时除数为0,或操作数超过范围,或打开一个文件时发现文件并不存在,或欲装入的类文件丢失,或网络连接中断等。而异常处理机制的主要优点是:(1)java通过面向对象的方法进行异常处理,把各种不同的异常处理事件进行分类,体现了良好的层次性,提供了良好的接口。(2)java的异常处理机制使得处理异常的代码和“常规”代码分开,减少了代码的数量,同时增强了程序的可读性。(3)java的异常处理机制使得异常事件可以沿堆栈自动向上传播,而不像C/C+语言中通过函数的返回值来传播,这样可以传递更多的信息并且简化代码的编写。(4)由于把异常事件当成对象来处理,利用类的层次性我们可以把多个具有相同父类的异常统一处理,也可以区分不同的异常分别处理,使用非常灵活。(5)java异常处理机制为具有动态运行特性的复杂程序提供了强有力的控制方式。 在程序的整个运行过程中,实验二,四都比较容易调试,也没出现任何问题,同时在实验三中创建异常类时由于可仿照例6.5进行实验,所以实现起来也相对比较容易,即使如此,我觉得要真正掌握这一部分内容也不是那么容易,所以以后我更应该多去尝试新的题型,希望能彻底把这一部分给掌握了,以至于使所编写的程序更加健壮,完美。太原理工大学学生实验报告学院名称计算机科学与技术专业班级学号学生姓名 实验日期 2011.10.12成绩课程名称Java语言程序设计实验题目 图形用户界面一实验目的 掌握文本组件,按钮和单,复选按钮组件的使用;掌握列表的使用,鼠标,键盘事件的处理;掌握布局控制的方法。二实验内容 (1)编写一个Applet程序响应鼠标事件,当事件发生时,在状态条显示相应的事件信息。提示:使用showStatus(字符串)方法。 (2)完成图8.16所示的GUI布局管理,不需要实现功能。 (3)试设计一窗口,内含一个按钮,开始运行时,按钮显示“Click Me”字样,当按钮按下时,按钮显示为”Click Me Again“字样,再按一次,则按钮显示“Click Me”字样,依次循环。 (4)仿照Windows 2000/XP系统提供扫雷游戏编写一个类似功能和界面的扫雷程序。 (5)编写一个简易文本编辑器,参考界面如图8.17所示。 要求:包含基本的打开,保存,新建等功能,包含菜单,能够对文本的字体类型和颜色进行设置,力求界面美观。三程序源代码 (1) import java.awt.*;import java.awt.event.*;public class L08_07 implements MouseMotionListener,MouseListener,WindowListener private Frame frm; private TextField tf; public static void main(String args) L08_07_ListenerImpDemo two = new L08_07_ListenerImpDemo(); two.go(); public void go() frm = new Frame(三个监听器); frm.add(new Label(拖曳鼠标),North); tf = new TextField(30); frm.add(tf,South); /使用缺省的布局管理器 frm.addMouseMotionListener(this); /注册监听器MouseMotionListener frm.addMouseListener(this); /注册监听器MouseListener frm.addWindowListener(this); /注册监听器WindowListener frm.setSize(300,200); frm.setVisible(true); public void mouseDragged(MouseEvent e)/实现mouseDragged方法实验地点多学科楼六层606室指导教师 相洁 String s = 鼠标当前坐标: X=+e.getX()+tY = +e.getY(); tf.setText(s); public void mouseMoved(MouseEvent e)/对其不感兴趣的方法可以方法体为空 public void mouseClicked(MouseEvent e) public void mouseEntered(MouseEvent e) String s = 鼠标进入了; tf.setText(s); public void mouseExited(MouseEvent e) String s = 鼠标离开了; tf.setText(s); public void mousePressed(MouseEvent e) public void mouseReleased(MouseEvent e) public void windowClosing(WindowEvent e) System.exit(1);/为了使窗口能正常关闭,程序正常退出,需要实现windowClosing方法 public void windowOpened(WindowEvent e)/对其不感兴趣的方法可以方法体为空 public void windowIconified(WindowEvent e) public void windowDeiconified(WindowEvent e) public void windowClosed(WindowEvent e) public void windowActivated(WindowEvent e) public void windowDeactivated(WindowEvent e) (2) import java.awt.*;public class L08_02 extends Frame static Frame frm=new Frame(FileChooseDemo); static Panel pnl=new Panel(new GridLayout(1,4,1,15); static Panel pn2=new Panel(new GridLayout(); static Panel pn3=new Panel(new GridLayout(5,1); static Panel pn4=new Panel(new GridLayout(5,1); static Panel pn5=new Panel(new GridLayout(6,1); static Panel pn6=new Panel(new GridLayout(6,1); static Checkbox chb1=new Checkbox(Open,true); static Checkbox chb2=new Checkbox(Save,false); static Checkbox chb3=new Checkbox(Custom,false); static Checkbox chb4=new Checkbox(Default Filtering,true); static Checkbox chb5=new Checkbox(Add JPG and GIF Filters,false); static Checkbox chb6=new Checkbox(Show Hidden Files,false); static Checkbox chb7=new Checkbox(Show Extension,true); static Checkbox chb8=new Checkbox(Show FileView,true); static Checkbox chb9=new Checkbox(Show PreView,true); static Checkbox chb10=new Checkbox(Show Control Buttons,true); static Checkbox chb11=new Checkbox(Just Select Files,false); static Checkbox chb12=new Checkbox(Just Select Directories,false); static Checkbox chb13=new Checkbox(Select Files or Directories,false); static Checkbox chb14=new Checkbox(Single Selection,true); static Checkbox chb15=new Checkbox(Multi Selection,false); static Checkbox chb16=new Checkbox(Metal,false); static Checkbox chb17=n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上海杨浦区复旦附小分校二年级数学质量冲刺单元测试题库及答案
- 2025年导游招聘面试题库及参考答案
- 2025年绩效教练招聘面试题库及参考答案
- 2025年刑事律师招聘面试参考题库及答案
- 2025年初级财务管理招聘面试题库及参考答案
- 疾控护士考试题库及答案
- 2025年工程项目专员招聘面试参考题库及答案
- 2025年招投标经理招聘面试题库及参考答案
- 贵阳教师考编题库及答案
- 2025年航空公司乘务员招聘面试参考题库及答案
- 诊所信息安全管理制度
- 新生儿戒断综合征评分标准
- 鼻出血的课件
- 汽车行业发展概况及趋势
- 五年级家长会方案
- 二零二五年度健康管理中心特许经营授权书
- 钢结构安装专项施工方案
- 2019年内蒙古对口升学语文原试卷
- 土地整治项目验收手册
- 粤教版八年级上册地理总复习资料
- 2025年黑龙江省普通高中学业水平合格性考试英语试题(含答案无听力原文及音频)
评论
0/150
提交评论