(一)题目描述
给一个不多于5位的正整数。
(1)求它是几位数
(2)逆序打印出各位数字
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个不多于5位的正整数:");
int num = sc.nextInt();
String str = String.valueOf(num);
System.out.println("它是" + str.length() + "位数");
char[] nums = str.toCharArray();
System.out.print("逆序打印为:");
for(int i = str.length()-1 ; i >= 0 ; i--)
{
System.out.print(nums[i]);
}
}
}
(二)题目描述
编写一个类并验证它是否有效,该类包含一 维数组成员变量、完成数组的赋值与输出。
class test{
int[] nums = new int[5];
}
public class Main{
public static void main(String[] args) {
test t = new test();
for (int i = 0; i < t.nums.length; i++) {
t.nums[i] = i;
}
for (int i = 0; i < t.nums.length; i++) {
System.out.println(t.nums[i]);
}
}
}
(三)题目描述
实现一个工资查询的程序。
工资查询人员一共包含三类:项目经理(Manager) 、高级程序员(SeniorProgrammer)、程序员(Programmer)
其中每月基础工资为5000元。高级程序员和项目经理在基础工资的基础上有5000员的绩效工资,同时,每月项目经理有5000元的奖金。
在以上程序的基础上增加额外加班费的计算,每月约计28天,其中正常工作日为20天,其中8天是公共休息日。
输入加班天数(小于等于8天),将 总月薪给输出出来。其中加班费:项目经理800元/天,高级程序员500元/天,程序员200员/天。
interface Factory{
int searchSalary(String position);
int workTime(int day, String position);
}
class Manager implements Factory{
@Override
public int searchSalary(String position){
int salary = 15000;
System.out.println(position + "正常的工资为: " + salary);
return salary;
}
@Override
public int workTime(int day, String position){
int salary = 15000;
int final_salary = salary + 800 * day;
System.out.println(position + "加班后的工资为: " + final_salary);
return final_salary;
}
}
class SeniorProgrammer implements Factory{
@Override
public int searchSalary(String position){
int salary = 10000;
System.out.println(position + "正常的工资为: " + salary);
return salary;
}
@Override
public int workTime(int day, String position){
int salary = 10000;
int final_salary = salary + 500 * day;
System.out.println(position + "加班后的工资为: " + final_salary);
return final_salary;
}
}
class Programmer implements Factory{
@Override
public int searchSalary(String position){
int salary = 5000;
System.out.println(position + "正常的工资为: " + salary);
return salary;
}
@Override
public int workTime(int day, String position){
int salary = 5000;
int final_salary = salary + 200 * day;
System.out.println(position + "加班后的工资为: " + final_salary);
return final_salary;
}
}
class FactoryImpl{
public void useBegin(Factory fac,String position) {
fac.searchSalary(position);
}
public void useFinal(Factory fac,int day, String position) {
fac.workTime(day, position);
}
}
public class Main {
public static void main(String[] args) {
FactoryImpl f = new FactoryImpl();
f.useBegin(new Manager(), "项目经理");
f.useFinal(new Manager(), 6, "项目经理");
f.useBegin(new SeniorProgrammer(), "高级程序员");
f.useFinal(new SeniorProgrammer(), 7, "高级程序员");
f.useBegin(new Programmer(), "程序员");
f.useFinal(new Programmer(), 8, "程序员");
}
}
(四)题目描述
利用接口做参数,写个计算器,能完成加减乘除运算。
interface Computer{
int computer(int n, int m);
}
class Add implements Computer{
@Override
public int computer(int n, int m) {
int value = n + m;
System.out.println("n + m = " + value);
return value;
}
}
class Sub implements Computer{
@Override
public int computer(int n, int m) {
int value = n - m;
System.out.println("n - m = " + value);
return value;
}
}
class Multiply implements Computer{
@Override
public int computer(int n, int m) {
int value = n * m;
System.out.println("n * m = " + value);
return value;
}
}
class Divide implements Computer{
@Override
public int computer(int n, int m) {
if(m != 0) {
int value = n / m;
System.out.println("n / m = " + value);
return value;
}else {
System.out.println("分母不能为零");
return 0;
}
}
}
class UseCompute{
public UseCompute(int n, int m) {
System.out.println("n的值为:" + n + ",m的值为:" + m);
}
public void useCom(Computer com, int n, int m) {
com.computer(n, m);
}
}
public class Main {
public static void main(String[] args) {
UseCompute uc = new UseCompute(20, 10);
uc.useCom(new Add(), 20, 10);
uc.useCom(new Sub(), 20, 10);
uc.useCom(new Multiply(), 20, 10);
uc.useCom(new Divide(), 20, 10);
}
}