实训二阶段一实训报告

vi,java,ant 和Junit 的学习报告

vi学习报告

vim在实验中的作用,应该就是用来配置bashrc文件。输入以下命令,进入bashrc文件,命令行模式(command mode)。
输入vim

输入G(shift+g),直接进入文件末尾(当然鼠标操作也行)。输入i,进入插入模式(Insert mode)
insert模式

输入完成之后按ESC回到命令行模式(command mode),输入:(shfit+;)进入底行模式(last line mode),再输入wq,保存后退出。
使命令生效source ~/.bashrc

大概就是这样吧
流程图

java学习报告

Calculator

calculator.java

import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.border.EmptyBorder;

public class Calculator extends JFrame implements ActionListener {

    private JPanel cp;
    private JTextField jtf5;
    private JTextField jtf1;
    private JTextField jtf2;
    private JButton jtf3;

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Calculator frame = new Calculator();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public Calculator() {
        setTitle("Calculator");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300, 100);
        setLocationRelativeTo(null);
        cp = new JPanel();

        cp.setLayout(new GridLayout(2, 5));
        setContentPane(cp);

        JPanel jp1 = new JPanel();
        jtf1 = new JTextField(3);
        jtf3 = new JButton(" ");
        jtf2 = new JTextField(3);
        JButton jtf4 = new JButton("=");
        jtf5 = new JTextField(3);
        jp1.add(jtf1);
        jp1.add(jtf3);
        jp1.add(jtf2);
        jp1.add(jtf4);
        jp1.add(jtf5);

        JPanel jp2 = new JPanel();
        JButton jb1 = new JButton("+");
        jb1.addActionListener(this);
        JButton jb2 = new JButton("-");
        jb2.addActionListener(this);
        JButton jb3 = new JButton("*");
        jb3.addActionListener(this);
        JButton jb4 = new JButton("/");
        jb4.addActionListener(this);
        JButton jb5 = new JButton("ok");
        jb5.addActionListener(this);
        jp2.add(jb1);
        jp2.add(jb2);
        jp2.add(jb3);
        jp2.add(jb4);
        jp2.add(jb5);

        cp.add(jp1);
        cp.add(jp2);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        String command = e.getActionCommand();
        String result ;
        double d1 = Double.parseDouble(jtf1.getText());
        double d2 = Double.parseDouble(jtf2.getText());
        if (command.equals("+")) {       
                jtf3.setText("+");
            } else if (command.equals("-")) {
                jtf3.setText("-");
            } else if (command.equals("*")) {
                jtf3.setText("*");
            } else if(command.equals("/")){
                jtf3.setText("/");
            }


        if(command.equals("ok")){
            if (jtf3.getText().equals("+")) {       
                result = (d1+d2)+"";
            } else if (jtf3.getText().equals("-")) {
                result = (d1-d2)+"";
            } else if (jtf3.getText().equals("*")) {
                result = (d1*d2)+"";
            } else if(jtf3.getText().equals("/")){
                result = (d1/d2)+"";
            }else{
                result = "Error";
            }
            jtf5.setText(result);
        }
    }

}
  • 这个代码很好理解,Calculator构造函数,主要处理Calculator的布局,Calculator的私有成员,private JTextField jtf5; private JTextField jtf1;private JTextField jtf2;private JButtonjtf3;分别对应输出结果,第一个操作数,第二个操作数,操作符,因为这四个变量需要改变,其他的直接在构造函数中写死就行。
  • JPanel相当于一个容器,用来容纳JTextFieldJButton之类的控件,当然也可以嵌套一个JPanel容器,将容器add进入就可以。cp = new JPanel();cp.setLayout(new GridLayout(2, 5));设置整体布局两行五列。
  • public void actionPerformed(ActionEvent e),所有事件都用这个函数处理,因为前面必要的button加了addActionListener,所以一旦点击了button,就会触发这个函数,解析命令内容,得到数据,再把运算结果写回去就可以了。

ant学习报告

<?xml version="1.0" encoding="UTF-8" ?>
<project name="HelloWorld" default="run" basedir=".">

    <property name="src" value="src"/>
    <property name="dest" value="classes"/>
    <property name="jar" value="jar"/>

    <target name="init">
       <mkdir dir="${dest}"/>
    </target>

    <target name="compile" depends="init">
       <javac srcdir="${src}" destdir="${dest}"/>
    </target>

    <target name="build" depends="compile">
       <jar jarfile="${jar}/HelloWorld.jar" basedir="${dest}"/>
    </target>

    <target name="run" depends="build">
       <java classname="Calculator" fork="true" classpath="${jar}/HelloWorld.jar"/>
    </target>

    <target name="clean">
       <delete dir="${dest}" />
       <delete file="${jar}" />
    </target>

    <target name="rerun" depends="clean,run">
       <ant target="clean" />
       <ant target="run" />
    </target>

</project>

ant主要将手动命令处理文件自动化。

  • target表示处理的每一步,name表示该步骤的名称,用depends定义每个步骤之间的逻辑关系。
  • ${dest}类似这样的操作,是引用,比如开始写了<property name="dest" value="classes"/>,后面再写`,就代表新创建一个classes的文件夹。
  • 还有javacjavajar键值对,不难理解。唯一可能的问题在run的缓解,打开javaGUI的时候会闪退,加上fork="true"就可以了,所以就是<java classname="Calculator" fork="true" classpath="${jar}/HelloWorld.jar"/>这样子了。

Junit学习报告

Junit单元测试模块

HelloWorld.java

import java.util.*;

public class HelloWorld{
    String str;
    public void hello(){
        str = "Hello World!";
    }

    public String getStr(){
        return str;
    }
}

HelloWorldTest.java

import static org.junit.Assert.*;
import org.junit.Test;

public class HelloWorldTest{
  public HelloWorld helloworld = new HelloWorld();
  @Test
  public void testHello(){
    helloworld.hello();
    assertEquals("Hello World!",helloworld.getStr());
  }
}

一般来说测试程序会在类名后面加Test,在方法前面加test,而且使用assertEquals函数测试。

主要还是环境配置问题
在bashrc文件中写入下面内容就可以,其中junit-4.9.jar的地址自己定义,对于相应写入的地址。

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_91
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/home/administrator/Downloads/junit-4.9.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

编译就可以用如下命令

javac HelloWorldTest.java
java org.junit.runner.JUnitCore HelloWorldTest

运行结果如下就为成功
运行结果

SonarQube的使用

因为云平台已经配置好了环境直接用就可以了。

用下面命令开启服务
开启服务

进入到目录下,新建sonar-project.propertites文件
进入目录

sonar-project.propertites

#required metadata
#projectKey
sonar.projectKey = Part1
sonar.projectName = Part1
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
sonar.modules=java-module

#Java module
java-module.sonar.projectName=Java Module
java-module.sonar.language=java

#
java-module.sonar.sources=.
java-module.sonar.projectBaseDir=Part1

按照这个模式写,如果要切换模块只要把代码中的三处Part1改成其他文件。

在该目录下输入sonar-runner
运行

如果成功的话可以看到这个界面
运行成功

然后在浏览器中输入http:\localhost:9000就可以看到下面的界面
浏览器结果

GridWorld的环境配置

再次编辑bashrc文件,在$CLASSPATH中加入下一句就可以。

://home/administrator/Destop/GridWorldCode/gridworld.jar

到目录下直接运行

键入运行

出现这个界面就ok了
运行结果

猜你喜欢

转载自blog.csdn.net/yaoxh6/article/details/79948714