2016-02-05 87 views
0

我正在編寫一個程序,它將顯示員工的信息(預定義),即名,姓,年齡,身份證號碼,總工資,稅額和輸入ID號碼後的淨工資和工作時間。非常基本的東西?如何使用用戶輸入的變量來定義另一個變量

我的問題是,我無法讓編譯器在接受工作時間後執行正確的計算來給我工資總額,稅額和淨工資。

基於我所看到的問題是這些計算中涉及的主變量,即totalHoursWorked是基於用戶輸入的。

如果我宣佈,相同的變量,併爲其分配量,然後計算運行平穩輸出正確的值,但由於用戶需要能夠從.1輸入任何價值40這是一個問題(表達最高40個工作小時)。

但是,當我刪除指定的值並要求用戶輸入時,一切都出錯了。

下面我寫了我遇到問題的部分代碼。這只是一個粗略的草稿來幫助我想象那裏的問題是,專注於調整它:

#include <iostream> 
using namespace std; 

int main() 
{ 

    double hourlyRate=7.5; 
    double taxPercentage=0.16; 
    double totalWorkHours; 
    double grossSalary=hourlyRate*totalWorkHours; 
    double taxAmount=grossSalary*taxPercentage; 
    double netSalary=grossSalary-taxAmount; 

    cout<<"Please enter total work hours"<<endl; 

    cin>>totalWorkHours; 

    cout<<grossSalary <<endl; 

    cout<<taxAmount <<endl; 

    cout<<netSalary <<endl; 

    system ("pause"); 
    return 0; 

} 

這是輸出我得到:你之前,你做你的計算

Please enter total work hours 

40     <----i input 40 here 

3.95253e-323 <--- These are the results of the calculations 

4.94066e-324 

3.45846e-323 

Press any key to continue..._ 
+0

除非另有說明,否則計算機將自上而下運行您的代碼。因此,它會計算所有這些事情(使用垃圾信息),然後*然後*要求總工作小時數,然後*它會顯示之前計算的垃圾數。 – immibis

回答

0

我不熟悉C++。我剛開始使用它,但我的課程都是java,所以它已經有一段時間了。任何人,這是我會做的。

double hourlyRate=7.5; 
double taxPercentage=0.16; 
double totalWorkHours; 
double grossSalary; 
double taxAmount; 
double netSalary; 

cout<<"Please enter total work hours"<<endl; 

cin>>totalWorkHours; 

grossSalary = hourlyRate*totalWorkHours; 
cout<<grossSalary <<endl; 
taxAmount = grossSalary*taxPercentage; 
cout<<taxAmount <<endl; 
netSalary = grossSalary-taxAmount; 
cout<<netSalary <<endl; 

system ("pause"); 
return 0; 

這就是我的兩分錢。

+0

謝謝你們,正如我所說,我是一個完整的新手,所以我感謝你的所有輸入。我會輸入你的建議,讓你們都知道結果。 –

+0

好吧,我絕對看到你們都在說什麼。現在很清楚。謝謝!特別是迦勒主教,你真的幫助布魯! –

0

」已經在totalWorkHours中讀過,所以計算基於在該位置存儲器中發生的任何隨機值。

0

嘗試一些簡單:

int A = 1; 
int B = A + 1; 

A = 3; 
cout << B << endl; 

結果是2

C++中的語句不像數學中的聯立方程,它們是作業,並且它們可以被稍後的作業所黯然失色。聲明:

int B = A + 1; 

等同於:

int B; 
B = A + 1; 

你的B值設置爲2,任務結束。然後,您可以將A的值設置爲任何您喜歡的值,並且對B不會產生任何影響。

0

嘗試在用戶輸入工作時間後進行計算。定義totalWorkHours,然後要求他們輸入,然後用他們的計算定義所有其他變量。應該管用!

1

我認爲OP的思想中的實際問題是他們將C++看作一種符號數學符號。即,定義與前三個公式的關係,然後傳遞具體值以根據公式更新結果。但是,這不是真的。什麼張貼代碼做,是計算grossSalarytaxAmountnetSalary基礎上的totalWorkHours值,它前面已經說了是不確定的和垃圾,並然後分配一個新值totalWorkHours,這並不影響已經值進行了計算。

相關問題