1、输出俄文字母表。
public class Russian {
public static void main (String args[]) {
int startPosition=0,endPosition=0;
char cStart='а',cEnd='я';
startPosition=(int) cStart; // cStart做int类型转换运算,并将结果赋值给startPosition
endPosition=(int) cEnd; // cEnd做int类型转换运算,并将结果赋值给endPosition
System.out.println("俄文字母共有:");
System.out.println(endPosition-startPosition+1+"个");
for(int i=startPosition;i<=endPosition;i++) {
char c='\0';
c=(char) i; // i做char类型转换运算,并将结果赋值给c
System.out.print(" "+c);
}
}
}
2、数组的快速复制
定义一个一维数组,使用System.arraycopy() 方法,将其复制到另外一个数组中,并输出两个数组的内容。
import java.util.*;
public class Array {
public static void main(String args[]) {
int a[]={1,100,1000,10000};
int b[];
b=new int[4];
System.arraycopy(a, 0, b, 0, a.length);
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(b));
}
}
3、用户从键盘输入一个浮点数据,程序将输出这个数的平方和三次方。
import java.util.*;
public class InputFloat {
public static void main(String args[]) {
double a,b,c;
Scanner reader=new Scanner(System.in);
System.out.println("从键盘输入一个浮点数");
a=reader.nextDouble(); // reader调用方法读取用户从键盘输入的数据,并赋值给a
b=a*a;
c=a*a*a;
System.out.println(b); // 输出b
System.out.println(c); // 输出c
}
}
4、从键盘输入一个1-99999之间的整数,程序将判断这个数是几位数,并判断这个数是否是回文数。
import java.util.*;
public class Number {
public static void main(String args[]) {
int number=0,d5,d4,d3,d2,d1;
Scanner reader=new Scanner(System.in);
System.out.println("从键盘输入一个1至99999之间的数");
while(reader.hasNextInt()) {
number=reader.nextInt();
if(number>=1 && number<=99999) { // 判断number在1至99999之间的条件
d5=number/10000; // 计算number的最高位(万位)d5
d4=number/1000%10; // 计算number的千位d4
d3=number/100%10; // 计算number的百位d3
d2=number%100/10;
d1=number%10;
if(d5>0) { // 判断number是5位数的条件
System.out.printf("\n%d是5位数", number);
if (d5==d1&&d4==d2) // 判断number是回文数的条件
System.out.printf("\t%d是回文数", number);
else
System.out.printf("\t%d不是回文数", number);
}
else if (d5==0&&d4>0){ // 判断number是4位数的条件
System.out.printf("\n%d是4位数",number);
if (d4==d1&&d3==d2) // 判断number是回文数的条件
System.out.printf("\t%d是回文数", number);
else
System.out.printf("\t%d不是回文数",number);
}
else if (d5==0&&d4==0&&d3>0){ // 判断number是3位数的条件
System.out.printf("\n%d是3位数", number);
if (d3==d1) // 判断number是回文数的条件
System.out.printf("\t%d是回文数", number);
else
System.out.printf("\t%d不是回文数", number);
}
else if(d2!=0){
System.out.printf("\n%d是2位数", number);
if(d1==d2)
System.out.printf("\t%d是回文数", number);
else
System.out.printf("\t%d不是回文数", number);
}
else if(d1!=0){
System.out.printf("\n%d是1位数", number);
System.out.printf("\t%d是回文数", number);
}
}
else
System.out.printf("\n%d不在1至99999之间", number);
System.out.printf("%n可继续输入整数,或输入非整数结束程序%n");
}
System.out.println("你输出的数据不是整数");
}
}
5、使用Arrays类的静态方法purbic void sort(doublea[],int start,int end)对数组进行排序, 然后使用折半法判断一个数是否在这个数组中。
import java.util.*;
public class ArraysSortAndBinarySearch {
public static void main(String args[]) {
int a[] = {12, 34, 9, 23, 45, 6, 45, 90, 123, 19, 34};
Arrays.sort(a);
System.out.println(Arrays.toString(a));
int number = 19;
int index = Arrays.binarySearch(a, number);
if (index >= 0) {
System.out.println(number + "和数组中索引为" + index + "的元素值相同");
} else {
System.out.println(number + "不与数组中任何元素值相同");
}
}
}
6、有理数的类封装:分数的四则运算。(按模板要求写的,有点冗杂)
public class Main {
public static void main(String args[]) {
Rational r1;
r1 = new Rational(1, 5);
Rational r2;
r2 = new Rational(3, 2);
Rational result = r1.add(r2);
int a = result.getNumerator();
int b = result.getDenominator();
double p = a;
double q = b;
double doubleResult = p/q;
System.out.print("分数" + r1.getNumerator() + "/" + r1.getDenominator());
System.out.println("与分数" + r2.getNumerator() + "/" + r2.getDenominator() + "的和等于" + result.getNumerator() + "/" + result.getDenominator() + "\t小数形式为:" + doubleResult);
result = r1.sub(r2);
a = result.getNumerator();
b = result.getDenominator();
p = a; q = b;
doubleResult = p/q;
System.out.println("\t\t 差等于" + result.getNumerator() + "/" + result.getDenominator() + "\t小数形式为:" + doubleResult);
result = r1.muti(r2);
a = result.getNumerator();
b = result.getDenominator();
p = a; q = b;
doubleResult = p/q;
System.out.println("\t\t 积等于" + result.getNumerator() + "/" + result.getDenominator() + "\t小数形式为:" + doubleResult);
result = r1.div(r2);
a = result.getNumerator();
b = result.getDenominator();
p = a; q = b;
doubleResult = p/q;
System.out.println("\t\t 商等于" + result.getNumerator() + "/" + result.getDenominator() + "\t小数形式为:" + doubleResult);
}
}
class Rational {
int numerator,denominator;
Rational(){
}
Rational(int a,int b){
setNumeratorAndDenominator(a,b);
}
void setNumeratorAndDenominator(int a, int b){ //设置分子和分母
int c = f(Math.abs(a), Math.abs(b)); //计算最大公约数
numerator = a / c;
denominator = b / c;
if (numerator < 0 && denominator < 0) {
numerator = -numerator;
denominator = -denominator;
}
}
int getNumerator() {
return numerator;
}
int getDenominator() {
return denominator;
}
int f(int a, int b) { //求a和b的最大公约数
if (a < b) {
int c = a;
a = b;
b = c;
}
int r = a % b;
while(r != 0) {
a = b;
b = r;
r = a % b;
}
return b;
}
Rational add(Rational r) {
int a = r.getNumerator();
int b = r.getDenominator();
int newNumerator = numerator * b + denominator * a;
int newDenominator = denominator * b;
Rational result = new Rational(newNumerator, newDenominator);
return result;
}
Rational sub(Rational r) {
int a = r.getNumerator();
int b = r.getDenominator();
int newNumerator = numerator * b - denominator * a;
int newDenominator = denominator*b;
Rational result = new Rational(newNumerator,newDenominator);
return result;
}
Rational muti(Rational r) {
int a = r.getNumerator();
int b = r.getDenominator();
int newNumerator = numerator * a;
int newDenominator = denominator * b;
Rational result = new Rational(newNumerator, newDenominator);
return result;
}
Rational div(Rational r) {
int a = r.getNumerator();
int b = r.getDenominator();
int newNumerator = numerator * b;
int newDenominator = denominator * a;
Rational result = new Rational(newNumerator, newDenominator);
return result;
}
}
7、实例成员与类成员。
class A {
float a; // 声明一个实例float变量a
static float b; // 声明一个static的float变量b
void setA(float a) {
this.a = a; // 将参数a的值赋值给成员变量a
}
void setB(float b){
A.b = b; // 将参数b的值赋值给成员变量b
}
float getA() {
return a;
}
float getB() {
return b;
}
void inputA() {
System.out.println(a);
}
static void inputB(){
System.out.println(b);
}
}
public class Main {
public static void main(String args[]) {
A.b = 100; // 通过类名操作类变量b,并赋值100
A.inputB(); // 通过类名调用方法inputB( )
A cat = new A();
A dog = new A();
cat.setA(200); // cat调用方法setA(int a)将cat的成员a的值设置为200
cat.setB(400); // cat调用方法setB(int b)将cat的成员b的值设置为400
dog.setA(200); // dog调用方法setA(int a)将dog的成员a的值设置为200
dog.setB(900); // dog调用方法setB(int b)将dog的成员b的值设置为900
cat.inputA(); // cat调用inputA()
A.inputB(); // cat调用inputB()
dog.inputA(); // dog调用inputA()
A.inputB(); // dog调用inputB()
}
}
8、 设计一个应用程序要求:
设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected类型的成员变量x和y,获取和设置x和y值的public方法。
设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径的protected,类型的成员变量r、获取和设置r值的public方法、计算圆面积的一public方法。
设计一个表示圆柱体的类Cylinder,它继承自类Circle,还包含有表示圆柱体高的protected类型的成员变量h、获取和设置h值的public方法、计算圆柱体体积的public方法。
建立若干个Cylinder对象,输出其轴心位置坐标、半径、高及其体积的值。
要求:每个类包含无参数和有参数的构造方法。构造方法用于对成员变量初始化,无参数的构造方法将成员变量初始化为0值。子类的构造方法调用父类的构造方法,对父类 中的成员变量初始化。
import java.util.Scanner;
class Point {
protected double x, y;
public Point() {
}
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
}
class Circle extends Point {
protected double r;
public Circle() {
}
public Circle(double x, double y, double r){
super(x, y);
this.r = r;
}
public void setR(double r) {
this.r = r;
}
public double getR() {
return r;
}
public double getArea() {
return Math.PI * r * r;
}
}
class Cylinder extends Circle {
protected double h;
public Cylinder() {
h = 0;
}
public Cylinder(double x, double y, double r, double h){
super(x, y, r);
this.h = h;
}
public void setH(double h) {
this.h = h;
}
public double getH() {
return h;
}
public double getVolume() {
return getArea() * h;
}
}
public class Main {
public static void main(String args[]) {
Cylinder c = new Cylinder();
System.out.println("圆柱的轴心坐标为:("+c.getX()+", "+c.getY()+")");
System.out.println("圆半径为:"+c.getR()+" 圆面积为:"+c.getArea());
System.out.println("圆柱的高为:"+c.getH()+" 体积为:"+c.getVolume());
Scanner cin = new Scanner(System.in);
while (cin.hasNextInt()) {
double n1 = cin.nextDouble();
double n2 = cin.nextDouble();
double n3 = cin.nextDouble();
double n4 = cin.nextDouble();
c = new Cylinder(n1, n2, n3, n4);
System.out.println("圆柱的轴心坐标为:("+c.getX()+", "+c.getY()+")");
System.out.println("圆半径为:"+c.getR()+" 圆面积为:"+c.getArea());
System.out.println("圆柱的高为:"+c.getH()+" 体积为:"+c.getVolume());
}
}
}
9、设计一个应用程序要求:
定义一个抽象类Printable,其中包括一个方法printItMyWay(),该方法是一个抽象方法,没有形参,返回值为空。
改写矩形类使之继承Printable类,用printItMyWay()方法将矩形的相关信息打印在屏幕上,例如矩形的长为多少,矩形的宽为多少。
注:矩形类包含矩形的长和宽。
在Printable类中增加一个新的抽象方法printItMyWay(char),这方法有一个字符性参数,返回值为空。其功能是利用给出的字符打印在矩形行区域内
在main方法中添加语句调用printItMyWay()和printItMyWay(char)。
public class Main {
public static void main(String args[]) {
Rectangle rec = new Rectangle(2, 3);
rec.printItMyWay();
rec.printItMyWay('A');
}
}
abstract class Printable{
abstract void printItMyWay();
abstract void printItMyWay(char c);
}
class Rectangle extends Printable {
int length = 2;
int width = 3;
Rectangle(int length,int width) {
this.length = length;
this.width = width;
}
void printItMyWay() {
System.out.println("length:" + length + "\t" + "width:" + width);
}
void printItMyWay(char c) {
for(int i = 0; i < length; i++) {
for(int j = 0; j < width; j++)
System.out.print(c);
System.out.println();
}
}
}
10、接口的定义和使用方法。
interface ComputerWeight {
public double computeWeight();
}
class Television implements ComputerWeight {
public double computeWeight() { //实现computeWeight()方法。
return 45.5;
}
}
class Computer implements ComputerWeight {
public double computeWeight() { //实现computeWeight()方法。
return 65.5;
}
}
class WashMachine implements ComputerWeight {
public double computeWeight() { //实现computeWeight()方法。
return 145;
}
}
class Car {
ComputerWeight[] goods;
double totalWeights=0;
Car(ComputerWeight[] goods) {
this.goods = goods;
}
public double getTotalWeights() {
totalWeights=0;
for(int i = 0; i < goods.length; i++) { //计算totalWeights
totalWeights += goods[i].computeWeight();
}
return totalWeights;
}
}
public class Main {
public static void main(String args[]) {
ComputerWeight[] goodsOne = new ComputerWeight[50],
goodsTwo = new ComputerWeight[22] ;
for(int i = 0; i < goodsOne.length; i++) {
if(i % 3 == 0)
goodsOne[i] = new Television();
else if(i % 3 == 1)
goodsOne[i] = new Computer();
else if(i % 3 == 2)
goodsOne[i] = new WashMachine();
}
for(int i = 0;i < goodsTwo.length; i++) {
if(i % 3 == 0)
goodsTwo[i] = new Television();
else if(i % 3 == 1)
goodsTwo[i] = new Computer();
else if(i % 3 == 2)
goodsTwo[i] = new WashMachine();
}
Car 大货车 = new Car(goodsOne);
System.out.println("大货车装载的货物重量:" + 大货车.getTotalWeights());
Car 小货车 = new Car(goodsTwo);
System.out.println("小货车装载的货物重量:" + 小货车.getTotalWeights());
}
}
11、定义一个接口,包含一个计算体积的抽象方法calculateVolume(),,设计circle和Rectangle两个类都实现接口中的方法calculateVolume(),分别计算球体和长方体的体积。
public class Main {
public static void main(String args[]) {
Circle cir = new Circle(2);
cir.CalculateVolume();
Rectangle rec = new Rectangle(2, 3, 4);
rec.CalculateVolume();
}
}
interface Calculate {
abstract void CalculateVolume();
}
class Circle implements Calculate{
int r;
Circle(int r) {
this.r = r;
}
public void CalculateVolume() {
System.out.println(4 / 3 * PI * r * r * r);
}
}
class Rectangle implements Calculate {
int length, width, height;
Rectangle(int length, int width, int height){
this.length = length;
this.width = width;
this.height = height;
}
public void CalculateVolume() {
System.out.println(length * width * height);
}
}