📄 testbyincreament.java
字号:
package tomato;
//显示的购买者人数 还有问题!!!!!!!!!!!!!!!!!!
public class TestbyIncreament extends TestAuto {
protected static int[][] map = new int[MapBound.GetBound()][MapBound.GetBound()];
public TestbyIncreament(){
for(int i = 0; i < MapBound.GetBound(); i++){
for(int j = 0; j < MapBound.GetBound(); j++){
map[i][j] = 0;
}
}
}
public static void SetRandomPurchasers(Book book,int maxper,int count,Purchaser[] pArr){
//自动产生购买者,一次一个
// System.out.print("5.Please input how many purchaser your want to input: ");
Alliance.incrementNumber = 1 ; //SavitchIn.readInt();or random
for (int i = 0; i < Alliance.incrementNumber; i++){
boolean IsreasonablePoint = false;
while (!IsreasonablePoint){
int req = (int)(Math.random()*maxper+1);
int lon = (int)(Math.random()*MapBound.GetBound());
int lat = (int)(Math.random()*MapBound.GetBound());
if (map[lon][lat] == 0){ //数组有越界!!!!!!!!!!!!!!!!!
System.out.print(req+" ");
System.out.print("("+lon+",");
System.out.print(lat+")");
System.out.println();
pArr[count+i] = new SinglePerson(new Location(lon,lat),book,req);
map[lon][lat] = req;
IsreasonablePoint = true;
}
}
}
}
public static void RandomTest(Bookstore bookstore,Book book,int maxper,double perKmFreight){
//递增测试。失败者进入记录,后来递增失败时与前面的记录一起再测试一次,若失败则一起加进记录中。
Purchaser[] pArr = new Purchaser[1000];
Location Alliancelocation = new Location(0,0);
Alliance cTest = new Alliance(Alliancelocation,book,0);
int count = 0;
boolean isContinue = true;
while (isContinue){
SetRandomPurchasers(book,maxper,count,pArr);
for (int i = 0; i < Alliance.incrementNumber; i++){
cTest.Add(pArr[count+i]);
}
cTest.EstablishAlliance(bookstore,perKmFreight);
System.out.println();
if ( cTest.IsAllianceReasonable(bookstore,perKmFreight) ){
count += Alliance.incrementNumber;
System.out.println();
System.out.println("The Alliance is reasonable!");
cTest.Display(bookstore,perKmFreight);
}
else {
System.out.println("The Alliance is NOT reasonable!");
for (int i = 0; i < Alliance.incrementNumber; i++){
cTest.Remove(pArr[count+i]);
if ( Alliance.d_wantjoinmember.size() != 0){
for(int index = 0; index < Alliance.d_wantjoinmember.size(); index++){
cTest.Add((Purchaser)Alliance.d_wantjoinmember.elementAt(index));
}
cTest.Add(pArr[count+i]);
cTest.EstablishAlliance(bookstore,perKmFreight);
System.out.println();
if ( cTest.IsAllianceReasonable(bookstore,perKmFreight) ){
count += Alliance.incrementNumber;
count += Alliance.d_wantjoinmember.size();
for(int index = 0; index < Alliance.d_wantjoinmember.size(); index++){
Alliance.d_wantjoinmember.removeElement((Purchaser)Alliance.d_wantjoinmember.elementAt(index));
}
System.out.println();
System.out.println("The Alliance is reasonable!");
cTest.Display(bookstore,perKmFreight);
}
else {
cTest.Remove(pArr[count+i]);
for(int index = 0; index < Alliance.d_wantjoinmember.size(); index++){
cTest.Remove((Purchaser)Alliance.d_wantjoinmember.elementAt(index));
}
Alliance.d_wantjoinmember.addElement(pArr[count+i]);
}
}
else
Alliance.d_wantjoinmember.addElement(pArr[count+i]);
}
System.out.println("The join is failed!");
}
System.out.println();
}
}
public static void Test(){
Alliance.SetMapBound();
Alliance.SetBookstore();
RandomTest(Alliance.d_bookstore,Alliance.d_bookstore.SelectBook(Alliance.SettargetBook()),Alliance.Setmaxper(),Bookstore.SetperKmFreight());
}
public static void main(String[]args){
Test();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -