阿摩線上測驗 登入

申論題資訊

試卷:101年 - 地方特考_四等_資訊處理_程式設計概要#12230
科目:程式設計
年份:101年
排序:0

申論題內容

一、某公司欲對薪資低於5萬元的員工調增薪資3%,但調薪後薪資上限5萬元,原薪資已達5萬元的員工不調薪。請用C/C++、C#或Java: (一)寫一程式片段,可供不斷輸入一位員工的薪資,計算其調薪後薪資。所有員工處理完後輸入A~Z之任一字元結束。(10分) (二)寫一程式片段,可供不斷輸入一位員工的薪資,所有員工處理完後輸入A~Z之任一字元結束。計算調薪後公司總薪資之增幅。(10分)

詳解 (共 3 筆)

詳解 提供者:Angus Yang
/*本程式已測試過,可在Dev C++ 4.9.9.2執行 */
#include

using namespace std;

main()
{

float old_t,new_t;
float old_m,new_m,final;
old_t=0;
new_t=0;
char key_in;
key_in = 'a';
new_t=0;
old_t=0;

cout << "press any key" << endl;
cout << "請按A~Z鍵結束,或按任何鍵繼續:" << endl;

cin >> key_in;

while( (key_in < 'A') || (key_in > 'Z') )
{
old_m = 0;
new_m = 0;

cout << "請輸入員工薪資" << endl;
cin >> old_m;
old_t = old_t + old_m;
if (old_m >= 50000)
{
cout << "薪資已大於或等於50000,不調薪" << endl;
new_t = new_t + old_m ;
}
else
{
new_m = old_m * 1.03;

if(new_m >= 50000)
{
new_m = 50000;
cout << "調薪後薪資已大於或等於50000以50000計" << endl;
new_t = new_t + new_m;
}
else
{

printf("調薪後薪資是 %.1f\n",new_m);
new_t = new_t + new_m;
}
cout << "請按A~Z鍵結束,或按任何鍵繼續:"
<< endl;
cin >> key_in;

}
}
final = ((new_t - old_t)/old_t) * 100 ;
printf( "員工薪資總調幅為:%.0f %%\n ",final );

system("PAUSE");

return 0;
}
詳解 提供者:b993011018

#include #define Upbound 50000 using namespace std; int main() { float Salary; while(cin>>Salary) { if(Salary >= Upbound) { cout<<"薪資無須調整"<= Upbound) Salary = Upbound; cout<<"調整後薪資為 "<

詳解 提供者:hchungw
這個程式允許不斷輸入一位員工的薪資,計算其調薪後的薪資。當輸入非數字(A~Z之任一字元)時,程式結束。
csharp
Copy code
using System;
class Program {
    static void Main(string[] args) {
        while (true) {
            Console.WriteLine("請輸入員工的薪資(輸入A~Z之任一字元結束):");
            string input = Console.ReadLine();
            // 檢查輸入是否為結束條件的字母
            if (input.Length == 1 && char.IsLetter(input[0])) {
                Console.WriteLine("程式結束。");
                break;
            }
            // 嘗試將輸入轉換為薪資數值
            if (double.TryParse(input, out double salary)) {
                if (salary < 50000) {
                    // 計算調薪後的薪資,但不超過5萬元
                    double adjustedSalary = Math.Min(salary * 1.03, 50000);
                    Console.WriteLine($"調薪後的薪資為:{adjustedSalary}");
                } else {
                    // 薪資已達或超過5萬元,不調薪
                    Console.WriteLine("薪資已達或超過5萬元,不調薪。");
                }
            } else {
                Console.WriteLine("輸入的不是有效的薪資數值,請重新輸入。");
            }
        }
    }
}
這段程式碼使用了 while (true) 迴圈來實現不斷的輸入。當輸入的是數字時,它會判斷薪資是否低於50000元,如果是,則按照要求調整薪資並輸出;如果薪資已達或超過50000元,則輸出不調薪的訊息。當輸入的是字母時,程式將結束。使用 double.TryParse 來安全地將輸入的字串轉換成薪資數值,如果轉換失敗(表示輸入的不是數字),則提示用戶重新輸入。