OJ常见编程题

第一题:目的
1、变量定义、初始化、赋值
2、运算符和表达式
3、输出语句System.out.println();
1.作一个加法器,计算它们的和
2.作一个减法器,计算它们的差
3.作一个乘法器,计算它们的积
4.作一个除法器,计算它们的商(和余数)
[Work01.java]

public class Work01{
    public static void main(String []args){
        int i=9;int j=4;
        int k=i+j;
        int l=i-j;
        int m=i*j;
        int n=i/j;
        int o=i%j;
        System.out.println("和:"+k+" 差:"+l+" 积:"+m+" 商:"+n+" 模:"+o);
    }
}

第二题:正方型[Work02.java]

//正方形
public class Work02{
    public static void main(String []args){
        for(int i=1;i<5;i++){
            System.out.println("********");
        }
    }
}

第三题:直角三角形[Work03.java]

//直角三角形
public class Work03{
    public static void main(String []args){
        for(int i=1;i<9;i++){
            for(int j=1;j<i;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

第四题:三角形[Work04.java]

//三角形
public class Work04{
    public static void main(String []args){
        int lay=10;//行数
        for(int i=1;i<=lay;i++){//循环行
            for(int k=1;k<=lay-i;k++){//找空格
                System.out.print(" ");
            }
                for(int j=1;j<=(i-1)*2+1;j++){//找星位置并输入
                    System.out.print("*");
                }
            System.out.println();//换行
        }
    }
}

第五题:
已知手掌游戏机一台320元,MP3一台260元。公司举行抽奖大会,公司有18人,一等奖游戏机,二等奖MP3,购入5公游戏机,13台MP3。问总价为多少,公司实际平均给每人花费多少钱。[Work05.java]

//计算总费用和平均费用
import java.util.*;//加载包
public class Work05{
    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 main(String []args){
        Scanner myScanner=new Scanner(System.in);//调用键盘输入
        showInfo(); //调用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();
        }
    public static void showInfo(){ // 建立showInfo方法
        int total=gbGame*gbGameT+mp3*mp3T;//总价
        float average=(float)total/people;//平均价
        System.out.printf("总价: %d,平均价是: %f \n",total,average);
    }
}

第六题
手掌游戏机一台X元,mp3一台Y元(X,Y,N,M,Z由用户输入)
公司举行抽奖大会,一等奖游戏机N台,二等奖mp3 M台。公司共有Z人。问总价为多少,公司实际平均给每人花费了多少钱。

//计算总费用和平均费用
import java.util.*;//加载包
public class Work06{
    public static int gbGame=0;//静态变量
    public static int gbGameT=0;
    public static int mp3=0;
    public static int mp3T=0;
    public static int people=0;
    public static void main(String []args){
        Scanner myScanner=new Scanner(System.in);//调用键盘输入
        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();
        System.out.print("请输入员工数:");
        people=myScanner.nextInt();
        showInfo();//调用showInfo方法
        }
    public static void showInfo(){ // 建立showInfo方法
        int total=gbGame*gbGameT+mp3*mp3T;//总价
        float average=(float)total/people;//平均价
        System.out.printf("总价: %d,平均价是: %f \n",total,average);
    }
}

第七题
九九乘法表,要求行列对齐[Work07.java]

//九九乘法表
import java.util.*;//加载包
public class Work07{
    public static void main(String []args){
        Scanner myScanner=new Scanner(System.in);//调用键盘输入
        System.out.print("请输入1-9中的一个数:");
        int num=myScanner.nextInt();
        for(int i=1;i<=num;i++){
            for(int j=1;j<=i;j++){
                System.out.print(i+"×"+j+"="+(i*j)+"\t");
            }
        System.out.println();
        }
    }
}

第八题
请使用三个整型变量完成如下功能:
1、用户输入两个整数值;3 5
2、计算两数的和,输出此和; 8
3、求出两数的平均数,输出平均数(整数即可); 4
4、求出平均数>第二个数的关系表达式的值,输出此值; 0
5、用第一个数减去上面关系表达式的值,得到它们的差,输出差; 3
6、存储第二个数的变量累乘上式的结果,输出此变量的当前值; 15
7、存储第一个数的变量累加第二个变量,输出第一个变量的当前值。 18

//输入两个数完成任务集合[Work08.java]
import java.util.*;//加载包
public class Work08{
    public static void main(String []args){
        Scanner myScanner=new Scanner(System.in);//调用键盘输入
        System.out.print("请输入一个数A:");
        int a=myScanner.nextInt();
        System.out.print("请输入一个数B:");
        int b=myScanner.nextInt();
        int e=0;//定义变量
        //求和    
        int c=a+b;
        System.out.println("和:"+c);
        //求平均数
        int d=(a+b)/2;
        System.out.println("平均数:"+d);
        //判断平均数是否大于第二个数
        if(d>b){ 
            e=1;
            System.out.println("平均数>第二个数"); 
        }else{
            e=0;
            System.out.println("小于"+b+"输出判断值"+e);
        }
        //第一个数减去上式的值
        int f=a-e;
        System.out.println("第一个数减去上式的值"+f);
        //第二个数乘上式的值
        int g=b*f;
        System.out.println("第二个数累乘上式的值"+g);
        //第一个数累加并赋给第一个数
        a+=g;
        System.out.println("第一个数累加第二个数赋给第一个数的值"+a);
    }
}

第九题
渔夫出海打鱼,收获若干
1、渔夫卖掉一半的鱼,然后送给海伦3条;
2、渔夫又卖掉剩下的鱼的2/3,自己吃掉1条;
3、海伦来看渔夫,问他那天打了多少鱼,渔夫数了数,还剩4条鱼,渔夫对海伦怎么说?

//打鱼--共有多少鱼[Work09.java]
public class Work09{
    public static void main(String []args){
        int total=0;
        int rest=4;//剩余的鱼
        total=((rest+1)*3+3)*2;//逆推
        System.out.println("鱼一共有:"+total);
    }
}

第十题
有一只猴子摘了一堆桃子,当即吃了一半,可是桃子太好吃了,它又多吃了一个,第二天它把第一天剩下的桃子吃了一半,又多吃了一个,就这样到第十天早上它只剩下一个桃子了,问它共摘了多少桃子[Work10.java]

import java.util.*;//加载包
public class Work10{
    public static void main(String []args){
        Monkey mo=new Monkey();
        mo.scan();
    }
}
class Monkey{
    //day哪天的桃子数,sday吃了多少天剩下一个
    public static int peach(int day,int sday){//建一个peach方法
        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();
        }
    }
}

第十一题
计算1+2+3+...+20=?思考如果让用户输入一个整数n计算累加和:1+2+3+...+n能做到吗?
[Work11.java]

import java.util.*;//加载包
public class Work11{
    public static void main(String []args){
        Scanner myScanner=new Scanner(System.in);//调用键盘输入
        System.out.print("请输入一个数N:");
        int n=myScanner.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类,要求如下:
该猫可以做四则运算,也可以进行面积计算;
将四则运算器和面积运算器合二为一,作一个运算器,主菜单让用户选择是做四则运算还是面积运算,分为两个子菜单,让用户选择加减乘除或者形状。

//一个Cat类进行四则运算和面积计算[Work12.java]
//一个Cat类进行四则运算和面积计算
import java.util.*;//加载包
public class Work12{
    public static void main(String []args){
        Cat cat=new Cat();
        cat.scan1();
    }
}
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("输入有误,请重新输入!");
            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("输入有误,请重新输入!");
                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("输入有误,请重新输入!");
                Cat.mjys();//循环调用子目录
            }
        }
}

第十三题
请大家采用面向对象思想设计超级马里奥游戏人物。并能用键盘输入命令,来控制马里奥的位置[Work13.java]

//超级马里奥人物建造及控制台数字操作
import java.util.*;
public class Work13 {
    public static void main(String[] args) {
        Scanner sr=new Scanner(System.in);//接收键盘输入
        System.out.println("输入1-25的数字,你可以移动马里奥,输入其它数字退出");
        int i=sr.nextInt();//将键盘输入数字赋值给i
        Maria m=new Maria();//建立调用Maria构造方法
        for(int a=i;a<=25;a--){
            if(i<25){
                m.move(i);
                i=sr.nextInt();
            }else{
                System.out.println("退出游戏!");
                break;
            }
        }
    }
}

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(".");
            }
        }
    }
}

