/*************************************
*                                    *
*    外枠システム  cntl.c            *
*  （初期設定）                      *
*                                    *
*************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "set.h"
#include "cntl.h"

void cntl(void) 
{

/*  試算番号の入力  */
    printf("試算番号（４桁）を入力してください\n"); 
    scanf("%d%*c", &BANGO);
    if (( BANGO < 1000 ) || ( BANGO > 9999 )) {
        fprintf(stderr, "試算番号が４桁ではありません（エラー）\n");
		printf("BANGO=%d\n", BANGO);
        exit (2);
    }
    printf("試算番号は %d に設定されました\n", BANGO); 


/*  計算モードの選択  */
    printf("計算モードの設定\n"); 
    printf("０：H31検証（現行制度）\n"); 
    printf("１：オプション（適用拡大１ 125万人ベース）\n"); 
    printf("２：オプション（適用拡大２ 325万ベース）\n"); 
    printf("３：オプション（適用拡大３ 1050万ベース）\n");
    printf("４：オプション（納付期間延長2026施行）\n");
    printf("５：オプション（納付期間延長2026施行＋適用拡大325）\n");
    printf("６：オプション（納付期間延長2026施行＋適用拡大1050）\n");



    scanf("%d%*c", &MODE);
    switch ( MODE ) {
        case 0: /* H31検証（現行制度）  */
            printf("H31検証（現行制度） \n") ;
            KIJUN = 2017; /* 基準年度 */
            KS = 2005;    /* 出力開始年度 */
            KE = 2126;    /* 推計終了年度 */
            KF = 2120;    /* 出力終了年度 */
            PART = 0 ;PARTYR1 = KE+1;PARTYR2 = KE+1;
            break ;
        case 1: /* オプション（適用拡大１） */
            printf("オプション（適用拡大１ 125万人ベース）に設定しました\n") ;
            KIJUN = 2017; /* 基準年度 */
            KS = 2005;    /* 出力開始年度 */
            KE = 2126;    /* 推計終了年度 */
            KF = 2120;    /* 出力終了年度 */
            PART = 1; PARTYR1 = 2024; PARTYR2 = KE+1;
            PARTK1 = 6; PARTKYR = 2018;
            PARTK2 = 1; PARTJ2 = 1;
            break ;
        case 2: /* オプション（適用拡大２） */
            printf("オプション（適用拡大２ 325万ベース）に設定しました\n") ;
            KIJUN = 2017; /* 基準年度 */
            KS = 2005;    /* 出力開始年度 */
            KE = 2126;    /* 推計終了年度 */
            KF = 2120;    /* 出力終了年度 */
            PART = 1; PARTYR1 = 2024; PARTYR2 = KE+1;
            PARTK1 = 7; PARTKYR = 2018;
            PARTK2 = 2; PARTJ2 = 1;
            break ;
        case 3: /* オプション（適用拡大３） */
            printf("オプション（適用拡大３ 1050万ベース）に設定しました\n") ;
            KIJUN = 2017; /* 基準年度 */
            KS = 2005;    /* 出力開始年度 */
            KE = 2126;    /* 推計終了年度 */
            KF = 2120;    /* 出力終了年度 */
            PART = 1; PARTYR1 = 2024; PARTYR2 = KE+1;
            PARTK1 = 8; PARTKYR = 2018;
            PARTK2 = 3; PARTJ2 = 1;
            break ;
        case 4: /* オプション（納付期間延長） */
            printf("オプション（納付期間延長）2026施行に設定しました\n") ;
            KIJUN = 2017; /* 基準年度 */
            KS = 2005;    /* 出力開始年度 */
            KE = 2126;    /* 推計終了年度 */
            KF = 2120;    /* 出力終了年度 */
            PART = 0;PARTYR1 = KE+1;PARTYR2 = KE+1;
            MODE45 = 1; 
            break ;
        case 5: /* オプション（納付期間延長）＋適用拡大325 */
            printf("オプション（納付期間延長）+325万人拡大に設定しました\n") ;
            KIJUN = 2017; /* 基準年度 */
            KS = 2005;    /* 出力開始年度 */
            KE = 2126;    /* 推計終了年度 */
            KF = 2120;    /* 出力終了年度 */
            PART = 1;PARTYR1 = 2024; PARTYR2 = KE+1;
            PARTK1 = 7; PARTKYR = 2018;
            PARTK2 = 2; PARTJ2 = 1;
            MODE45 = 1; 
            break ;
        case 6: /* オプション（納付期間延長）＋適用拡大1050 */
            printf("オプション（納付期間延長）＋1050万人拡大に設定しました\n") ;
            KIJUN = 2017; /* 基準年度 */
            KS = 2005;    /* 出力開始年度 */
            KE = 2126;    /* 推計終了年度 */
            KF = 2120;    /* 出力終了年度 */
            PART = 1;PARTYR1 = 2024; PARTYR2 = KE+1;
            PARTK1 = 8; PARTKYR = 2018;
            PARTK2 = 3; PARTJ2 = 1;
            MODE45 = 1; 
            break ;
            fprintf(stderr, "計算モードの設定が間違っています\n");
            exit (2);
    }


