Java基础案例

这篇博客深入探讨了Java编程的基础知识,包括语法、类与对象、异常处理和集合框架的使用。通过实例解析,帮助读者掌握核心概念并提升编程技能。
摘要由CSDN通过智能技术生成
	/*
 * 模拟注册以及登录:
 * 1.注册不知道用户的操作次数,所以需要使用死循环;
 * 2.档用户确定了用户名和密码后,注册成功。保存下用户输入的用户名及密码;
 * 3.登录最多只能三次,如果第三次还没有成功直接退出程序
 * 思考?  1.用户名和密码怎样保存
 *      2.用一个只能执行三次的循环控制登录次数,但是要求第三次时其实“再见”
 */
public static void abc16(){
    String username="";
    String password="";
    Scanner sc=new Scanner(System.in);
    for(;;){
        System.out.println("请输入用户名");
        username=sc.nextLine();
        System.out.println("请输入密码");
        String ps1=sc.nextLine();
        System.out.println("请确认密码");
        String ps2=sc.nextLine();
        if(ps1.equals(ps2)){
            System.out.println("注册成功!");
            password=ps1;
            break;
        }
    }
    for(int i=1;i<=3;i++){
        System.out.println("请输入用户名:");
        String newUserName=sc.next();
        System.out.println("请输入密码:");
        String newPassWord=sc.next();
        if(newUserName.equals(username)&&newPassWord.equals(password)){
            System.out.println("登录成功!");
            break;
        }else{
            System.out.println("你还有"+(3-i)+"次机会");
            if(i==3){
                System.out.println("拜拜");
            }
            continue;
        }
    }
}



/*
 * 1.把100~200中不能被3整除的数输出,每四个换行输出
 * 
 */
public static void abc17(){
    int count=0;
    for(int i=100;i<=200;i++){
        if(i%3!=0){
            if(count<3){
                System.out.print(i+"\t");
                count++;
            }else{
                System.out.println(i);
                count=0;
            }
        }
    }
}



/*
 * 输出1~100之间的奇数,每行输出5个数字
 */
public static void abc18(){
    int count=0;
    for(int i=1;i<=100;i++){
        if(i%2!=0){
            if(count<4){
                System.out.print(i+"\t");
                count++;
            }else{
                System.out.println(i);
                count=0;
            }
        }
    }
}



/*
 * 输出一个字符串,统计该字符中分别包含多少个数字,多少个字母,多少个其他字符
 */
public static void abc19(){
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入一个字符:");
    String a=sc.nextLine();
    int zimu=0;
    int num=0;
    int other=0;
    for(int i=0;i<a.length();i++){
        char ch=a.charAt(i);
        if('0'<=ch&&ch<='9'){
            num++;
        }else if('a'<=ch&&'z'>=ch){
            zimu++;
        }else{
            other++;
        }
    }
    System.out.println("字母"+zimu+"个");
    System.out.println("数字"+num+"个");
    System.out.println("其他字符"+other+"个");
}


/*
 * 有一群猪(100~200之间),如果分成4个猪一组,则多2个猪;若分成7个猪一组,则多
 * 3个猪;若分成9个猪一组则多5个猪,试求出猪的总数
 */
public static void abc20(){
    for(int i=100;i<=200;i++){
        if(i%4==2&&i%7==3&&i%9==5){
            System.out.println("猪的总数为:"+i);
        }
    }
}



/*
 * 算水仙花数量(100~999):表示三位数字,个位的三次方+十位的三次方+百位的
 * 三次方=这个数本身
 */
public static void abc21(){
    for(int i=100;i<=999;i++){
        int g=i%10;
        int s=i/10%10;
        int b=i/100;
        if(g*g*g+s*s*s+b*b*b==i){
            System.out.println(i);
        }
    }
}


/*
 * 计算机随机产生一个数,用户进行猜数,直到猜正确为止
 */
public static void abc22(){
    Scanner sc=new Scanner(System.in);
    for(;;){
        int num=(int)(Math.random()*10);
        System.out.println(num);
        System.out.println("请输入一个10以内整数:");
        int a=sc.nextInt();
        if(num==a){
            break;
        }
    }
    System.out.println("我猜对了");
}


