/*= Ex15 オブジェクト指向的構造体 ==*/ #include "pseudo.h" /*-----------------------------------*/ #define NAMES (20+1) #define EMPS (50+1) #define GROUPS (10+1) #include "Ex15.sct" /*-----------------------------------*/ TYPE VOID FUNC InpGroup(INT nGroups, PtrGROUP group[]) VAR StcGROUP memGroup[ GROUPS]; StcEMP memEmp[ GROUPS][ EMPS]; INT i, j; BEGIN FOR (i, 1, nGroups) group[ i]= AddressOf( memGroup[i]); WriteS("グループ "); WriteI( i); WriteS(" の従業員数? "); ReadI( _nEmployees(i)); FOR( j, 1, _nEmployees(i)) _emp(i,j)= AddressOf(memEmp[ i][ j]); WriteS("氏名,年齢? "); ReadS( _empName(i,j)); ReadI( _empAge(i,j)); ENDFOR ENDFOR END /*===================================*/ FUNCTION Main() VARIABLE INT nGroups; PtrGROUP group[ GROUPS]; INT i, j; BEGIN LOOP WriteS("グループ数(2以上)? "); ReadInt( nGroups); IF (nGroups >= 2) EXIT; ENDIF ENDLOOP InpGroup(nGroups, group); WriteLine("------------------"); SwapPtr( _emp(1,1), _emp( 2,1)); FOR (i, 1, nGroups) FOR( j, 1, _nEmployees(i)) DebugString( _empName(i,j)); DebugInt( _empAge(i,j)); ENDFOR ENDFOR ENDFUNC /*===================================*/