J'écris un programme dans Microsoft Visual Studio avec C++ qui va récupérer des informations à partir d'un fichier .txt. Dans ce fichier, il y a des nombres négatifs, mais quand j'essaye d'écrire une boucle while qui indique ce qu'il faut faire s'il y a un nombre négatif, j'obtiens plusieurs erreurs.Comment réparer mon erreur?
Quelqu'un peut-il m'aider s'il vous plaît avec ceci? Voici mon code et je réalise qu'il y a des erreurs mais je ne peux pas comprendre comment écrire l'instruction While pour lire ces valeurs qui sont les heures travaillées et le taux horaire du fichier .txt
Exemple de fichier texte:
45.0 10.50
-35.0 7.75
50.0 12.00
45.0 -8.50
30.0 6.50
48.0 -10.25
-50.0 10.00
50.0 8.75
40.0 12.75
56.0 8.50
code:
//*****************************
// This program is to help calculate an employee's weekly gross pay as well as
// the net pay while showing the taxes that were taken off.
// The data that will be shown will be calculated from a .txt file
// that was created and called employee.txt.
// Input: Will be the inFile known as employee.txt
// Output: Gross pay, taxable income, federal tax, state tax, and net pay
// Typed by:
// Date:
//******************************
#include <iomanip>
#include <fstream>
#include <iostream>
using namespace std;
float computeGross(float, float);
void computeTaxes(float, float&, float&, float&);
float computeNetPay (float&, float&, float&, float&);
const float hours = 40; // Regular 40 hour work week
const float ovTime = 1.5; // Overtime if hours go over 40
const float exemption = 200.0; // Exemption if pay goes over 200
const float fedTaxRate = 0.10; // Federal Tax Rate
const float stTaxRate = 0.03; // State Tax rate
ifstream inFile;
ofstream outFile;
int main()
{
inFile.open("employee.txt");
outFile.open("result.txt");
float hours, rate, grossPay, taxableIncome, fedTax, stTax, NetPay;
inFile >> hours >> rate;
while(inFile)
{
if {
(hours <= 0)&& (rate <= 0);
outFile << "Invalid Data";
}
else{
return 0;
}
}
grossPay = computeGross(hours, rate);
computeTaxes (grossPay, taxableIncome, fedTax, stTax);
computeNetPay (grossPay, fedTax, stTax, NetPay);
outFile << fixed << showpoint << setprecision(2);
outFile << "Hours worked = " << hours << endl
<< "Hourly rate = " << rate << endl
<< "Employee's gross pay = " << grossPay << endl
<< "Taxable Income = " << taxableIncome << endl
<< "Federal Taxes = " << fedTax << endl
<< "State Taxes = " << stTax << endl
<< "Net Pay = " << NetPay << endl;
return 0;
}
float computeGross (float h, float r) //Computes for the Gross Pay
{
if (h > hours)
return hours * r + (h - hours) * r * ovTime;
else
return h * r;
}
void computeTaxes(float g, float& taxable, float& fedTax, float& stTax) //Computes both Taxes
{
taxable = g - exemption;
if (taxable > 0.0)
{
fedTax = fedTaxRate * taxable;
stTax = stTaxRate * taxable;
}
else
{
fedTax = 0.0;
stTax = 0.0;
}
}
float computeNetPay (float& grossPay, float& fedTax, float& stTax, float& NetPay)
{
return NetPay = grossPay - fedTax - stTax;
}
Désolé, il ne semble pas exactement comme ça ... n'a pas tout l'espace correctement. C'est juste que je ne peux pas comprendre comment obtenir la boucle While pour lire les nombres négatifs aussi –
Pourriez-vous s'il vous plaît corriger le formatage et fournir un exemple de sortie? –
Désolé, je pense que je l'ai réparé. quand je lance le code que je ne reçois que cette sortie Heures travaillées = 45.00 Taux horaire = 10,50 employé le salaire brut de = 498,75 revenu imposable = 298,75 Taxes fédérales = 29.88 Taxes Etat = 8,96 Pay Net = 459,91 –