/*
 * 随机生成一个数(范围自定),直到生成的数是88,则跳出循环,并
 * 统计一共执行了多少次(使用break)
 */
public static void abc23(){
    int count=0;
    for(;;){
        count++;
        int num=(int)(Math.random()*100);
        if(num==88){
            System.out.println("随机生成88了");
            break;
        }
    }
    System.out.println("随机了"+count+"次");
}


/*
 * 判断1~10000之间有多少个7的倍数
 */
public static void abc24(){
    int count=0;
    for(int i=1;i<=10000;i++){
        if(i%7==0){
            count++;
        }
    }
    System.out.println("共有"+count+"个7的倍数");
}


/*
 * A
 * AB
 * ABC
 * ABCD
 * ABCDE
 */
public static void abc25(){
    for(int i=1;i<=5;i++){
        char a='A';
        for(int j=1;j<=i;j++){
            System.out.print(a);
            a++;
        }
        System.out.println();
    }
        
}


/*
 * A
 * BB
 * CCC
 * DDDD
 * EEEEE
 */
public static void abc26(){
    char a='A';
    for(int i=1;i<=5;i++){
        for(int j=1;j<=i;j++){
            System.out.print(a);
        }
        a++;
        System.out.println();
    }
}



/*
 * A
 * BC
 * DEF
 * GHIJ
 * KLMNO
 */
public static void abc27(){
    char a='A';
    for(int i=1;i<=5;i++){
        for(int j=1;j<=i;j++){
            System.out.print(a);
            a++;
        }
        System.out.println();
    }
    
}


/*
 * *****
 * *   * 
 * *   *
 * *   *
 * *****
 */
//方法一
public static void abc28(){
    for(int i=1;i<=5;i++){
        for(int j=1;j<=5;j++){
            if(i==2||i==3||i==4){
                if(j==2||j==3||j==4){
                    System.out.print(" ");
                    continue;
                }
            }
            System.out.print("*");
        }
        System.out.println();
    }
}
//方法二
public static void abc29(){
    for(int i=1;i<=5;i++){
        for(int j=1;j<=5;j++){
            if(i>=2&&i<=4){
                if(j==1||j==5){
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }
            }else{
                System.out.print("*");
            }
        }
        System.out.println();
    }        
}


/*
 * *
 * **
 * * *
 * *  *
 * *****
 */
//方法一
public static void abc30(){
    for(int i=1;i<=5;i++){
        for(int j=1;j<=i;j++){
            if(i==3&&j==2){
                System.out.print(" ");
            }else if(i==4&&(j==2||j==3)){
                System.out.print(" ");
            }else{
                System.out.print("*");
            }
        }
        System.out.println();
    }
}
//方法二
public static void abc31(){
    for(int i=1;i<=5;i++){
        for(int j=1;j<=i;j++){
            if(i==j||j==1){
                System.out.print("*");
            }else if(i==5){
                System.out.print("*");
            }else{
                System.out.print(" ");
            }

        }
        System.out.println();
    }
}


/*
 *     *
 *    **
 *   ***
 *  ****
 * *****
 */
//方法一
public static void abc32(){
    for(int i=1;i<=5;i++){
        for(int j=5;j>=1;j--){
            if(j-i>0){
                System.out.print(" ");
            }else{
                System.out.print("*");
            }
        }
        System.out.println();
    }
}
//方法二
public static void abc33(){
    for(int i=1;i<=5;i++){
        for(int k=(5-i);k>0;k--){
            System.out.print(" ");
        }
        for(int j=1;j<=i;j++){
            System.out.print("*");
        }
        System.out.println();
    }
}


/*
 * 已知S=1*2*3*......*n,计算出S不大于5000时n的最大值
 */
//方法一
public static void abc34(){
    int sum=1;
    int num=0;
    for(int i=1;;i++){
        sum=sum*i;
        num=i;
        if(sum>5000){
            break;
        }
    }
    System.out.println(num-1);
}
//方法二
public static void abc35(){
    int sum=1;
    int num=0;
    do{
        num++;
        sum*=num;//sum=sum*num
    }while(sum<5000);
    System.out.println(num-1);
}
//方法三
public static void abc36(){
    int sum=1;
    int num=0;
    while(sum<5000){
        num++;
        sum=sum*num;
    }
    System.out.println(num-1);
}




