#栗子  丢手帕 & 菱形 & 金字塔import java.io.*;import java.util.*;

public class Test_one {    public static void main(String[] args){        //Demo 125 接口的实现        interface Usb{

        }

/*        //Demo121  丢手帕        class Child{            int no;            Child nextChild = null;            public Child(int no){                //给一个编号                this.no = no;            }        }

        //单向环形链表        class CycLink {            //先定义一个指向链表第一个小孩的引用            //指向第一个小孩的引用,不能动            Child firstChild = null;            Child temp = null;            int len = 0;//表示共有多少个小孩            int k = 0;//从第几个小孩开始            int m = 0;//数几下

            //设置m数几下            public void setM(int m) {                this.m = m;            }

            //设置环形链表大小            public void setLen(int len) {                this.len = len;            }

            //设置从第几个人开始数数            public void setK(int k) {                this.k = k;            }

            //开始play            public void play() {                Child temp = this.firstChild;                //1. 先找到开始数数的人                for (int i = 1; i < k; i++) {                    temp = temp.nextChild;                }                while (this.len != 1) {                    //2. 数m下                    for (int j = 1; j < m; j++) {                        temp = temp.nextChild;                    }                    //找到要出圈的前一个小孩                    Child temp2 = temp;                    while (temp2.nextChild != temp) {                        temp2 = temp2.nextChild;                    }                    //3. 将数到m的小孩,退出圈                    temp2.nextChild = temp.nextChild;                    //让temp指向下一个数数的小孩                    temp = temp.nextChild;                    this.len--;                }

                System.out.println("最后出圈的小孩: " + temp.no);            }

            //初始化单向环形链表            public void createLink() {                for (int i = 1; i <= len; i++) {                    if (i == 1) {                        //创建第一个小孩                        Child ch = new Child(i);                        this.firstChild = ch;                        this.temp = ch;                    } else {                        //创建最后一个小孩                        if (i == len) {                            Child ch = new Child(i);                            temp.nextChild = ch;                            temp = ch;                            temp.nextChild = this.firstChild;                        } else {                            //继续创建小孩                            Child ch = new Child(i);                            temp.nextChild = ch;                            temp = ch;                        }                    }                }            }

            //打印该循环链表            public void show() {                //定义一个跑龙套                Child temp = this.firstChild;                do {                    System.out.print(temp.no + " ");                    temp = temp.nextChild;                } while (temp != this.firstChild);            }

        }

        CycLink cyclink = new CycLink();        cyclink.setLen(5);        cyclink.createLink();        cyclink.setK(2);        cyclink.setM(2);        cyclink.show();        cyclink.play();*/

 /*       //类的成员方法练习,编写一个成员函数,从键盘输入一个整数(1-9),打印出对应的乘法表

        class Cfb{            public void cf(){                try{                    //输入流,从键盘接收数                    InputStreamReader isr = new InputStreamReader(System.in);                    BufferedReader br = new BufferedReader(isr);                    //给出提示                    System.out.println("请输入1-9,按0退出: ");                    //从控制台读取一行数据                    String a1 = br.readLine();                    //把String转化成int                    int num1 = Integer.parseInt(a1);                    for(int i=1;i<=num1;i++){                        for(int j=1;j<=i;j++){                            System.out.print(i + "*" + j + "=" + (i*j) + "\t");                        }                        System.out.println();                    }

                }catch (Exception e){                    e.printStackTrace();

                }            }        }        Cfb c = new Cfb();        c.cf();*/

/*        //空心菱形        int lay = 7;        //上半部分        int m = lay/2 + 1;        for(int i=1;i<=m;i++){            //空格            for(int j=0;j<(m-i);j++){                System.out.print(" ");            }            //*            for(int z=1;z<=(2*i-1);z++){                if(z==1 || z==(2*i-1)){                    System.out.print("*");                }                else{                    System.out.print(" ");                }            }            System.out.println();

            }

        //下半部分        int n = lay/2;        for(int i=1;i<=n;i++) {            //空格            for (int j = 1; j <= i; j++) {                System.out.print(" ");            }            //*            for (int z = 1; z <= (2 * (n - i) + 1); z++) {                if (z == 1 || z == (2 * (n - i) + 1)) {                    System.out.print("*");                } else {                    System.out.print(" ");                }            }            System.out.println();

        }*/

/*        //实心菱形        int lay = 7;        //上半部分        int m = lay/2 + 1;        for(int i=1;i<=m;i++){            //空格            for(int j=0;j<(m-i);j++){                System.out.print(" ");            }            //*            for(int z=1;z<=(2*i-1);z++){                System.out.print("*");            }            System.out.println();        }

        //下半部分        int n = lay/2;        for(int i=1;i<=n;i++){            //空格            for(int j=1;j<=i;j++){                System.out.print(" ");            }            //*            for(int z=1;z<=(2*(n-i)+1);z++){                System.out.print("*");            }            System.out.println();        }*/

/*

   *  *** *************//*        int lay = 4;        for(int i=1;i<=lay;i++){            for(int j=0;j<(lay-i);j++){                System.out.print(" ");            }            for(int z=1;z<=(2*i-1);z++){                System.out.print("*");            }            System.out.println();        }*/

/*

     *     **     ***     ****

     *//*        int lay = 4;        for(int i=1;i<=lay;i++){            for(int j=1;j<=i;j++){                System.out.print("*");            }            System.out.println();        }*/

}}

