




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.本科实验报告课程名称: java语言程序设计 实验地点: 明向校区综合实验楼 专业班级: 学 号: 学生姓名: 指导教师: 时间:2015年 12 月 31 日实验名称 Java语言基础实验目的和要求:(1) 通过实验,掌握Java语言程序设计的基本方法。(2) 学会Java语言中标示符的命名、运算符和表达式的应用。(3) 熟练地掌握Java程序流程控制语句的应用。实验内容(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循环语句,编写程序输出以下图案。(6) 编写程序,输出从公元1900年到2100年所有闰年的年号,每输出5个年号换一行。判断年是否为闰年的条件是: 若年号可以被4整除,而不能被100整除,则是闰年; 若年号可以被400整除,也是闰年。主要仪器设备笔记本电脑实验记录(写出实验内容中的程序代码和运行结果)(可分栏或加页)1 package experiment_1;/* * 编写应用程序,计算100(含100)以内所有偶数的和。 */public class Class_1 public static void main(String args) int even_sum = 0;for (int i = 0; i = 100; i+)if (i % 2 = 0)even_sum += i;System.out.println(100(含100)以内所有偶数的和为: + even_sum);实验1.1运行结果2. package experiment_1;/* * “水仙花数”是指一个3位数,其个位、十位、百位上的数字的立方和等于该数本身, * 例如371=33+73+13,因此371是一个水仙花数。编写程序,求所有的水仙花数。 */public class Class_2 public static void main(String args) for (int i = 100; i 1000; i+) if (isLotus(i)System.out.print(i + );System.out.println();/判断水仙花数private static boolean isLotus(int lotus) int a, b, c, sum;/取百位数a = lotus / 100;/取十位数b = lotus % 100 / 10;/取个位数c = lotus % 10;sum = a * a * a + b * b * b + c * c * c;if (sum = lotus)return true;elsereturn false;实验1.2运行结果3. package experiment_1;/* * 编写一个程序,求1-100间的素数。 */public class Class_3 public static void main(String args) int n = 100;int count = 0;/ 统计素数个数for (int i = 2; i n; i+) if (isPrime(i) count+;System.out.print(i + );if (count % 10 = 0) System.out.println();System.out.println();System.out.println(在1和 + n + 之间共有 + count + 个素数);private static boolean isPrime(int n) boolean flag = true;if (n = 1)flag = false;else for (int i = 2; i n; i+) if (n % i) = 0) flag = false;break; elseflag = true;return flag;实验1.3运行结果4. package experiment_1;import java.util.Scanner;public class Class_4 public static void main(String args) Scanner sc =new Scanner(System.in);System.out.print(请输入X的值:);double x=sc.nextDouble();double y;if(x1)y=x;System.out.println(x=1&x10)y=3*x-2;System.out.println(1x10时,y=3*x-2=+y);elsey=4*x;System.out.println(x10时,y=4*x=+y);实验1.4运行结果5. package experiment_1;public class Class_5 public static void main(String args) int i, j, k;String str1 = *;String str2 = ;for (i = 1; i i; k-) System.out.print(str2);for (j = 1; j 2 * i; j+) System.out.print(str1);System.out.println();for (i = 5; i 8; i+) for (k = 1; k 2 * i - 10; j-) System.out.print(str1);System.out.println();实验1.5运行结果6. package experiment_1;public class Class_6 public static void main(String args) int count = 0;for (int i = 1900; i = 2100; i+) if (isLeap_Year(i) System.out.print(i + );count+;if (count % 5 = 0) System.out.println();private static boolean isLeap_Year(int i) if (i % 4 = 0 & i % 100 != 0) return true; else if (i % 400 = 0) return true; elsereturn false;实验1.6运行结果遇到的问题和解决方法1.程序没有输出结果。解决方法:使用java提供的“System.out.println()“方法输出数据。2.程序无法运行。解决方法:检查代码是否有语法错误,将鼠标移动到感叹号上查明原因。3.程序运行结果有异常心得体会1.java在使用中每一项的实现都有很多种方法,要尽可能的尝试,区别每种方法的特点。2.java编程时要注意语法、逻辑错误。实验名称 实验2 数组和字符串编程实验目的和要求1.通过实验,掌握Java语言中数组、字符串程序设计的基本方法。2.较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。实验内容1.编写一个程序,在控制台输入10个数,按大小顺序输出。2.求一个3*3矩阵对角元素之和。3.输入一段字符串,统计其中有多少个单词。(单词用空格隔开)主要仪器设备笔记本电脑实验记录(写出实验内容中的程序代码和运行结果)(可分栏或加页)1. package experiment_2;import java.util.Arrays;import java.util.Scanner;/* * 编写一个程序,在控制台输入10个数,按大小顺序输出。 */public class Class_1 public static void main(String args) Scanner sc = new Scanner(System.in);int a = new int10;for (int i = 0; i a.length; i+) System.out.print(请输入第 + (i + 1) + 个数:);ai = sc.nextInt();System.out.println(从键盘输入的十个数为: + Arrays.toString(a);Arrays.sort(a);System.out.println(排序后的十个数为: + Arrays.toString(a);实验2.1运行结果2. package experiment_2;/* * 求一个3*3矩阵对角元素之和。 */public class Class_2 public static void main(String args) int a = new int33;System.out.println(随机生成矩阵:);for (int i = 0; i a.length; i+) for (int j = 0; j ai.length; j+) aij = (int) (Math.random() * 10);System.out.print(aij + );System.out.println();int count = a00 + a11 + a22 + a20 + a02;System.out.println(对角元素之和为: + count);实验2.2运行结果3. package experiment_2;import java.util.Scanner;/* * 输入一段字符串,统计其中有多少个单词。(单词用空格隔开) */public class Class_3 public static void main(String args) System.out.println(请输入一串字符(每个单词用空格隔开):);Scanner sc = new Scanner(System.in);String str = sc.nextLine();sc.close();count(str);private static void count(String str) String sp = s;int countSpace = 0;/ 将此字符串转换为一个新的字符数组char array_Char = str.toCharArray();String array_String = new Stringarray_Char.length;for (int i = 0; i array_Char.length; i+)/ String.valueOf(char c):返回char参数的字符串表示形式。array_Stringi = String.valueOf(array_Chari);for (String s : array_String) / boolean matches(String regex) 告知此字符串是否匹配给定的正则表达式if (s.matches(sp)countSpace+;System.out.println(输入的单词个数: + (countSpace + 1);实验2.3运行结果遇到的问题和解决方法1.使用二维数组时要用new创建数组。2.程序报出异常,程序不能运行时,要判断是否要抛出异常。实验体会 使用数组时要注意下标值不要超出范围,数组元素的下标从零开始,直到数组元素个数减1为止,如果下标超出范围,则运行时会产生“数组访问越界异常”。实验名称 实验3 Java面向对象程序设计实验目的和要求 掌握Java面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素。实验内容1.创建一个复数类complex,以附属进行数学运算、复数具有如下格式:RealPart+ImaginaryRart*I ,其中,I为-1的平方根。 要求如下:1 利用浮点变量表示此类的私有数据。提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参构造方法。2 提供两复数加、减、乘的运算方法。3 按格式(a,b)打印复数。其中a为实部,b为虚部。2.创建银行账号Account类,实现存款(balance)的存(deposit)、取(withdraw)和查询(getbalance)等功能。3.编程定义一个接口,实现三个数中求最小值和最大值的方法,并将程序存放在mymaths包中。4.编程实现以下简单超市管理,具体要求如下:1 实现描述超市的类Suppermacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果;2 定义商品类Goods,具有商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。3 main函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架的操作提示: 超市货架可以使用商品数组,数组大小100表明存放100个商品。 注意实现商品查询的多态性,要求可以根据商品的名称或产地或价格查询商品的数量。主要仪器设备笔记本电脑实验记录(写出实验内容中的程序代码和运行结果)(可分栏或加页)1. package experiment_3;public class Class_1 public static void main(String args) Complex com1, com2, com3, temp;com1 = new Complex(1f, 2f);com2 = new Complex(3f, 4f);com3 = new Complex();temp = new Complex();temp = plexAdd(com1, com2);temp.tostring();System.out.println();plexSubtract(com1, com2);temp.tostring();System.out.println();plexMul(com1, com2);temp.tostring();System.out.println();class Complex private float realPart;private float imaginaryPart;public Complex(float r, float i) this.realPart = r;this.imaginaryPart = i;public Complex() this.realPart = 0;this.imaginaryPart = 0;public Complex complexAdd(Complex c1, Complex c2) Complex c = new Complex();c.realPart = c1.realPart + c2.realPart;c.imaginaryPart = c1.imaginaryPart + c2.imaginaryPart;return c;public Complex complexSubtract(Complex c1, Complex c2) Complex c = new Complex();c.realPart = c1.realPart - c2.realPart;c.imaginaryPart = c1.imaginaryPart - c2.imaginaryPart;return c;public Complex complexMul(Complex c1, Complex c2) Complex c = new Complex();c.realPart = c1.realPart * c2.realPart - c1.imaginaryPart * c2.imaginaryPart;c.imaginaryPart = c1.realPart * c2.imaginaryPart + c2.imaginaryPart * c1.realPart;return c;public void tostring() System.out.print( + this.realPart + , + this.imaginaryPart + );实验3.1运行结果2. package experiment_3;import java.util.Scanner;public class Class_2 public static void main(String args) Scanner scn = new Scanner(System.in);Account acc = new Account();while (true) System.out.println(=);System.out.println(请输入您要进行的操作:);System.out.println(|存钱请按1|);System.out.println(|取钱请按2|);System.out.println(|退出请按0|);System.out.println(=);String s = scn.nextLine();if (s.equals(1) acc.deposit();if (s.equals(2) acc.withdraw();if (s.equals(0) acc.getbalance();break;class Account private double balance;Scanner sc = new Scanner(System.in);public void deposit() System.out.print(请输入您要存入的金额(元):);System.out.println();while (true) double b = sc.nextDouble();if (b 0) System.out.println(您输入有误,请重新输入!); else System.out.println(您存了: + b + 元钱);balance += b;System.out.println(您当前存款为: + balance + 元钱);break;public void withdraw() System.out.print(请输入您要取出的金额(元):);System.out.println();while (true) double b = sc.nextDouble();if (b 0) System.out.println(您输入有误,请重新输入!); else if (balance = b) balance -= b; / 取System.out.println(您取了: + b + 元钱);System.out.println(您当前存款为: + balance + 元钱);break;public void getbalance() System.out.println(您的账户目前可用余额为 + balance + 元。);3. package mymaths;public interface Compare /* * * param x * param y * param z * return 返回三个数中的最大值 */public int max(int x, int y, int z);/* * * param x * param y * param z * return 返回三个数中的最小值 */public int min(int x, int y, int z); package experiment_3;import mymaths.Compare;public class Class_3 implements Compare public static void main(String args) Class_3 c = new Class_3();int x = 3, y = 2, z = 1;System.out.println(1,2,3中最大数为: + c.max(x, y, z);System.out.println(1,2,3中最小数为: + c.min(x, y, z);Overridepublic int max(int x, int y, int z) if (x y) int temp = x;x = y;y = temp;if (x z) int temp = x;x = z;z = temp;if (y z) int temp = y;y = z;z = temp;return z;Overridepublic int min(int x, int y, int z) if (x y) int temp = x;x = y;y = temp;if (x z) int temp = x;x = z;z = temp;if (y z) int temp = y;y = z;z = temp;return x;4. package experiment_3;/* * 定义商品类Goods,具有商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。 */public class Goods private String Name;private float Price;private String Producer;private int number;public int getNumber() return number;public void setNumber(int number) this.number = number;public String getName() return Name;public void setName(String name) Name = name;public float getPrice() return Price;public void setPrice(float price) Price = price;public String Producer() return Producer;public void Producer(String producer) Producer = producer;public void ShowMe()System.out.println(Name+t+Price+t+Producer+t+number);/* * 实现描述超市的类Suppermacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果; */package experiment_3;import java.util.ArrayList;import java.util.List;public class SuperMarket private List goodsList = new ArrayList();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;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;public List getGoodsList() return goodsList;public void setGoodsList(List goodsList) this.goodsList = goodsList;package experiment_3;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Class_4 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);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;遇到的问题和解决方法1.声明对象要用new实例化。2.复数类的乘法运算中发生计算错误。解决方法:可以使用局部变量来存储计算结果,然后再赋给所在对象的变量,最后将对象返回。实验体会1. java中提供了很多方法来使用,可以根据实际需要高产量高效率地编写代码。2.面向对象的编写程序的方法对代码重用特别有效,方法的重载缩短了程序的长度。实验名称 实验4 Java异常处理实验目的和要求1.掌握异常的概念,以及如何定义、抛出和捕获处理异常。实验内容3.在实验三中的超市、商品类中创建一个自定义异常类。要求:1.在定义商品类时,若销售商品数量大于余额则作为异常处理。2.自定义异常类名为InsufficientFundsException。提示:1 产生异常条件是某类商品销售数量大于库存额,因此是否抛出异常要先判断该条件。2 确定产生异常的方法,应该在sale方法中产生异常Insufficient Funds Exception。3 处理异常安排在调用sale的时候,因此sale方法要声明异常,由上级方法捕获并处理。4 要定义好自己的异常。主要仪器设备笔记本计算机实验记录(写出实验内容中的程序代码和运行结果)(可分栏或加页)将实验3中的超市管理类中sale方法改为如下内容;并在类结尾处自定义异常类public String s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件比较大小
- 物业智能系统培训
- 小红书培训计划
- 创建健康村培训
- 课件模板人物速写简单
- 小学语文荔枝课件大纲
- 初中防欺凌课件大纲
- 创建无烟家庭课件
- 课件朗读者模式
- 课件最大窗口快捷键设置
- 支气管哮喘急性发作课件
- 小学数学新课标量感解读
- 餐饮服务食品安全管理体系
- 2025年工会基础知识考试题库(含答案)
- 2025年镇村(社区)后备干部考试知识题库及答案
- 2025年国家职业资格考试中级汽车维修工考试题库及答案
- 《化妆基础》课件-化妆造型的工具与用品
- 人教版四年级数学上册学生评价计划
- DB50∕T 1604-2024 地质灾害防治边坡工程结构可靠性设计规范
- 棋牌室消防安全管理制度范本
- 《日本武士文化介绍:大学日语文化课程教案》
评论
0/150
提交评论