“Java百题百练”的版本间的差异
(未显示同一用户的29个中间版本) | |||
第1行: | 第1行: | ||
− | == | + | ==任务一 搭建开发环境及JAVA语言== |
+ | |||
===命令行运行Java程序=== | ===命令行运行Java程序=== | ||
请叙述一下在命令提示符窗口运行JAVA应用程序的过程。 | 请叙述一下在命令提示符窗口运行JAVA应用程序的过程。 | ||
第7行: | 第8行: | ||
===格式化输出=== | ===格式化输出=== | ||
+ | 请运用Java有关知识,打印商苑面馆的购物小票 | ||
+ | |||
+ | ==任务二 JAVA程序开发基础== | ||
+ | |||
+ | ===汇率计算器=== | ||
+ | |||
+ | 按照IPO流程,编写Java程序,输入人民币数量,根据当天外汇牌价,计算可兑换美元数量。 | ||
+ | |||
+ | ===面馆点餐=== | ||
+ | |||
+ | 商院面馆: 招牌牛肉面和酸梅汤,牛肉面10元/碗,酸梅汤 3元/碗 | ||
+ | |||
+ | 程序的作用是询问点餐的顾客 点几碗牛肉面 和 几杯酸梅汤,然后在控制台上打印出账单。 | ||
+ | |||
+ | ===求球的表面积=== | ||
+ | 计算球体的表面积和体积。从键盘上输入球的半径,输出球的表面积和体积(1个英文空格隔开)。 | ||
+ | |||
+ | 球体表面积是指球面所围成的几何体的面积,它包括球面和球面所围成的空间,球体表面积的计算公式为S=4πr²。 | ||
+ | |||
+ | 半径是R的球的体积计算公式是: [[文件:python10-23.png]]。 | ||
+ | |||
+ | 参考编程模板,参考输入输出示例,完善程序。 | ||
+ | |||
+ | '''输入输出示例''' | ||
+ | |||
+ | <nowiki>输入 输出 | ||
+ | 示例 1 2 50.24 33.49</nowiki> | ||
+ | |||
+ | ===两点间距离公式=== | ||
+ | 两点间距离公式常用于函数图形内求两点之间距离、求点的坐标的基本公式,是距离公式之一。两点间距离公式叙述了点和点之间距离的关系。 | ||
+ | |||
+ | 设两个点A、B以及坐标分别为[[文件:python10-1003.png]],则A和B两点之间的距离为: | ||
+ | |||
+ | [[文件:python10-1002.png]] | ||
+ | |||
+ | 请输入4个数字(用空格分隔),分别表示x1、y1、x2、y2, 计算距离(保留2位小数输出)。 | ||
+ | |||
+ | 参考编程模板,参考输入输出示例,完善程序。 | ||
+ | |||
+ | '''输入输出示例''' | ||
+ | |||
+ | <nowiki>输入 输出 | ||
+ | 示例 1 1 2 3 4 2.83 | ||
+ | 示例 2 1 1 2 2 1.14</nowiki> | ||
+ | |||
+ | ===字符串处理=== | ||
+ | 假设我们从控制台获取的订单用字符串表示为 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,如果是,则输出“登录成功!”;否则,输出“用户名和密码不正确,登录失败! | ||
+ | |||
+ | ===判断闰年=== | ||
+ | 输入一个年份,判断它是不是闰年。 | ||
+ | |||
+ | <nowiki>闰年是公历中的名词。 | ||
+ | 普通年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年,1999年不是闰年); | ||
+ | 世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年);</nowiki> | ||
+ | |||
+ | ===成绩录入=== | ||
+ | 从键盘接收用户输入的成绩分数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的值: | ||
+ | |||
+ | [[文件:Java2020-5-2.png]] | ||
+ | ===求水仙花数=== | ||
+ | 水仙花数是指一个 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有关知识,打印商苑面馆的购物小票 | 请运用Java有关知识,打印商苑面馆的购物小票 | ||
第24行: | 第200行: | ||
}</nowiki> | }</nowiki> | ||
− | ===汇率计算器=== | + | ====汇率计算器==== |
按照IPO流程,编写Java程序,输入人民币数量,根据当天外汇牌价,计算可兑换美元数量。 | 按照IPO流程,编写Java程序,输入人民币数量,根据当天外汇牌价,计算可兑换美元数量。 | ||
− | ===面馆点餐=== | + | ====面馆点餐==== |
商院面馆: 招牌牛肉面和酸梅汤,牛肉面10元/碗,酸梅汤 3元/碗 | 商院面馆: 招牌牛肉面和酸梅汤,牛肉面10元/碗,酸梅汤 3元/碗 | ||
第58行: | 第234行: | ||
} | } | ||
</nowiki> | </nowiki> | ||
− | == | + | ====求球的表面积==== |
− | === | + | |
− | + | 计算球体的表面积和体积。从键盘上输入球的半径,输出球的表面积和体积(1个英文空格隔开)。 | |
+ | |||
+ | 球体表面积是指球面所围成的几何体的面积,它包括球面和球面所围成的空间,球体表面积的计算公式为S=4πr²。 | ||
+ | |||
+ | 半径是R的球的体积计算公式是: [[文件:python10-23.png]]。 | ||
+ | |||
+ | 参考编程模板,参考输入输出示例,完善程序。 | ||
+ | |||
+ | '''输入输出示例''' | ||
+ | |||
+ | <nowiki>输入 输出 | ||
+ | 示例 1 2 50.24 33.49</nowiki> | ||
+ | |||
+ | ====两点间距离公式==== | ||
+ | 两点间距离公式常用于函数图形内求两点之间距离、求点的坐标的基本公式,是距离公式之一。两点间距离公式叙述了点和点之间距离的关系。 | ||
+ | |||
+ | 设两个点A、B以及坐标分别为[[文件:python10-1003.png]],则A和B两点之间的距离为: | ||
+ | |||
+ | [[文件:python10-1002.png]] | ||
+ | |||
+ | 请输入4个数字(用空格分隔),分别表示x1、y1、x2、y2, 计算距离(保留2位小数输出)。 | ||
+ | |||
+ | 参考编程模板,参考输入输出示例,完善程序。 | ||
+ | |||
+ | '''输入输出示例''' | ||
+ | |||
+ | <nowiki>输入 输出 | ||
+ | 示例 1 1 2 3 4 2.83 | ||
+ | 示例 2 1 1 2 2 1.14</nowiki> | ||
+ | |||
+ | ====字符串处理==== | ||
+ | |||
+ | 假设我们从控制台获取的订单用字符串表示为 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,如果是,则输出“登录成功!”;否则,输出“用户名和密码不正确,登录失败! | ||
+ | |||
+ | <nowiki>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(); | ||
+ | } | ||
+ | |||
+ | |||
+ | }</nowiki> | ||
+ | |||
+ | ====判断闰年==== | ||
+ | 输入一个年份,判断它是不是闰年。 | ||
− | + | <nowiki>闰年是公历中的名词。 | |
− | + | 普通年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年,1999年不是闰年); | |
+ | 世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年);</nowiki> | ||
− | + | <nowiki>package task4; | |
− | |||
− | + | import java.util.Scanner; | |
− | |||
− | + | public class RunNian { | |
− | |||
− | |||
public static void main(String[] args) { | public static void main(String[] args) { | ||
// TODO Auto-generated method stub | // 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(); | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
}</nowiki> | }</nowiki> | ||
+ | ====成绩录入==== | ||
+ | 从键盘接收用户输入的成绩分数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的值: | ||
+ | |||
+ | [[文件:Java2020-5-2.png]] | ||
+ | |||
+ | |||
+ | ====求水仙花数==== | ||
+ | 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。 | ||
+ | |||
+ | 请利用for循环 打印出所有的水仙花数。 | ||
+ | |||
+ | Python: | ||
+ | |||
+ | <nowiki>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)</nowiki> | ||
+ | |||
+ | ====求四位玫瑰数==== | ||
+ | Python: | ||
+ | |||
+ | <nowiki>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))</nowiki> | ||
+ | |||
+ | ====学员的数量==== | ||
+ | 编写程序解决问题:2006年培养学员8万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人? | ||
+ | ====猜数字游戏==== | ||
+ | 循环猜数字游戏:程序中设置一个0-100的的数,接收用户输入,如果用户输入的数比这个数大,就提示"你输入的数值偏大",如果用户输入的比这个数小,就提示"您输入的数值偏小",反复进行,直到用户猜对为止。 | ||
+ | ====打印九九乘法表==== | ||
+ | Python实现: | ||
+ | |||
+ | <nowiki>for i in range(1,10): | ||
+ | for j in range(1,i+1): | ||
+ | print("{}*{}={}\t".format(j,i,i*j),end = '') | ||
+ | print("")</nowiki> | ||
+ | ===任务五 使用数组进行存储=== | ||
+ | ====菜品评分==== | ||
+ | 商院面馆开通了餐品评分功能,假设餐品一共有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信息。 | |
− | + | <nowiki> | |
+ | 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) { | public static void main(String[] args) { | ||
// TODO Auto-generated method stub | // 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()); | |
− | + | ||
+ | |||
} | } | ||
} | } | ||
</nowiki> | </nowiki> | ||
+ | |||
+ | ====创建银行卡类==== | ||
+ | 创建银行卡类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 ,新增添电话号码的变量 和展示电话号码的方法 |
2020年4月19日 (日) 03:48的最新版本
目录
任务一 搭建开发环境及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 ,新增添电话号码的变量 和展示电话号码的方法