package p1;
public class Salesperson implements Comparable<Salesperson>
{
private String id="0000";
private String name="张三";
private double sales1=0;
private double sales2=0;
private double sales3=0;
private double sales4=0;
private double sales5=0;
private double sumSales=0;
public double [][]newSales=new double [30][5];
public String [][]message=new String[30][5];
public double []sales=new double [5];
public Salesperson()
{}
public Salesperson(String name,String id,double sales1,double sales2,double sales3,double sales4,double sales5)
{
this.name=name;
this.id=id;
this.sales1=sales1;
this.sales2=sales2;
this.sales3=sales3;
this.sales4=sales4;
double sumSales=this.sales1+this.sales2+this.sales3+this.sales4;
addToArray();
}
public double getSales1()
{
return this.sales1;
}
public double getSales2()
{
return this.sales2;
}
public double getSales3()
{
return this.sales3;
}
public double getSales4()
{
return this.sales4;
}
public double getSales5()
{
return this.sales5;
}
public String getName()
{
return this.name;
}
public double getSumSales()
{
return this.sales1+this.sales2+this.sales3+this.sales4+this.sales5;
}
public String getId()
{
return this.id;
}
public void setSales(double sales1,double sales2,double sales3,double sales4)
{
this.sales1=sales1;
this.sales2=sales2;
this.sales3=sales3;
this.sales4=sales4;
this.sales5=sales5;
}
public void setSales1(double sales1)
{
this.sales1=sales1;
}
public void setSales2(double sales2)
{
this.sales2=sales2;
}
public void setSales3(double sales3)
{
this.sales3=sales3;
}
public void setSales4(double sales4)
{
this.sales4=sales4;
}
public void setSales5(double sales5)
{
this.sales5=sales5;
}
public void setId(String id)
{
this.id=id;
}
public void addSales1(double add)
{
this.sales1=sales1+add;
addToArray();
}
public void addSales2(double add)
{
this.sales2=sales2+add;
addToArray();
}
public void addSales3(double add)
{
this.sales3=sales3+add;
addToArray();
}
public void addSales4(double add)
{
this.sales4=sales4+add;
addToArray();
}
public void addSales5(double add)
{
this.sales5=sales5+add;
addToArray();
}
public void freshSum()
{
this.sumSales=this.sales1+this.sales2+this.sales3+this.sales4+this.sales5;
}
public void addToArray()
{
sales[0]=sales1;
sales[1]=sales2;
sales[2]=sales3;
sales[3]=sales4;
sales[4]=sales5;
}
public String toString()
{
freshSum();
return "这个月"+this.name+"的营业额如下:"
+"\n一号产品的营业额为:"+this.sales1
+"\n二号产品的营业额为:"+this.sales2
+"\n三号产品的营业额为:"+this.sales3
+"\n四号产品的营业额为:"+this.sales4
+"\n五号产品的营业额为:"+this.sales5
+"\n总营业额为:"+this.sumSales+"\n";
}
public int compareTo(Salesperson o)
{
return (int)(this.sumSales-o.sumSales);
}
}
package p1;
import java.util.Map;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.awt.Container;
import java.awt.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Collections;
import java.util.Comparator;
public class Test
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
//创建多名员工
Salesperson person1=new Salesperson("张三","0001",0,0,0,0,0);
Salesperson person2=new Salesperson("李四","0002",0,0,0,0,0);
Salesperson person3=new Salesperson("王五","0003",0,0,0,0,0);
Salesperson person4=new Salesperson("任六","0004",0,0,0,0,0);
//使用HashMap储存多名员工工号和员工的键值对
ArrayList <Salesperson>salesperson=new ArrayList<>();
salesperson.add( person1);
salesperson.add( person2);
salesperson.add( person3);
salesperson.add( person4);
addScrip(person1,person2,person3,person4);
System.out.printf(person1.toString());
System.out.printf(person2.toString());
System.out.printf(person3.toString());
System.out.printf(person4.toString());
sortBySum(salesperson);
/*person1.compareTo(person2);*/
sortProduct(person1,person2,person3,person4);
initFrame(person1, person2, person3,person4);
}
//按销售额排序
public static void sortBySum(ArrayList <Salesperson>salesperson)
{
int i=0;//计算排名
System.out.printf("按总销售额对销售员进行排序:\n");
Collections.sort(salesperson,new Comparator<Salesperson>()
{
@Override
public int compare(Salesperson o1, Salesperson o2)
{
// TODO Auto-generated method stub
return (int)(0-(o1.getSumSales()-o2.getSumSales()));
}
});
for (Salesperson person : salesperson)
{
i++;
System.out.print("排名第"+i+" "+person.getName()+" "+person.getId()+" "+person.getSumSales()+"\n");
}
}
//按销售量对产品排序
public static void sortProduct(Salesperson person1,Salesperson person2,Salesperson person3,Salesperson person4)
{
int j=0;//计算排名
Product product[]=new Product[5];
for(int i=0;i<5;i++)
{
product[i]=new Product("000"+i);
}
product[0].setSales(person1.getSales1()+person2.getSales1()+person3.getSales1()+person4.getSales1());
product[1].setSales(person1.getSales2()+person2.getSales2()+person3.getSales2()+person4.getSales2());
product[2].setSales(person1.getSales3()+person2.getSales3()+person3.getSales3()+person4.getSales3());
product[3].setSales(person1.getSales4()+person2.getSales4()+person3.getSales4()+person4.getSales4());
product[4].setSales(person1.getSales5()+person2.getSales5()+person3.getSales5()+person4.getSales5());
ArrayList <Product>productList=new ArrayList();
productList.add(product[0]);
productList.add(product[1]);
productList.add(product[2]);
productList.add(product[3]);
productList.add(product[4]);
Collections.sort(productList,new Comparator<Product>()
{
@Override
public int compare(Product o1, Product o2)
{
// TODO Auto-generated method stub
return (int)(0-(o1.getSales()-o2.getSales()));
}
}
);
for(Product products:productList)
{
j++;
System.out.printf("排名第"+j+" "+"产品id:"+products.getId()+" 产品销售额:"+products.getSales()+"\n");
}
}
//模拟三十天的营业
public static void addScrip(Salesperson person1,Salesperson person2,Salesperson person3,Salesperson person4)
{
double temp=0;
for(int i=0;i<30;i++)
{
for(int j=1;j<5;j++)
{
switch(j)
{
case 1:
person1.addSales1((temp=Math.random()*10001));
person1.message[i][0]="1号产品销售额增长了"+temp+"元,变为了"+temp+person1.getSales1();
person1.newSales[i][0]=temp;
person1.addSales2((temp=Math.random()*10001));
person1.message[i][1]="2号产品销售额增长了"+temp+"元,变为了"+temp+person1.getSales2();
person1.newSales[i][1]=temp;
person1.addSales3((temp=Math.random()*10001));
person1.message[i][2]="3号产品销售额增长了"+temp+"元,变为了"+temp+person1.getSales3();
person1.newSales[i][2]=temp;
person1.addSales4((temp=Math.random()*10001));
person1.message[i][3]="4号产品销售额增长了"+temp+"元,变为了"+temp+person1.getSales4();
person1.newSales[i][3]=temp;
person1.addSales5((temp=Math.random()*10001));
person1.message[i][4]="5号产品销售额增长了"+temp+"元,变为了"+temp+person1.getSales5();
person1.newSales[i][4]=temp;
continue;
case 2:
person2.addSales1((temp=Math.random()*10001));
person2.message[i][0]="1号产品销售额增长了"+temp+"元,变为了"+temp+person2.getSales1();
person2.newSales[i][0]=temp;
person2.addSales2((temp=Math.random()*10001));
person2.message[i][1]="2号产品销售额增长了"+temp+"元,变为了"+temp+person2.getSales2();
person2.newSales[i][1]=temp;
person2.addSales3((temp=Math.random()*10001));
person2.message[i][2]="3号产品销售额增长了"+temp+"元,变为了"+temp+person2.getSales3();
person2.newSales[i][2]=temp;
person2.addSales4((temp=Math.random()*10001));
person2.message[i][3]="4号产品销售额增长了"+temp+"元,变为了"+temp+person2.getSales4();
person2.newSales[i][3]=temp;
person2.addSales5((temp=Math.random()*10001));
person2.message[i][4]="5号产品销售额增长了"+temp+"元,变为了"+temp+person2.getSales5();
person2.newSales[i][4]=temp;
continue;
case 3:
person3.addSales1((temp=Math.random()*10001));
person3.message[i][0]="1号产品销售额增长了"+temp+"元,变为了"+temp+person3.getSales1();
person3.newSales[i][0]=temp;
person3.addSales2((temp=Math.random()*10001));
person3.message[i][1]="2号产品销售额增长了"+temp+"元,变为了"+temp+person3.getSales2();
person3.newSales[i][1]=temp;
person3.addSales3((temp=Math.random()*10001));
person3.message[i][2]="3号产品销售额增长了"+temp+"元,变为了"+temp+person3.getSales3();
person3.newSales[i][2]=temp;
person3.addSales4((temp=Math.random()*10001));
person3.message[i][3]="4号产品销售额增长了"+temp+"元,变为了"+temp+person3.getSales4();
person3.newSales[i][3]=temp;
person3.addSales5((temp=Math.random()*10001));
person3.message[i][4]="5号产品销售额增长了"+temp+"元,变为了"+temp+person3.getSales5();
person3.newSales[i][4]=temp;
continue;
case 4:
person4.addSales1((temp=Math.random()*10001));
person4.message[i][0]="1号产品销售额增长了"+temp+"元,变为了"+temp+person4.getSales1();
person4.newSales[i][0]=temp;
person4.addSales2((temp=Math.random()*10001));
person4.message[i][1]="2号产品销售额增长了"+temp+"元,变为了"+temp+person4.getSales2();
person4.newSales[i][1]=temp;
person4.addSales3((temp=Math.random()*10001));
person4.message[i][2]="3号产品销售额增长了"+temp+"元,变为了"+temp+person4.getSales3();
person4.newSales[i][2]=temp;
person4.addSales4((temp=Math.random()*10001));
person4.message[i][3]="4号产品销售额增长了"+temp+"元,变为了"+temp+person4.getSales4();
person4.newSales[i][3]=temp;
person4.addSales5((temp=Math.random()*10001));
person4.message[i][4]="5号产品销售额增长了"+temp+"元,变为了"+temp+person4.getSales5();
person4.newSales[i][4]=temp;
continue;
}
}
}
}
public static void initFrame(Salesperson person1,Salesperson person2,Salesperson person3,Salesperson person4)
{
//将四个Salesperson对象放进数组
//Test t;
Salesperson []p=new Salesperson[4];
p[0]=person1;
p[1]=person2;
p[2]=person3;
p[3]=person4;
JFrame frame=new JFrame("销售统计报表");
frame.setVisible(true);
frame.setBounds(205, 255, 800, 500);
Container c=frame.getContentPane();
//设置JTable的参数
String [][]rowDate=new String[6][8];
for(int i=0;i<6;i++)
for(int j=0;j<8;j++)
{
if(0==i&&0==j)
{
rowDate[i][j]="销售员代号";
}
if(i>0&&i<5&&0==j)
{
rowDate[i][j]="000"+i;
}
if(i<5&&i>0&&j>1&&j<7)
{
rowDate[i][j]=String.valueOf(p[i-1].sales[j-2]);
}
if(i==5&&j>1&&j<7)
{
double temp=Double.parseDouble(rowDate[1][j])+Double.parseDouble(rowDate[2][j])+Double.parseDouble(rowDate[3][j])+Double.parseDouble(rowDate[4][j]);
rowDate[5][j]=String.valueOf(temp);
}
if(i<6&&i>0&&7==j)
{
double temp=Double.parseDouble(rowDate[i][2])+Double.parseDouble(rowDate[i][3])+Double.parseDouble(rowDate[i][4])+Double.parseDouble(rowDate[i][5])+Double.parseDouble(rowDate[i][6]);
rowDate[i][7]=String.valueOf(temp);
}
if(5==i&&0==j)
{
rowDate[i][j]="销售额之和(元)";
}
}
final String []columnNames={" ","产品编号","0001","0002","0003","0004","0005","销售额之和(元)"};
JTable table=new JTable(rowDate,columnNames);
JScrollPane js=new JScrollPane(table);
c.add(js);
frame.pack();
frame.setLocationRelativeTo(null);
}
}
下面是运行结果: