黑马程序员技术交流社区

标题: java基础题1,给大家练练 [打印本页]

作者: zjy9399    时间: 2016-9-21 18:05
标题: java基础题1,给大家练练
第1题: 在控制台打印如下的信息

要求:
1.清单顶部为固定的数据,直接打印即可
2.清单中部为商品,为变化的数据,需要记录水果信息后,打印
3.清单底部包含了统计操作,需经过计算后,打印


第2题: 在控制台打印如下的信息

要求:
1.清单顶部为固定的数据,直接打印即可
2.清单中部为商品,为变化的数据,需要记录鲜花信息后,打印
3.清单底部包含了统计操作,需经过计算后,打印

第3题: 在控制台打印如下的信息

要求:
1.清单顶部为固定的数据,直接打印即可
2.清单中部为商品,为变化的数据,需要记录商品信息后,打印
3.清单底部包含了统计操作,需经过计算后,打印

第1题:
要求:
使用while循环,完成求1-999之间3的整数倍的累加和,最后打印累加和的值

第2题:
要求:
写一个程序输入3个整数a,b,c,按从小到大顺序输出。

第3题:
要求:
写一个程序判断-10到10的数是奇数还是偶数,打印出如下效果
-10  是负偶数
        -9  是负奇数
        -8  是负偶数
        -7  是负奇数
        -6  是负偶数
        -5  是负奇数
        -4  是负偶数
        -3  是负奇数
        -2  是负偶数
        -1  是负奇数
        0  既不是奇数也不是偶数!
        1  是正奇数
        2  是正偶数
        3  是正奇数
        4  是正偶数
        5  是正奇数
        6  是正偶数
        7  是正奇数
        8  是正偶数
        9  是正奇数
        10  是正偶数


第1题:
要求:
输入1~7的一个数字,输出以该数字打头的一个成语如下:
1:一帆风顺
2:二话不说
3:三心二意
4:四面楚歌
5:五湖四海
6:六亲不认
7:七上八下
其它:您输入的有误!

第2题:
题目:
自定义一个int类型数组并赋值,获取到数组中最大值和最小值的差值,打印到控制台

第3题:
要求:
现在有如下的一个数组:int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}   
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:
int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}
最后遍历两个数组要求格式如下:
原数组为:{1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}
去掉0之后新数组为:{1,3,4,5,6,6,5,4,7,6,7,5}

int[] oldArray = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int count = 0;//存储第一个数组中非0值的数量
for(int I = 0;I < oldArray.length; i++){
        if(oldArray[i] != 0){
                count++;
}
}
int newArray = new int[count];
int index = 0;
for(int I = 0;I < oldArray.length; i++){
        if(oldArray[i] != 0){
                newArray[index] = oldArray[i];
                index++;
}
}

//遍历原数组
String s = “{“;
for(int I = 0;I < oldArray.length ; i++){
        s += oldArray[i];
        if(I < oldArray.length – 1){//判断i不是最后一个元素
                s += “,”;
        }       
}
s += “}”;
System.out.println(s);
//遍历新数组

第一题
要求:
定义3个重载方法,求2个,3个,4个整数的平均数 并分别在main方法中调用

第二题
要求:
定义一个方法,打印 0-100中所有奇数的个数、所有偶数的个数、所有奇数的和、所有偶数的和,并在main方法中调用

第三题
要求:
定义一个方法,接收一个整数类型的数组作为参数,然后将数组里边的元素倒序打印
例如 数组里边元素为1,3,9,5,0  调用方法后打印出来的顺序 为 0,5,9,3,1,并分别在main方法中调用

第四题
案例介绍
现在,我们将原有的库存管理案例,进行业务逻辑的封装。

将对下列功能进行方法封装:
        打印库存清单功能
        库存商品数量修改功能
        退出程序功能
案例需求分析
管理员能够进行的操作有3项(查看、修改、退出),我们可以采用(switch)菜单的方式来完成。
-------------库存管理------------
1.查看库存清单
2.修改商品库存数量
3.退出
请输入要执行的操作序号:
        每一项功能操作,我们采用方法进行封装,这样,可使程序的可读性增强。
选择“1.查看库存清单”功能,则控制台打印库存清单
选择“2.修改商品库存数量”功能,则对每种商品库存数进行更新
选择“3.退出”功能,则退出库存管理,程序结束
实现代码步骤
编写代码Demo库存管理.java,完成如下功能:
        功能菜单
        /**
         * 库存管理功能菜单
         * @return 管理员键盘输入的功能操作序号
         */
        public static int chooseFunction() {
                System.out.println("-------------库存管理------------");
                System.out.println("1.查看库存清单");
                System.out.println("2.修改商品库存数量");
                System.out.println("3.退出");
                System.out.println("请输入要执行的操作序号:");
                //接收键盘输入的功能选项序号
                Scanner sc = new Scanner(System.in);
                int choose = sc.nextInt();
                return choose;
        }

