学以致用——Java源码——销售员业绩统计小程序(Total Sales)

程序功能:

依次输入销售单数据(销售员编号、销售产品编号、销售金额),程序进行相应的统计。

运行结果示例:

销售额月度汇总小程序:

 

请输入0开始输入销售单数据(输入-1退出):0

请输入销售员编号(销售员编号范围:1 - 4):1

请输入产品编号(产品编号范围:1 - 5):1

请输入销售额:200

该销售单录入成功!

 

请输入0开始输入销售单数据(输入-1退出):0

请输入销售员编号(销售员编号范围:1 - 4):1

请输入产品编号(产品编号范围:1 - 5):2

请输入销售额:300

该销售单录入成功!

 

请输入0开始输入销售单数据(输入-1退出):0

请输入销售员编号(销售员编号范围:1 - 4):1

请输入产品编号(产品编号范围:1 - 5):1

请输入销售额:400.19

该销售单录入成功!

 

请输入0开始输入销售单数据(输入-1退出):0

请输入销售员编号(销售员编号范围:1 - 4):2

请输入产品编号(产品编号范围:1 - 5):1

请输入销售额:18.18

该销售单录入成功!

 

请输入0开始输入销售单数据(输入-1退出):0

请输入销售员编号(销售员编号范围:1 - 4):2

请输入产品编号(产品编号范围:1 - 5):3

请输入销售额:19.18

该销售单录入成功!

 

请输入0开始输入销售单数据(输入-1退出):0

请输入销售员编号(销售员编号范围:1 - 4):3

请输入产品编号(产品编号范围:1 - 5):4

请输入销售额:700

该销售单录入成功!

 

请输入0开始输入销售单数据(输入-1退出):0

请输入销售员编号(销售员编号范围:1 - 4):4

请输入产品编号(产品编号范围:1 - 5):5

请输入销售额:900

该销售单录入成功!

 

请输入0开始输入销售单数据(输入-1退出):0

请输入销售员编号(销售员编号范围:1 - 4):4

请输入产品编号(产品编号范围:1 - 5):5

请输入销售额:1000

该销售单录入成功!

 

请输入0开始输入销售单数据(输入-1退出):0

请输入销售员编号(销售员编号范围:1 - 4):4

请输入产品编号(产品编号范围:1 - 5):3

请输入销售额:1000

该销售单录入成功!

 

请输入0开始输入销售单数据(输入-1退出):-1

已退出程序销售单汇总信息:

产品编号            销售员1             销售员2             销售员3             销售员4             产品合计

产品1               600.19             18.18              0.00               0.00               618.37            

产品2               300.00             0.00               0.00               0.00               300.00            

产品3               0.00               19.18              0.00               1000.00            1019.18           

产品4               0.00               0.00               700.00             0.00               700.00            

产品5               0.00               0.00               0.00               1900.00            1900.00           

销售员合记 900.19             37.36              700.00             2900.00           

代码如下:

import java.util.Scanner;

//JHTP Exercise 7.20: Total Sales
//by pandenghuang@163.com
/**
 * 7.20 (Total Sales) Use a two-dimensional array to solve the following
 * problem: A company has four salespeople (1 to 4) who sell five different
 * products (1 to 5). Once a day, each salesperson passes in a slip for each
 * type of product sold. Each slip contains the following: 
 * a) The salesperson number 
 * b) The product number 
 * c) The total dollar value of that product sold that day 
 * Thus, each salesperson passes in between 0 and 5 sales slips per
 * day. Assume that the information from all the slips for last month is
 * available. Write an application that will read all this information for last
 * month’s sales and summarize the total sales by salesperson and by product.
 * All totals should be stored in the two-dimensional array sales. After
 * processing all the information for last month, display the results in tabular
 * format, with each column representing a salesperson and each row representing
 * a particular product. Cross-total each row to get the total sales of each
 * product for last month. Cross-total each column to get the total sales by
 * salesperson for last month. Your output should include these cross-totals to
 * the right of the totaled rows and to the bottom of the totaled columns.
 */


