《JavaSE软件开发》——Java基础

一、输入输出

基础题

1、在Lab1包中建立一个名为Lab1_1的类,在其中输出一句话:“你好Java!”,然后尝试建立和使用各种类型的变量,功能不限。

package Lab1;

import java.util.Scanner;

public class Lab1_1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("你好Java!");
		Scanner sc = new Scanner(System.in);
		int n=sc.nextInt();
		String str1=sc.next();
		System.out.println("欢迎"+n+"号"+"选手!"+str1);
	}

}

2、在Lab1包中建立一个名为Lab1_2的类,在其中输出N个斐波那契级数。

package Lab1;

import java.util.Scanner;

public class Lab1_2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		fac(n);
	}
	public static void fac(int n) {
		int a=0;//0 1
		int b=1;//1 
		int c=1;//1 1+0 2 3 5
		for(int i=0;i<n;i++)
		{
			System.out.println(c);
			b=c;
			c+=a;
			a=b;
		}
	}
}

3、在包Lab1中创建一个名为Lab1_3的类,实现以下要求:

一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6的因子为1、2、3,而6=1+2+3。因此6是“完数”。编写一个小应用程序求1000之内的所有完数。

package Lab1;

public class Lab1_3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
//		System.out.println(check(6));
		for(int i=2;i<=1000;i++)
		{
			if(check(i))
				System.out.println(i);
		}
	}
	public static boolean check(int n) {
		int sum=0;
		for(int i=2;i<n;i++)
		{
			if(n%i==0) {
				sum+=i;
			}
		}
		if(sum+1==n)return true;
		else {
			return false;
		}
	}
}

提高提

1、在包Lab1中创建一个名为Lab1_4的类,实现以下要求:

输入某年某月某日,判断这一天是这一年的第几天?

package Lab1;

import java.util.Scanner;

public class Lab1_4 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int Pmonths[]= {31,28,31,30,31,30,31,31,30,31,30,31};	
		int Rmonths[]= {31,29,31,30,31,30,31,31,30,31,30,31};	
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入年:");
		int y=sc.nextInt();
		System.out.println("请输入月:");
		int m=sc.nextInt();
		System.out.println("请输入日:");
		int d=sc.nextInt();
		int days=0;
		if(y%400==0||(y%100!=0&&y%4==0)) {//闰年
			for(int i=0;i<m-1;i++)
			{
				days+=Rmonths[i];
			}
			days+=d;
		}
		else {//平年
			for(int i=0;i<m-1;i++)
			{
				days+=Pmonths[i];
			}
			days+=d;
		}
		System.out.println("这一天是这一年的第"+days+"天 ");
	}

}

2、在Lab1包中建立一个名为Lab1_5的类,在其中实现汉诺塔范例。

package Lab1;

import java.util.Scanner;

public class Lab1_5 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		System.out.println("一共有多少个汉诺塔牌?");
		int n=sc.nextInt();
		hanio(n,'A','C','B');
		
	}
	public static void hanio(int n,char from,char target,char temp) {
		if(n==1) {
			System.out.println(from+"   ->   "+target );
		}
		else {
			hanio(n-1,from,temp,target);
			hanio(1, from,target,temp);
			hanio(n-1, temp,target,from);
		}
	}

}

二、流程控制、数组

基本输入输出范例代码:

  Scanner sc=new  Scanner(System.in);
  int n=sc.nextInt();
  String str1=sc.next();
  System.out.println("欢迎"+n+"号同学"+str1);

基本题

在JavaSE项目中,建立一个名为Lab2的包,完成以下题目:

1、在包Lab2中创建一个名为Lab2_1的类,统计从对键盘输入的一大段内容中所有不同符号的个数(可能字母数字或其他符号,其中字母不分大小写)。

输出格式:

A 5

C 2

* 3

……

……

package Lab2;

import java.util.Scanner;

public class Lab2_1 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		int []a=new int[70000];
		Scanner sc=new Scanner(System.in);
		String str=sc.nextLine();//输入一串字符串并赋值给str
//		int str=sc.nextInt();
		System.out.println(str);
		str=str.toUpperCase();
		for(int i=0;i<str.length();i++)
		{
			
			a[str.charAt(i)]++;
		}
		for (int i = 0; i < a.length; i++) {
			if(a[i]!=0) {
				System.out.print((char)i );
				System.out.println("   "+a[i]);
			}
		}
		
	}

}

2、在包Lab2中创建一个名为Lab2_2主类及MyMath类,实现以下要求:

a、在MyMath类中建立多个静态函数,形参为一个double数组,函数包括max、min、sum、average。

b、在Lab2_2类的main函数中,建立一个数组并赋值。

c、在main中建立MyMath类的对象,通过该对象调用各个函数,计算数组中所有数据的最小值、最大值、平均值、总和。

事实上,用类的实例调用静态函数本质上就是使用类名调用静态函数,所以在eclipse中,使用实例调用静态函数会产生黄色的警告,表示不建议这么用,但却不会报错

package Lab2;

import java.util.Scanner;

public class Lab2_2 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Scanner sc=new Scanner(System.in);
		
		int n=sc.nextInt();
		double [] arr=new double[n];
		for (int i = 0; i < n; i++) {
			double b=sc.nextDouble();
			arr[i]=b;
		}
		MyMath m = null;
		System.out.println("数组中最大值为:"+m.max(arr));//或将m.改成MyMath.
		System.out.println("数组中最小值为:"+m.min(arr));
		System.out.println("数组中总和为:"+m.sum(arr));
		System.out.println("数组中平均值为:"+m.average(arr));
		
	}

}
class MyMath{
	public MyMath() {
		// TODO 自动生成的构造函数存根
	}
	public static double max(double a[]) {
		double m=a[0];
		for (int i = 0; i < a.length; i++) {
			if(a[i]>m)m=a[i];
			
		}
		return m;
	}
	public static double min(double a[]) {
		double m=a[0];
		for (int i = 0; i < a.length; i++) {
			if(a[i]<m)m=a[i];
			
		}
		return m;
	}
	public static double sum(double a[]) {
		double m=0;
		for (int i = 0; i < a.length; i++) {
			m+=a[i];
			
		}
		return m;
	}
	public static double average(double a[]) {
		double m=0;
		for (int i = 0; i < a.length; i++) {
			m+=a[i];
			
		}
		return m/a.length;
	}	
	
	
}

3、在包Lab2中创建一个名为Lab2_3的类,实现以下要求:

实现矩阵的转置功能,即用户输入一个矩阵的行列数及具体数据,然后输出其转置后的结果。

输入格式:

2  3   //分别代表行、列

1 2 3

4 5 6

输出格式:

1 4 

2 5

3 6

package Lab2;

import java.util.Scanner;

public class Lab2_3 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Scanner sc=new Scanner(System.in);
		int h=sc.nextInt();//行
		int l=sc.nextInt();//列
		int arr[][]=new int[h][l];
		for (int i = 0; i < h; i++) {
			for (int j = 0; j < l; j++) {
				arr[i][j]=sc.nextInt();
				
			}
		}
		for (int i = 0; i < l; i++) {
			for (int j = 0; j < h; j++) {
				System.out.print(arr[j][i]+" ");
			}
			System.out.println();
		}
	}

}

4、在包Lab2中创建一个名为Lab2_4

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LenckCuak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值