上述方法用来完成库存管理功能菜单的显示、接收管理员选择的功能操作序号。这是完成了案例的第一步。接下来完成“查看、修改、退出”这三项功能。
        编写main主方法,调用库存管理功能菜单方法,与“查看、修改、退出”这三个方法。
public static void main(String[] args) {
                //记录库存商品信息
                //品牌型号
                String[] brands = new String[]{"MacBookAir", "ThinkpadT450"};
                //尺寸大小
                double[] sizes = new double[]{13.3, 14.0};
                //价格
                double[] prices = new double[]{6988.88, 5999.99};
                //库存个数
                int[] counts = new int[]{0, 0};
               
                //通过while循环模拟管理员进行功能重复选择操作
                while (true) {
                        //打印功能菜单操作,接收键盘输入的功能选项序号
                        int choose = chooseFunction();
                        //执行序号对应的功能
                        switch (choose) {
                        case 1://查看库存清单
                                printStore(brands, sizes, prices, counts);
                                break;
                        case 2://修改商品库存数量
                                update(brands, counts);
                                break;
                        case 3://退出
                                exit();
                                return;
                        default:
                                System.out.println("----------------------------------");
                                System.out.println("功能选择有误,请输入正确的功能序号!");
                                break;
                }
        }
}

        在主方法中,创建了5个数组,分别用来存储商品的品牌型号、尺寸大小、价格、配置、库存个数,通过接收到的功能选项序号,进行switch语句判断后,调用对应的功能方法。
        查看库存清单功能
        /**
         * 查看库存清单
         * @param brands 商品品牌型号
         * @param sizes 商品尺寸大小       
         * @param prices 商品价格
         * @param counts 商品库存个数
         */
        public static void printStore(String[] brands, double[] sizes, double[] prices, int[] counts) {
                //统计总库存个数、统计库存总金额
                int totalCount = 0;
                double totalMoney = 0.0;
                for (int i = 0; i < brands.length; i++) {
                        totalCount += counts[i];
                        totalMoney += counts[i] * prices[i];
                }
                //列表顶部
                System.out.println("---------------------------查看库存清单--------------------------");
                System.out.println("品牌型号                尺寸        价格        库存数");
                //列表中部
                for (int i = 0; i < brands.length; i++) {
                        System.out.println(brands[i]+"        "+sizes[i]+"        "+prices[i]+"        "++counts[i]);
                }
                //列表底部
                System.out.println("-------------------------------------------------------------");
                System.out.println("总库存数:"+totalCount);
                System.out.println("库存商品总金额:"+totalMoney);
        }

        上述方法用来完成打印库存清单功能,5个方法参数用来打印的库存商品相关信息
        修改商品库存数量功能
/**
* 修改商品库存数量
* @param brands 商品品牌型号
* @param counts 商品库存个数
*/
public static void update(String[] brands, int[] counts){
        System.out.println("------------修改商品库存数量-----------");
        for (int i = 0; i < brands.length; i++) {
                System.out.println("请输入"+ brands[i] +"商品库存数");
                counts[i] = new Scanner(System.in).nextInt();
        }
}
上述方法用来完成修改商品库存数量功能,2个方法参数用来指定所要修改的商品与库存数
        退出功能
/**
* 退出
*/
public static void exit(){
        System.out.println("----------------退出---------------");
        System.out.println("您已退出系统");
}
        上述方法用来完成退出程序的功能

第一题
要求:
定义学生类,包含年龄、姓名、身份证号
创建测试类,以以下方式打印该同桌对象的基本信息:年龄:XX   姓名:XX(XXXXXXXXXXXXXXXXXX)

第二题
要求:
定义集合存放多个整数,打印集合中所有整数的和,最大值,最小值,偶数。

第三题
要求:
定义集合,存储多个员工(包含姓名、工资、职位),计算公司一个月所有员工工资的总支出。