/*
 * 三个班的同学参加比赛,每个班五名同学
 * 1.求出各班的总分和平均分
 * 2.求出各班的最高分
 * 3.求出全部分数中的最高分
 */
public static void abc37(){
    Scanner sc=new Scanner(System.in);
    int all_zg=0;
    for(int i=1;i<=3;i++){
        int gbzf=0;
        int pj=0;
        int zg=0;
        for(int j=1;j<=5;j++){
            System.out.println("请输入"+i+"班的"+j+"同学的成绩");
            int num=sc.nextInt();
            if(j==1){
                zg=num;
            }
            gbzf+=num;
            if(num>zg){
                zg=num;
            }
            if(j==5){
                System.out.println(i+"班总分="+gbzf);
                System.out.println(i+"班平均="+(gbzf/5));
                System.out.println(i+"班最高="+zg);
            }
        }
        if(all_zg<zg){
            all_zg=zg;
        }
        System.out.println("全部最高"+all_zg);
    }
}

/*
 * 100~200之间有哪些数是质数?
 */

public static void abc38(){
    for(int i=100;i<=200;i++){
        boolean a=true;
        for(int j=2;j<=i-1;j++){
            if(i%j==0){
                a=false;
            }
        }
        if(a){
            System.out.print("质数为:"+i+"\t");
        }
    }
    System.out.println();
}


/*
 * 求1+(1+2)+(1+2+3)+(1+2+3+4)+...(1+2+3+..+10)的和 
 */
public static void abc39(){
    int sum=0;
    for(int i=1;i<=10;i++){
        int num=0;
        for(int j=1;j<=i;j++){
            num=num+j;
        }
        sum=num+sum;
    }
    System.out.println("求得的和为:"+sum);
}


/*
 * 求1+(1*2)+(1*2*3)+(1*2*3*4)+(1*2*3*4*5)的和
 */
public static void abc40(){
    int sum=0;
    for(int i=1;i<=5;i++){
        int num=1;
        for(int j=1;j<=i;j++){
            num=num*j;
        }
        sum=num+sum;
    }
    System.out.println("求得的和为:"+sum);
}


/*
 * 100元买100只鸡
 *     公鸡五元一只;
 *     母鸡3元一只;
 *     小鸡一元3只;
 *     问公鸡、母鸡和小鸡各多少只?
 */
public static void abc41(){
    for(int gj=0;gj<=20;gj++){
        for(int mj=0;mj<=33;mj++){
            for(int xj=0;xj<=100;xj++){
                if(gj+mj+xj==100&&(gj*5+mj*3+xj/3==100)&&xj%3!=0){
                    System.out.println("公鸡为"+gj+"只\t"+"母鸡为"+mj+"只\t"+"小鸡为"+xj+"只");
                }
            }
        }
    }
}


/*
 * 婚礼上的谎言
    三个新郎为A、B、C,三个新娘为X、Y、Z。
    有人想知道究竟谁和谁结婚,
    于是就问新人中的三位,得到如下提示:
    A说他将和X结婚; A!=X   X!=C  C!=Z   
    X说她的未婚夫是C,
    C说他将和Z结婚。
    这个人事后知道他们在开玩笑,全是假话,
    那么,究竟谁与谁结婚呢?
 */
public static void abc42(){
    for(char A='X';A<='Z';A++){
        for(char B='X';B<='Z';B++){
            for(char C='X';C<='Z';C++){
                if(A!='X'&&C!='X'&&C!='Z' &&A!=B&&B!=C&&C!=A){
                    System.out.println("新郎A将和新娘"+A+"结婚");
                    System.out.println("新郎B将和新娘"+B+"结婚");
                    System.out.println("新郎C将和新娘"+C+"结婚");
                }
            }
        }
    }
}


/*
 * 有1、2、3、4个数字,能组成多少个无重复数字的三位数?都是多少?
 */
