阿摩線上測驗 登入

申論題資訊

試卷:111年 - 111 經濟部所屬事業機構_新進職員甄試_資訊:1.資訊管理 2.程式設計#111338
科目:國營事業◆1.資訊管理 2.程式設計
年份:111年
排序:0

題組內容

五、A 公司 1 月人事資料檔案如下表,請撰寫下列程式片段。(2 題,共 15 分)
63564ca6bd3fe.jpg

申論題內容

(二)請撰寫一函式 main(),逐筆讀取人事資料檔案,並呼叫(一)函式,篩選正確員工代號 資料,最後列出特別費合計超過 100,000 元之部門代號及合計金額。(8 分)

詳解 (共 4 筆)

詳解 提供者:Fourier
C++
66d03c69af287.jpg
因為題目沒特別說他是要讀取檔案還是本身就一個矩陣
就自己設了一個矩陣來計算
雖然也沒任何部門達標但還是放個輸出結果
有錯誤的地方請指教
66d03c90a9096.jpg
詳解 提供者:Grace

public voin main() {
    String[ ][ ] data;
    data = input(table);

    for (i =0, i<data.length, i++)
        String[ ] row = 0;    
        row = data[i+1];
        for(j=0, j<row.length, j++)
            if (check_dit(row))
                if (row[3] >=10000)
                    printf("部門代號":+row[1]+", 金額="+row[3]);
}

詳解 提供者:polar33794

void main()
{
   int EmpTable[6][4];
  
   for(int i=0;i<6;i+=2)
   {
       if(check_id(EmpTable[i][0]))
       {
           if(check_id(EmpTable[i+1][0]))
           {
               if((EmpTable[i][3]+EmpTable[i+1][3])>100000)
                 printf("dep_id=%c and Total_s_salary=%d\n",EmpTable[i][1],EmpTable[i][3]+EmpTable[i+1][3]);
           }
            else
            {
                if(EmpTable[i][3]>100000)
                  printf("dep_id=%c and Total_s_salary=%d",EmpTable[i][1],EmpTable[i][3]);
            }
       }
       else if (check_id(EmpTable[i+1][0]))
       {
             if(EmpTable[i+1][0]>100000)
                printf("dep_id=%c and Total_s_salary=%d",EmpTable[i][1],EmpTable[i+1][3]);
       }
   }
}

詳解 提供者:拾貳貓
def check_dit(emp_id):
    if not(emp_id.isdigit() and len(emp_id)==6):
        print(f"員工代碼{emp_id}錯誤")
        return False
    five_num=list(map(int,emp_id[:5]))
    total=sum(five_num)

    if(int(emp_id[-1])==total%10):
        print(f"員工代碼{emp_id}正確")
        return True
    else:
        print(f"員工代碼{emp_id}錯誤")
        return False
def main(file_path):
    dep_total={}
    with open("data.txt","r",encoding="utf-8") as file:
        for line in file:
            line=line.strip().split(",")
            emp_id=line[0]
            dep_id=line[1]
            age=line[2]
            s_salary=int(line[3])
            if check_dit(emp_id):
                if dep_id in dep_total:
                    dep_total[dep_id]+=s_salary
                else:
                    dep_total[dep_id]=s_salary
    for dep,total in dep_total.items():
        if total>100000:
            print(f"部門{dep}有超過十萬的特別費:{total}")
        else:
            print("找無符合資格的部門")

if __name__==__main__:
    file_path="data.txt"
    main(file_path)
小弟不才 自學python 不知有無錯誤 還請版上大神指教