




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科实验报告课程名称: JAVA语言程序设计 实验项目: 基础编程,数组和字符串 ,面向对象,异常,多线程 实验地点: 专业班级: 班 学号: 学生姓名: 指导教师: 2014年11月24日目 录实验1 Java语言基础3实验2 数组和字符串编程4实验3 Java面向对象程序设计5实验4 Java异常处理7实验5 多线程编程9实验6 图形用户界面编程11实验7 输入与输出14实验8 网络编程15实验9 数据库编程16实验1 Java语言基础1.实验目的(1) 通过实验,掌握Java语言程序设计的基本方法。(2) 学会Java语言中标示符的命名、运算符和表达式的应用。(3) 熟练地掌握Java程序流程控制语句的应用。2. 实验内容(1) 编写应用程序,计算100(含100)以内所有偶数的和。运行结果:(2) “水仙花数”是指一个3位数,其个位、十位、百位上的数字的立方和等于该数本身,例如371=33+73+13,因此371是一个水仙花数。编写程序,求所有的水仙花数。运行结果:(3) 编写一个程序,求1-100间的素数。运行结果:(4) 有一函数: x (x1)Y= 3x-2 (1x10) 4x (x10) 写一程序,给定x值,输出y值。运行结果: (5) 使用for循环语句,编写程序输出以下图案。package com.siant.xing;public class xing public static void main(String args)int H = 7, W = 7;for(int i=1;i=(H+1)/2;i+)for(int j=1;j=(W+1)/2-i;j+)System.out.print( );for(int k=1;k=2*i-1;k+)System.out.print(*);System.out.println();for(int i=1; i=3; i+)for(int j=1; j=i; j+)System.out.print( );for(int k=1; k=W-2*i; k+)System.out.print(*);System.out.println(); 运行结果:(6) 编写程序,输出从公元1900年到2100年所有闰年的年号,每输出5个年号换一行。判断年是否为闰年的条件是: 若年号可以被4整除,而不能被100整除,则是闰年; 若年号可以被400整除,也是闰年。package com.saint.run;public class run public static void main(String args)for(int i=1900;i=2010;i+)int n = 0;if(i%4=0)&(i%100!=0)|(i%400=0)n+;System.out.println(i+是闰年); if(n%5=0) System.out.println(n); 运行结果:3.讨论、心得 我通过这个实验基本上掌握了Java Eclipse的使用方法以及Java语言程序设计的基本方法和Java程序流,从中受益匪浅,使我学会了许多东西,结果相对比较满意. 实验2 数组和字符串编程1、 实验目的和要求(1) 通过实验,掌握Java语言中数组、字符串程序设计的基本方法。(2) 较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。2、 实验内容和原理(1) 编写一个程序,在控制台输入10个数,按大小顺序输出。(2) 求一个3*3矩阵对角线元素之和。(3) 输入一段字符串,统计其中有多少个单词。(单词用空格隔开)3、 主要仪器设备 笔记本电脑HP6460b,win7,eclipse 4、 操作方法与实验步骤(1)package com.elephant.Px;import java.util.Scanner;import java.util.Arrays;public class paixu public static void main(String args) System.out.print(请输入要比较数字的个数:);Scanner scanner=new Scanner(System.in);int length=scanner.nextInt();int ints=new intlength;for(int i=0;ilength;i+)System.out.print(请输入第+(i+1)+个数字:);intsi=scanner.nextInt();Arrays.sort(ints);System.out.println(Arrays.toString(ints);(2)package com.elephant.Jzqh;import java.io.*;import java.io.BufferedReader;import java.io.InputStreamReader;public class juzheqiuhe public static void main(String args) throws IOException int i, j, temp=0, aH = 3, aL = 3, a;BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);String str;a = new intaHaL;System.out.println(输入数组a的各元素:);for (i = 0; i aH; i+) for (j = 0; j aL; j+) str = buf.readLine();aij = Integer.parseInt(str);for (i = 0; i aH; i+) for (j = 0; j aL; j+) if(i=j|i+j=2)temp=temp+aij;System.out.print(对角元素和为+temp);(3)public class Tongji public static void main(String args) throws IOException int num = 1; String s; System.out.println(请输入字符串); BufferedReader buf = new BufferedReader( new InputStreamReader(System.in); s = buf.readLine(); for (int i = 0; i this.balance)System.out.println(金额不足,请重新输入);else this.balance-=money; System.out.println(你取了+money+元);(3)package jiekou;public class Jiekou public static void main(String args)Crectangle n=new Crectangle (9,5,31); n.Max(); n.Min(); interface Npublic void Max();public void Min();class Crectangle implements N int a,b,c; public Crectangle (int a,int b,int c) this.a=a; this.b=b; this.c=c; public void Max() int max; max=(ab?a:b)c?(ab?a:b):c; System.out.println(三个数中最大值是:+max); public void Min() int min; min=(ab?a:b)c?(a + name + 成功!);elseSystem.out.println(该商品不存在);public static void Add() System.out.println(*增加商品*);System.out.print(商品名称:);name=Getline();System.out.print(商品价格:);price=Float.parseFloat(Getline();System.out.print(商品数量:);num=Integer.parseInt(Getline();System.out.print(商品产地:);producer=Getline();if (market.Add(name, price, num,producer) System.out.println(增加商品- + name + 成功!); else System.out.println(存在相同商品,增加失败!);public static String Getline() Scanner scan = new Scanner(System.in);String str = scan.nextLine();return str.trim();Goodspublic class Goods private String name;private float price;private int num;private String producer;public Goods(String name,float price,int num,String producer)=name;this.price=price;this.num=num;ducer=producer;public String GetName()return ;public float GetPrice()return this.price;public int GetNum()return num;public String GetProducer()return ducer;public void Showgoods()System.out.print(商品名称: +name+ 商品价格:+price+ 商品数量:+num+ 商品产地:+producer+n);Supermarketimport java.util.Vector;public class Supermarkt static Vector listgoods=new Vector();public void ShowMenu() System.out.println(-);System.out.println(1.增加商品 );System.out.println(2.删除商品);System.out.println(3.显示商品 );System.out.println(4.查询商品 );System.out.println(5.退出系统 );System.out.println(-);return;/增加商品public boolean Add(String name,float price, int num,String producer)int count=listgoods.size();for(int i=0;icount;i+)if(listgoods.get(i).GetName().equals(name)return false;Goods newgoods =new Goods(name,price,num,producer);listgoods.add(newgoods);return true;/删除商品public boolean Del(String name)int count=listgoods.size();for(int i=0;icount;i+)if(listgoods.get(i).GetName().equals(name)listgoods.remove(i);return true;return false;/显示商品public boolean Showgoods()int count=listgoods.size();if(count=0)return false;else for(int i=0;icount;i+)listgoods.get(i).Showgoods();return true;/查询商品public boolean Query(String name)int count=listgoods.size();for(int i=0;icount;i+)if(listgoods.get(i).GetName().equals(name)listgoods.get(i).Showgoods();return true;return false;五、实验结果与分析(1)(2)(3)(4)6、 讨论、心得 通过实验,我掌握Java面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素,在实验过程中的确遇到过很多问题,不像前几章那样较容易实现各功能,我发现自己在知识方面还有很多的不足,在平时的练习中也不懂得扩展与举一反三,导致这次的实验做得马马虎虎,除此之外也体会到了面向对象程序设计相对于过程化程序设计的优越性,总之,语言是一门技巧,要想能熟练掌握,必须多加练习。实验4 Java异常处理1.实验目的掌握异常的概念,以及如何定义、抛出和捕获处理异常。2.实验内容(1) 做实验之前要求思考以下问题,作为预习内容;1 错误和异常有何区别?查看Java异常类的关系图。2 异常是如何抛出、捕获和处理的?3 Java捕获和处理异常的结构式怎样的?4 Try语句如何嵌套?Trow语句有何作用?Finally程序快的作用是什么?(2) 运行下面的程序,理解异常的抛出、捕获与处理。Import java.io.*;public class void main(String args) public staic 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)在实验三中的超市、商品类中创建一个自定义异常类。 要求:在定义商品类时,若销售商品数量大于余额则作为异常处理(InsufficientFundsException)。提示:1 产生异常条件是某类商品销售数量大于库存额,因此是否抛出异常要先判断该条件。2 确定产生异常的方法,应该在sale方法中产生异常Insufficient Funds Exception。3 处理异常安排在调用sale的时候,因此sale方法要声明异常,由上级方法捕获并处理。4 要定义好自己的异常。import java.util.Scanner;public class Z6_3 private long balance=0;public void deposit(long x) /存款balance=balance+x;System.out.println(存+x+元成功);public void withdraw(long x)throws InsufficientFundsException /取款 if(x=balance) balance=balance-x; System.out.println(取+x+元成功); else throw new InsufficientFundsException(余额小于取款额,取款失败+n); public void getbalance(long x) /查询System.out.println(您的余额为:+balance); public static void main(String args) Z6_3 account=new Z6_3();Scanner in=new Scanner(System.in);while(true)System.out.println(请输入您接下来进行的操作序号:1存款;2取款;3查询余额);int i=in.nextInt(); switch(i) case 1:System.out.print(请输入存款的数额:);int j=in.nextInt();account.deposit(j);break; case 2:System.out.print(请输入取款的数额:);int k=in.nextInt(); try account.withdraw(k); catch(InsufficientFundsException f) System.out.print(f.getMessage(); break; case 3:account.getbalance(account.balance);break; class InsufficientFundsException extends Exceptionpublic InsufficientFundsException(String msg)super(msg);3.讨论、心得 (1)错误和异常有什么区别?答:致命性错误:如程序进入死循环,或递归无法结束,或内存溢出,称之为错误。错误只能在编程阶段解决,只能依靠其他程序干预,否则一直处于非正常状态。 而非致命性的异常:如运算时除数为0,或操作数超出范围,或打开一个文件时发现文件并不存在,或欲装入的类文件丢失,或网络连接中断等,这类现象称为异常。(2)异常是如何抛出、捕获和处理的?答:1、Java程序在执行过程中如出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统,这个过程称为抛出(throw)异常。2、当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。3、如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。4、对于RuntimeException,通常不需要我们去捕获,这类异常由Java运行系统自动抛出并自动处理。5、派生类构造方法的异常说明必须包含基类构造方法的异常说明,即派生类构造方法的异常必须为基类异常或其父类,当基类构造方法没有异常时,派生类构造方法也可以异常声明。注意,派生类构造器不能捕获基类构造方法抛出的异常。6、派生类方法可以不抛出异常,即使基类有异常说明,如果派生类方法有异常说明,必须是基类异常或其子类,而且当基类没有异常声明时,派生类方法不允许异常声明(关于构造方法见5中的说明)。7、我们可以在方法声明时,声明一个不会抛出的异常,Java编译器就会强迫方法的使用者对异常进行处理。这种方式通常应用于abstract class和interface中。(3)Java捕获和处理异常的结构是怎样的?答:使用try-catch-finaly语句来捕获,获得异常后自己处理或者让系统自己处理。(4) 为了避免程序运行时可能出现的错误,将程序代码放在try程序块中,紧跟在try语句后面包括一个catch语句,用来指定需要捕获的异常类型。 在程序中发生异常时,程序员可以抛出(throw)一个自定义异常类的实例,将其放到异常队列中去,并激活java的异常处理机制。 当抛出一个异常时,程序的执行就不再是线性的,这样就有可能导致方法的执行中断。在java语言中,使用finally语句来解决此类问题。Finally语句创建一个代码块,在try/catch语句执行后执行,不管是否抛出一个异常,系统都将执行finally语句的程序代码。 在程序的整个运行过程中,程序比较容易调试,也没出现任何问题,即使如此,我觉得要真正掌握这一部分内容也不是那么容易,所以以后我更应该多去尝试新的题型,希望能彻底把这一部分给掌握了,以至于使所编写的程序更加健壮,完美。实验5 多线程编程1、 实验目的和要求(1) 现成的概念、线程的生命周期。(2) 多线程的编程:扩展Thread类与使用Runnable接口。(3) 使用多线程机制实现动画2、 实验内容和原理(1) 运行程序,理解用创建Thread子类的方法实现多线程。(2) 运行程序,理解用实现Runnable接口的方法实现多线程。(3) 创建简单的程序ThreeThread.java,该程序将创建三个线程,每个线程应当显示它所运行的时间(可以考虑使用Date类或Calendar类)。3、 主要仪器设备笔记本电脑HP6460b,win7,eclipse4、 操作方法与实验步骤(1)/S09_01_Thread.Javaimport java.util.*;class S09_01_Thread extends Thread int pauseTime; String name; public S09_01_Thread(int x,String n) pauseTime=x; name=n;public void run() while(true) try System.out.println(name+:+new Date(System.currentTimeMillis(); Thread.sleep(pauseTime); catch(Exception e)System.out.println(e); static public void main(String srgs) S09_01_Thread tp1=new S09_01_Thread(1000,Fast); tp1.start(); S09_01_Thread tp2=new S09_01_Thread(3000,Slow); tp2.start(); (2)/S09_02_Thread.Javaimport java.util.*;class S09_02_Thread implements Runnable int pauseTime; String name; public S09_02_Thread(int x,String n) pauseTime=x; name=n;public void run() while(true) try System.out.println(name+:+new Date(System.currentTimeMillis(); Thread.sleep(pauseTime); catch(Exception e)System.out.println(e); static public void main(String srgs) Thread t1=new Thread(new S09_02_Thread(1000,Fast); t1.start(); Thread t2=new Thread(new S09_02_Thread(3000,Slow); t2.start(); (3)package 线程;import java.util.*;public class L09_03_ThreeThread extends Thread int pauseTime; String name; public L09_03_ThreeThread(int x,String n) pauseTime=x; name=n; public void run() while(true) try System.out.println(name+:+new Date(System.currentTimeMillis(); catch(Exception e) System.out.println(e); public static void main(String args) L09_03_ThreeThread tp1=new L09_03_ThreeThread(1000,Fast); tp1.start(); L09_03_ThreeThread tp2=new L09_03_ThreeThread(2000,Midle); tp2.start(); L09_03_ThreeThread tp3=new L09_03_ThreeThread(3000,Slow); tp3.start(); 五、实验结果与分析(1)(2)(3)六、讨论、心得 在java程序设计中,所有进程都是包含线程概念的,一般都是把主程序当作主线程。对多线程的综合支持是java语言的一个重要特色,在java中,内置了Thread类来实现多线程,当程序引用了java.lang.Thread类时,也就引入了一个java执行环境。当程序加载到内存时,启动主程序,如果需要使用其他线程,则可以采用以下两种方式创建新的线程:一种是继承java.lang.Thread类,用它覆盖Thread类的run()方法;另一种是编写一个类,使之实现java.lang.Runnable接口,然后在Thread构造函数中使用它。第一种方式只能在类没有继承其他任何类的情况下才能使用,因为java不允许多重继承。因此,如果一个类要继承其他的类,最好选用第二种方法,这样会有更大的灵活性。 在本次实验中我发现在触发线程运行时,首先要声明,用start()方法来使其运行。知道了Java语言用以实现多线程的两种机制继承Thread类和实现Runnable接口;还知道了线程的五种状态新建、就绪、运行、挂起和死亡,另外还学会了线程的同步和线程组之间通信的方法。实验6 图形用户界面编程1、 实验目的和要求 掌握文本组件、按钮和单、复选按钮组件的使用;掌握列表的使用,鼠标、键盘事件的处理;掌握布局控制的方法。2、 实验内容和原理(1) 编写一个Applet程序响应鼠标事件,当鼠标事件发生时,在状态条显示相应的时间信息。提示:使用showStatus(字符串)方法。(2) 完成图6-1所示的GUI布局管理,不需要实现功能。图6-1 要实现的GUI布局管理(3) 试设计一窗口,内含一个按钮。开始运行时,按钮显示“Click Me”字样,当按钮按下时,按钮显示为“Click Me Again”字样,再按一次,则按钮显示“Click Me”字样,依次循环。(4) 仿照Windows 2000/XP系统提供扫雷游戏编写一个类似功能和界面的扫雷程序。(5) 编写一个简易文本编辑器,参考界面如图6-2所示。图6-2 简易文本编辑器运行效果图要求:包含基本的打开、保存、新建等功能。包含菜单,能够对文本的字体类型和颜色进行设置,力求界面美观。3、 主要仪器设备笔记本电脑HP6460b,win7,eclipse4、 操作方法与实验步骤(1)package applet;import javax.swing.*;import java.awt.event.*;import java.text.DateFormat;import java.text.Simpl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 氧化铝制取工转正考核试卷及答案
- 钼铁冶炼工应急处置考核试卷及答案
- 特种炉冶炼工协同作业考核试卷及答案
- 钽铌压制成型工协同作业考核试卷及答案
- 铁合金焙烧工抗压考核试卷及答案
- 卡尔多炉工适应性考核试卷及答案
- 2024秋九年级英语下册 Module 7 English for you and me Unit 1 Have you ever been to an English corner说课稿(新版)外研版
- 机场租赁合同协议范本解析
- 零售门店人才画像-洞察及研究
- 媒体宣传服务推广协议
- 广州数控GSK 980TDc车床CNC使用手册
- 2024年急危重症患者鼻空肠营养管管理专家共识
- 医学教材 《中国高尿酸血症相关疾病诊疗多学科专家共识(2023年版)》解读课件
- 公转私借款合同书模板
- 2024版债务处理咨询服务协议
- 《我们走在大路上》 课件 2024-2025学年湘教版初中美术七年级上册
- 2024年八年级物理上册必背考点113条背记手册
- 供应链安全风险评估
- 2024年国家义务教育质量监测体育与健康学科成绩提升培训会
- 移动公司个人求职简历模板
- 创伤中心基层医院培训课件
评论
0/150
提交评论