public static void abc43(){
    int count=0;
    for(int i=1;i<=4;i++){
        for(int j=1;j<=4;j++){
            for(int k=1;k<=4;k++){
                if(i!=j&&i!=k&&j!=k){
                    count++;
                    System.out.println(count+"组成的三位数为:"+i+j+k);
                }
            }
        }
    }
}


/*数组
 * 1.int [] a=new int[10];//10表示10个空间
 *   赋值 a[0]=8;//从0开始
 *      a[1]==10; 
 * 2.int [] a={5,6,7,8,9};
 * 3.int [] a=new int[]{5,6,7,8,9};
 * 
 * 定义一个数组,由键盘输入值来赋值,并输出该数组的各值
 */
public static void abc44(){
    Scanner sc=new Scanner(System.in);
    int [] a=new int[5];
    for(int i=0;i<=a.length-1;i++){
        System.out.println("请输入第"+(i+1)+"个数");
        a[i]=sc.nextInt();
    }
    for(int b:a){
        System.out.print(b+"\t");
    }
    
}


/*
 * 由键盘输入范围和个数的随机数数组,求出随机生成的数组的最大值和最小值,并求出他们的和。
 */
public static void abc45(){
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入多少以内的随机数:");
    int i=sc.nextInt();
    System.out.println("请确定要多少个随机数:");
    int j=sc.nextInt();
    int [] a=new int[j];
    for(int s=0;s<=a.length-1;s++){
        a[s]=(int)(Math.random()*i);
    }
    int sum=0,min=0,max=0;
    boolean cc=true;
    for(int b:a){
        sum=sum+b;
        System.out.print(b+"+");
        if(cc){
            min=b;
            cc=false;
        }
        if(b<min){
            min=b;
        }
        if(b>max){
            max=b;
        }
    }
    System.out.print("="+sum);
    System.out.println("\n最大值是:"+max+"\n最小值是:"+min);
}


/*
 * 用随机数给一个整型数组赋值,并对数组求和。(范围自定)
 */
public static void abc46(){
    int [] a=new int[5];
    for(int i=0;i<=a.length-1;i++){
        a[i]=(int)(Math.random()*100);
    }
    int sum=0;
    for(int b:a){
        sum=sum+b;
        System.out.println(b);
    }
    System.out.println("和为:"+sum);
}


/*
 * 对一组已经赋值的int类型的数组,找出其中的最大值和最小值
 */
public static void abc47(){
    int [] a={10,9,99,2,8,11,55};
    int max=0;
    int min=0;
    for(int i=0;i<=a.length-1;i++){
        if(i==0){
            max=a[i];
            min=a[i];
        }
        if(max<a[i]){
            max=a[i];
        }
        if(min>a[i]){
            min=a[i];
        }
    }
    System.out.println("最大值为:"+max);
    System.out.println("最小值为:"+min);
}


/*
 * 查找一个数,是否存在于数组当中,在数组的第几位
 */
public static void abc48(){
    int [] a={44,13,12,8,9,75,45,10};
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入一个数");
    int num=sc.nextInt();
    int count=0;
//方法一    for(int b:a){
//            count++;
//            if(b==num){
//                break;
//            }
//        }
    for(int i=0;i<=a.length-1;i++){
        if(a[i]==num){
            count=i+1;
            break;
        }
    }
    System.out.println("在第几位:"+count);
}


/*冒泡排序(两两比较,两两交换)
 * 
 * 对一组已经赋值的int类型的数组按照顺序的方式排序
 */
public static void abc49(){
    int [] a={12,53,32,46,199,17,75,54};
    for(int i=0;i<a.length;i++){
        for(int j=0;j<a.length-i-1;j++){
            if(a[j]>a[j+1]){
                int b=a[j];
                a[j]=a[j+1];
                a[j+1]=b;
            }
        }
    }
    for(int c:a){
        System.out.print("排序为:"+c+"\t");
    }
}


/*
 * 输入某年某月某日,判断这一天是这一年的第几天?
 */