题目一:
考查知识点:继承的传递性
按要求定义类
要求:
1、定义厨师类,有姓名和年龄的属性,且属性私有化,提供相应的getXxx与setXxx方法,提供抽象的无返回值的无参数的蒸饭方法;
2、定义厨师的子类,该类中要求只能写一个抽象的无返回值的无参数的炒菜的方法,其他的方法不能写;
3、定义厨师的子类的子类,完成必须的方法,每个方法的内容只需打印一句话描述方法的功能即可;
4、定义测试类,创建厨师的子类的子类(厨师的孙子类)对象,使用该对象,对厨师类中的姓名和年龄属性赋值,并获取赋值后的属性值打印到控制台上;
5、使用厨师的孙子类对象调用该对象除了getXxx与setXxx以外的其他方法;

题目二:
按要求定义类
考查知识点:super关键字的使用
要求:
1、定义老手机类,有品牌属性,且属性私有化,提供相应的getXxx与setXxx方法,提供无返回值的带一个String类型参数的打电话的方法,内容为:“正在给xxx打电话...”
2、定义新手机类,继承老手机类,重写父类的打电话的方法,内容为2句话:“语音拨号中...”、“正在给xxx打电话...”要求打印“正在给xxx打电话...”这一句调用父类的方法实现,不
能在子类的方法中直接打印;提供无返回值的无参数的手机介绍的方法,内容为:“品牌为:xxx的手机很好用...”
3、定义测试类,创建新手机对象,并使用该对象,对父类中的品牌属性赋值;
4、使用新手机对象调用手机介绍的方法;
5、使用新手机对象调用打电话的方法;

题目三:
按照要求定义类
考查知识点:方法重写
要求:
1、定义动物类,有名称和年龄两个属性,且属性私有化,提供相应的getXxx与setXxx方法,提供无参数的无返回值的吃饭方法,内容为:“吃饭...”;
2、定义猫类,继承动物类,重写父类中的吃饭方法,内容为:“猫吃鱼...”
3、定义狗类,继承动物类,重写父类中的吃饭方法,内容为:“狗吃骨头...”
4、定义测试类,分别创建猫对象和狗对象,并分别给父类对象中的名称和年龄属性赋值;
5、分别使用猫对象和狗对象获取名称和年龄的属性值并打印在控制台上;
6、分别使用猫对象和狗对象调用吃饭方法;

题目一:
按要求编写程序
考查知识点:多态成员的特点;  
要求:
1、定义明星类,有姓名和年龄的属性,且属性不写private修饰符,提供无返回值的无参数的自我介绍的方法,方法内容为:”我是明星xxx,我今年xxx岁了;”
2、定义明星的子类,重写父类的自我介绍的方法,内容为:”我是明星子类,我的名字是xxx,我今年xxx岁了;”,提供一个无参数的无返回值的跳舞的方法,内容为:”我是明星的子类,我跳拉丁舞......”
3、定义测试类,使用多态的形式创建明星的子类的对象,使用该对象分别给姓名和年龄属性赋值,再调用自我介绍的方法,然后通过类型转换,调用子类跳舞的方法;

题目二:
按要求编写程序
考查知识点:参数多态的使用;
要求:
1、定义动物类,动物类有抽象的无返回值的无参数的“嚎叫”方法;
2、定义猫类,继承动物类,猫叫的声音为:“小猫喵喵叫...”,提供无返回值的无参数的抓老鼠的方法,内容为:”小猫抓老鼠...”;
3、定义狗类,继承动物类,狗叫的声音为:“小狗汪汪叫...”;
4、定义人类,提供无返回值的带1个动物类型参数的逗动物玩的方法,在方法内部让动物嚎叫,且如果该动物是小猫,就让小猫抓老鼠;
5、定义测试类,分别创建猫的对象,狗的对象,人的对象,用人的对象调用逗动物玩的方法,分别测试小猫对象和小狗对象;

题目三:
按要求编写程序
考查知识点:接口多态的使用;
要求:
1、定义主持人接口,提供一个无参数无返回值的主持的方法;
2、定义学生类,提供一个无参数的无返回值的抽象的吃方法;
3、定义男同学类,继承学生类,吃的方法内容为:”我是男同学,我嗑瓜子,喝啤酒...”;
4、定义女同学类,继承学生类,同时实现主持人接口,主持方法的内容为:”女士们,先生们,大家好,我是主持人......”,吃的方法内容为:”我是女同学,我嗑瓜子,吃水果...”;
5、定义班级类,提供一个无返回值的,带两个参数的开晚会的方法,其中第1个参数为主持人接口类型,第二个参数为学生类型,方法内容中要求先调用主持人的主持方法,再打印一句话”晚会正式开始.....”,然后调用学生的吃的方法;
6、定义测试类,使用多态的形式分别创建学生类型的对象,主持人类型的对象,班级类型的对象(这个对象非多态),使用班级对象调用开晚会的方法;






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2