'Programming/CodeComplete'에 해당되는 글 2건
- 2009.05.18 참조 키 조작하기(보험료 납부 예제)
- 2009.05.18 테이블을 활용하는 방법
반응형
보험료 예제에서 나이 18세 부터 65세까지는 나이마다 다른 보험료를 적용, 65세 초과한 경우에는 동일한 보험료 적용
1. 키 값을 곧바로 사용할 수 있도록 정보를 복사한다.
- 하나하나에 대해 중복된 데이터를 넣어준다.
2. 곧바로 사용할 수 있도록 키 값을 변환한다.
- 0세 부터 17세 까지에 대해서는 하나의 키값 0을 사용
- 17부터 65세 까지는 17
- 66 부터는 66 값으로 변경하는 함수를 사용
3. 키 변환 기능을 루틴으로 작성하라
- KeyFromAge()와 같은 루틴으로 작성하면 더 쉽게 된다.
출처 : Code Complete 18장 테이블을 활용하는 방법
반응형
반응형
여러 조건을 가지는 데이터를 검색할때 if문 중복이 아닌 테이블로 찾는 방법
//메시지 데이터 형을 정의하는 C++예제
enum FieldType{
FieldType_FloatingPoint,
FieldType_Integer,
FieldType_String,
FieldType_TimeOfDay,
FieldType_Boolean,
FieldType_BitField,
FieldType_Last = FieldType_BitFField
};
//객체 형식을 구성하는 C++예제
Class AbstractField{
public :
virtual void ReadAndPrint(string, FileStatus &) = 0;
}
Class FloatingointField : public AbstractField{
public :
virtual void ReadAndPrint(string, FileStatus &){
...
}
}
Class IntegerField ...
Class StringField ...
...
//각각의 객체 형식을 보관하기 위해서 테이블을 구성하는 C++예제
AbstractField* field[Field_Last];
//객체 목록을 구성하는 C++예제
field[Field_RloatingPoint] = new FloatingPointField();
field[Field_Integer] = new IntegerField();
field[Field_String] = new StringField();
field[Field_Boolean] = new BooleanField();
field[Field_BitField] = new BitFieldField();
//테이블에서 객체와 멤버 루틴을 참조하는 C++예제
//밑으로 두줄 이 코드는 메시지에 있는 각 필드를 찾기 위한 보조수단 코드이다.
fieldIdx = 1;
while((fieldIdx <= numFieldsInMessage) and (fileStatus == OK)){
fieldType = fieldDescription[fieldIdx].FieldType;
fieldName = fieldDescription[fieldIdx].FieldName;
//이 코드는 필드의 형식에 따라서 루틴을 호출하는 테이블 참조 루팅이다.
//참조 방식은 객체 테이블에서 인덱스로 찾고 있다.
field[fieldType].ReadAndPrint(fieldName, fileStatus);
}
출처 : Code Complete 18장 테이블을 활용하는 방법
반응형