//方法一(用数组)
public static void abc50(){
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入年:");
    int year=sc.nextInt();
    System.out.println("请输入月:");
    int month=sc.nextInt();
    System.out.println("请输入日:");
    int day=sc.nextInt();
    int [] m={31,28,31,30,31,30,31,31,30,31,30,31};
    int sum=0;
    for(int i=0;i<month-1;i++){//把输入月份-1的天数相加
        sum=sum+m[i];
    }
    if(year%4==0&&year%100!=0||year%400==0){
        if(month>2){
            sum++;
        }
    }
    sum=sum+day;
    System.out.println("今年的第"+sum+"天");
}

//方法二(用switch)
public static void abc51(){
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入年:");
    int year=sc.nextInt();
    System.out.println("请输入月:");
    int month=sc.nextInt();
    System.out.println("请输入日:");
    int day=sc.nextInt();
    int sum=0;
    int february=28;
    if(year%4==0&&year%100!=0||year%400==0){
        february=29;
    }
    switch(month){
    case 1:sum=day;break;
    case 2:sum=31+day;break;
    case 3:sum=31+february+day;break;
    case 4:sum=31+february+31+day;break;
    case 5:sum=31+february+31+30+day;break;
    case 6:sum=31+february+31+30+31+day;break;
    case 7:sum=31+february+31+30+31+30+day;break;
    case 8:sum=31+february+31+30+31+30+31+day;break;
    case 9:sum=31+february+31+30+31+30+31+31+day;break;
    case 10:sum=31+february+31+30+31+30+31+31+30+day;break;
    case 11:sum=31+february+31+30+31+30+31+31+30+31+day;break;
    case 12:sum=31+february+31+30+31+30+31+31+30+31+30+day;break;
    default :System.out.println("输入错误");
    }
    System.out.println(year+"年"+month+"月"+day+"日是今天的第"+sum+"天");
}



/*
 *  火车票价格打印, 
                  哈尔滨到广州的火车,有9个停靠站(包括起点站和终点站)
                  分别是:"哈尔滨","长春","沈阳","天津","北京","石家庄","郑州","武汉","广州"。
                  从哈尔滨到各个站的票价分别是:
                  哈尔滨→哈尔滨 :0元
                  哈尔滨→长春 :  49元
                  哈尔滨→沈阳 :  77元
                  哈尔滨→天津 :  98元                                                       
                  哈尔滨→北京 :  136元                                                     
                  哈尔滨→石家庄 :195元
                  哈尔滨→郑州 :  243元
                  哈尔滨→武汉 :  302元
                  哈尔滨→广州 :  397元
                  长春到沈阳的票价=77(哈尔滨→沈阳)-49(哈尔滨→长春),依此类推,求输入任意起点站到任意终点站的票价。
                  最后显示结果如下例:
                  请输入起点站:北京
                  请输入终点站:武汉
                  从北京到武汉的票价为:166元
                  若输入起点站或终点站不在7个停靠站之内,提示用户:
                  起点站(或终点站)输入错误,该站不是停靠站。

 */
public static void abc52(){
    String [] name={"哈尔滨","长春","沈阳","天津","北京","石家庄","郑州","武汉","广州"};
    int [] price={0,49,77,98,136,195,243,302,397};
    Scanner sc=new Scanner(System.in);
    int start_con=-1;//输入起点站名称的下标
    int end_con=-1;//存储终点站下标
    while(true){  //判断输入的起点站存在于数组当中
        System.out.println("请输入起点站名称:");
        String s_name=sc.next();
        for(int i=0;i<name.length;i++){
            if(s_name.equals(name[i])){
                start_con=i;
            }
        }
        if(start_con==-1){
            System.out.println("对不起,我们没有卖这个站的票");
        }else{
            break;
        }
    }
    while(true){
        System.out.println("请输入终点站名称:");
        String s_name=sc.next();
        for(int i=0;i<name.length;i++){
            if(s_name.equals(name[i])){
                end_con=i;
            }
        }
        if(start_con==end_con){
            System.out.println("起点站和终点站不能一样!");
            continue;
        }
        if(end_con==-1){
            System.out.println("对不起,我们没有卖这个站的票");
        }else{
            break;
        }
    }
    System.out.println("从"+name[start_con]+"到"+name[end_con]+
            "的车票价格:"+(price[end_con]-price[start_con])+"元");
}


