阿摩線上測驗 登入

申論題資訊

試卷:113年 - 113 關務特種考試_四等_資訊處理(選試英文):程式設計概要#119478
科目:程式設計
年份:113年
排序:0

申論題內容

二、編寫一個程式(使用 Python, Java, C#, C 和 C++五種程式語言任一種),用於計算某家公司的月薪分布。該程式需要將員工月薪等級分為三類,並計算每個等級的員工數量分布。月薪的三個等級定義如下:
A 等級:低於 35000(包含 35000)
B 等級:35000~100000(包含 100000)
C 等級:100000 以上
使用者將輸入一系列員工月薪的收入,程式需要驗證輸入格式的正確性。完成輸入後,應顯示各等級月薪員工的分布情況。(25 分)

詳解 (共 2 筆)

詳解 提供者:Fourier
C++
有錯請幫忙指正
#include<iostream>
using namespace std;
int main(){
    int la=0;
    int lb=0;
    int lc=0;
while (true) {
        long sal;
        cout << "請輸入薪資(結束請輸入-1): ";
        cin >> sal;
        if (sal == -1) {
            break;
        }
        if (sal < 0) {
            cout << "輸入錯誤" << endl;
        } else if (sal > 100000) {
            lc += 1;
        } else if (sal > 35000 && sal <= 100000) { 
            lb += 1;
        } else {
            la += 1;
        }
    }
    cout<<"A等級有"<<la<<"人"<<endl;
    cout<<"B等級有"<<lb<<"人"<<endl;
    cout<<"C等級有"<<lc<<"人"<<endl;
    return 0;
}
 
輸出:
66865facecca1.jpg






詳解 提供者:hchungw
PYTHON
 
def classify_salaries(salaries):
    a_count = b_count = c_count = 0
    for salary in salaries:
        if salary <= 35000:
            a_count += 1
        elif 35000 < salary <= 100000:
            b_count += 1
        else:
            c_count += 1
    return a_count, b_count, c_count
def main():
    salaries = []
    while True:
        user_input = input("Enter an employee's monthly salary (or type 'done' to finish): ")
        if user_input.lower() == 'done':
            break
        try:
            salary = int(user_input)
            if salary < 0:
                print("Invalid input. Salary must be a non-negative integer.")
            else:
                salaries.append(salary)
        except ValueError:
            print("Invalid input. Please enter a valid integer.")
    if salaries:
        a_count, b_count, c_count = classify_salaries(salaries)
        print(f"A level (<= 35000): {a_count} employees")
        print(f"B level (35000 - 100000): {b_count} employees")
        print(f"C level (> 100000): {c_count} employees")
    else:
        print("No valid salaries were entered.")
if __name__ == "__main__":
    main()
 
 
 
C++
 
#include <iostream>
#include <vector>
#include <string>
using namespace std;
void classifySalaries(const vector<int>& salaries, int& a_count, int& b_count, int& c_count) {
    a_count = b_count = c_count = 0;
    for (int salary : salaries) {
        if (salary <= 35000) {
            a_count++;
        } else if (salary <= 100000) {
            b_count++;
        } else {
            c_count++;
        }
    }
}
int main() {
    vector<int> salaries;
    string user_input;
    while (true) {
        cout << "Enter an employee's monthly salary (or type 'done' to finish): ";
        cin >> user_input;
        if (user_input == "done") {
            break;
        }
        try {
            int salary = stoi(user_input);
            if (salary < 0) {
                cout << "Invalid input. Salary must be a non-negative integer." << endl;
            } else {
                salaries.push_back(salary);
            }
        } catch (invalid_argument&) {
            cout << "Invalid input. Please enter a valid integer." << endl;
        }
    }
    if (!salaries.empty()) {
        int a_count, b_count, c_count;
        classifySalaries(salaries, a_count, b_count, c_count);
        cout << "A level (<= 35000): " << a_count << " employees" << endl;
        cout << "B level (35000 - 100000): " << b_count << " employees" << endl;
        cout << "C level (> 100000): " << c_count << " employees" << endl;
    } else {
        cout << "No valid salaries were entered." << endl;
    }
    return 0;
}