#栗子  【备注】
接口中的变量,加不加static都是静态的,不能用private 和 protected修饰,因为接口要被各种继承或者实现
//# 栗子 已知手掌游戏机一台320元,MP3一台260.公司举行抽奖大会,公司有18人,一等奖游戏机,二等奖MP3,购入5台游戏机,13台MP3。//       问总价多少,公司实际平均给每人花费

import java.util.*;public class test_two {    public static int gbGame = 320;    public static int gbGameT = 5;    public static int mp3 = 260;    public static int mp3T = 13;    public static int people = 18;    public static void showInfo(){        int total = gbGame*gbGameT + mp3*mp3T;//总价        float average = (float)total/people;        System.out.printf("总价: %d,平均价是: %f\n",total,average);    }    public static void main(String[] args){        Scanner myScanner = new Scanner(System.in);//调用键盘输入        showInfo();        System.out.print("请输入游戏机价格: ");        gbGame=myScanner.nextInt();        System.out.print("请输入MP3价格: ");        mp3=myScanner.nextInt();        System.out.print("请输入游戏机数量: ");        gbGameT=myScanner.nextInt();        System.out.print("请输入MP3数量: ");        mp3T=myScanner.nextInt();        showInfo();

    }

}/*【结果】        总价: 4980,平均价是: 276.666656        请输入游戏机价格: 888        请输入MP3价格: 666        请输入游戏机数量: 1        请输入MP3数量: 1        总价: 1554,平均价是: 86.333336*/
/* 栗子 一个猴子摘了一筐桃子,当即吃了一半,可是桃子太好吃了,又多吃了一个,第二天它把剩下的桃子又吃了一半,又多吃了一个      就这样到第十天早上只剩下一个桃子了,问它共摘了多少桃子*/

import java.util.*;

class Monkey{    //day哪天的桃子数,sday吃了多少天剩下一个    public static int peach(int day,int sday){        if(day == sday){            return 1;        }        else{            return (peach(day+1,sday)+1)*2;        }    }

    public static void scan(){        //建立输入的方法        int a = 1;        System.out.println("请输入要吃几天: ");        Scanner sr = new Scanner(System.in);        int b = sr.nextInt();        if(a < b){            System.out.print(Monkey.peach(a,b));        }        else{            System.out.println("不能小于等于1天");            Monkey.scan();        }    }

}public class test_two {

    public static void main(String[] args){        Monkey.scan();    }

}
/* 栗子 计算1+2+3+......+20=? 按照用户输入的整数n做累加和:1+2+3+....+n*/

import java.util.*;

public class test_two {

    public static void main(String[] args){        Scanner sr = new Scanner(System.in);        System.out.print("请输入一个数N: ");        int n = sr.nextInt();        int i = 0;        for(int m = 0;m<n;m++){            i = i + (m + 1);            System.out.println("m是: " + m);        }        System.out.println("1+2+3+......+n的值是:" + i);    }

}

/* 栗子 编写一个Cat类,要求如下: 该猫可以做四则运算,也可以做面积计算;将四则运算和面积运算合二为一,作为一个运算器,主菜单让用户选择是做四则运算还是面试计算。 分为两个子菜单,让用户选择加减乘除或者形状。*/

import java.util.*;

class Cat{    //输入方法    public static void scan1(){        System.out.println("题目类型如下");        System.out.println("1. 四则运算");        System.out.println("2. 面积运算");        System.out.println("0. 退出程序");        System.out.print("请选择要做题的类型,请输入0-2:");        Scanner sr = new Scanner(System.in);        int x = sr.nextInt();        switch(x){            case 0:                System.out.println("谢谢使用,再见!");                break;            case 1:                Cat.szys();                break;            case 2:                Cat.mjys();                break;            default:                System.out.println("输入有误,请重新输入");                break;

        }        Cat.scan1();//重复调用目录    }

