作业3.4.5

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

 

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

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

 

package H1;

public class mgy {

   

 

    public static void main(String[] args) {  

        }

 

   

    void  compare(int grade[i]) {

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

          for(int i;i<grade.length;i++) {

           if(grade[i]<0 &&grade[i]>100) {

              System.out.println("error");

          }

    }

    int temp;

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

        if(grade[i]<grade[i+1]) {

            temp=grade[i];

            grade[i]=grade[i+1];

            grade[i+1]=temp;

        }

    }System.out.print(grade[0],grade[1],grade[2]);

     }(有毛病)

    package gzz;

public class gzz {

    public static void main(String[] args) { 

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

    int temp;

    for(inti=0;i<grade.length;i++){

        for(intj=i+1;j<grade.length;j++) {

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

            temp=grade[j];

            grade[j]=grade[i];

            grade[i]=temp;

        }

    }

      if(grade[i]>=0 &&grade[i]<=100 ){

          for(inta=1;a<=3;a++) {

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

      break;

      } 

    }

      }

}

}



2. . 用数组来实现, 定义并初始化一个(1--100)保存100个数的数组,从第一个元素开始,依次数(1,2,3 循环往复),每次数到到3的元素淘汰掉.当到达数组

末尾的时候再从头开始,直到最后剩余一个元素,写出算法,并输出最后保留的元素所在的最初的位置. package H1;

 

importjava.util.Arrays;

 

public class mgy {

    public static void main(String[] args){

        int []arr=newint [100];

        for (inti=0;i<arr.length;i++){

            arr[i]=i+1;

        }

        System.out.println("初始化:"+Arrays.toString(arr));

        int count=1;

        while(arr.length!=1){

            for (inti=0;i<arr.length;i++,count++){

                while (count==3){

                    for (inth=i;h<arr.length-1;h++){

                        arr[h]=arr[h+1];

                    }

                    arr=Arrays.copyOf(arr,arr.length-1);

                    count=1;

                }

            }

        }

        System.out.println("最后的数初始位置为:"+(arr[0]-1));

    }

 

}


3. 用数组来实现对于一个整形数组, 分别通过冒泡排序和 快速排序,实现对于任意一个数组进行由小到大的排列。

冒泡排序:package H1;

public class mgy {

   

 

    public static void main(String[] args) {  

        int []arry=newint [] {56,89,67,34,12,99,45,26};

         for(inti=0;i<arry.length;i++) {

             for(intj=i+1;j<arry.length-1;j++) {

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

                    inttemp=arry[j];

                    arry[j]=arry[i];

                    arry[i]=temp;

                    

                 

}System.out.println("请输出:"+arry[i]);

       

    }

  }

 }


 

 

 

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

package H1;

public class mgy {

 

    public static void main(String[] args) {  

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

 

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

 

             if(i%j==0 &&i!=j) {

                 break;

             }

 

             if(i%j==0 &&i==j) {

             }

         } System.out.println("请输出101~200之间的素数:"+i);

        }

    }

}


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

package H1;

importjava.util.*;

public class mgy {

    public static void main(String[] args) {  

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

     Scanner sc=new Scanner(System.in);

      String str=sc.nextLine();

       int countletter=0;

       int countnumber=0;

       int countspace=0;

       int countother=0;

   for(inti=1;i<str.length();i++) {

       char an=str.charAt(i);

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

           countletter++;

       }

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

           countnumber++;

       }

       else if(an==' ') {

           countspace++;

       }

       else {

           countother++;

       }

       }

     System.out.println("请输出出现字母次数:"+countletter);

     System.out.println("请输出出现数字次数:"+countnumber);

     System.out.println("请输出出现空格次数:"+countspace);

     System.out.println("请输出出现其他符号次数:"+countother);

    }

}


6. 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%提成,从键盘输入当月利润,求应发放奖金总数?

package H1;

importjava.util.*;

public class mgy {

   public static void main(String[] args) {

       doublebouns=100.00;

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

      Scanner sc=new Scanner(System.in);

      double profit=sc.nextInt();

       if(profit<=0) {

          System.out.println("没奖金!");

        }

       if(profit>0 &&profit<10) {

          bouns=1.1*bouns;

          System.out.println("请输出奖金额:"+bouns);

         }

       if(profit>=10 &&profit<20) {

             if((profit-10)<10) {

             bouns=(profit-10)*1.1;

             System.out.println("请输出奖金额:"+bouns);

            }

             if((profit-10)>10) {

             bouns=(profit-10)*1.075;

             System.out.println("请输出奖金额:"+bouns);

            }

         }

        if(profit>=20 &&profit<40) {

          bouns=(profit-20)*1.05;

          System.out.println("请输出奖金额:"+bouns);

         }

        if(profit>=40 &&profit<60) {

         bouns=(profit-40)*1.03;

         System.out.println("请输出奖金额:"+bouns);

         }

        if(profit>=60 &&profit<100) {

         bouns=(profit-60)*1.015;

         System.out.println("请输出奖金额:"+bouns);

         }

        if(profit>=100) {

         bouns=(profit-100)*1.001;

         System.out.println("请输出奖金额:"+bouns);

        }

   }

}


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

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

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

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

 

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

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

  最后输出下单成功。

    

    

        package H1;

 

importjava.util.Scanner;

 

public class mgy {

    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);

    }

}

    class User{

    StringProduct;

    StringOrder;

    }

    class Orderextends User{

    void DropAnOrder(Stringname) {

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

    }

    }

    class Productextends User{

    Stringname="球鞋";

    StringstrName() {

    Scannerscn=new Scanner(System.in);

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

    Stringname=scn.nextLine();

    return name;

     }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值