太原理工大学软件java实验报告.doc_第1页
太原理工大学软件java实验报告.doc_第2页
太原理工大学软件java实验报告.doc_第3页
太原理工大学软件java实验报告.doc_第4页
太原理工大学软件java实验报告.doc_第5页
免费预览已结束,剩余44页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科实验报告课程名称: Java语言程序设计 实验项目: Java实验 实验地点: 致远楼401 专业班级: 软件 学号: 学生姓名: 指导教师: 2013年 11月 实验1 Java语言基础1.实验目的(1) 通过实验,掌握Java语言程序设计的基本方法。(2) 学会Java语言中标示符的命名、运算符和表达式的应用。(3) 熟练地掌握Java程序流程控制语句的应用。2.实验内容(1) 编写应用程序,计算100(含100)以内所有偶数的和。 package com.zhangqian.exercise1;public class SumEvenNumber public static void main(String args) int sum = 0;int n = 100;for (int i = 0; i = n; i+) if (i % 2 = 0) sum += i;System.out.println(1-100内偶数和为: + sum);(2) “水仙花数”是指一个3位数,其个位、十位、百位上的数字的立方和等于该数本身,例如371=33+73+13,因此371是一个水仙花数。编写程序,求所有的水仙花数。 package com.zhangqian.exercise1;public class Flower public static void main(String args) / TODO Auto-generated method stubint n = 1000;int m;for (int i = 100; i n; i+) m = (i / 100) * (i / 100) * (i / 100) + (i / 10) % 10)* (i / 10) % 10) * (i / 10) % 10) + (i % 100 % 10)* (i % 100 % 10) * (i % 100 % 10);if (m = i) System.out.println(水仙花数为: + i);(3) 编写一个程序,求1-100间的素数。 package com.zhangqian.exercise1;public class Sushu public static void main(String args) int n = 100;for (int i = 2; i = n; i+) if (ss(i) System.out.println(素数为 + i);public static boolean ss(int n) boolean result = true;for (int i = 2; i = n / 2; i+) if (n % i = 0) result = false;break;return result;(4) 有一函数: x (x1)Y= 3x-2 (1x10) 4x (x10) 写一程序,给定x值,输出y值。 package com.zhangqian.exercise1;import java.io.*;public class Hanshu public static void main(String args) throws IOException / TODO Auto-generated method stubdouble x = 0.0;double y = 0.0;System.out.println(请输入x:);BufferedReader br = new BufferedReader(new InputStreamReader(System.in);x = Double.parseDouble(br.readLine();if (x = 1 & x = 10)y = 4 * x;System.out.println(y= + y);(5) 使用for循环语句,编写程序输出以下图案。package com.zhangqian.exercise1;public class Star public static void main(String args) / TODO Auto-generated method stubfor (int i = 1; i = 4; i+) for (int k = 0; k = 4 - i; k+) System.out.print( );for (int j = 1; j 0; i-) for (int k = 0; k =4-i; k+) System.out.print( );for (int j = 1; j = 2 * i - 1; j+) System.out.print();System.out.println();(6) 编写程序,输出从公元1900年到2100年所有闰年的年号,每输出5个年号换一行。判断年是否为闰年的条件是: 若年号可以被4整除,而不能被100整除,则是闰年; 若年号可以被400整除,也是闰年。 package com.zhangqian.exercise1;public class Year public static void main(String args) / TODO Auto-generated method stubint n = 2100;int k = 0;for (long y = 1900; y n; y+) if (y % 4 = 0 & y % 100 != 0) | y % 400 = 0) System.out.print(y + 是闰年 + );k += 1;if (k % 5 = 0)System.out.println();3.实验预习(1) 复习本章所学内容。(2) 写出实验内容中第(2)、(3)题两个程序的源代码,作为预习报告。4.实验结论实验过程中,注意记录以下内容:(1) 遇到的问题及解决办法。 在编写星星程序时,不会它的算法,通过百度,然后自己试运行,得出了最后的结果。另外,在程序中遇到问题,积极的问了同学,解决了我的问题。(2) 实验体会。 我觉得在编写程序时,要细心并且要有耐心,认真的写每一个程序,就一定会有收获。实验2 数组和字符串编程1.实验目的(1) 通过实验,掌握Java语言中数组、字符串程序设计的基本方法。(2) 较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。2.实验内容(1) 编写一个程序,在控制台输入10个数,按大小顺序输出。 package com.zhangqian.exercise1;import java.io.*;public class Order public static void main(String args) throws IOException / TODO Auto-generated method stubdouble t;System.out.println(请输入10个数);double num = new double10;BufferedReader br = new BufferedReader(new InputStreamReader(System.in);String str;for (int i = 0; i 10; i+) str = br.readLine();numi = Double.parseDouble(str);for (int j = 1; j 10; j+) /冒泡排序for (int i = 0; i numi + 1) t = numi;numi = numi + 1;numi + 1 = t;System.out.println(顺序为:);for (int k = 0; k 10; k+) System.out.print(numk+ );(2) 求一个3*3矩阵对角元素之和。 package com.zhangqian.exercise1;import java.io.*;public class Juzhen public static void main(String args) throws IOException / TODO Auto-generated method stubint a =new int33; System.out.println(请输入3*3矩阵:);BufferedReader br = new BufferedReader(new InputStreamReader(System.in);String str;for(int i=0;i3;i+)for(int j =0;j1000)System.out.println(余额不足,余额为:+fund);elseSystem.out.println(取款成功 :+余额为:+(fund-s);public void getbalance()System.out.println(余额为:+fund);(3) 编程定义一个接口,实现三个数中求最小值和最大值的方法,并将程序存放在mymaths包中。 package mymaths;public class Jiekou public static void main(String args)/ TODO Auto-generated method stubMAX ma = new MAX(1,8,10);ma.max();ma.min(); interface Tsortpublic void max();public void min();class MAX implements Tsort int a,b,c;public MAX(int a,int b,int c) this.a=a; this.b=b; this.c=c; public void max() int max=0; max = ab?a:b; max = maxc?max:c; System.out.println(MAX=+max); public void min() int min=0; min = ab?a:b; min = minc?min:c; System.out.println(MIN=+min); (4) 编程实现以下简单超市管理,具体要求如下:1 实现描述超市的类SuperMacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果; package sssu;import java.util.ArrayList;import java.util.List;/* * 1、实现描述超市的的类Suppermacket类, * 记录系统中现有商品(Goods类), * 定义增加商品的函数Append, * 删除商品的函数Delete, * 查询商品的函数Query, * 并显示查询结果; * */public class SuperMarket private List goodsList = new ArrayList(); /* * 增加商品的 * param goods * return */ public String append(Goods goods) goodsList.add(goods); return 添加成功; /* * 删除商品 */ public String delete(String name) String flag = null; if(name = null) flag = 删除商品+name+不存在 ; else for (int i = 0; i goodsList.size(); i+) Goods goods = goodsList.get(i); if (goods.getName().equals(name) goodsList.remove(i); flag = 删除商品+name+成功; break; return flag; /* * 销售 * param goods * return */ public String sale(Goods goods) String flag = 销售商品+goods.getName()+失败; if (goods!=null) for (int i = 0; i goods_2.getNumber() flag+= 原因:库存不足; else if (goods_2.getPrice()*goods.getNumber() goods.getPrice() flag+= 原因:余额不足; else goods_2.setNumber(goods_2.getNumber()-goods.getNumber(); flag = 销售商品+goods.getName()+成功; break; return flag; /* * 查询商品 * return */ public List getGoodsList() return goodsList; public void setGoodsList(List goodsList) this.goodsList = goodsList; 2 定义商品类Goods,具有商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。 package sssu;/* * 具有商品名称Name, * 商品价格Price, * 商品数量number等属性, * 操作Sale(销售商品,余额不足时给予提示)、 * Add(商品上架操作) * 和ShowMe(显示商品信息)。 */public class Goods private String name; private float price; private int number; private String Producer; public String getName() return name; public void setName(String name) = name; public float getPrice() return price; public void setPrice(float price) this.price = price; public int getNumber() return number; public void setNumber(int number) this.number = number; public void Producer(String i) this.Producer = i; public String Producer() / TODO Auto-generated method stub return Producer;3 main函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架的操作提示: 超市货架可以使用商品数组,数组大小100表明存放100个商品。 注意实现商品查询的多态性,要求可以根据商品的名称或产地或价格查询商品的数量。package sssu;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;/* * 1、实现描述超市的的类Suppermacket类, 记录系统中现有商品(Goods类), 定义增加商品的函数Append, * 删除商品的函数Delete, 查询商品的函数Query, 并显示查询结果; * 2、定义商品类Goods,具有商品名称Name,商品价格Price,商品数量number等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。 * 3、编写包含main方法的测试类,测试以上所要求的各种功能,即可以根据菜单命令增加、删除和查询商品,以及商品销售和商品上架的操作。 */public class Test public static void main(String args) SuperMarket market = new SuperMarket(); SuppressWarnings(unused)String label = 商品名称, 商品价格, 商品数量 ; int type=-1 ; do System.out.println(=); System.out.println(请选择操作类型); System.out.println(1 添加商品); System.out.println(2 删除商品); System.out.println(3 查询商品); System.out.println(4 销售商品); System.out.println(0 退出系统); System.out.println(=); int i = 0; do try type = Integer.parseInt(readString(); i = 0; catch (Exception e) i = 1; System.err.println(输入有误); while (i != 0); switch (type) case 1: Goods goods = new Goods(); System.out.println(请输入商品名称); goods.setName(readString(); do try System.out.println(请输入商品价格); goods.setPrice(Integer.parseInt(readString(); i = 0; catch (Exception e) i = 1; System.err.println(输入有误); while (i != 0); do try System.out.println(请输入商品数量); goods.setNumber(Integer.parseInt(readString(); i = 0; catch (Exception e) i = 1; System.err.println(输入有误); while (i != 0); do try System.out.println(请输入商品产地); goods.Producer(readString(); i = 0; catch (Exception e) i = 1; System.err.println(输入有误); while (i != 0); System.out.println(market.append(goods); break; case 2: System.out.println(请输入要删除商品的名称); String name = readString(); System.out.println(market.delete(name); break; case 3: System.out.println(商品名称t商品价格t商品数量); for (int j = 0; j market.getGoodsList().size(); j+) Goods g = market.getGoodsList().get(j); System.out.println(g.getName() + t + g.getPrice() + t + g.getNumber(); break; case 4: Goods goods_sals = new Goods(); System.out.println(请输入销售商品名称); goods_sals.setName(readString(); do try System.out.println(请输入销售商品价格); goods_sals.setPrice(Integer.parseInt(readString(); i = 0; catch (Exception e) i = 1; System.err.println(输入有误); while (i != 0); do try System.out.println(请输入销售商品数量); goods_sals.setNumber(Integer.parseInt(readString(); i = 0; catch (Exception e) i = 1; System.err.println(输入有误); while (i != 0); System.out.println(market.sale(goods_sals); break; default: System.out.println(退出); break; while (type != 0); /* * * param prompt * return */ private static String readString() BufferedReader br = new BufferedReader(new InputStreamReader(System.in); String str = null; try str = br.readLine(); catch (IOException e) e.printStackTrace(); return str; 3.实验预习要求复习本章所学内容,思考以下问题:(1) 什么是对象?什么是类?(2) 面向对象编程的特性有哪三个?它们各自有哪些特性?(3) Java语言在面向对象编程方面有哪些独特的特点?(4) 抽象类与接口有何异同?4.实验结论(1) 遇到的问题及解决办法。 在实验中超市类和接口编写遇到了问题,通过上网查阅和询问同学最后得到了结果。(2) 实验体会。 在编写程序时要有耐心去认真改正错误,并且进行不断的完善。实验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 要定义好自己的异常。程序同实验3。实验5 多线程编程1.实验目的(1) 现成的概念、线程的生命周期。(2) 多线程的编程:扩展Thread类与使用Runnable接口。(3) 使用多线程机制实现动画2.实验内容(1) 运行下面的程序,理解用创建Thread子类的方法实现多线程。/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(); Tread.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) 运行下面的程序,理解用实现Runnable接口的方法实现多线程。/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(); Tread.sleep(pauseTime); catch(Exception e)System.o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论