Java百题百练
目录
任务一 搭建开发环境及JAVA语言
命令行运行Java程序
请叙述一下在命令提示符窗口运行JAVA应用程序的过程。
Eclipse上运行Java程序
请叙述一下 在Eclipse 上新建一个项目的步骤,并编写程序,打印你的姓名和学号。
格式化输出
请运用Java有关知识,打印商苑面馆的购物小票
任务二 JAVA程序开发基础
汇率计算器
按照IPO流程,编写Java程序,输入人民币数量,根据当天外汇牌价,计算可兑换美元数量。
面馆点餐
商院面馆: 招牌牛肉面和酸梅汤,牛肉面10元/碗,酸梅汤 3元/碗
程序的作用是询问点餐的顾客 点几碗牛肉面 和 几杯酸梅汤,然后在控制台上打印出账单。
求球的表面积
计算球体的表面积和体积。从键盘上输入球的半径,输出球的表面积和体积(1个英文空格隔开)。
球体表面积是指球面所围成的几何体的面积,它包括球面和球面所围成的空间,球体表面积的计算公式为S=4πr²。
半径是R的球的体积计算公式是: 。
参考编程模板,参考输入输出示例,完善程序。
输入输出示例
输入 输出 示例 1 2 50.24 33.49
两点间距离公式
两点间距离公式常用于函数图形内求两点之间距离、求点的坐标的基本公式,是距离公式之一。两点间距离公式叙述了点和点之间距离的关系。
设两个点A、B以及坐标分别为,则A和B两点之间的距离为:
请输入4个数字(用空格分隔),分别表示x1、y1、x2、y2, 计算距离(保留2位小数输出)。
参考编程模板,参考输入输出示例,完善程序。
输入输出示例
输入 输出 示例 1 1 2 3 4 2.83 示例 2 1 1 2 2 1.14
字符串处理
假设我们从控制台获取的订单用字符串表示为 s=“堂吃_老北京炸酱面+1_口味:辣”),怎样从订单中去提取有用信息 ?
1) 打印字符串s
2)获取字符串s长度
3)为字符串s忽略前导空白和尾部空白
4)获取字符串s中前两个字符(堂吃/外卖)
5)获取字符串最后一个字符(辣/否)
6)替换字符串中的(堂吃/外卖)为(需打包/无需打包)
7)查询字符串中有无“+1”,如有打印信息:“该订单的面量请加1”,否则打印:"该订单正常面量"
8)假设我们用另一个字符串表示已有订单:
total_s = "堂吃_老北京炸酱面+1_口味:辣 外卖_老济南打卤面+1_口味:否 堂吃_台南蛋仔面+1_口味:辣"
编写代码将字符串s加至已有的字符串total_s后面
9)拆分现在的字符串total_s 打印所有的订单信息
任务四 流程控制语句
密码验证
用if...else语句实现用户登录功能。程序运行时用户输入用户名和密码,然后判断用户名和密码是否均为admin,如果是,则输出“登录成功!”;否则,输出“用户名和密码不正确,登录失败!
判断闰年
输入一个年份,判断它是不是闰年。
闰年是公历中的名词。 普通年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年,1999年不是闰年); 世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年);
成绩录入
从键盘接收用户输入的成绩分数a,如果90<=a<100,输出“该同学的成绩为A”,如果80<=a<90,输出“该同学的成绩为B”,如果60<=a<80,输出“该同学的成绩为C”,如果其他情况,输出“该同学的成绩为D”.
数列的计算
1)编写程序,求101+102+...+200的值
2)编写程序:求1-2+3-4+5-...+99-100的值
3)编写程序,求1+2+4+...+64的值
圆周率的计算
借助图片中的公式,计算pi的值:
求水仙花数
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
请利用for循环 打印出所有的水仙花数。
求四位玫瑰数
学员的数量
编写程序解决问题:2006年培养学员8万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?
猜数字游戏
循环猜数字游戏:程序中设置一个0-100的的数,接收用户输入,如果用户输入的数比这个数大,就提示"你输入的数值偏大",如果用户输入的比这个数小,就提示"您输入的数值偏小",反复进行,直到用户猜对为止。
打印九九乘法表
任务五 使用数组进行存储
菜品评分
商院面馆开通了餐品评分功能,假设餐品一共有5种,评分分别为:4.2,4.8,3.6,5,4.8
请你定义一个数组来存储评分,并打印出最高评分、最低评分、评分个数 和平均得分。
菜品群评
商院面馆开通了餐品评分功能,假设餐品一共有5种,共有3位顾客参与评分,
请你定义一个二维数组来存储评分,并计算出每个餐品的平均得分。
任务六 结构化程序设计
手机话费
某电信公司设计了一个手机话费套餐,套餐价格为58元/月,套餐国内免费通话时长为250min,超出部分按0.25元/min分收费;提供免费流量为50MB,超出部分按0.3元/MB收费,
输入:用户的实际通话时长 和实际数据流量;
输出:该用户本月的实际话费。
任务三 面向对象初步
创建商品类
运行一下“定义Java类”一节后面的代码,完成以下练习:
1)在main中新建一个面条类的对象n2 ,
2)尝试为面条类添加新的属性(口味、重量、颜色等),并打印出面条对象n2的这些属性
3)为为面条类添加两个新方法 更改商品名称的方法setName, 更改数量的方法 setNum ,并为面条对象n2执行这些方法。
创建用户类
1)请问你的项目建立一个用户类User,用来描述用户的信息,并创建一个这个类的对象u1
2)为你的用户类添加至少3个属性(用户名,密码和电子邮箱),并打印出对象u1的这3个属性;为你的用户类添加包括toString方法在内的3个成员方法,如查看密码、修改密码等,并调用对象u1的这些方法。
3)为你的用户类添加2个有参数的构造方法,并分别用这两个构造方法创建新对象u2和u3 ,打印u2和u3的toString信息。
创建银行卡类
创建银行卡类Card,具体要求
(1)Card类包含卡号no、户主名name、余额balance三个私有化成员变量。
(2)提供三个私有化成员变量的getter和setter方法,并满足余额不能小于0。若余额小于0时默认设置为0。
(3)在Card类中重写toString()方法,按“卡号,户主名,余额”格式返回银行卡的详细信息。 例如:620012,李四,3000
(4) 继续创建CardTest测试类,该类中存在main方法。在main方法中实现: ① 用Card的无参构造方法创建一张银行卡card1,然后给card1成员变量赋值,之后再控制台输出card1的详细信息。
任务七 JAVA面向对象编程(二)
商品范围的扩展
现在商院面馆要扩大经营范围,在原有面条产品线的基础上增加了黄焖鸡米饭,请设计米饭类Rice,
1) 该类至少有4个成员变量:名称,价格,数量,大/小份
2)设计针对成员变量价格和数量的读方法和写方法,价格不能小于等于0,数量不能小于0
3)设计该类有参数和无参数的构造方法各一个,
4)在main方法里,用Rice的带参数构造方法创建一份米饭商品r2,然后在控制台输出r2的详细信息
用户类的延伸
已知User类,如何编写它的子类AdminUser ,新增添电话号码的变量 和展示电话号码的方法
答案
任务一 搭建开发环境及JAVA语言
命令行运行Java程序
请叙述一下在命令提示符窗口运行JAVA应用程序的过程。
Eclipse上运行Java程序
请叙述一下 在Eclipse 上新建一个项目的步骤,并编写程序,打印你的姓名和学号。
格式化输出
请运用Java有关知识,打印商苑面馆的购物小票
* 老北京炸酱面 数量 1 价格 12.00 , 合计12.00 * 兰州牛肉拉面 数量 2 价格 15.00 , 合计30.00
public class Mianguan { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("商院面馆"); int n =6;float price=12.0f; System.out.printf("老北京炸酱面数量: %d 价格 : %f",n,price); } }
汇率计算器
按照IPO流程,编写Java程序,输入人民币数量,根据当天外汇牌价,计算可兑换美元数量。
面馆点餐
商院面馆: 招牌牛肉面和酸梅汤,牛肉面10元/碗,酸梅汤 3元/碗
程序的作用是询问点餐的顾客 点几碗牛肉面 和 几杯酸梅汤,然后在控制台上打印出账单。
package task2; import java.util.Scanner; public class Variable { public static void main(String[] args) { // TODO Auto-generated method stub //第一步,获得用户输入 Scanner sc = new Scanner(System.in); System.out.print("请问您想点几碗牛肉面:"); int num1 =sc.nextInt(); System.out.print("请问您想点几杯酸梅汤:"); int num2 =sc.nextInt(); sc.close(); //第二步,计算账单金额 float price1=10.0f;float price2 =3.0f; float sum = price1*num1+price2*num2;//计算总金额 //第三步,输出账单金额 System.out.printf("您点了%d碗牛肉面,%d杯酸梅汤,一共 %.2f元",num1,num2,sum); } }
求球的表面积
计算球体的表面积和体积。从键盘上输入球的半径,输出球的表面积和体积(1个英文空格隔开)。
球体表面积是指球面所围成的几何体的面积,它包括球面和球面所围成的空间,球体表面积的计算公式为S=4πr²。
半径是R的球的体积计算公式是: 。
参考编程模板,参考输入输出示例,完善程序。
输入输出示例
输入 输出 示例 1 2 50.24 33.49
两点间距离公式
两点间距离公式常用于函数图形内求两点之间距离、求点的坐标的基本公式,是距离公式之一。两点间距离公式叙述了点和点之间距离的关系。
设两个点A、B以及坐标分别为,则A和B两点之间的距离为:
请输入4个数字(用空格分隔),分别表示x1、y1、x2、y2, 计算距离(保留2位小数输出)。
参考编程模板,参考输入输出示例,完善程序。
输入输出示例
输入 输出 示例 1 1 2 3 4 2.83 示例 2 1 1 2 2 1.14
字符串处理
假设我们从控制台获取的订单用字符串表示为 s=“堂吃_老北京炸酱面+1_口味:辣”),怎样从订单中去提取有用信息 ?
1) 打印字符串s
2)获取字符串s长度
3)为字符串s忽略前导空白和尾部空白
4)获取字符串s中前两个字符(堂吃/外卖)
5)获取字符串最后一个字符(辣/否)
6)替换字符串中的(堂吃/外卖)为(需打包/无需打包)
7)查询字符串中有无“+1”,如有打印信息:“该订单的面量请加1”,否则打印:"该订单正常面量"
8)假设我们用另一个字符串表示已有订单:
total_s = "堂吃_老北京炸酱面+1_口味:辣 外卖_老济南打卤面+1_口味:否 堂吃_台南蛋仔面+1_口味:辣"
编写代码将字符串s加至已有的字符串total_s后面
9)拆分现在的字符串total_s 打印所有的订单信息
任务四 流程控制语句
密码验证
用if...else语句实现用户登录功能。程序运行时用户输入用户名和密码,然后判断用户名和密码是否均为admin,如果是,则输出“登录成功!”;否则,输出“用户名和密码不正确,登录失败!
import java.util.Scanner; public class Login { public static void main(String[] args) { // TODO Auto-generated method stub Scanner s= new Scanner(System.in); System.out.println("请输入用户名:"); String name=s.next(); System.out.println("请输入密码:"); String password=s.next(); if(name.equals("admin")&&password.equals("admin")){ System.out.println("登录成功!");} else{ System.out.println("用户名和密码不正确,登录失败!"); } s.close(); } }
判断闰年
输入一个年份,判断它是不是闰年。
闰年是公历中的名词。 普通年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年,1999年不是闰年); 世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年);
package task4; import java.util.Scanner; public class RunNian { public static void main(String[] args) { // TODO Auto-generated method stub // TODO Auto-generated method stub Scanner s= new Scanner(System.in); System.out.println("请输入年份(2001-2099):"); int year=s.nextInt(); if(year%100!=0&&year%4==0){ System.out.println(year+"是闰年");} else{ System.out.println(year+"不是闰年"); } s.close(); } }
成绩录入
从键盘接收用户输入的成绩分数a,如果90<=a<100,输出“该同学的成绩为A”,如果80<=a<90,输出“该同学的成绩为B”,如果60<=a<80,输出“该同学的成绩为C”,如果其他情况,输出“该同学的成绩为D”.
数列的计算
1)编写程序,求101+102+...+200的值
2)编写程序:求1-2+3-4+5-...+99-100的值
3)编写程序,求1+2+4+...+64的值
圆周率的计算
借助图片中的公式,计算pi的值:
求水仙花数
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
请利用for循环 打印出所有的水仙花数。
Python:
for n in range(100,200): i = n // 100 j = n // 10 % 10 k = n % 10 if n == i ** 3 + j ** 3 + k ** 3: print(n)
求四位玫瑰数
Python:
for i in range(1000, 10000): t = str(i) a=eval(t[0]) b= eval(t[1]) c= eval(t[2]) d=eval(t[3]) if pow(a,4) + pow(b,4) + pow(c,4)+ pow(d,4) == i : print("这是一个玫瑰数:"+str(i))
学员的数量
编写程序解决问题:2006年培养学员8万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?
猜数字游戏
循环猜数字游戏:程序中设置一个0-100的的数,接收用户输入,如果用户输入的数比这个数大,就提示"你输入的数值偏大",如果用户输入的比这个数小,就提示"您输入的数值偏小",反复进行,直到用户猜对为止。
打印九九乘法表
Python实现:
for i in range(1,10): for j in range(1,i+1): print("{}*{}={}\t".format(j,i,i*j),end = '') print("")
任务五 使用数组进行存储
菜品评分
商院面馆开通了餐品评分功能,假设餐品一共有5种,评分分别为:4.2,4.8,3.6,5,4.8
请你定义一个数组来存储评分,并打印出最高评分、最低评分、评分个数 和平均得分。
菜品群评
商院面馆开通了餐品评分功能,假设餐品一共有5种,共有3位顾客参与评分,
请你定义一个二维数组来存储评分,并计算出每个餐品的平均得分。
任务六 结构化程序设计
手机话费
某电信公司设计了一个手机话费套餐,套餐价格为58元/月,套餐国内免费通话时长为250min,超出部分按0.25元/min分收费;提供免费流量为50MB,超出部分按0.3元/MB收费,
输入:用户的实际通话时长 和实际数据流量;
输出:该用户本月的实际话费。
任务三 面向对象初步
创建商品类
运行一下“定义Java类”一节后面的代码,完成以下练习:
1)在main中新建一个面条类的对象n2 ,
2)尝试为面条类添加新的属性(口味、重量、颜色等),并打印出面条对象n2的这些属性
3)为为面条类添加两个新方法 更改商品名称的方法setName, 更改数量的方法 setNum ,并为面条对象n2执行这些方法。
创建用户类
1)请问你的项目建立一个用户类User,用来描述用户的信息,并创建一个这个类的对象u1
2)为你的用户类添加至少3个属性(用户名,密码和电子邮箱),并打印出对象u1的这3个属性;为你的用户类添加包括toString方法在内的3个成员方法,如查看密码、修改密码等,并调用对象u1的这些方法。
3)为你的用户类添加2个有参数的构造方法,并分别用这两个构造方法创建新对象u2和u3 ,打印u2和u3的toString信息。
public class User { public String name; public String pwd; public String email; public String getPwd() { return this.pwd; } public void setPwd(String newPwd) { this.pwd = newPwd; } public String toString() { return "用户名:"+this.name + " 密码: "+this.pwd + " email "+this.email; } public User() { } public User(String n) { this.name = n; } public User(String n,String p,String e) { this.name = n; this.pwd = p; this.email = e; } public static void main(String[] args) { // TODO Auto-generated method stub User u1 = new User(); System.out.println(u1); u1.name="maxin"; u1.pwd="000000"; u1.email="maxin5452@163.com"; System.out.println(u1.name); System.out.println(u1.getPwd()); u1.setPwd("111111"); System.out.println(u1.toString()); User u2 = new User("小张","222222","zhang@163.com"); System.out.println(u2.toString()); } }
创建银行卡类
创建银行卡类Card,具体要求
(1)Card类包含卡号no、户主名name、余额balance三个私有化成员变量。
(2)提供三个私有化成员变量的getter和setter方法,并满足余额不能小于0。若余额小于0时默认设置为0。
(3)在Card类中重写toString()方法,按“卡号,户主名,余额”格式返回银行卡的详细信息。 例如:620012,李四,3000
(4) 继续创建CardTest测试类,该类中存在main方法。在main方法中实现: ① 用Card的无参构造方法创建一张银行卡card1,然后给card1成员变量赋值,之后再控制台输出card1的详细信息。
任务七 JAVA面向对象编程(二)
商品范围的扩展
现在商院面馆要扩大经营范围,在原有面条产品线的基础上增加了黄焖鸡米饭,请设计米饭类Rice,
1) 该类至少有4个成员变量:名称,价格,数量,大/小份
2)设计针对成员变量价格和数量的读方法和写方法,价格不能小于等于0,数量不能小于0
3)设计该类有参数和无参数的构造方法各一个,
4)在main方法里,用Rice的带参数构造方法创建一份米饭商品r2,然后在控制台输出r2的详细信息
用户类的延伸
已知User类,如何编写它的子类AdminUser ,新增添电话号码的变量 和展示电话号码的方法