Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions group22/17457741/src/adress2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
http://www.cnblogs.com/xxp17457741/p/6568230.html
157 changes: 157 additions & 0 deletions group22/17457741/src/secondwork/ArrayUtil.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
package secondwork;


import java.util.Arrays;

import org.junit.Test;

public class ArrayUtil {
public void reverseArray (int [] origin){
int le =origin.length;
int []changedArray=Arrays.copyOf(origin, le);
for (int i=0;i<le;i++)
origin[le-i]=changedArray[i];
}

public int []removeZero(int []oldArray){
int le=oldArray.length;

for(int i=0;i<le;i++)
if(oldArray[i]==0)
le--;

int []newArray=new int[le];
int count=0;
for(int i=0;i<oldArray.length;i++){
if(oldArray[i]!=0){
newArray[count]=oldArray[i];
count++;
}
}
return newArray;
}

public int []merge (int [] array1,int []array2){
int le=array1.length+array2.length;
int [] mergedArray=new int[le];
for(int i=0;i<array1.length;i++)
mergedArray[i]=array1[i];

int count =array1.length;
for(int i=0;i<array2.length;i++)
mergedArray[count++]=array2[i];

return mergedArray;
}

public int []grow(int []oldArray,int size){
int le=oldArray.length+size;
int [] growedArray=new int[le];
for(int i=0;i<oldArray.length;i++){
growedArray[i]=oldArray[i];
}
return growedArray;
}

public int []fibonacci(int max){
int []fibonacci;
if(max==1)
fibonacci=new int[0];
else{
int n1=1,n2=1,sn=0,count=2;
do{
sn=n1+n2;
n1=n2;
n2=sn;
count++;
}while(sn<=max);
fibonacci=new int [count];
fibonacci[0]=1;
fibonacci[1]=1;
for (int i=2;i<count;i++){
int m1=1,m2=1,sm=0;
sm=m1+m2; m1=m2;m2=sm;
fibonacci[i]=sm;
}
}
return fibonacci;

}

public int [] getPrimes(int max){
int a=2,count=0,b=2;
for(int i=1;i<max+1;i++){
if(isPrime(a++)){
count++;
}
}
int []primes=new int [count];
for(int i=0;i<count;i++){
if(isPrime(b++)){
primes[i]=b;
}
}
return primes;
}



private boolean isPrime(int a) {
// TODO Auto-generated method stub
boolean isPrime=true;
for(int i=0;i<Math.sqrt(a);i++){
if(a%i==0)
isPrime=false;
}
return isPrime;
}

public int []getPerfectNumbers(int max){
int a=1,count =0,b=1;
for(int i=1;i<max+1;i++){
if(isPerfectNumber(a++)){
count++;
}
}
int []getPerfectNumber=new int[count];
for(int i=1;i<count;i++){
if(isPerfectNumber(b++)){
getPerfectNumber[i]=b;
}
}
return getPerfectNumber;
}

private boolean isPerfectNumber(int a) {
// TODO Auto-generated method stub
boolean perfectNumber=false;
int count=0,sum=0;
int [] sumOfFactor=new int[100];
for(int i=0;i<Math.sqrt(a);i++){
if(a%i==0)
sumOfFactor[count++]=i;
}
for(int i=0;i<100;i++){
sum+=sumOfFactor[i];
}
if(sum==a)
perfectNumber=true;
return perfectNumber;
}


public static String join(int []array,String sperator){
String output="";
for(int i=0;i<array.length;i++){
output+=array[i];
output+=sperator;
}
output=output.substring(0, array.length*2-1);
return output;
}





}
52 changes: 52 additions & 0 deletions group22/17457741/src/secondwork/ArrayUtilTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package secondwork;

import static org.junit.Assert.*;

import org.junit.Test;

public class ArrayUtilTest {

@Test
public void testReverseArray() {

}

@Test
public void testRemoveZero() {
}

@Test
public void testMerge() {
}

@Test
public void testGrow() {

}

@Test
public void testFibonacci() {

}

@Test
public void testGetPrimes() {

}

@Test
public void testGetPerfectNumbers() {

}

@Test
public void testJoin() {
int []a= {3,4,5,9};
String s="3-4-5-9";
assertEquals(s, ArrayUtil.join(a,"-"));



}

}
38 changes: 38 additions & 0 deletions group22/17457741/src/secondwork/LoginAction.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package secondwork;

public class LoginAction {

private String password;
private String name;
private String message;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String execute() {
if ("test".equals(name) && "1234".equals(password)) {
this.message = "login successful";
return "success";
}
this.message = "failed,please check ";
return "fail";
}

public String getMessage() {
return this.message;
}
}

69 changes: 69 additions & 0 deletions group22/17457741/src/secondwork/Struts.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package secondwork;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;





public class Struts {


public static View runAction(String actionName, Map<String, String> parameters) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException, NoSuchMethodException, SecurityException {
Map<String, StrutsAction> actionMap = StrutsParser.doParse();
StrutsAction action = actionMap.get(actionName);

if (action == null) {
System.out.println("couldn't get action: " + actionName + ", return");
return null;
}

try {
// 通过反射, 创建实例对象
Class<?> actionClass = Class.forName(action.getActionClassName());
Object actionObj = actionClass.newInstance();

// 调用 parameters 中的 set 方法
for (Map.Entry<String, String> parameterEntry : parameters.entrySet()) {
Method[] methods = actionClass.getMethods();
for (Method method : methods) {
if (method.getName().equalsIgnoreCase("set" + parameterEntry.getKey())) {
method.invoke(actionObj, parameterEntry.getValue());
}
}
}

Method executeMethod = actionClass.getMethod("execute");
Object executeResult = executeMethod.invoke(actionObj);

// 根据 execute 方法的结果, 获取 xml 配置的 jsp 页面
String jsp = action.getAttributes().get(Objects.toString(executeResult));


Map<String, String> actionFieldMap = new HashMap<>();
Field[] actionFields = actionClass.getDeclaredFields();
for (Field actionFiled : actionFields) {
Method[] methods = actionClass.getMethods();
for (Method method : methods) {
if (method.getName().equalsIgnoreCase("get" + actionFiled.getName())) {
method.invoke(actionObj);
actionFieldMap.put(actionFiled.getName(), Objects.toString(method.invoke(actionObj)));
}
}
}

View view = new View();
view.setParameters(actionFieldMap);
view.setJsp(jsp);
return view;
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
}
24 changes: 24 additions & 0 deletions group22/17457741/src/secondwork/StrutsAction.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package secondwork;

import java.util.Map;

public class StrutsAction {
private String actionClassName;
private Map<String, String> attributes;

public String getActionClassName() {
return actionClassName;
}

public void setActionClassName(String actionClassName) {
this.actionClassName = actionClassName;
}

public Map<String, String> getAttributes() {
return attributes;
}

public void setAttributes(Map<String, String> attributes) {
this.attributes = attributes;
}
}
Loading