20145312《Java第一次实验报告》

Java开发环境的熟悉(Windows+Idea)

一、实验内容

  1. 使用Idea编辑、编译、运行、调试Java程序。
  2. 使用JDK编译、运行简单的Java程序;

二、实验步骤

  1. Idea下Java程序开发、调试

    1) 双击桌面上Idea图标,如下图所示:

    2) 新建new project,顶部工具栏File>New>Project,如下图所示:





3) 新建Java class,Project(右键)>src(右键弹出菜单)>New(选择)>Java class>命名,如下图所示:

4) 输入代码并运行,顶部工具栏Run(左键)>Run...(左键)>选择运行项目(左键)>运行程序,如下图所示:

5) 设置断点。.通过单击Run->Debug打开调试页面>设置断点(在撰写代码的窗格最左边点击,会在相应的行前面出现一个红点),如下图所示:

  1. 调试程序。单击Run->Debug进行调试,然后点击run窗口的Step Over或Step Into进行单步执行,可以查看此时变量的值,如下图所示:



  1. 命令行下编译Java程序

    1) 打开命令行>找到程序所在位置>编译>运行

三、实验练习

  1. 要求:实现Fibonacci数列功能,并进行测试.
  2. 程序代码:
import java.util.Scanner;
public class Fibonacci {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.println("Please input this Fibonacci n:");
int n=scanner.nextInt();//假设输入大于零的整数
float q=fibonacci(n)/fibonacciNormal(n );
System.out.printf("第%d个Fibonacci数与它后一项之比为:%.6f%n",n,q);
float sum=0;
for(int i=1;i<=n;i++){
sum+=fibonacci(i);
}
System.out.printf("第%d个Fibonacci数是:%2.0f%n",n,fibonacci(n));
System.out.printf("前%d个Fibonacci数之和是:%2.0f%n",n,sum);
System.out.printf("前%d个Fibonacci数为:",n);
for(int i=1;i<=n;i++){
System.out.printf("%2.0f\t",fibonacci(i));
}
}
//递归实现方法
public static float fibonacci(int n){
if(n<=2){
return 1;
}
else{
return fibonacci(n-1)+fibonacci(n-2);
}
}
//递推实现方法
public static float fibonacciNormal(int n){
if(n<=2){
return 1;
}
int n1=1,n2=1,sn=0;
for(int i=0;i<=n-2;i++){
sn=n1+n2;
n1=n2;
n2=sn;
}
return sn;
}
}

运行结果:

四、问题解决

1)问题:我想在运行时呈现前6个Fibonacci数为: 1 1 2 3 5 8 的结果,于是我用了一个for循环来读取fibonacci(n),如下:

for(int i=1;i<=n;i++){
System.out.printf("前%d个Fibonacci数为:%2.0f\t",n,fibonacci(i));
}

运行的结果是:

前6个Fibonacci数为: 1 前6个Fibonacci数为: 1 前6个Fibonacci数为: 2 前6个Fibonacci数为: 3 前6个Fibonacci数为: 5 前6个Fibonacci数为: 8

解决:我不想要“前6个Fibonacci数为”重复出现。于是我想到不能把它写在for循环里。于是我调试成:

System.out.printf("前%d个Fibonacci数为:",n);
for(int i=1;i<=n;i++){
System.out.printf("%2.0f\t",n,fibonacci(i));
}

最终得出我想要的结果。

2) 问题:我想得到fibonacci数前一项与后一项之比的小数形式,以体现fibonacci 的黄金比例。但是我只能得到它的整数比。

解决:在查阅工具书后,我知道了要把fibonacci 数定义为float型,它的输出才能为小数形式。如下:

float q=fibonacci(n)/fibonacciNormal(n );

五、心得体会:

这次的实验让我有重新温习了一遍Java的开发环境。在此之前我对fibonacci数列只有表面印象,为了能理解它的功能,我查阅了很多书籍,这样很好的帮我理清了思路,以及我要实现它的哪些功能。在调试中我与恶遇到了很多问题,于是我又把书上相关的知识点又看了一遍,并查阅了工具书,最后问题得到了解决。