    //四则运算方法    public static void szys(){        System.out.println("四则运算");        System.out.println("1. 加法运算");        System.out.println("2. 减法运算");        System.out.println("3. 乘法运算");        System.out.println("4. 除法运算");        System.out.println("0. 返回上级");        System.out.print("请选择要做题的类型,请输入0-4: ");        Scanner sr = new Scanner(System.in);        int y = sr.nextInt();        switch(y){            case 0:                System.out.println("返回上级");                Cat.scan1();                break;            case 1:                System.out.println("进入加法运算,请输入第一个数: ");                Scanner jf1 = new Scanner(System.in);                int jf01 = jf1.nextInt();                System.out.println("进入加法运算,请输入第二个数: ");                Scanner jf2 = new Scanner(System.in);                int jf02 = jf2.nextInt();                float jfh = (float)jf01 + (float)jf02;                System.out.println(jf01 + "+" + jf02 + "=" + jfh);                System.out.println("已计算完成。 ");                System.out.println("是否要继续使用?使用请输入1,返回请输入2,退出请输入任意数字:");                Scanner cz01 = new Scanner(System.in);                int cz001 = cz01.nextInt();                if(cz001 == 1){                    Cat.szys();                }                else if(cz001 == 2){                    Cat.scan1();                }                else if(cz001 != 1 || cz001 != 2){                    System.out.println("谢谢使用,再见!");                }                break;            case 2:                System.out.println("进入减法运算,请输入第一个数: ");                Scanner jjf1 = new Scanner(System.in);                int jjf01 = jjf1.nextInt();                System.out.println("进入减法运算,请输入第二个数: ");                Scanner jjf2 = new Scanner(System.in);                int jjf02 = jjf2.nextInt();                float jjfh = (float)jjf01 + (float)jjf02;                System.out.println(jjf01 + "-" + jjf02 + "=" + jjfh);                System.out.println("已计算完成。");                System.out.println("是否要继续使用?使用请输入1,返回请输入2,退出请输入任意数字:");                Scanner cz02 = new Scanner(System.in);                int cz002 = cz02.nextInt();                if(cz002 == 1){                    Cat.szys();                }                else if(cz002 == 2){                    Cat.scan1();                }                else if(cz002 != 1 || cz002 != 2){                    System.out.println("谢谢使用,再见!");                }                break;            case 3:                System.out.println("进入乘法运算,请输入第一个数: ");                Scanner cff1 = new Scanner(System.in);                int cff01 = cff1.nextInt();                System.out.println("进入乘法运算,请输入第二个数: ");                Scanner cff2 = new Scanner(System.in);                int cff02 = cff2.nextInt();                float cffh = (float)cff01 * (float)cff02;                System.out.println(cff01 + "*" + cff02 + "=" + cffh);                System.out.println("已计算完成。");                System.out.println("是否要继续使用?使用请输入1,返回请输入2,退出请输入任意数字:");                Scanner cz03 = new Scanner(System.in);                int cz003 = cz03.nextInt();                if(cz003 == 1){                    Cat.szys();                }                else if(cz003 == 2){                    Cat.scan1();                }                else if (cz003 != 1 || cz003 != 2){                    System.out.println("谢谢使用,再见!");                }                break;            case 4:                System.out.println("进入除法运算,请输入第一个数: ");                Scanner cf1 = new Scanner(System.in);                int cf01 = cf1.nextInt();                System.out.println("进入除法运算,请输入第二个数: ");                Scanner cf2 = new Scanner(System.in);                int cf02 = cf2.nextInt();                float cfh = (float)cf01 / (float)cf02;                System.out.println(cf01 + "/" + cf02 + "=" + cfh);                System.out.println("已计算完成。");                System.out.println("是否要继续使用?使用请输入1,返回请输入2,退出请输入任意数字:");                Scanner cf03 = new Scanner(System.in);                int cf003 = cf03.nextInt();                if(cf003 == 1){                    Cat.szys();                }                else if(cf003 == 2){                    Cat.scan1();                }                else if(cf003 != 1 || cf003 != 2){                    System.out.println("谢谢使用,再见!");                }                break;            default:                System.out.println("输入有误,请重新输入!");                break;

        }        Cat.szys();    }

    //面积运算方法    public static  void mjys() {        System.out.println("面积运算");        System.out.println("1. 三角形面积计算");        System.out.println("2. 圆形面积计算");        System.out.println("3. 方形面积计算");        System.out.println("0. 返回上级");        System.out.print("请选择要做题的类型,请输入0-3: ");        Scanner sr = new Scanner(System.in);        int z = sr.nextInt();        switch (z) {            case 0:                System.out.println("返回上级");                Cat.scan1();                break;            case 1:                System.out.println("进入三角形面积计算,请输入底: ");                Scanner sj1 = new Scanner(System.in);                int sjx01 = sj1.nextInt();                System.out.println("进入三角形面积计算,请输入高: ");                Scanner sj2 = new Scanner(System.in);                int sjx02 = sj2.nextInt();                float sjxh = ((float) sjx01 * (float) sjx02) / 2;                System.out.println("底" + sjx01 + "高" + sjx02 + "面积=" + sjxh);                System.out.println("已计算完成。");                System.out.println("是否要继续使用?使用请输入1,返回请输入2,退出请输入任意数字:");                Scanner sj03 = new Scanner(System.in);                int sj003 = sj03.nextInt();                if (sj003 == 1) {                    Cat.mjys();                } else if (sj003 == 2) {                    Cat.scan1();                } else if (sj003 != 1 || sj003 != 2) {                    System.out.println("谢谢使用,再见!");                }                break;            case 2:                System.out.println("已进入圆形面积计算,请输入半径: ");                Scanner y1 = new Scanner(System.in);                int bj = y1.nextInt();                float ymjh = (float) bj * (float) bj * 3.1415926f;                System.out.println("半径:" + bj + "面积:" + ymjh);                System.out.println("已计算完成。");                System.out.println("是否要继续使用?使用请输入1,返回请输入2,退出请输入任意数字:");                Scanner y01 = new Scanner(System.in);                int y001 = y01.nextInt();                if (y001 == 1) {                    Cat.mjys();                } else if (y001 == 2) {                    Cat.scan1();                } else if (y001 != 1 || y001 != 2) {                    System.out.println("谢谢使用,再见!");                }                break;            case 3:                System.out.println("已进入方形面积计算,请输入长: ");                Scanner c1 = new Scanner(System.in);                int c01 = c1.nextInt();                System.out.println("已进入方形面积计算,请输入宽: ");                Scanner k2 = new Scanner(System.in);                int k02 = k2.nextInt();                float mjh = (float) c01 * (float) k02;                System.out.println("长:" + c01 + "宽:" + k02 + "面积:" + mjh);                System.out.println("已计算完成。");                System.out.println("是否要继续使用?使用请输入1,返回请输入2,退出请输入任意数字:");                Scanner m03 = new Scanner(System.in);                int m003 = m03.nextInt();                if (m003 == 1) {                    Cat.mjys();                } else if (m003 == 2) {                    Cat.scan1();                } else if (m003 != 1 || m003 != 2) {                    System.out.println("谢谢使用,再见!");                }                break;            default:                System.out.println("输入有误,请重新输入!");                break;        }        Cat.mjys();    }

}public class test_two {

    public static void main(String[] args){        Cat.scan1();    }

}
/* 栗子 采用面向对象思想涉及超级玛丽游戏人物。并能用键盘输入命令,来控制马里奥的位置*/

