2012-08-07 2 views
-1

이 C# 클래스의 경우 사용자가 7 자리 전화 번호를 콘솔에 입력하게해야합니다. 각 번호는 다른 문자로 저장됩니다. 그런 다음 각 문자가 문자로 변경됩니다. 숫자가 바뀐 글자 뒤에는 논리가 없습니다. (나는이 할당의 요지를 보지 못한다. 이것은 나의 코더의 블록에 기여할 수도있다.) 다음은 과제가 말한 것이다.전화 번호를 문자 (C#)로 변환

당신의 임무 : 선불 전화 서비스는 영숫자 키보드 입력을 전화 번호로 변환하는 프로그램이 필요합니다. 사용자가 8자를 입력하면 프로그램은 오류 메시지 또는 번역 된 7 자리 전화 번호를 출력합니다. 입력 내용은 숫자, 문자 또는 둘 다를 포함 할 수 있습니다. 문자는 대문자 또는 소문자 일 수 있습니다.

  • 메인() : 부호화

    방법 일곱 개 문자 변수를 선언하고 참조하여 다음과 같은 방법으로 이들을 통과 :

    • ProcessInput() : 사용자 입력을 취득하여 변환을 수행
      • ShowResults() : 결과를 표시합니다.
        • GetInput() : 사용자가 7자를 가져 와서 Main()이 전달한 7 개의 변수에 저장합니다. 참조.
        • ProcessInput() : 각각의 문자 변수를 참조로 전달하여 ToDigit()을 호출하고 다음 코드 중 하나를 값으로 Main()에 반환합니다. o 입력 오류가없는 경우 0 -1 입력 에러 "

프로그램은 표준 전화 키패드 레이아웃 당 변환을 수행한다.

기본적

2의 A, B , C 3은 D, E, F 등이며 D, E, F는 3 등입니다.

지금은 입력을 제외하고는 아무 것도 할 수 없지만 문자로만 저장되는 것은 아닙니다. Cases 및 If 문으로 두 가지 과제를 수행했기 때문에이 과제를 정말 싫어합니다.

Console.WriteLine("Write a Phone Number that consists of Seven Numbers."); 
string Number = Console.ReadLine(); 

if (Number.Length != 7) 
    Console.WriteLine("You have entered a phone number that is too long."); 

Console.WriteLine("You have entered: {0}", Number); 
Console.ReadLine(); 

내 진짜 질문은 다음과 같습니다. 입력 된 숫자를 문자로 저장 한 다음 케이스 문을 사용하여 문자를 정의하려면 어떻게해야합니까? 이 숙제이기 때문에

+0

귀하의 질문은 무엇입니까? BTW 귀하의 질문에'숙제 '를 붙이십시오. –

+0

어떻게 입력 번호를 문자로 저장 한 다음 대/소문이있는 문자를 정의합니까? – user1580598

+0

