CoreJava各章节作业
第一章
1、安装并部署好MyEclipse、JDK开发环境(JDK搭建三遍,第二、第三遍可走流程即可),在MyEclipse中设置好当前所安装好的JRE环境
2、使用记事本创建一个java类文件,并在cmd命令中编译运行此文件输出“Java有什么难的,这不就出来了嘛,加油”
第二章
1、分析如下语句,判断第 (1)、(2) 条语句的正确性,并分析原因 byte a = 1;
a = a+1; (1)
a += 1; (2) 2、一个java合法标示符应满足哪些条件? 3、使用java局部变量应注意那几点?
4、请举例说明条件运算符的计算规则 1 ? 2 : 3 5、请举例说明++、--运算符的计算规则
6、Java的八种基本数据类型分别是什么?各在内存中占多少位的空间?
第三章
自选百分之五十,理解。抄的-5分。没写-3(又没写又提不出问题) 1、自定义业务需求,分别对分支流程、顺序流程、循环流程进行描述
2、用户在控制台输入一个整数,请输出该整数的阶乘 例如:6!=6*5*4*3*2*1 分析:1、知道要做什么 阶乘 thinking java 问题:
什么是阶乘? OK
求阶乘的数据来源?从控制台输入整数 设计阶乘代码实现的思路?
技术选择:循环?for
5! = 5*4*3*2*1;
1—5 for(int i = 1;i<=5;i++) 2、怎么做
从控制台输入一个整数 判断输入的整数是否大于1 是:
1 / 4
计算阶乘 不是:
提示用户输入错误
3、输出九九乘法表 1x1=1
1x2=2 2x2=4
1x9=9 9x9=81
4、水仙花数:各位数字的立方数相加等于该数本身。例如 153 1*1*1+5*5*5+3*3*3=153,那么153就是一个三位水仙花数。请编程输出所有的三位水仙花数 分析:
1、要做什么? 输出所有的三位水仙花数
何谓水仙花数?要确保是3位(100---999) 2、怎么做?
1、循环遍历100-999之间的每一个数 for(int i = 100;i<=999;i++){ // i
} 2、对1中的每一个遍历的数字取出其各位上的数字(个位、十位、百位) 个位a:该数(i)对 10 取模
十位b:该数对 10 取整,然后再对10取模 百位c:该数对 100 取整
3、验证该数是否是水仙花数 axaxa + bxbxb + cxcxc = 该数
5、计算圆周率
中国古代数学家研究出了计算圆周率最简单的办法: PI=+4/1-4/3+4/5-4/7+4/9-4/11+4/13-4/15+4/17、、、、、、
这个算式的结果会无限接近于圆周率的值,我国古代数学家祖冲之计算出,圆周率在3、1415926和3、1415927之间,请编程计算,要想得到这样的结果,他要经过多少次加减法运算? 伪代码:自然语言和代码相结合进行分析设计的记录,伪代码不能直接运行 分析:
doublepi = 0.0; int num = 0; While(true){
num++; // num = 1 2 3 if(num % 2 != 0){ // 基数次遍历
pi += 4/(2*num-1); }else{
Pi -= 4/(2*num-1); }
If(3.1415926 2 / 4 break; } } System.out.println(num-1); 6、如果一个数等于其所有因子(除自身外能被整除的数都是因子)之和,我们就称这个数为\完数\,例如 6的因子为1,2,3 而6=1+2+3 所以6就是一个完数。请编程打印出1000以内所有的完数 分析:需要从1-1000之间取出每一个数,然后去判断这个数是不是完数 提取一个函数:判断任意一个数是否是完数,是:返回true,不是:返回false 取到某个数的所有因子之和,然后和当前数去比较,如果相等就是完数 For(1---1000){ If( judgeWanshu(i)){ i } } Function boolean judgeWanshu(int num){ Int r = getSumYz(num); If(num == r){ // 是完数 Return true; } } Function intgetSumYz(int num){ Return 因子之和; 6(1-5) } 早上上课: 闹钟响?起床?个人卫生?早餐?过马路去教室?进教室 7、验证歌德巴赫猜想,输入一个大于6的偶数,请输出这个偶数能被分解为哪两个质数之和 如: 10=3+7 12=5+7 质数:除了1和自身,不能被任何数整除的数 分析: 提取出:判断给定的数是否是质数 12 = 5 + (12-5) 1+11 2+10 3+9 4+8 5+7 6+6 第四章 1、项目名称:Bank Account Management System 银行账户管理系统简称BAM 项目描述:这是一个银行账户管理系统,用户可以通过ATM终端界面来操作自己的银行账户。 3 / 4 练习:(面向对象基础语法) 写一个账户类(Account) 属性: id:账户号码 password:账户密码 name:真实姓名 personId:身份证号码字符串类型 email:客户的电子邮箱 balance:账户余额 方法: deposit:存款方法,参数是double型的金额 withdraw:取款方法,参数是double型的金额 构造方法: 有参和无参,有参构造方法用于设置必要的属性 2、某公司的雇员分为以下若干类: Employee:这是所有员工总的父类 属性:员工的姓名,员工的生日月份。 方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额 外奖励100元。 SalariedEmployee:Employee的子类,拿固定工资的员工。属性:月薪 HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160小时的部分按照 1.5倍工资发放。属性:每小时的工资、每月工作的小时数 SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、 提成率 BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员,工资由底薪加上销售 提成部分。属性:底薪。 请写一个程序,把若干各种类型的员工放在一个Employee数组里,写一个函数,打印出某月每个员工的工资数额。注意:要求把每个类都做成完全封装,不允许非私有化属性。 4 / 4