import java.util.*;

class Maria{    int x,y;    //构造方法,初始化场景;确定地图,Maria的位置    public Maria(){        System.out.println("I'm Maria \n" + "@");    }    public void move(int i){        for(int k=1;k<=25;k++){            if(k == i){                System.out.printf("@");            }            else{                System.out.printf(".");            }

        }    }}public class test_two {

    public static void main(String[] args){        Scanner sr = new Scanner(System.in);        System.out.println("输入1-25的数字,你可以移动马里奥,输入其他数字退出。");        int i = sr.nextInt();        Maria m = new Maria();        while(true){            if(i<25) {                m.move(i);                i = sr.nextInt();            }else{                System.out.println("退出游戏!");                break;            }        }

    }

}【结果】

输入1-25的数字,你可以移动马里奥,输入其他数字退出。
1
I'm Maria
@
@........................2
.@.......................3
..@......................4
...@.....................5
....@....................6
.....@...................8
.......@.................24
.......................@.25
退出游戏!

/* 栗子 与电脑猜拳。电脑每次随机生成三个数字,0代表石头、1代表见到、2代表布*/

import java.util.*;//猜拳游戏class Caiquan{    public static void caiquan(){        int a1=0,b1=0,c1=0;        System.out.print("请输入想玩的盘数:");        Scanner p = new Scanner(System.in);        int ps = p.nextInt();        for(int i=1;i<=ps;i++){            System.out.println("游戏一开始,请出拳!");            Scanner m = new Scanner(System.in);            int a = m.nextInt();//玩家出拳            int b = new Random().nextInt(3);//电脑出拳            if(a == b){                a1++;                System.out.println("打平!");            }else if((a-b)==-1 || (a-b)==2){                b1++;                System.out.println("YOU Win!");            }else{                c1++;                System.out.println("YOU LOSE");            }        }        System.out.println("平:" + a1 + "\n赢:" + b1 + "\n输:" + c1 + "\n一共玩了" + (a1+b1+c1) + "局");    }}//开始退出游戏类class Kais{    public static void jingcyx(){        System.out.println("是否开始猜拳游戏?按1开始,按0退出");        Scanner sr = new Scanner(System.in);        int x = sr.nextInt();        switch(x){            case 0:                System.out.println("已退出游戏!");                break;            case 1:                System.out.println("游戏说明:0代表石头,1代表见到,2代表布");                Caiquan.caiquan();                break;            case 2:                System.out.println("输入错误,请重新输入!");                Kais.jingcyx();                break;        }    }

}public class test_two {

    public static void main(String[] args) {        Kais.jingcyx();

    }

}

【结果】

是否开始猜拳游戏?按1开始,按0退出
1
游戏说明:0代表石头,1代表见到,2代表布
请输入想玩的盘数:2
游戏一开始,请出拳!
0
打平!
游戏一开始,请出拳!
0
打平!
平:2
赢:0
输:0
一共玩了2局

/* 栗子  输入出生日期,显示星座和出生星期几*/

import java.util.*;//星座类class Xinz{    public static int i = 0;//定义静态变量,i为统计调用人数计数器    //判断星座的方法    public void xinz(int month,int date){        i++;        switch(month){            case 1:{                if(date>=20){                    System.out.println("水瓶座");                }else{                    System.out.println("摩羯座");                }                break;            }            case 2:{                if(date>=19){                    System.out.println("双鱼座");                }else{                    System.out.println("水瓶座");                }                break;            }            case 3:{                if(date>=21){                    System.out.println("白羊座");                }else{                    System.out.println("双鱼座");                }                break;            }            case 4:{                if(date>=20){                    System.out.println("金牛座");                }else{                    System.out.println("白羊座");                }                break;            }            case 5:{                if(date>=21){                    System.out.println("双子座");                }else{                    System.out.println("金牛座");                }                break;            }            case 6: {                if (date >= 21) {                    System.out.println("巨蟹座");                } else {                    System.out.println("双子座");                }                break;            }            case 7:{                if(date>=23){                    System.out.println("狮子座");                }else{                    System.out.println("巨蟹座");                }                break;            }            case 8:{                if(date>=20){                    System.out.println("处女座");                }else{                    System.out.println("狮子座");                }                break;

            }            case 9:{                if(date>=23){                    System.out.println("天秤座");                }else{                    System.out.println("处女座");                }                break;            }            case 10:{                if(date>=23){                    System.out.println("天蝎座");                }                else{                    System.out.println("天秤座");                }                break;            }            case 11:{                if(date>=22){                    System.out.println("射手座");                }else{                    System.out.println("天蝎座");                }                break;            }            case 12:{                if(date>=22){                    System.out.println("摩羯座");                }else{                    System.out.println("射手座");                }                break;            }

        }

    }

    //返回统计次数    public int getl(){        return i;    }}