/*  使用する人口（JIN）の設定 */
    printf("人口推計（出生率）の設定\n"); 
    printf("２１：出生率中位推計 29年人口推計\n"); 
    printf("２２：出生率高位推計 29年人口推計\n"); 
    printf("２３：出生率低位推計 29年人口推計\n"); 
    scanf("%d%*c", &JIN);
    switch ( JIN ) {
        case 21: /* 29年・出生率中位推計 */
            printf("出生率中位推計に設定しました\n") ;
            SJINKOY = 2015 ;
            FJINKOY = 2115 ;
            break ;
        case 22: /* 29年・出生率高位推計 */
            printf("出生率高位推計に設定しました\n") ;
            SJINKOY = 2015 ;
            FJINKOY = 2115 ;
            break ;
        case 23: /* 29年・出生率低位推計 */
            printf("出生率低位推計に設定しました\n") ;
            SJINKOY = 2015 ;
            FJINKOY = 2115 ;
            break ;
        default :
            fprintf(stderr, "人口の設定が間違っています\n");
            exit (2);
    }

/*  死亡（QX）の設定 */
    printf("死亡の設定\n"); 
    printf("１：死亡率中位推計\n"); 
    printf("２：死亡率高位推計\n"); 
    printf("３：死亡率低位推計\n"); 
    scanf("%d%*c", &QX);
    switch ( QX ) {
        case 1: /* 死亡率中位推計 */
            printf("死亡率中位推計に設定しました\n") ;
            break ;
        case 2: /* 死亡率高位推計 */
            printf("死亡率高位推計に設定しました\n") ;
            break ;
        case 3: /* 死亡率低位推計 */
            printf("死亡率低位推計に設定しました\n") ;
            break ;
        default :
            fprintf(stderr, "死亡率の設定が間違っています\n");
            exit (2);
    }

        YUHAIGX = 4 ;
    	YUHAIGY = 2065 ;


/*  労働力率（ROUDR）の設定 */
    printf("労働力率の設定\n"); 
    printf("１：労働参加進展ケース(本試算 2018年var)\n"); 
    printf("２：労働参加斬新ケース(本試算 2018年var)\n");
    printf("３：労働参加現状ケース(本試算 2018年var)\n"); 
    scanf("%d%*c", &ROUDR); 
    switch ( ROUDR ) {
        case 1: 
            printf("労働参加進展ケース(本試算 2018年var)に設定しました\n") ;
            ROUDYR = 2040 ;
            break ;
        case 2: 
            printf("労働参加斬新ケース(本試算 2018年var)に設定しました\n") ;
            ROUDYR = 2040 ;
            break ;
        case 3: 
            printf("労働参加現状ケース(本試算 2018年var)に設定しました\n") ;
            ROUDYR = 2040 ;
            break ;
        default :
            fprintf(stderr, "労働力率の設定が間違っています\n");
            exit (2);
    }




    switch ( JIN ) {
        case 21: 
            if ( QX == 1 ){
                KYOREQK = 1; KYOREQR = 1; KYOREQS = 1;
                KYOREQBK = 11; KYOREQBR = 11; KYOREQBS = 11;
            }
            else if( QX == 2 ){
            	KYOREQK = 1; KYOREQR = 1; KYOREQS = 1;
                KYOREQBK = 12; KYOREQBR = 12; KYOREQBS = 12;
            }
			else if( QX == 3 ){
            	KYOREQK = 1; KYOREQR = 1; KYOREQS = 1;
                KYOREQBK = 13; KYOREQBR = 13; KYOREQBS = 13;
            }
            break ;
        case 22: 
            if ( QX == 1 ){
                KYOREQK = 1; KYOREQR = 1; KYOREQS = 1;
                KYOREQBK = 21; KYOREQBR = 21; KYOREQBS = 21;
			}
            break ;
        case 23: 
            if ( QX == 1 ){
                KYOREQK = 1; KYOREQR = 1; KYOREQS = 1;
                KYOREQBK = 31; KYOREQBR = 31; KYOREQBS = 31;
            }
            break ;
    }



    MODESAN = 1;



	MIKA = 1;
    
	KIJUNMAP = 2018;	
    
    if(1){
/*  短時間雇用者割合の調整方法 */
    printf("短時間雇用者割合の調整方法の設定\n"); 
    printf("0：年齢一律（一定程度進む、進まないケース）\n");
    printf("1：一部の年齢で調整（進むケース）\n");
    scanf("%d%*c", &TANCHO); 
     switch ( TANCHO ) {
        case 0: 
            printf("0 年齢一律に設定しました\n") ;
            break ;
        case 1: 
            printf("1 一部の年齢で調整に設定しました、60歳\n") ;
            printf("男性は何歳以上で調整するかXR\n");
    		scanf("%d%*c", &XR);
    		printf("女性は何歳以上で調整するかXR1、15歳\n");
    		scanf("%d%*c", &XR1);
            break ;
        default :
            fprintf(stderr, "処理の設定が間違っています\n");
            exit (2);
     }
	}
	else {
		TANCHO = 1;
		XR = 60;
		XR1=15;
	}
    
/*  厚年の74歳まで被保険者にするする試算用 */
    printf("何歳まで被保険者年齢を延長させるか\n"); 
    printf("70：現行(70歳まで)\n"); 
    printf("74：させる（74歳まで）\n");
    scanf("%d%*c", &HIHO74); 
    HIHO74YR = 2026;
    switch ( HIHO74 ) {
        case 70: 
            printf("0 通常\n") ;
            HIHO74CHO =0;
            break ;
        case 74: 
            printf("1 厚年は74歳まで被保険者に設定しました（施行年度は2026年度）\n") ;
			HIHO74CHO =2;
            break ;
        default :
            fprintf(stderr, "設定が間違っています\n");
            exit (2);
    }


}

