2012-03-20 2 views
4

나는 사용자에게 3 salepeople의 판매 금액과 매월 5 개의 제품을 입력 할 수있는 프로그램을 작성 중입니다. 3 차원 배열을 사용하여 데이터를 저장하고 있습니다. 3 명의 판매원에 대한 열과 5 개의 제품에 대한 행이있는 표 형식으로 데이터를 인쇄하고 싶습니다. 각 금액은 해당 월의 총 제품 판매량, 즉 31 개 값의 합계입니다. 또한 나는3 차원 어레이 값 검색

을 모든 열의 끝에서 크로스 합계를 가지고 행하기 위해 필요한이 내 코드입니다 :

class Program 
{ 
    static void Main(string[] args) 
    { 

     Slip [,,] sales = new Slip[3, 5, 31]; 
     for (int day = 1; day <= 31; day++) 
     { 
      for (int i = 1; i <= 3; i++) 
      { 
       Console.WriteLine("Enter the salesperson number of #" + i + ":"); 
       int salesPersonNumber = Convert.ToInt16(Console.ReadLine()); 
       Console.WriteLine("Enter the information for day " + day + ", salesperson " + salesPersonNumber + " below:"); 
       for (int j = 1; j <=5; j++) 
       { 

        Console.WriteLine("Enter the product number for product " + j + ":"); 
        int productNumber = Convert.ToInt16(Console.ReadLine()); 
        Console.WriteLine("Enter the total dollar value of the product sold day " + day + ":"); 
        decimal value = Convert.ToDecimal(Console.ReadLine()); 
        Slip slip = new Slip(salesPersonNumber, productNumber, value); 
        sales[i-1, j-1, day-1] = slip; 

       } 
      } 
     } 



     for (int i = 0; i < sales.GetLength(0); i++){ 
      for (int j = 0; j < sales.GetLength(1); j++){ 
       decimal total = 0; 
       for (int k = 0; k < sales.GetLength(2); k++){ 
        total += sales[i, j, k].ValueSold; 
       } 

       Console.WriteLine(total); 

      } 

     } 

    } 
} 

내가 같이 세 가지 차원 배열에서 데이터를 검색하는 방법을 알아낼 수 없습니다 테이블을 인쇄하려면 위에서 설명한대로

+1

질문 : 매번 유형 3X5X31 값을 사용합니까? –

+0

예 영업 사원, 제품 및 가격 번호를 매번 입력하십시오. – trs

+1

요소를 얻는 방법, 행을 인쇄하는 방법 및 항목을 반복하는 방법을 알고 있음을 알았습니까? 그렇다면 정확히 어떤 문제가 있습니까? (for (int i = 0; i

답변

1

배열을 두 번 반복해야합니다. 영업 사원 헤더를 표시하려면 단일 루프가 필요합니다. 행을 표시하려면 중첩 루프가 필요합니다. 행 식별자 (day)에 대한 텍스트를 첫 번째 내부 루프에서 생성 할 수 있습니다. 또한 거기에서 끝나는 라인을 생성 할 수도 있습니다. 가장 안쪽 루프는 해당 날짜와 영업 사원의 총 수를 표시하는 데 사용될 수 있습니다.

0

이 질문에 직접 대답하지는 않지만 쉽게 대답 할 수 있습니다.

다차원 배열이 아닌 개체를 사용 해본 적이 있습니까? 모든 것을 쉽게 추적 할 수 있으며, 이와 같은 복잡한 구조의 경우 더 일반적입니다. 또한 계산을 추상화 할 수 있습니다. 한 달 안에 판매 된 총 제품 수를 얻는 것과 같이.

내가 이해 한 것으로부터, SalesPersonProduct의 두 클래스가 있습니다. 각각은 다음 수준의 객체 배열을 '집'에 넣을 것이고, 그러면 기본 메서드에 SalesPerson[3]을위한 단일 차원 배열을 갖게됩니다. 이 같은 것을 :

/// <summary> 
/// A sales person 
/// </summary> 
public class SalesPerson 
{ 
    /// <summary> 
    /// Gets or sets an array of products 
    /// </summary> 
    public Product[] Products { get; set; } 

    /// <summary> 
    /// Constructs a new sales person class, constructing a new products array 
    /// </summary> 
    public SalesPerson() 
    { 
     this.Products = new Product[5]; 
    } 
} 

/// <summary> 
/// A product 
/// </summary> 
public class Product 
{ 
    /// <summary> 
    /// Gets or sets the sales amount array 
    /// </summary> 
    public int[] SalesAmount { get; set; } 

    /// <summary> 
    /// Constructs a new product, constructing a new sales amount array 
    /// </summary> 
    public Product() 
    { 
     this.SalesAmount = new int[31]; 
    } 

    /// <summary> 
    /// Gets the total sold 
    /// </summary> 
    public int GetTotalSold() 
    { 
     return this.SalesAmount.Sum(); 
    } 
} 

희망이 있습니다. :)