四道编程题

package javaUnitTest;


public class Q1 {
// 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
public static void main(String[] args) {
double fz = 2,fm = 1,sum=0;
for(int i=1;i<=20;i++){
sum+=fz/fm;
double temp = fz;
fz = fm+fz;
fm = temp;
}
System.out.println(sum);
}

}



-----------------------------------------------------我是分割线-------------------------------------------------------------------

package javaUnitTest;


public class Q2 {
// 实现一个名为Person的类和它的子类,Employee, Manager是Employee的子类。
// 设计一个接口Add用于涨工资,普通员工一次能涨10%,经理能涨20%。
// 具体要求如下:
// (1)Person类中的属性有:姓名name(String类型),地址address(String类型)并写出该类的构造方法;
// (2)Employee类中的属性有:工号ID(String型),工资wage(double类型),工龄(int型),写出该类的构造方法;
// (3)Manager类中的属性有:级别level(String类型),写出该类的构造方法;
// 编写一个测试类,产生一个员工和一个经理并输出其具有的信息。

public static void main(String[] args) {
Q2 q= new Q2();
Employee e = q.new Employee("e001", 3000, 1);
Manager m =q.new Manager("副经理");
e.setAddress("关谷");
e.setName("zhang3");

m.setAddress("首尔");
m.setAge(2);
m.setID("m001");
m.setName("li4");
m.setWage(6000);
e.add();
m.add();
System.out.println(e.getWage());
System.out.println(m.getWage());


}
interface Add{
void add();
}
class Person{
private String name;
private String address;
public Person() {
// TODO Auto-generated constructor stub
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}

}
class Employee extends Person implements Add{
private String ID;
private double wage;
private int age;
public Employee() {
// TODO Auto-generated constructor stub
}
public Employee(String ID,double wage,int age) {
this.ID = ID;
this.wage = wage;
this.age = age;
}
public String getID() {
return ID;
}
public void setID(String iD) {
ID = iD;
}
public double getWage() {
return wage;
}
public void setWage(double wage) {
this.wage = wage;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public void add() {
// TODO Auto-generated method stub
this.wage*=1.1;
}

}
class Manager extends Employee{
private String level;


public String getLevel() {
return level;
}


public void setLevel(String level) {
this.level = level;
}
public Manager() {
// TODO Auto-generated constructor stub
}
public Manager(String level) {
this.level = level;
}
@Override
public void add() {
// TODO Auto-generated method stub
setWage(getWage()*1.2);
}
}


}

-----------------------------------------------------我是分割线-------------------------------------------------------------------

package javaUnitTest;


public class Q3 {
public static void main(String[] args) {
String s ="123eqe啦啦啦90123";
int num1=0,numa=0,numz=0;

char c[] = s.toCharArray();
for (int i = 0; i < c.length; i++) {
if(c[i]>='0'&&c[i]<='9'){
num1++;
}else if(c[i]>='a'&&c[i]<='z'||c[i]>='A'&&c[i]<='Z'){
numa++;
}else if(c[i]>=0x4e00&&c[i]<=0x9fbb){
numz++;
}
}
System.out.println("数字有:"+num1);
System.out.println("字母有:"+numa);
System.out.println("中文有:"+numz);
}
}

-----------------------------------------------------我是分割线-------------------------------------------------------------------

public class Q4 {
// 已知字符串:"this is a test of java".
// 按要求执行以下操作:
// (1) 统计该字符串中字母s出现的次数
// (2) 取出子字符串"test"
// (3) 用多种方式将本字符串复制到一个字符数组Char[] str中.
// (4) 将字符串中每个单词的第一个字母变成大写, 输出到控制台。
// (5) 用两种方式实现该字符串的倒叙输出。(用StringBuffer和for循环方式分别实现)
// (6) 将本字符串转换成一个字符串数组,要求每个数组元素都是一个有意义的额英文单词,并输出到控制台



public static void main(String[] args) {
String s = "this is a test of java";
int nums = 0;
// (1) 统计该字符串中字母s出现的次数
char[] c = s.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == 's')
nums++;
}
System.out.println("s字符有:" + nums);
// (2) 取出子字符串"test"
int testIndex = 0;
testIndex = s.indexOf("test");
System.out.println(s.substring(testIndex, testIndex + 4));
// (3) 用多种方式将本字符串复制到一个字符数组Char[] str中.
char[] str = new char[s.length()];
for (int i = 0; i < str.length; i++) {
str[i] = s.charAt(i);
}
// (4) 将字符串中每个单词的第一个字母变成大写, 输出到控制台。
String[] ss = s.split(" ");
for (int i = 0; i < ss.length; i++) {
System.out.print(Character.toUpperCase(ss[i].charAt(0)) + ss[i].substring(1) + " ");
}
System.out.println();
// (5) 用两种方式实现该字符串的倒叙输出。(用StringBuffer和for循环方式分别实现)
for (int i = 0; i < c.length; i++) {
System.out.print(c[c.length - i - 1]);
}
System.out.println();
StringBuffer sb = new StringBuffer(s);
sb = sb.reverse();
for (int i = 0; i < sb.length(); i++) {
System.out.print(sb.charAt(i));
}
System.out.println();
// (6) 将本字符串转换成一个字符串数组,要求每个数组元素都是一个有意义的额英文单词,并输出到控制台


for (int i = 0; i < c.length; i++) {
System.out.print(c[i]);
}
System.out.println();
}


}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轩渃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值