//周几类class Rq{    public void rq(int year,int month,int date){        Calendar c = Calendar.getInstance();        c.set(Calendar.YEAR,year);        c.set(Calendar.MONDAY,month);        c.set(Calendar.DATE,date);        int week = c.get(Calendar.DAY_OF_WEEK);        switch(week){            case 1:                System.out.println("星期日");                break;            case 2:                System.out.println("星期一");                break;            case 3:                System.out.println("星期二");                break;            case 4:                System.out.println("星期三");                break;            case 5:                System.out.println("星期四");                break;            case 6:                System.out.println("星期五");                break;            case 7:                System.out.println("星期六");                break;

        }    }}

//程序开始类class Start{    public void st(){        System.out.println("年 月 日格式: 19XX XX XX\n请输入出生年月日: ");        Scanner sr = new Scanner(System.in);        int year = sr.nextInt();        int month = sr.nextInt();        int date = sr.nextInt();        Rq r = new Rq();        r.rq(year,month,date);        Xinz xz = new Xinz();        xz.xinz(month,date);        System.out.println("\n是否继续让巫师看星座? \n1、继续\t2、退出");        Scanner sr1 = new Scanner(System.in);        int o = sr1.nextInt();        if(o == 1){            Start qd = new Start();            qd.st();        }        else if(o != 1){            Xinz tc = new Xinz();            System.out.println("巫师为" + tc.getl() + "人看过星座");            System.out.println("退出星座查询,Goodbye!");        }    }}

public class test_two {

    public static void main(String[] args) {        Start ks = new Start();        ks.st();

    }

}【结果】

年 月 日格式: 19XX XX XX
请输入出生年月日:
1989 10 01
星期三
天秤座

是否继续让巫师看星座?
1、继续 2、退出
1
年 月 日格式: 19XX XX XX
请输入出生年月日:
2008 01 01
星期五
摩羯座

是否继续让巫师看星座?
1、继续 2、退出
1

/* 栗子  投票选班长,有三个候选人(张三、李四、王五),通过编号投票,要求最后显示班长名*/

import java.util.*;

class Xuanju{    //a : 投票人数  i1:一号候选人姓名  i2:二号候选人姓名  i3:三号候选人姓名    public void tp(int a,String i1,String i2,String i3){        int j1 = 0,j2 = 0,j3 = 0,qq = 0;//计票器        for(int i=1;i<=a;i++){            System.out.println("请投票,投票请按1,2,3:");            Scanner tp = new Scanner(System.in);            int b = tp.nextInt();            System.out.println("已有" + i + "人投票");            switch(b){                case 1:                    j1++;                    break;                case 2:                    j2 ++;                    break;                case 3:                    j3++;                    break;                default:                    qq++;                    break;            }        }

        if(j1>j2 && j1>j3){            System.out.println(i1 + "得" + j1 + "票\n" + i2 + "得" + j2 + "票\n" + i3 + "得" + j3 + "票\n" + "弃权票数" + qq);            System.out.println("恭喜" + i1 + "当选班长!");        }        else if(j1<j2 && j2>j3){            System.out.println(i1 + "得" + j1 + "票\n" + i2 + "得" + j2 + "票\n" + i3 + "得" + j3 + "票\n" + "弃权票数" + qq);            System.out.println("恭喜" + i2 + "当选班长!");        }        else if(j1<j3 && j2<j3){            System.out.println(i1 + "得" + j1 + "票\n" + i2 + "得" + j2 + "票\n" + i3 + "得" + j3 + "票\n" + "弃权票数" + qq);            System.out.println("恭喜" + i3 + "当选班长!");        }        else{            System.out.println(i1 + "得" + j1 + "票\n" + i2 + "得" + j2 + "票\n" + i3 + "得" + j3 + "票\n" + "弃权票数" + qq);            System.out.println("有同等票数,投票无效请重新投票!");        }

    }}

public class test_two {

    public static void main(String[] args) {        //设定投票人数        System.out.print("设定投票人数: ");        Scanner sr = new Scanner(System.in);        int a = sr.nextInt();        System.out.print("请输入第一位候选人的名字: \n");        Scanner sr1 = new Scanner(System.in);        String i1 = sr1.nextLine();//键盘接收字符串        System.out.print("请输入第二位候选人的名字: \n" );        Scanner sr2 = new Scanner(System.in);        String i2 = sr2.nextLine();        System.out.print("请输入第三位候选人的名字: \n");        Scanner sr3 = new Scanner(System.in);        String i3 = sr3.nextLine();        System.out.println("本次选举将有: " + a + "人参与!");        System.out.println("1号:" + i1 + "\t2号:" + i2 + "\t3号:" + i3);        Xuanju tp = new Xuanju();        tp.tp(a,i1,i2,i3);

    }

}