[String.ToCharArray] (http://msdn.microsoft.com/en-us/library/ezftk57x.aspx) 메서드를 사용하여 문자 배열 –

답변

0

정말 이에 대한 답변을 얻지 못하거나 정답을 선택하지 않아서 결국 필자는 혼자서 알아 냈습니다. 내가 많은 문제를 안고 있었던 이유는 1 (800) 384-2347에 대한 여러 개의 출력을 만들고 마지막 4 개의 숫자를 다양한 문자로 변환하여 생각할 수 있다고 생각했기 때문입니다. 그러나 그것은 단순한 사례 진술이었습니다.

0

, 몇 가지 단계를 수행해야 : 전화 입력 문자열의 각 문자를 통해

  • 루프의 키패드에 해당로

    1. 이 번호로 문자의 지도 만들기 :
      1. 숫자 (정수) 인 경우 문자> 숫자 매핑에서 찾으십시오. 문자를 인쇄하십시오.
      2. 해당 문자 인 경우 동일한 테이블을 찾아 해당 번호를 인쇄하십시오.
      3. 두 조건이 일치하지 않으면 오류 메시지를 인쇄하십시오.
  • +0

    어떻게 문자와 숫자를 매핑합니까? 경우 = 2 경우 = 'A' 경우 = 'B'= 경우 'C' 결과 = '2'가 – user1580598

    +0

    ['Dictionary' (HTTP에 대한 문서 참조 : //www.dotnetperls한다.com/dictionary) –

    +0

    그들은 방금 IF와 CASE 문을 배웠기 때문에 사전을 사용하지 않을 것으로 예상되지만 위에서 언급 한 도구 중 하나를 사용할 것으로 예상됩니다. –

    0

    당신은 원하는 출력 가능한 모든 입력 문자를 매핑하는 사전을 만들 수 있습니다. 입력시 사전에 따라 문자를 바꿉니다.

    +0

    그들은 방금 IF와 CASE 문을 배웠기 때문에 사전을 사용하지 않을 것으로 예상되지만 위에서 언급 한 도구 중 하나를 사용할 것으로 예상됩니다. –

    +0

    예, 코드는 If 및 Case 문으로 구성되는 것으로 가정합니다. :/ – user1580598

    0

    이 작동합니다

     Dictionary<string, int> dict = new Dictionary<string, int>(); 
         dict.Add("ABC", 2); 
         dict.Add("CDE", 3); 
         dict.Add("FGH", 4); 
         dict.Add("JKL", 5); 
    
         string Numbers = "BDJ"; 
         string myints = ""; 
         foreach (char c in Numbers) 
          myints += dict.FirstOrDefault(X => X.Key.Contains(c)).Value.ToString(); 
    //the output : "235" 
    
    1

    이 클래스에 포함되지 않은 경우,이 숙제 도구를 사용하여 해결 될 것입니다, 당신은 가능성이 과제에 나쁜 성적을 얻을 것이다 사전 클래스를 사용하지 마십시오 수업에서 배웠습니다.

    해결 방법에는 두 가지가 있습니다.

    1. 사람이 입력 할 수있는 모든 문자 또는 숫자에 대해 문을 작성하십시오. 알파벳의 모든 문자에 대해 case을 입력하고 해당 숫자를 입력하면 나쁜 성적이 나올 수 있지만, "fall through"와 같은 문구의 일부를 사용하는 경우, 나는 당신에게 남겨 둡니다. 그것이 무엇인지를 연구하면 좋은 성적을 얻을 수 있습니다.

    2. 또한 if 문을 수행 할 수 있습니다, 그냥 포인트 1처럼, 당신은 당신이 나쁜 성적을 얻을 것이다 모든 항목에 대한 if을 할 경우,하지만 당신은 알아낼 수 있다면 어떻게 if으로 A, B, C, and 1를 해결하기 위해 당신은 할 수있다 좋은 성적을 얻으세요.


    난 당신에게 내가 그 교훈의 purpous 생각하지 않기 때문에 개별적으로 각 문자를 얻는 방법에 대한 해답을 줄 것이다는 easist 방법은 foreach 문 함께 할 것입니다. 당신이 foreach 문에에 공급하기 전에 또한

    string finalNumber = ""; 
    foreach(char digit in Number) 
    { 
        finalNumber += ProcessDigit(digit); 
    } 
    Console.WriteLine(finalNumber); 
    
    //Elsewhere 
    char ProcessDigit(char digit) 
    { 
        char newDigit; 
    
        //change digit to whatever you needed to turn it in to and store it in newDigit; 
    
        return newDigit; 
    } 
    

    다른 freebee

    는 문자열에 ToUpperInvariant()을하고 만 대문자를 확인해야합니다.

    +0

    그래서 정확히 입력하여 스위치/if 문을 통해 입력 된 숫자를 실행할 수 있도록 만들 수 있습니까? – user1580598

    +0

    당신이'foreach' 진술에 대해 시험해 보는 것이 숙제의 의도라고 생각하지 않기 때문에 대답이 업데이트되었습니다. –

    +0

    우리는 foreach 문을 사용할 수 없다고 생각합니다. '[ – user1580598

    관련 문제