public class TotalSales {

	 static final int PRODUCTS = 5; //产品数
	 static final int SALESPEOPLE = 4; //销售员数
	 private static double salesAmountSlip= 0.0;  //单张销售单金额
	 private static int salesPersonNum= 1;  //销售员编号
	 private static int productNum= 1;  //销售员编号
	 private static double[][] salesAmount=  new double[PRODUCTS][SALESPEOPLE];  //汇总销售额(按产品和销售员分类)
	 private static Scanner input=new Scanner(System.in);
	 private static int exitFlag = 0;
	 private static double[] salesAmountByProduct = new double [PRODUCTS]; //汇总销售额(按产品分类)
	 private static double[] salesAmountBySalesPerson = new double [SALESPEOPLE]; //汇总销售额(按销售员分类)


public static void main(String[] args)
{

   System.out.println("销售额月度汇总小程序:");

		
		do{
			System.out.printf("%n请输入0开始输入销售单数据(输入-1退出):");
			exitFlag =input.nextInt();
			if(exitFlag ==-1){
				System.out.printf("已退出程序");
				break;
			}
			
			if (exitFlag == 0)
			inputSlip();			
			} while (exitFlag != -1);
		
		input.close(); //结束销售单录入
		
		//汇总销售额(按产品分类)
		for (int i=0; i<PRODUCTS;i++) {
			for (int j=0; j<SALESPEOPLE; j++)
			salesAmountByProduct[i] += salesAmount[i][j];
		}
		
		//汇总销售额(按销售员分类)
		for (int i=0; i<SALESPEOPLE;i++) {
			for (int j=0; j<PRODUCTS; j++)
			salesAmountBySalesPerson[i] += salesAmount[j][i];
		}
		
		System.out.println("销售单汇总信息:");
		System.out.printf("产品编号\t\t");
		for (int i=0; i<SALESPEOPLE; i++)
			System.out.printf("销售员%d\t\t",i+1);
		System.out.printf("产品合计%n");
		
		for (int i=0; i<PRODUCTS;i++) {
			System.out.printf("产品%d\t\t", i+1);
			for (int j=0; j<SALESPEOPLE;j++)
				System.out.printf("%.2f\t\t", salesAmount[i][j]);
			System.out.printf("%.2f\t\t%n", salesAmountByProduct[i]);
		}
			
		System.out.printf("销售员合记\t");
		for (int i=0; i<SALESPEOPLE;i++) {
			System.out.printf("%.2f\t\t", salesAmountBySalesPerson[i]);
		}
}
  
public static void inputSlip() {
	//输入销售员编号
	System.out.printf("请输入销售员编号(销售员编号范围:1 - %d):", SALESPEOPLE);
	salesPersonNum =input.nextInt();
	while(salesPersonNum <1 || salesPersonNum > SALESPEOPLE) {
		System.out.printf("请输入销售员编号(销售员编号范围:1 - %d):", SALESPEOPLE);
	salesPersonNum =input.nextInt();
	}
	
	//输入产品编号
	System.out.printf("请输入产品编号(产品编号范围:1 - %d):", PRODUCTS);
	productNum =input.nextInt();
	while(productNum <1 || productNum > PRODUCTS) {
		System.out.printf("请输入有效的产品编号(产品编号范围:1 - %d):", PRODUCTS);
		productNum =input.nextInt();
	}
	
	//输入销售额
	System.out.printf("请输入销售额:");
	salesAmountSlip =input.nextDouble();
	while(salesAmountSlip <0.0) {
		System.out.printf("请输入有效的金额:");
		salesAmountSlip =input.nextInt();
	}
	
	System.out.println("该销售单录入成功!");
	salesAmount[productNum-1][salesPersonNum-1]+=salesAmountSlip;
	

}

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值