【结果】

设定投票人数: 3
请输入第一位候选人的名字:
wxue1
请输入第二位候选人的名字:
wxue2
请输入第三位候选人的名字:
wxue3
本次选举将有: 3人参与!
1号:wxue1 2号:wxue2 3号:wxue3
请投票,投票请按1,2,3:
1
已有1人投票
请投票,投票请按1,2,3:
1
已有2人投票
请投票,投票请按1,2,3:
1
已有3人投票
wxue1得3票
wxue2得0票
wxue3得0票
弃权票数0
恭喜wxue1当选班长!

/* 栗子  排序*/

import java.util.*;

public class test_two {

    public static void main(String[] args) {/*        //冒泡 10万个数需要15秒        int arr[] = {1,6,0,-1,9,-100,90};        int temp = 0;        for(int i=0;i<arr.length-1;i++){            for(int j=0;j<arr.length-1;j++){                if(arr[j]>arr[j+1]){                    //换位                    temp = arr[j];                    arr[j] = arr[j+1];                    arr[j+1] = temp;                }            }        }        //输出最后结果        for(int i = 0;i<arr.length;i++){            System.out.println(arr[i]+"\t");        }*/

/*

        选择排序  10万个数需要7秒  第一次从R[0]-R[n-1]中选取最小值,与R[0]交换;第二次从R[1]-R[n-1]中选取最小值,与        R[1]交换;第三次从R[2]-R[n-1]中选取最小值,与R[2]交换.....,第i 次从R[i-1]-R[n-1]中选取最小值,        与R[i]交换.....第n-1次从R[n-2]-R[n-1]中选取最小值,与R[n-2]交换,总共n-1次。

*/

/*        int arr[] = {8,3,2,1,7,4,6,5};        int temp = 0;        for(int j=0;j<arr.length-1;j++){            //认为第一个数就是最小的            int min=arr[j];            //记录最小数的下标            int minIndex = j;            for(int k=j+1;k<arr.length;k++){                if(min>arr[k]){                    min = arr[k];                    minIndex = k;                }            }            //当退出for循环就找到这次的最小数            temp  = arr[j];            arr[j] = arr[minIndex];            arr[minIndex] = temp;        }        //输出最后的结果        for(int i=0;i<arr.length;i++){            System.out.println(arr[i] + "\t");        }*/

/*   插入式排序 10万数据用时2秒 把n个待排序的元素看成一个有序表和一个无序表,开始有序表只包含一个元素   ,无序表中包含n-1个元素,排序过程中每次从无序表中取出第一个元素,把他的排序码一次与有序表元素的排序码进行比较,   将它插入到有序表中的适当位置,使之成为新的有序表。

*//*     int arr[] = {23,15,-13,62,5,-23,17};     for(int i=1;i<arr.length;i++){         int insertVal = arr[i];         //insertVal准备和前一个数比较         int index = i-1;         while(index>=0&&insertVal<arr[index]){             //将arr[index]向后移动一位             arr[index+1] = arr[index];             index--;         }         //将insertVal插入到适当的位置         arr[index+1] = insertVal;     }  //输出最后结果        for(int i=0;i<arr.length;i++){          System.out.println(arr[i] + "\t");        }*/

    }

}
/* 栗子  做一个公司职员薪水管理系统,要求完成以下功能       1. 当有新员工是,将该员工加入到管理系统       2. 可以根据员工号,显示该员工的信息       3. 可以显示所有员工的薪水       4. 可以修改员工的薪水       5. 当员工离职是,将该员工从管理系统中删除       6.可以按照薪水从低到高顺序排序       7. 可以统计员工的平均工资和最低和最高工资*/

import java.util.*;

