第14节:Java练习题【多测师_王sir】
题目: 假如字母a=1, b=2以此规律到z=26 ,那么请设计一个计算器来计算 aeb + cfd 的和,和为整数 package com.xuexi; import java.util.Arrays; import java.util.Scanner; public class Topic3 { private static char []letter={'a','b','c','d','e','f','g','h','i','j', 'k','l', 'm','n','o','p',
'q','r','s','t', 'u','v','w','x','y','z'}; public static void main(String[] args) { /** * 假如字母a=1, b=2以此规律到z=26 。 * 那么请设计一个计算器来计算 aeb + cfd 的和,和为整数 */ //1、给字母定义值 //2、使用控制台输入两次字母 //3、提取字母 //4、对提取的字母进行相加 //1、给字母定义值 //2、使用控制台输入两次字母 Scanner scanner =new Scanner(System.in); System.out.println("输入第一次字符串"); String string=scanner.next(); System.out.println("输入第二次字符串"); String string1=scanner.next(); Integer intg1=Topic3.xunhuan(string); Integer intg2=Topic3.xunhuan(string); // 把拼接好的字符串转换成数字 // 把数字相加 int he = intg1+intg2; System.out.println("你输入的两个字母字符串的和:" +"int1"+"+"+"int2"+"="+ he); } /** * 将输入的字母转换成数组 * @param string * @return */ public static Integer xunhuan(String string){ char[] cha = string.toCharArray(); //new一个StringBuilder对象builder1 StringBuilder builder1=new StringBuilder(); //循环用户的数组 for (int i = 0; i <cha.length ; i++) { //查找输入每个字母对应的索引,并加一,即a=1,z=26 int a =Arrays.binarySearch(letter,cha[i]); builder1.append(a+1); } Integer int1=new Integer(builder1.toString()); return int1; } }
1,编写一个类Book,代表教材: 具有属性:名称(title)、页数(pageNum),其中页数不能少于200页,否则输出错误信息,并赋予默认值200 为各属性设置赋值和取值方法 具有方法:detail,用来在控制台输出每本教材的名称和页数 编写测试类BookTest进行测试:为Book对象的属性赋予初始值,并调用Book对象的detail方法,看看输出是否正确 package com.company; import java.util.Scanner; public class Book { //1、定义属性名称(title)、页数(pageNum) //2、页数不能少于200页,否则输出错误信息,并赋予默认值200,为各属性设置赋值和取值方法 //3、具有方法:detail,用来在控制台输出每本教材的名称和页数 //4、编写测试类BookTest进行测试 //5、为Book对象的属性赋予初始值,并调用Book对象的detail方法,看看输出是否正确 //1、定义属性名称(title)、页数(pageNum) private String title;//定义属性名称(title) private int pageNum;//定义页数(pageNum) //2、页数不能少于200页,否则输出错误信息,并赋予默认值200,为各属性设置赋值和取值方法 public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getPageNum() { return pageNum; } public void setPageNum(int pageNum) { this.pageNum = pageNum; if (pageNum<200){ this.pageNum =200; }else{ this.pageNum = pageNum; } } //3、具有方法:detail,用来在控制台输出每本教材的名称和页数 public void detail(){ Book book=new Book(); book.setTitle(title); book.setPageNum(pageNum); System.out.println("教材名称:"+"《"+getTitle()+"》"+",教材页数:"+getPageNum()); } } package com.company; //4、编写测试类BookTest进行测试 class BookTest { public static void main(String[] args) { //5、为Book对象的属性赋予初始值,并调用Book对象的detail方法,看看输出是否正确 Book book=new Book(); book.setTitle("JAVA入门教材"); book.setPageNum(450); book.detail(); Book book1=new Book(); book1.setTitle("JAVA进阶教材"); book1.setPageNum(100); book1.detail(); } }
题目 2,使用Java的封装特性设计一个叫做Student的类:属性:姓名、年龄、性别、身高 。 行为:说话、计算加法、改名 编写一个主类来测试Student类:名叫“张三”,性别“男”,年龄18岁,身高1.80; 说出“我是张三”,调用计算加法方法来计算两个整数的值 和 计算两个字符串拼接的值 将名字改为“李四” package com.company; //1、Java的封装特性设计一个叫做Student的类 public class Student { //1、Java的封装特性设计一个叫做Student的类 //2、属性:姓名、年龄、性别、身高 。 //3、行为:说话、计算加法、改名 //4、编写一个主类来测试Student类:名叫“张三”,性别“男”,年龄18岁,身高1.80; //5、说出“我是张三”,调用计算加法方法来计算两个整数的值 和 计算两个字符串拼接的值, // 将名字改为“李四” //2、属性:姓名、年龄、性别、身高 。 private String name; private String sex; private int age; private float higth; public String getName() { return name; } public void setName(String name) { this.name = name; if (name == "我是张三");{ this.name="李四"; } } public String getSex() { return sex; } public void setSex(String sex) { this.sex = "男"; } public int getAge() { return age; } public void setAge(int age) { this.age = 18; } public float getHigth() { return higth; } public void setHigth(float higth) { this.higth = 1.80f; } @Override public String toString() { return "Student{" + "姓名:" + name+" "+ ", 性别:" + sex + " " + ", 年龄:" + age + ", 身高:" + higth + '}'; } //3、行为:说话、计算加法、改名 public String speak(String speak){ String speak1=speak; if (speak1 == "我是张三"){ name="李四"; } return name; } public int count(int a,int b){ int c=a+b; return c; } public String character(String aa,String bb){ String cc=aa + bb; return cc; } } package com.company; public class ZhuStudent { public static void main(String[] args) { Student student=new Student(); student.setAge(18); student.setHigth(1.80f); student.setName("我是张三"); student.setSex("男"); System.out.println(student); String cc =student.speak("我是张三"); System.out.println(cc); String aa=student.character("{1,2,3}","{a,b,c}"); System.out.println(aa); int bb=student.count(123,345); System.out.println(bb); } }
题目 3,使用Java的封装特性设计一个简单计算器类,类中包含加,减,乘,除方法, 编写一个主类,通过控制台输入两个数和操作符号(+,-,*,/) 根据操作符号来计算两个数的结果 package com.company; import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer; import java.sql.SQLOutput; import java.util.Arrays; import java.util.Scanner; public class Calculator { //1、建立控制台 //2、提取控制台里面的数字 public static void main(String[] args) { Scanner scanner =new Scanner(System.in); System.out.println("请输入第一个数字"); int number1=scanner.nextInt(); Scanner scanner1=new Scanner(System.in); System.out.println("请输入运算符号"); String symbol=scanner1.next(); Scanner scanner2 =new Scanner(System.in); System.out.println("请输入第二个数字"); int number2=scanner2.nextInt(); char [] aa={'+','-','x','/'}; char[] cha = symbol.toCharArray(); StringBuilder builder1=new StringBuilder(); for (int i = 0; i <cha.length ; i++) { //查找输入每个字母对应的索引,并加一,即a=1,z=26 int a = Arrays.binarySearch(aa,cha[i]); builder1.append(a+1); } Integer aaa=new Integer(builder1.toString()) ; if(aaa== 1){ System.out.println("运算结果:"+number1+"+"+number2+"="+(number1+number2)); } if (aaa== 2){ System.out.println("运算结果:"+number1+"-"+number2+"="+(number1-number2)); } if (aaa == 3){ System.out.println("运算结果:"+number1+"x"+number2+"="+((number1)*(number2))); } if (aaa == 4){ System.out.println("运算结果:"+number1+"/"+number2+"="+((number1)/(number2))); } } }
1、根据java继承特性列举五种继承关系。 ①电脑 -> 台式电脑 笔记本电脑。 台式电脑 -> 联想台式电脑 神州台式电脑。 笔记本电脑 -> 苹果笔记本电脑 外星人笔记本电脑。 ②椅子 -> 靠背椅 无靠背椅 靠背椅 -> 软垫靠背椅 硬垫靠背椅 无靠背椅 -> 软垫无靠背椅 硬垫无靠背椅 ③植物 -> 花 树 花 -> 无果花 有果花 树 -> 针叶林树木 扩叶林树木 ④门 -> 防盗门 防火门 防火门 -> 玻璃防火门 钢质防火门 防盗门 -> 木质防盗门 钢质防盗门 ⑤动物 -> 哺乳动物 卵生动物 哺乳动物 -> 猴子 猫 卵生动物 -> 蛇 鸟 2、使用继承特性设计程序 一个学生,一个老师,学生有移动端存储设备,u盘32g,移动硬盘128g,老师讲完课把资料
文件拷贝给学生,学生会根据资料文件的大小来选择使用u盘32g还是移动硬盘128g拷贝(文件资料超过1024M用移动硬
盘,否则用u盘,老师会提前备好30天的课,课件文件在100m-2000m之间编写一个主类,使用循环来模拟老师上课30天
,那么请问30天后学生的u盘和移动硬盘中分别拷贝了多少文件, u盘和移动硬盘的存储空间还剩下多少M package com.exercises; /** * 测试类 */ public class Test { public static void main(String[] args) { Student student =new Student(); student.setName("夏天"); student.setAge(18); student.setHdd(128); student.setUsb(32); System.out.println(student.toString()); Teacher teacher =new Teacher(); teacher.setName("张先生"); teacher.setAge(33); System.out.println(teacher.toString()); teacher.prepareLessons(); teacher.xunhuan(); } } package com.exercises; /** * 人 类 */ public class Man { //名字 public String name; //年龄 public int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "名字=" + name + ", 年龄=" + age; } } package com.exercises; /** * 学生 类 */ public class Student extends Man{ //U盘 private int usb=32; //移动硬盘 private int hdd=128; public int getUsb() { return usb; } public void setUsb(int usb) { this.usb = 32; } public int getHdd() { return hdd; } public void setHdd(int hdd) { this.hdd = 128; } @Override public String toString() { return "学生:" +super.toString()+ ", 有一个U盘=" + usb +"G"+ ", 有一个移动硬盘=" + hdd +"G"; } } package com.exercises; import java.util.Arrays; /** * 老师 类 */ public class Teacher extends Man { /** * 老师会备课 */ public void prepareLessons(){ System.out.println("老师会提前备好30天课"); } /** * 老师备课内容的文件大小 * @return */ private static int aa; private static int a; private static int b; public String xunhuan() { Student xs =new Student(); int u=xs.getUsb(); int h=xs.getHdd(); int aa1=0; int bb1=0; int [] array =new int[30]; for (int i = 0; i <array.length ; i++) { array[i]=(int)(Math.random()*1900)+100; aa=array[i]; if (aa<1024){ a=u*1024-aa; aa1=aa1+1; }else if (aa>=1024){ b=h*1024-aa; bb1=bb1+1; } } System.out.println("每次存储文件的大小:"+Arrays.toString(array)); System.out.println("U盘剩余储存空间"+a+"M"); System.out.println("移动硬盘剩余储存空间"+b+"M"); System.out.println("U盘储存文件"+aa1+"份"); System.out.println("U盘储存文件"+bb1+"份"); return ""; } @Override public String toString() { return "老师:" + "名字=" + name + ", 年龄=" + age; } }