Java语言程序设计 上机实验2 掌握Java的基本语言成分和流程控制语句。 掌握Java中数组的使用,理解引用数据类型。 掌握String类的使用。

 

Java语言程序设计 上机实验2

实验目的

  1. 掌握Java的基本语言成分和流程控制语句。
  2. 掌握Java中数组的使用,理解引用数据类型。
  3. 掌握String类的使用。

实验内容:

注:标(*)为选做内容

  1. 将一个十进制的数字(0~9)字符串转换成对应的整数类型值,如”12345”。
  2. 实现一个成员方法,以两个已排序的数组为参数,将其合并成一个新数组,并返回新数组。比如将{1,3,5,7}{2,4,6,8}合并成{1,2,3,4,5,6,7,8}
  3. 采用递归算法反转字符串,比如将str=”12345”作为参数输入给一个静态递归方法后,返回”54321”。(其中str.isEmpty()方法可以判断str字符串是否为空,返回布尔值)。
  4. 输出下列方阵:(n = 4)

1        2        6        7

3        5        8        13

4        9        12      14

10      11      15      16

  1. (*) 输出400以内的Smith数。Smith数是指满足下列条件的可分解的整数:

其所有数位上的数字和等于其全部素数因子的各位上的数字总和。

例如:9975Smith数,9975=3*5*5*7*19,即9+9+7+5=3+5+5+7+1+9=30.

  1. (*) 用递归方法求n个数字(比如数组{1,2,3,4,5})的无重复全排列,并在程序中计数全排列的个数。

实验要求:

1. 在实验报告中给出程序运行结果截图。

2. 源程序代码附到实验报告的最后。

3. 认真填写实验报告并妥善存档,在上机实验课之前发送电子版实验报告至 wsycup@foxmail.com

注意邮件标题附件实验报告文件名均为:

Java1实验报告N_学号_姓名

其中N阿拉伯数字,指第几次实验,例如

Java1实验报告1_ 2012010400_李雷

请严格按照规定的格式发送邮件(注意标题中Java”后的数字“1”),否则邮件较多时可能导致混乱而被忽略,并在规定的时间发送实验报告邮件,过期无效。

4. 实验报告雷同者将不能得到相应的平时分。

 

 

附录:实验报告

实验题目_____java实验报告二_____

学号__2014011329__    姓名__许恺_____     班级____计算机14-1_____     时间____2016.3.18____

实验题目解答

 

 

:源程序

1.

1.
package com.Test1;

public class Test1 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String s1="213131";
        int i,num=0,j;
        boolean ju=true;        //判断能否输出
        for(i=s1.length()-1,j=1;i>=0;i--,j=j*10){
            num=num+(s1.charAt(i)-48)*j;        //将字符从后往前转换为整型
            if(s1.charAt(0)=='0'){        //判断首位是否为0
                System.out.println("首位为0,有误");
                ju=false;
            }    
        }
        if(ju==true)
            System.out.println(num);
    }
}

2.
package com.Test2;
import java.util.Arrays;
public class Test2 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a[]=new int[]{1,3,5,7};
        int b[]=new int[]{2,4,6,8};
        int d[]=new int[a.length+b.length];
        d=add(a,b);    
        for(int i=0;i<d.length ;i++)        //输出最终数组        
        System.out.print(d[i]);
    }
    public static int[] add(int[] a,int b[]){    //静态数组不用新建对象
        int c[]=new int[a.length+b.length];
        int i,j=0;
        for(i=0;i<a.length;i++){        //连接两个数组
            c[i]=a[i];
        }
        for(;j<b.length;j++,i++){
            c[i]=b[j];
        }
        Arrays.sort(c);            //排序连接后的数组
        return c;
    }
}



3.
package com.Test3;

public class Test3 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str="12345";
        if(str.isEmpty()){
            System.out.println("字符串为空,有误");
        }
        else{
            System.out.println(transform(str));
        }
    }
    public static String transform(String str){
        char ch;
        ch=str.charAt(0);        //剥离首字符
        if(1==str.length()){    //到最后一个时返回
            return str;
        }
        else{
            str=transform(str.substring(1,str.length()));    //递归,把下一级的值赋给上一级
            str=str+ch;        //倒转
        }
        return str;
    }
}

4.
package com.emp;

public class emp {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a[][]=new int[4][4];
        int i=0,j=0,n=1;
        while(i!=3||j!=3){
            if(i==0&&j==0){
                a[i][j]=n;
                n++;j++;
            }
            else{
                if(j==3){
                    a[i][j]=n;n++;
                    while(i!=3){
                        i++;j--;a[i][j]=n;n++;
                    }
                    j++;
                }
                else if(i==3){
                    a[i][j]=n;
                    n++;
                    while(j!=3){
                        i--;j++;a[i][j]=n;n++;
                    }
                    i++;
                }
                else if(i==0){
                    a[i][j]=n;n++;
                    while(j!=0){
                        i++;j--;a[i][j]=n;n++;
                    }
                    i++;
                } 
                else if(j==0){
                    a[i][j]=n;
                    n++;
                    while(i!=0){
                        i--;j++;a[i][j]=n;n++;
                    }
                    j++;
                }
            }
        }
        a[3][3]=16;
        for(i=0;i<4;i++){
            for(j=0;j<4;j++){
                if(a[i][j]>9)
                System.out.print(a[i][j]+"  ");
                else
                    System.out.print(a[i][j]+"   ");
            }
            System.out.println();
        }
    }

}

 

posted @ 2017-02-24 17:54  拓海藤原  阅读(774)  评论(0编辑  收藏  举报