第十四题
请编写一个猜拳的游戏
有个人Tom设计他的成员变量,成员方法,可以电脑猜拳。电脑每次都会随机生成0,1,2;0表示石头、1表示剪刀、2表示布

//与电脑猜拳[Work14_1.java]
import java.util.*;
public class Work14_1 {
    public static void main(String[] args) {
            Kais.jingcyx();//调用开始游戏
    }
}
//开始退出游戏类
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;
            default:
                System.out.println("输入错误,请重新输入!");
                Kais.jingcyx();
                break;
        }
    }
}
//猜拳游戏
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();//玩家出拳
            //Random n=new Random(2);//随机函数
            int b=(int)(0+Math.random()*(3-1+1));//随机产生0-2的int数,电脑出拳
            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)+"局");
        Kais.jingcyx();
    }
}

第十五题
请编写一个类koradji(巫师的意思)
为类编写如下功能:
1、根据用户的输入某人的生日,可以计算出该人的星座;
2、根据用户的输入年月日可以计算是星期几;
3、可以显示该巫师给多少人算过星相。
1月20日- 2月18日水瓶 2月19日- 3月20日双鱼 3月21日- 4月19日白羊
4月20日- 5月20日金牛 5月21日- 6月20日双子 6月21日- 7月22日巨蟹
7月23日- 8月22日狮子 8月23日- 9月22日处女 9月23日-10月22日天秤
10月23日-11月21日天蝎 11月22日-12月21日射手 12月22日- 1月19日摩羯