/*
 * 
 * 利用数组保存数据,完成超市小票的打印 如: 
 * 请输入购买商品:毛巾 
 * 请输入单价:25.0 
 * 请输入购买数量:2 
 * 请输入购买商品:盆
 * 请输入单价:15.0 
 * 请输入购买数量:3
 * 
 * ======欢迎光临**超市=========== 
 * 商品名称       单价        数量        总价 
 * 毛巾              25.0  2    50.0 
 * 盆                  15.0  3    45.0
 * 
 * 
 * 您一共消费:95.0元
 */
public static void abc53(){
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入你要购买商品的种类:");
    int count = sc.nextInt();
    double price=0;

    String[] str = new String[count];
    double[] dj = new double[count];
    int[] num = new int[count];
    double[] money = new double[count];

    for (int i = 0; i <= count - 1; i++) {
        System.out.println("请输入商品名称:");
        str[i] = sc.next();
        System.out.println("请输入商品单价:");
        dj[i] = sc.nextDouble();
        System.out.println("请输入商品数量:");
        num[i] = sc.nextInt();
        money[i] = dj[i] * num[i];
    }
    System.out.println("======欢迎光临摩尔超市===========");
    System.out.println("商品名称" + "\t" + "商品单价" + "\t" + "商品数量" + "\t" + "总价");

    for (int i = 0; i <= count - 1; i++) {

        System.out.println(str[i] + "\t" + dj[i] + "\t" + num[i] + "\t"
                + money[i]);
        price+=money[i];
    }
    System.out.println("您一共消费"+price);
}


/*
 * 将商品的名称以及单价存储在数组中,用户输入商品名称,只有当货架上有该商品时,
 * 将该商品存入客户购买商品的数组中,从而输出超市小票 如:
 * 请输入商品名称:毛巾 
 * (如果没有该商品) 对不起,没有这件商品 (如果有该商品) 请输入购买数量:4
 * 
 * 循环。。。。直到用户退出为止
 * 
 * 
 * ======欢迎光临**超市=========== 
 * 商品名称         单价        数量      总价
 * 毛巾              25.0   2   50.0 
 * 盆                  15.0   3   45.0
 * 
 * 您一共消费:95.0元
 * 
 * 注意:商品的单价不需要输入,而是由之前定义的数据得到
 */
public static void abc54(){
    String [] name={"毛巾","盆","杯子","洗衣粉","风扇","菜刀","书包"};
    double [] price={15,12,5,10,40,26,31};
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入你购买商品的种类:");
    int count=sc.nextInt();
    String [] buy_name=new String[count];//名称
    int [] buy_num=new int[count];//数量
    double [] buy_price=new double[count];//单价
    double sum_price=0;//总价
    int con=-1;
    for(int i=0;i<3;i++){
        System.out.println("请输入你购买商品的名称:");
        String str=sc.next();
        for(int j=0;j<name.length;j++){
            if(str.equals(name[j])){
                con=j;
            }
        }
        if(con==-1){//判断商品是否存在
            i--;
            System.out.println("你购买的商品不存在");
        }else{
            System.out.println("请输入购买的数量:");
            buy_num[i]=sc.nextInt();
            buy_name[i]=name[con];
            buy_price[i]=price[con];
        }
    }
    System.out.println("======欢迎光临摩尔超市===========");
    System.out.println("商品名称\t单价\t数量\t总价");
    for(int i=0;i<count;i++){
        System.out.println(buy_name[i]+"\t"+buy_price[i]+
                "\t"+buy_num[i]+"\t"+(buy_num[i]*buy_price[i]));
        sum_price+=(buy_num[i]*buy_price[i]);
    }
    System.out.println("您一共消费:"+sum_price+"元");
}


/*多维数组(二维)
 * 定义一个二维数组,在定义时给定数组长度,并通过输入为该数组赋值
 */
public static void abc55(){
    Scanner sc=new Scanner(System.in);
    int [][] a=new int[4][3];
    for(int i=0;i<a.length;i++){
        for(int j=0;j<a[i].length;j++){
            System.out.println("请输入一个数");
            a[i][j]=sc.nextInt();
        }
    }
    for(int [] b:a){
        for(int c:b){
            System.out.print(c+"\t");
        }
        System.out.println();
    }
}



