Java homewok2

来源:互联网 发布:anyview4.0 java下载 编辑:程序博客网 时间:2024/06/05 18:48

1.考试成绩已经保存在数组scores中,依次为 89,23,64,91,119,52,73,-23。

  要求根据通过自定义方法来找出其中前三名,将数组成绩作为参数传入,

  要求判断成绩的有效性(0-100),如果成绩无效,则忽略此成绩。

public class homework1 {

    public static voidmain(String[] args){

    int []score ={89,23,64,91,119,52,73,-23};

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

         for(int j=i+1;j<score.length;j++){

                if(score[i]<score[j]){     

                inttemp = score[i];

                    score[i] = score[j];

                    score[j] = temp;

             }         

         }

    }

    int num = 0;

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

         if(score[i]<0 || score[i]>100){

             continue;

    }

    num++;

    if(num > 3){

    break;

    }

    System.out.println(score[i]);

    }

    }

}


2. 用数组来实现, 定义并初始化一个(1--100)保存100个数的数组,从第一个

元素开始,依次数(1,2,3 循环往复),每次数到到3的元素淘汰掉.当到达数组末尾的

时候再从头开始,直到最后剩余一个元素,写出算法,并输出最后保留的元素所

在的最初的位置.

public class work4 {

public static void main(String[] args) {

int [] arr = new int [100];

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

arr[i]=i+1;}

int i= 0;

int times = 0;

int over= 0;

int num = 0;

while(times!=100){

if(arr[i]>=0){

if(num==2){

arr[i]=-1;

times++;

num=0;

over=i;

System.out.println(over);

}else{

num++;

}

}

i++;

if(i==100){

i=0;

}

System.out.println(+over);

}

}

}



3. 用数组来实现对于一个整形数组, 分别通过冒泡排序和 快速排序,实现对于任意

一个数组进行由小到大的排列。

冒泡排序

public class work3 {

    public static voidmain(String[] args){

       int[]arr={21,35,27,46,78,47,37,42,78};

         for(int i=0;i<arr.length-1;i++){

             for(int j=i+1;j<arr.length;j++){

              if(arr[i]>arr[j]){

                  int step=arr[j];

                  arr[j]=arr[i];

                  arr[i]=step;

              }

           }

             System.out.println(arr[i]);

       }

    }

}


快速排序

public class work2 {

public static void main(String[] args) {

    int[] nums ={32,48,57,63,24,47,98,19,26,35};

    quickSort(nums,0, nums.length-1);

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

      System.out.print(nums[i]+ ",");

    }

    System.out.println("");

}

public static void quickSort(int[]arr,int low,int high){

    int i,j,temp;

    i=low+1;

    j=high-1;

    if(high-low>1){

       while(i<=j){

           for(;i<high&&arr[i]<arr[low];i++);

           for(;j>low&&arr[j]>=arr[low];j--);

           if(i<j){

              temp=arr[i];

              arr[i]=arr[j];

              arr[j]=temp;

           }

       }

       if(j>low){

           temp=arr[low];

           arr[low]=arr[j];

           arr[j]=temp;

       }

       if(j>low){

           quickSort(arr,low,j);

       }

       if(i<high){

           quickSort(arr,j+1,low);

       }

    }   

}

}


4.判断101-200之间有多少个素数,并输出所有素数。

public class homework4 {

    public static voidmain(String[] args){

       int times=0 ;

       for(int i=101;i<=200;i++){

           for(int j=2;j<=i;j++){

              if(i == j){

                  System.out.println(j);

              }else if(i%j == 0){

                  times++;

                  break;

              }

           }     

       }

       System.out.println("总共有"+(100-times)+"个素数.");

    }

}



5.题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

importjava.util.Scanner;

public class homework5 {

    public static voidmain(String[] args){

       System.out.println("请输入一串字符:");

       Scanner scan=new Scanner(System.in);

       Stringstr=scan.nextLine();

       intCharNum=0,SpaceNum=0,IntNum=0,OtherNum=0;

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

           char ch=str.charAt(i);

           if(ch >= 'a' && ch <='z' || ch <= 'Z' && ch >= 'A'){

              CharNum++;

           }else if(ch == ' '){

              SpaceNum++;

           }else if(ch >= '0' && ch <= '9'){

              IntNum++;

           }else{

              OtherNum++;

           }

       }

       System.out.println("输入的英文字母个数:"+CharNum+";");

       System.out.println("输入的空格个数:"+SpaceNum+";");

       System.out.println("输入的数字个数:"+IntNum+";");  

       System.out.println("输入的其它字符个数:"+OtherNum+"。");  

    } 

}



6.题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;

利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,

可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之

间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提

成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润,求

应发放奖金总数?

importjava.util.Scanner;

public class homework6 {

    public static voidmain(String[] args){

    System.out.println("请输入利润:");

    Scanner sca=new Scanner(System.in);

    int profit=sca.nextInt();

    double bonus=0;

    if(profit<=100000){

       bonus=0.1 *profit; 

   

    }else if(profit>100000 && profit<=200000){

       bonus=10000 +0.075 * (profit - 100000); 

   

    }else if(profit>200000 && profit<=400000){

       bonus=17500 +0.05 * (profit - 200000);  

      

    }else if(profit>400000 && profit<=600000){

       bonus=27500 +0.003 * (profit - 400000); 

      

    }else if(profit>600000 && profit<=1000000){

       bonus=10000 +0.015 * (profit - 600000); 

      

    }else {

       bonus=10000 +0.01 * (profit - 1000000); 

    }

    System.out.println("现金为:"+bonus+"元");

    }

}



7.分别定义用户类,订单类,产品类,其中订单类至少要具有下订单的行为(入参为

一个产品名称), 产品类中至少有一个成员变量为产品名称,至少有一个方法用来获

取产品的名称。

  用户类中持有一个产品类型的成员变量。
  用户类中持有一个订单类型的成员变量。

在我们的用户类中定义main函数,当执行的时候,构造一个用户类的对象, 并且通

过手段可以拿到产品成员变量中的产品名称,并且调用成员变量订单的对象,进行下

单。最后输出下单成功。

import java.util.Scanner;

class User{

    String Product;

    String Order;

}

class Order extends User{

    void DropAnOrder(String name) {

       System.out.println("您的商品:"+name+"下单成功!");

    }

}

class Product extends User{

    Stringname="手表";

    StringstrName() {

       Scanner scn=new Scanner(System.in);

       System.out.println("请输入商品名称:");

       Stringname=scn.nextLine();

       return name;

    }

 

public static void main(String[] args) {

    User u=new User();

    Product p=new Product();

    u.Product=p.strName();

    Order o=new Order();

    o.DropAnOrder(u.Product);

}

}