회원별예약관리(고급) 3번문제와
오늘 오전 2번문제 코딩을 헷갈려서요~
문제 2】출발지 코드가 SU이고 승객만족도가 23 이하인 자료에 대하여 (월이용회수 * 여행거리)값의 자료 중에서 가장 큰 값의 도착지코드를 출력하되, 가장 큰 (월이용회수* 여행거리)값이 중복될 경우 중복자료 중 가장 작은 고객번호의 도착지코드를 출력하시오.(20점)
핵심 변수 선언에 최대값, 도착지코드, 최대도착지코드 를 넣어야 하나요?
중복될 경우 최소도착지코드는 넣어야 될지 궁금합니다.
Option Explicit
Sub main()
''필수 변수 선언 Dim 인수1, 인수2, i, 버퍼 As Variant ''핵심 변수 선언 Dim 출발지코드, 승객만족도, 월이용횟수, 여행거리, 최대값, 도착지코드, 최대도착지코드 As Variant ''인수 처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " "))) ''입력 파일 처리 Open "c:\c_it\data\abc1112.txt" For Input As #1 ''최대값 초기화 최대값 = 0 최대도착지코드 = 0 For i = 1 To 인수2 Line Input #1, 버퍼 If i >= 인수1 Then ''변수 저장 승객만족도 = Val(Mid(버퍼, 16, 2)) 출발지코드 = Trim(Mid(버퍼, 20, 2)) 도착지코드 = Trim(Mid(버퍼, 22, 2)) 여행거리 = Val(Mid(버퍼, 27, 5)) 월이용횟수 = Val(Mid(버퍼, 32, 2)) ''최대값 구하기 If 출발지코드 = "SU" And 승객만족도 <= 23 Then If 최대값 < 월이용횟수 * 여행거리 Or _ (최대값 = 월이용횟수 * 여행거리 And 최대도착지코드 < 도착지코드) Then 최대값 = 월이용횟수 * 여행거리 최대도착지코드 = 도착지코드 End If End If End If Next i Close #1 ''출력 파일 처리 Open "c:\c_it\data\ans2.txt" For Output As #2 Print #2, 인수1, 인수2, 최대도착지코드 Close #2 End Sub
|