/*
 * 定义一个第一层长度为3的二维数组,通过随机数为每层数组定义长度,并通过length得到该数组的每层长度

 */
public static void abc56(){
    int [][] a=new int[3][];
    for(int i=0;i<a.length;i++){
        int num=(int)(Math.random()*10+1);
        a[i]=new int[num];
        System.out.println(a[i].length);
    }
}


/*
 * 三个同学四门课程
 *  1、为每位同学的每门课程打分
 *  2、求每个同学的平均分
 *  3、求每门课程的平均分
 *  4、求所有成绩中的最高分
 *  5、求所有成绩中100分有几个。 
 */
public static void abc57(){
    Scanner sc=new Scanner(System.in);
    int [][] cj=new int[3][4];
    for(int i=0;i<cj.length;i++){
        for(int j=0;j<cj[i].length;j++){
            System.out.println("请输入第"+(i+1)+"位学生的第"+(j+1)+"课成绩:");
            cj[i][j]=sc.nextInt();
        }
    }
    //求每个同学的平均分
    for(int i=0;i<cj.length;i++){
        int pj=0;
        for(int j=0;j<cj[i].length;j++){
            pj+=cj[i][j];
        }
        System.out.println("第"+(i+1)+"同学的成绩平均分是:"+(pj/4));
    }
    //求每门课程的平均分
    for(int i=0;i<4;i++){
        int num=0;
        for(int j=0;j<3;j++){
            num+=cj[j][i];
        }
        System.out.println("第"+(i+1)+"门课程的平均成绩是:"+(num/3));
    }
    //求所有成绩中的最高分
    int sum=0;
    for(int i=0;i<3;i++){
        for(int j=0;j<4;j++){
            if(sum<cj[i][j]){
                sum=cj[i][j];
            }
        }
    }
    System.out.println("最高成绩是:"+sum);
    //求所有成绩中100分有几个
    int count=0;
    for(int i=0;i<3;i++){
        for(int j=0;j<4;j++){
            if(cj[i][j]==100){
                count++;
            }
        }
    }
    System.out.println("成绩中100分有"+count+"个");
}


/*
 * 将一个数组倒序输出.如:原数组:{56,89,4,1,3,69}
 * 倒序为:{69,3,1,4,89,56}
 */
public static void abc58(){
    int [] a={56,89,4,1,3,69};
    for(int i=a.length-1;i>=0;i--){
        System.out.print(a[i]+"\t");
    }
}


//选择排序
        //原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置
        //比如:第一次先找到最大的数并记下其位置,如果其不在数组第一位,
        //则将其与第一位交换,使最大数置于第一位
        //第二次再循环查找第二大的数并记下其位置,如果其不在数组第二位,
        //则将其与第二位交换,使最大数置于第二位
        //依次类推.........................................
        //第i次再循环查找第i大的数并记下其位置,如果其不在数组第 i位,
        //则将其与第 i位交换,使最大数置于第 i位
