JAVA练习题16

这个博客包含了三个Java程序示例。第一个程序展示了如何连接两个字符串,第二个程序读取并打印指定数量的星号,根据输入的数字。第三个程序涉及数据加密,对四位整数进行特定规则的加密操作。此外,还提供了一个更优化的加密程序实现,通过取位、替换和交换实现加密。最后,博客提到了计算字符串中子串出现次数的方法以及处理学生成绩的程序,包括输入、计算平均分和文件输出。
摘要由CSDN通过智能技术生成

package s1;
//题目:两个字符串连接程序
public class Fs46 {
    public static void main(String[] args) {
        String s1="fds";
        String s2="组合和结核菌素的";
        System.out.println(s1+s2);
    }
}
package s1;

import java.util.Scanner;

//题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
public class Fs47 {
    public static void main(String[] args) {
        System.out.println("请输入0-50的七位数");
        Scanner s=new  Scanner(System.in);
        int n=s.nextInt();
        int n1=s.nextInt();
        int n2=s.nextInt();
        int n3=s.nextInt();
        int n4=s.nextInt();
        int n5=s.nextInt();
        int n6=s.nextInt();
      s.close();
        Str(n);
        Str(n1);
        Str(n2);
        Str(n3);
        Str(n4);
        Str(n5);
        Str(n6);
    }
    static void Str(int m){
        System.out.print (m);
        for (int i=0;i<m;i++){
            System.out.print ("*");
            System.out.println( );
        }
    }
}
package s1;

import java.util.Scanner;

//题目:某个公司采用公用电话传递数据,数据是四位的整数,
//        在传递过程中是加密的,加密规则如下:每位数字都加上5,
//        然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
public class Fs48 {
    public static void main(String[] args) {
        System.out.println("请输入4位整数");
        Scanner s=new  Scanner(System.in);
        int n=s.nextInt();
        int n1=s.nextInt();
        int n2=s.nextInt();
        int n3=s.nextInt();
        n=n+5;  n1=n1+5; n2=n2+5; n3=n3+5;
        Fx(n3);
        Fx(n2);
        Fx(n1);
        Fx(n);
       }

        static void Fx(int m){
               m=m%10;
            System.out.print(m);

            }

    }
其他写法

程序分析:1、数字取位,个十百千位分别求出

  *         2、按要求替换

  *         3、按要求交换

public class Programme48 {

public static void main(String[] args) {

   int[] num=new int[4];//存放四位数的个十百千位

   System.out.println("请输入一个四位数:");

   Scanner scanner=new Scanner(System.in);

   int input=scanner.nextInt();



   for (inti = 0; i < 4;i++) {//逐次取位,从个位开始,并按要求替换

       num[i]=(input%10+5)%10;

       input/=10;

   }

   //按要求替换,交换1、4位

   int temp=0;//交换数

   temp=num[0];

   num[0]=num[3];

   num[3]=temp;

   //交换2、3位

   temp=num[1];

   num[1]=num[2];

   num[2]=temp;

   System.out.println("加密后的结果:"+num[3]+num[2]+num[1]+num[0]);

   scanner.close();

}

}

package s1;
//题目:计算字符串中子串出现的次数
public class Fs49 {
    public static void main(String[] args) {

        String string = "a sd df er gfg dsd we we 23 43 re weq543 23";

        int num = 1;//子字符的数量

        char[] c = string.toCharArray();

        for (int i = 0; i < c.length; i++) {

            if (c[i] == ' ') {

                num++;

            }

        }

        System.out.println(string + "有子字符串: " + num + " 个");
    }
}

package s1;

import java.io.*;

//题目:有五个学生,每个学生有3门课的成绩,
//        从键盘输入以上数据(包括学生号,姓名,三门课成绩),
//        计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件”stud”中。
public class Fs50 {
    //定义学生模型

    String[] number = new String[5];

    String[] name = new String[5];

    float[][] grade = new float[5][3];

    float[] sum = new float[5];

    public static void main(String[] args) throws Exception{

        Fs50 stud = new Fs50();

        stud.input();

        stud.output();

    }

    //输入学号、姓名、成绩

    void input() throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        //录入状态标识

        boolean isRecord = true;

        while(isRecord){

            try{

                for(int i=0;i<5;i++){

                    System.out.print("请输入学号:");

                    number[i] = br.readLine();

                    System.out.print("请输入姓名:");

                    name[i] = br.readLine();

                    for(int j=0;j<3;j++){

                        System.out.print("请输入第"+(j+1)+"门课成绩:");

                        grade[i][j] = Integer.parseInt(br.readLine());

                    }

                    System.out.println();

                    sum[i] = grade[i][0]+grade[i][1]+grade[i][2];

                }

                isRecord = false;

            }catch(NumberFormatException e){

                System.out.println("请输入一个数字!");

            }

        }

    }

    //输出文件

    void output() throws IOException{

        FileWriter fw = new FileWriter("E://java50//stud.txt");

        BufferedWriter bw = new BufferedWriter(fw);

        bw.write("No.  "+"Name  "+"grade1  "+"grade2  "+"grade3  "+"average");

        bw.newLine();

        for(int i=0;i<5;i++){

            bw.write(number[i]);

            bw.write("  "+name[i]);

            for(int j=0;j<3;j++)

                bw.write("  "+grade[i][j]);

            bw.write("  "+(sum[i]/5));

            bw.newLine();

        }

        bw.close();

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值