//通过输入生日显示出生在周几。巫师看星座[Wrok15.java]
import java.util.*;
public class Work15{
    public static void main(String []args){ //程序入口
        Start ks=new Start();//调用程序开始类Start,并启用st方法
        ks.st();
    }
}

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);//将年月日数据传给周几类的rq方法中
        Xinz xz=new Xinz();//调用星座类
        xz.xinz(month,date);//将月日的数据传给星座类中的xinz方法中
        System.out.println("\n是否继续让巫师看星座?\n1、继续\t2、退出");
        Scanner sr1=new Scanner(System.in);
        int o=sr1.nextInt();
        if(o==1){
            Start qd=new Start();//输入1调用程序开始类
            qd.st();
        }else if(o!=1){ //不等于1退出
            Xinz tc=new Xinz();
            System.out.println("巫师为"+tc.getI()+"人看过星座");
            System.out.println("退出星座查询,Goodbay!");
        }
    }
}

class Rq{//周几类
    public void rq(int year,int month,int date){
        Calendar c = Calendar.getInstance(); //调用日期Calendar抽象类
        c.set(Calendar.YEAR,year);  
        c.set(Calendar.MONTH,month-1);
        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 Xinz{ //星座类
    public static int i=0;//定义静态变量i,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 getI(){ //返回统计调用次数
        return i;
    }
}

第十六题
10个人投票选班长,有三个侯选人(张三,李四,王五),通过编号投票,要求最后显示班长姓名。[Work16.java]

import java.util.*;
public class Work16 {
    public static void main(String[] args) {
        //设定投票人数
        System.out.print("设定投票人数:");
        Scanner sr=new Scanner(System.in);
        int a=sr.nextInt();
        System.out.print("请输入第1位侯选人的名字:\n");
        Scanner sr1=new Scanner(System.in);
        String i1=sr1.nextLine();//键盘接收字符串
        System.out.print("请输入第2位侯选人的名字:\n");
        Scanner sr2=new Scanner(System.in);
        String i2=sr2.nextLine();
        System.out.print("请输入第3位侯选人的名字:\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);
    }
}
class Xuanju{
    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(j3>j1&&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("有同等票数,投票无效重新投票!");
        }
    }
}

11997621-4846246fb3360538.png
tobehero666.png
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值