public static void abc59(){    
    int[] a = {25,15,42,16,12,36};
    int max = 0;
    for(int i=0;i<a.length;i++){//查找第 i大的数,直到记下第 i大数的位置
        max = i;
        for(int j=i+1;j<a.length;j++){
            if(a[max]<a[j]){
                max = j;//记下较大数位置,再次比较,直到最大
            }
        }
        if(i!=max){//如果第 i大数的位置不在 i,则交换
            int tmp = a[i];
            a[i] = a[max];
            a[max] = tmp;
        }
    }
    for(int i=0;i<a.length;i++)
        System.out.print(a[i]+" ");
}
}
链接: https://www.cnblogs.com/dushouxinlan/p/5319512.html
1.1 Java语言发展简史2 1.2 认识Java语言3 1.2.1 Java语言特性3 1.2.2 JavaApplet4 1.2.3 丰富的类库4 1.2.4 Java的竞争对手5 1.2.5 Java在应用领域的优势7 1.3 Java平台的体系结构7 1.3.1 JavaSE标准版8 1.3.2 JavaEE企业版10 1.3.3 JavaME微型版11 1.4 JavaSE环境安装和配置12 1.4.1 什么是JDK12 1.4.2 JDK安装目录和实用命令工具介绍12 1.4.3 设置环境变量13 1.4.4 验证配置的正确性14 1.5 MyEcilpse工具介绍JavaSE环境安装和配置15 1.6 本章练习16 第2章 2.1 什么是程序18 2.2 计算机中的程序18 2.3 Java程序19 2.3.1 Java程序中的类型19 2.3.2 Java程序开发三步曲21 2.3.3 开发Java第一个程序21 2.3.4 Java代码中的注释23 2.3.5 常见错误解析24 2.4 Java类库组织结构和文档27 2.5 Java虚拟机简介28 2.6 Java技术两种核心运行机制29 2.7 上机练习30 第3章 3.1 变量32 3.1.1 什么是变量32 3.1.2 为什么需要变量32 3.1.3 变量的声明和赋值33 3.1.4 变量应用实例33 3.2 数据的分类34 3.2.1 Java中的八种基本数据类型34 3.2.2 普及二进制36 3.2.3 进制间转换37 3.2.4 基本数据类型间转换38 3.2.5 数据类型应用实例38 3.2.6 引用数据类型39 3.3 关键字.标识符.常量39 3.3.1 变量命名规范39 3.3.2 经验之谈-常见错误的分析与处理40 3.3.3 Java标识符命名规则41 3.3.4 关键字42 3.3.5 常量42 3.4 运算符43 3.4.1 算术运算符43 3.4.2 赋值操作符45 3.4.3 关系操作符47 3.4.4 逻辑操作符48 3.4.5 位操作符49 3.4.6 移位运算符49 3.4.7 其他操作符50 3.5 表达式52 3.5.1 表达式简介52 3.5.2 表达式的类型和值52 3.5.3 表达式的运算顺序52 3.5.4 优先级和结合性问题52 3.6 选择结构54 3.6.1 顺序语句54 3.6.2 选择条件语句54 3.6.3 switch结构59 3.6.4 经验之谈-常见错误的分析与处理65 3.6.5 Switch和多重if结构比较66 3.7 循环语句66 3.7.1 While循环67 3.7.2 经验之谈-常见while错误70 3.7.3 do-while循环72 3.7.4 for循环74 3.7.5 经验之谈-for常见错误76 3.7.6 循环语句小结78 3.7.7 break语句79 3.7.8 continue语句82 3.8 JavaDebug技术84 3.9 本章练习85 第4章 4.1 一维数组90 4.1.1 为什么要使用数组90 4.1.2 什么是数组91 4.1.3 如何使用数组92 4.1.4 经验之谈-数组常见错误97 4.2 常用算法98 4.2.1 平均值,最大值,最小值98 4.2.3 数组排序102 4.2.3 数组复制103 4.3 多维数组105 4.3.1 二重循环105 4.3.2 控制流程进阶107 4.3.3 二维数组111 4.4 经典算法113 4.4.1 算法-冒泡排序113 4.4.2 插入排序115 4.5 增强for循环116 4.6 本章练习117 第5章 5.1 面向过程的设计思想120 5.2 面向对象的设计思想120 5.3 抽象121 5.3.1 对象的理解121 5.3.2 Java抽象思想的实现122 5.4 封装124 5.4.1 对象封装的概念理解124 5.4.2 类的理解125 5.4.3 Java类模板创建125 5.4.4 Java中对象的创建和使用127 5.5 属性130 5.5.1 属性的定义130 5.5.2 变量131 5.6 方法132 5.6.1 方法的定义132 5.6.2 构造方法135 5.6.4 方法重载138 5.6.5 自定义方法138 5.6.6 系统提供方法139 5.6.7 方法调用140 5.6.8 方法参数及其传递问题144 5.6.9 理解main方法语法及命令行参数147 5.6.1 0递归算法147 5.7 this关键字148 5.8 JavaBean149 5.9 包150 5.9.1 为什么需要包?150 5.9.2 如何创建包151 5.9.3 编译并生成包:151
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值