본문 바로가기
P/C++

Calling

by Where's my namespace 2012. 10. 1.

날짜마다, 몇분 통화했는지, 몇번 통화했는지 하는 자료가 있다. 그 자료를 토대로, 날짜 구간을 주면 통화량, 통화횟수를

출력하는 프로그램이다.

입력 받는 파일은 2가지로, 하나(phone.inp)는 날짜에따른 정보들이 들어있고, 하나의 파일(calling.inp)에는 날짜 구간이

들어있다.

출력 파일(calling.out)은 하나다.

 

전체적인 구조는 Call Class 를 만들어 사용했다.

개념은 단순하기 때문에 여기서 더 설명할 건 없을 것 같다.

 

main()함수의 안에는 최대한 간결하게 했다.

 

 

간결하다. 객체 선언후 파일을 읽고 프린트를 해준다. 함수의 이름과 기능이 다소 맞지 않은 것 같은데 이점은 좀더 보완

 

해야 할 것 같다.

 

다음은 클래스 멤버함수들이다.

 

 

 

더욱 간결하게 짤려고 했는데 더 복잡해 보이는 것 같다. 아직 많이 모자르다.

 

멤버함수들에 대해 설명하자면, setphonedata, setcallingdata 은 함수명 그대로 각자의 파일에 대한 입력을 받는다.

 

print 함수 또한 이름에서 나오듯 결과 값을 출력한다.

 

전체적인 구조는 setphonedata에서 벡터에 입력받은 값들을 넣어준다. 넣어줄때는 이전 통화량에 현 통화량을 합해서 넣

넣어준다. 이는 이 자료가 어떻게 쓰이느냐에 따른 것으로, 이 문제에서 요구하는 자료는 구간사이에 총 통화량, 통화수이

다. 저렇게 합해서 넣어주면 구간이 정해졌을 때,  A~B까지라고 한다면,

B의 데이터 - (A-1)의 데이터 로 계산하면 그 구간의 값이 나오기 때문에, 이 자료형에서 저런 형태로 넣는 건

바람직 하다고 생각한다. 후에 나머지는 단순히 구간을 받아서 위에 말한 것 처럼 구간의 값을 계산해

출력해주는 부분 밖에 없다.

 

이 문제에서 놓친 점이 있다면, file 을 open 하고나서 close 를 하지 않았다는 점. 그리고 파일이 오류로 열리지 않았을때

예외를 처리해 주지 않은 점 등등 문제가 많다.

 

'P > C++' 카테고리의 다른 글

The Trip  (2) 2014.06.27
ACM 문제중 WERTYU  (0) 2013.09.06
링크드리스트로 하드디스크 흉내내기.  (0) 2012.11.13
strlen(), strcpy() 구현  (0) 2012.08.29
비속어찾기 프로그램  (0) 2012.08.29