20145312《Java第一次实验报告》的更多相关文章

  1. 20165210 Java第一次实验报告

    20165210 第一次实验报告 实验内容 建立目录运行简单的Java程序 建立自己学号的目录 在上个目录下建立src,bin等目录 Javac,Java的执行在学号目录下 IDEA的调试与设置断点 ...

  2. java 第一次实验报告

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:黎静  学号:20135338 成绩:             指导教师:娄嘉鹏  ...

  3. Java第一次实验报告——Java开发环境的熟悉

    北京电子科技学院(BESTI) 实    验    报    告 课程名称:java程序设计实验      班级:1352         姓名:洪韶武      学号:20135219 成绩:   ...

  4. 南京邮电大学java第一次实验报告

    实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...

  5. java第一次实验报告

    北京电子科技学院(BESTI) 实    验    报    告 课程名称:java实验      班级:1352         姓名:潘恒      学号:20135209 成绩:         ...

  6. java第一次实验总结&第三周总结

    Java第一次实验报告,java开发环境与简单的Java程序 一.实验目的 1.熟悉JDK开发环境 2.熟练掌握结构化程序设计方法 二.实验内容 打印输出所有的"水仙花数",所谓& ...

  7. 20145330《Java程序设计》第一次实验报告

    20145330<Java程序设计>第一次实验报告 实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...

  8. 20145320《Java程序设计》第一次实验报告

    20145320<Java程序设计>第一次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 18: ...

  9. 20155339《java程序设计》第一次实验报告

    20155339<java程序设计>第一次实验报告 实验一 java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序: 2.使用IDEA编辑.编译.运行.调试java程 ...

随机推荐

  1. 160307、Java调用Oracle存储过程返回结果集

    一:无返回值的存储过程调用 存储过程: CREATE OR REPLACE PROCEDURE PRO_1(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2)   AS BEGI ...

  2. 用angular引入复杂的json文件2

    昨天我们也说了一下angular引入复杂json文件的方法,今天我们再来学习一种方法,而且更简单,更快捷. 首先我们引入一个angular插件,并且写上引入模块和控制台,在html中书写上模块名和控制 ...

  3. 转载hiberinate的懒加载

    Hibernate的强大之处之一是懒加载功能,可以有效的降低数据库访问次数和内存使用量.但用的不好就会出现org.hibernate.LazyInitializationException. 这个异常 ...

  4. http请求及json发送与解析 post string

    golang http请求及json流解析 - 长风v持成的博客 - CSDN博客 https://blog.csdn.net/u011677067/article/details/80852158 ...

  5. lsof,fuser,xargs,print0,cut,paste,cat,tac,rev,exec,{},双引号,单引号,‘(字符串中执行命令)

    cut用来从文本文件或标准输出中抽取数据列或者域,然后再用paste可以将这些数据粘贴起来形成相关文件. 粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同.paste将按行将不同文件行 ...

  6. new Date()的浏览器兼容性问题

    在页面中,我们使用了一个时间上的组件来开发时间选择框,在Chrome下是可以正常运行的,但是发现在IE下是无法正常工作的. 问题出在哪里呢? js从时间获取的时间字符串如果是"-" ...

  7. Django 框架之视图函数(Views)

    http请求中产生的两个核心对象: http请求: HttpRequest对象 http响应: HttpResponse对象 所在位置: django.http HttpRequest 对象的属性和方 ...

  8. HDFS基本命令行操作及上传文件的简单API

    一.HDFS基本命令行操作: 1.HDFS集群修改SecondaryNameNode位置到hd09-2 (1)修改hdfs-site.xml <configuration> //配置元数据 ...

  9. (0.2.4)Mysql安装——yum源安装

    转自:https://www.cnblogs.com/jimboi/p/6405560.html Centos6.8通过yum安装mysql5.7 1.下载好对应版本的yum源文件 2.安装用来配置m ...

  10. django 密文 cookie 加密

    默认cookie是明文 # 加密cookie salt 通过这个字符串把cookie内容加密 obj.set_signed_cookie('username111','aaaa',salt=" ...