//创建员工类class Emp{    //定义成员变量 工号 姓名 薪水    private String empNo;    private String name;    private float sal;    //创建构造函数,初始化成员变量    public Emp(String empNo,String name,float sal){        this.empNo = empNo;        this.name = name;        this.sal = sal;    }    //使用set get 方法进行数据传递

    public String getEmpNo() {        return empNo;    }

    public void setEmpNo(String empNo) {        this.empNo = empNo;    }

    public String getName() {        return name;    }

    public void setName(String name) {        this.name = name;    }

    public float getSal() {        return sal;    }

    public void setSal(float sal) {        this.sal = sal;    }}//创建员工管理类class EmpManage{    private ArrayList<Emp> al = null;    //创建构造函数,初始化成员变量    public EmpManage(){        al = new ArrayList<Emp>();    }    //加入员工    public void addEmp(Emp emp){        al.add(emp);    }    //根据员工工号显示员工的相关信息    public void showInfo(String empNo){        for(int i=0;i<al.size();i++){            Emp emp = (Emp)al.get(i);            if(emp.getEmpNo().equals(empNo)){                System.out.println("找到该员工,她的信息是:");                System.out.println("工号:" + empNo + "\t姓名:" + emp.getName() + "\t薪水:" + emp.getSal());            }            else{                System.out.println("工号不存在或无此人!!");            }        }    }

    //显示所有员工信息    public void AllInfo(){        for(int i=0;i<al.size()-1;i++){            for(int j=1;j<al.size()-i;j++){                Emp emp1 = (Emp)al.get(j-1);                Emp emp2 = (Emp)al.get(j);                if(emp1.getEmpNo().compareTo(emp2.getEmpNo())>0){                    al.set(j,emp1);                    al.set(j-1,emp2);                }            }        }        for(Emp emp:al){            System.out.println("工号: " + emp.getEmpNo() + "\t姓名: " + emp.getName() + " \t工资: " + emp.getSal());        }

    }

    //修改员工的薪水    public void updateSal(String empNo,float newSal){        //遍历整个ArrayList        for(int i=0;i<al.size();i++){            Emp emp = (Emp)al.get(i);            if(emp.getEmpNo().equals(empNo)){                emp.setSal(newSal);                System.out.println("已将" + emp.getName() + "调整为:" + newSal);                return;            }        }        System.out.println("工号不存在或无此人,无法进行相应操作!");    }

    //员工离职删除指定员工    public void delEmp(String empNo){        for(int i=0;i<al.size();i++){            Emp emp = (Emp)al.get(i);            if(emp.getEmpNo().equals(empNo)){                al.remove(i);                System.out.println("已将" + emp.getName() + "信息清除!");            }        }    }

    //按薪水高低排序    public void SortSal(){        for(int i=0;i<al.size()-1;i++){            for(int j=1;j<al.size()-i;j++){                Emp emp1 = (Emp)al.get(j-1);                Emp emp2 = (Emp)al.get(j);                if(emp1.getSal()<emp2.getSal()){                    al.set(j,emp1);                    al.set(j-1,emp2);                }            }        }        for(Emp emp:al){            System.out.println("工号: " + emp.getEmpNo() + "\t姓名: " + emp.getName() + "\t工资: " + emp.getSal());        }    }

    //计算平均工资并找出最高工资和最低工资的员工    public void Average(){        float sum = 0f,ave=0f;        for(int k=0;k<al.size();k++){            Emp emp = (Emp)al.get(k);            sum = emp.getSal()  + sum;        }        ave = sum/al.size();        System.out.println("共有员工" + al.size() + "人\t总工资为: " + sum + "\t平均工资为: " + ave );        //找出最高工资与最低工资        for(int i=0;i<al.size()-1;i++){            for(int j=1;j<al.size()-i;j++){                Emp emp1 = (Emp)al.get(j-1);                Emp emp2 = (Emp)al.get(j);                if(emp1.getSal()<emp2.getSal()){                    al.set(j,emp1);                    al.set(j-1,emp2);                }            }        }

        for(int i=0;i<al.size();i++){            if(i == 0){                Emp emp = (Emp)al.get(i);                System.out.println("工资最高的人员是: " + emp.getName() + "\t薪水是: " + emp.getSal());            }else if(i == al.size()-1){                Emp emp = (Emp)al.get(i);                System.out.println("工资最低的人员是:" + emp.getName() + "\t薪水是: " + emp.getSal());            }        }    }

}public class test_two {

    public static void main(String[] args) {        EmpManage em = new EmpManage();        Scanner sr = new Scanner(System.in);        //做出一个菜单        while(true){            System.out.println("公司职员薪水管理系统");            System.out.println("1. 录入新员工");            System.out.println("2. 根据工号查询信息");            System.out.println("3. 查询所有员工信息");            System.out.println("4. 通过工号修改员工薪水");            System.out.println("5. 删除员工信息");            System.out.println("6. 按薪水高低排序");            System.out.println("7. 计算平均工资及最高(低)工资");            System.out.println("0. 退出系统");            System.out.println("请输入对应的数字进行操作:");            int sel = sr.nextInt();            if(sel == 1){                System.out.println("请录入新员工的信息");                System.out.print("工号:");                String empNo = sr.next();                System.out.print("姓名: ");                String name = sr.next();                System.out.print("工资: ");                float sal = sr.nextFloat();                //构建emp对象                Emp emp = new Emp(empNo,name,sal);                em.addEmp(emp);                System.out.println("创建新员工" + name + "成功!");            }else if(sel == 2){                System.out.println("请录入员工工号: ");                String empNo = sr.next();                em.showInfo(empNo);            }            else if(sel == 3){                System.out.println("公司所有员工信息如下: ");                em.AllInfo();            }            else if(sel == 4){                System.out.println("请输入人工号: ");                String empNo = sr.next();                System.out.println("将工资修改为: ");                float newSal = sr.nextFloat();                em.updateSal(empNo,newSal);            }            else if(sel == 5){                System.out.println("请输入要删除人员的工号: ");                String empNo = sr.next();                em.delEmp(empNo);            }            else if(sel == 6){                System.out.println("已按薪资高低进行排序如下:");                em.SortSal();            }            else if(sel == 7) {                System.out.println("显示平均工资及最高、最低工资人员信息如下: ");                em.Average();            }            else if(sel == 0){                System.out.println("已正常退出!");                System.exit(0);            }            else{                System.out.println("输入错误,请重新输入!");            }

        }

    }

}






转载于:https://www.cnblogs.com/suren2017/p/8404027.html

【Java】【控制流程】相关推荐

  1. 【Java基础】(六-上)java控制流程——顺序结构和分支结构

    控制流程写一篇太长,就像之前第三篇一样,我回过头都不想看,所以分成了两篇,小巧精致,挺好. java控制流程 1. 控制流程是个什么东西? 2. 控制流程的分类 (1)顺序结构 (2)分支结构 一.i ...

  2. Java控制流程练习“黄金分割点”:寻找某两个整数相除,其结果离黄金分割点0.618最近 ,分母和分子不能同时为偶数,分母和分子 取值范围在[1-20]

    寻找某两个整数相除,其结果 离黄金分割点 0.618最近 分母和分子不能同时为偶数 分母和分子 取值范围在[1-20] 代码: public class GoldenRatio {public sta ...

  3. 黑马 程序员——Java基础---流程控制

    黑马程序员--Java基础---流程控制 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 一.概述 Java提供了两种基本的流程控制结构:分支结构 ...

  4. java 基本语法与流程控制_Java基础语法之控制流程

    Java基础语法之控制流程 语言的流程控制提供了对程序步骤的基本方法. 三大流程控制语句:顺序.选择.循环 复合结构 复合结构是以一个区块为单位的,由"{"开始"}&qu ...

  5. java 示例_功能Java示例 第3部分–不要使用异常来控制流程

    java 示例 这是称为" Functional Java by Example"的系列文章的第3部分. 我在本系列的每个部分中开发的示例是某种"提要处理程序" ...

  6. 功能Java示例 第3部分–不要使用异常来控制流程

    这是称为" Functional Java by Example"的系列文章的第3部分. 我在本系列的每个部分中发展的示例是某种"提要处理程序",用于处理文档. ...

  7. 【Java从入门到头秃专栏 】(三) 控制流程 Math Date DateFormat Calendar System BigDecimal Random

    目录 1 控制流程 2 Math类 3 Date类 4 DateFormat类 5 Calendar类(日历类) 6 System类 7 BigDecimal类 8 Random类(随机数) 1 控制 ...

  8. Java 1.3 控制流程(条件语句、循环结构)

    Java与C/C++对比: Java 的控制流程结构与 C 和 C++ 的控制流程结构一样, 只有很少的例外情况. 没有 goto 语句, 但 break 语句可以带标签, 可以利用它实现从内层循环跳 ...

  9. 第三堂:Java程序流程控制

    在程序设计时,我们常常需要改变程序的控制流程.语句的执行顺序.而我们有三种基本的技术可以改变这个流程:①调用方法,②选择,③循环. 流程控制是所有编程语言的基础部分,Java自然也不例外:Java的流 ...

  10. Java基础-控制流程-5. 中断控制流程语句

    为什么80%的码农都做不了架构师?>>>    Java设计者在语言中增加了一条带标签的break,以此来支持这种程序设计风格. 下面先来看看不带标签的break语句.与用于退出sw ...

最新文章

  1. 产品设计技术公开-一种扼杀对手的方式
  2. static,extern关键字作用?
  3. Linux Android 多点触摸协议 原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/os/71/12306571.shtml
  4. 软件实施或技术支持技能必备提炼
  5. 你写的前端到底用没用到这些
  6. usr/bin/expect方式免密码登录和发送文件脚本
  7. SEO原创文章制作器
  8. linux 添加环境变量(php为例)
  9. mysql 8.0.25 取巧解决修改密码报错问题
  10. 基于图像处理技术的柑橘病害自动检测与分类
  11. 如何在单击按钮时启动新活动
  12. 博科:物理与虚拟网络的统一管理
  13. Cause: the class org.apache.tools.ant.taskdefs.optional.ANTLR was not found.
  14. 我不曾忘记的初心-屌丝逆袭
  15. 1月末支付机构备付金总量达1.4万亿,较去年12月下滑两千多亿
  16. HEVC AVS2 AV1
  17. 高通SM4350平台指纹移植流程
  18. 计算机登录界面没有用户显示不出来,win10不出现登录界面怎么办
  19. 8253可编程定时/计数器芯片
  20. JS正则表达式完整教程(略长)

热门文章

  1. 计算机专业同学综合自我评估,计算机专业学生的自我评价
  2. android dropbear 密码,root登录不进去 dropbear ssh
  3. 给一个数组,元素都是整数(有正数也有负数),寻找连续的元素相加之和为最大的序列(搜狐畅游2012.10.21机试题)...
  4. T-SQL语言中局部变量(@)和全局变量(@@)
  5. 【CNC——第4篇】初识交流伺服电机和伺服电机驱动器
  6. 国产图数据库--Nebula备份/恢复
  7. fastapi和php,Sanic vs Fastapi 性能对比
  8. hduOJ(2015-2018)
  9. pikachu Unsafe Fileupload 不安全的文件上传(皮卡丘漏洞平台通关系列)
  10. Opencv属性页配置,Realease和Debug通用(64和32)