没有构建错误,错误的输出
No build errors, wrong output
我必须为我的c++类编写这个程序,我认为我没有任何问题,但是每次我运行这个程序时,我都得到胡言乱语作为输出。我进入程序(Visual studio 2010是我的编译器),发现程序在这里出错
Account::Account(double Balance, double InterestRate1, double InterestRate2)
{
balance = balance;
interest_rate1 = InterestRate1;
interest_rate2 = InterestRate2;
Payment();
}
它将余额设置为6(我正在读取的文件中的第一个数字)和利率,但是一旦进入下一步,一切都出错了。为什么?
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ofstream outputfile("output.txt");
const int MAX_FILE_NAME = 35;
const double INTEREST_RATE1 = 0.015;
const double INTEREST_RATE2 = 0.010;
const double LEVEL_ONE_BALANCE = 1000.00;
const double MINIMUM_PAYMENT = 10.00;
const double MINIMUM_PAYMENT_PERCENT = 0.10;
class Account
{
public:
Account( double Balance, double InterestRate1, double InterestRate2);
Account( );
double Payment();
double InterestDue();
double TotalAmountDue();
void output(ostream &out);
private:
double balance;
double interest;
double payment;
double interest_rate1;
double interest_rate2;
double total_amount_due;
};
void open_input(ifstream& input, char name[]);
void process_file(ifstream& input);
int main()
{ char again;
char file_name[MAX_FILE_NAME + 1];
ifstream input_numbers;
cout << "This program computes the interest due, total amount due,n"
<< "and the minimum payment for a revolving credit account.n" << endl;
system("pause");
do
{
system("cls");
open_input(input_numbers, file_name);
process_file(input_numbers);
input_numbers.close();
cout << "nDo you want to process another file (Y/N)? ";
cin >> again;
cin.ignore(256, 'n');
}
while ( again == 'y' || again == 'Y');
cout << "nEnd of Program!" << endl;
outputfile << "nnThanks for using CreditCalculator!f";
outputfile.close();
return 0;
}
void open_input(ifstream& input, char name[])
{ int count = 0;
do
{ count++;
if (count != 1)
{ cout << "naInvalid file name or file does not exist. Please try again."
<< endl;
}
cout << "nEnter the input file name (maximum of " << MAX_FILE_NAME
<< " characters please)n:> ";
cin.get(name, MAX_FILE_NAME + 1);
cin.ignore(256, 'n');
input.clear();
input.open(name,ios_base::in);
} while (input.fail() );
}
void process_file(ifstream& input)
{ double value;
Account thisAccount;
while (input >> value)
{
thisAccount = Account(value, INTEREST_RATE1, INTEREST_RATE2);
thisAccount.output(cout);
thisAccount.output(outputfile);
}
}
// Account Class
Account::Account(double Balance, double InterestRate1, double InterestRate2)
{
balance = balance;
interest_rate1 = InterestRate1;
interest_rate2 = InterestRate2;
Payment();
}
Account::Account()
{
balance = 0;
}
double Account::InterestDue()
{
return interest;
}
double Account::TotalAmountDue()
{
return total_amount_due;
}
void Account::output(ostream &out) // Print values on output stream out();
{
out << "nnBalance : $" << setw(8) << balance << endl;
out << "Payment : $" << setw(8) << payment << endl;
out << "Interest : $" << setw(8) << interest << endl;
out << "Total due : $" << setw(8) << total_amount_due << endl;
}
double Account::Payment()
{
double newbalance;
if ( balance > LEVEL_ONE_BALANCE)
interest = (balance - LEVEL_ONE_BALANCE) * interest_rate2 +
LEVEL_ONE_BALANCE * interest_rate1; (this goes up there ^)
else
interest = balance * interest_rate1;
newbalance = balance + interest;
payment = newbalance * MINIMUM_PAYMENT_PERCENT;
if (newbalance < MINIMUM_PAYMENT_PERCENT)
payment=newbalance;
else
if ( payment < MINIMUM_PAYMENT)
payment=MINIMUM_PAYMENT;
return payment;
}
在Account::Account(double Balance, double InterestRate1, double InterestRate2)中你说
balance = balance;
应该是:
balance = Balance;
相关文章:
- 显示错误输出的简单数组排序程序
- Dijkstra 中的错误输出
- 自定义runtime_error,如果我在 #what 中使用#c_str(),则错误输出始终为空
- 流字符串错误输出
- C++ 异常处理错误输出
- C ++中的错误输出,i = 65530,当我们打印i的值时,它给出-6状态65530
- SSE和iostream:浮点类型的错误输出
- C++将 popen 错误输出读取为字符串
- 部分透视/高斯消除 - 交换列而不是产生错误输出的行
- C++,向量:获得包含 0 的错误输出
- 数组函数错误输出
- CC1plus 错误:输出文件名指定两次
- 字符串错误输出
- 子斯特的错误输出
- 对大量c++错误输出完全一无所知.我认为这与预定义的函数和迭代器有关
- 简单程序的错误输出
- XCode调试器lldb中断,没有错误输出,但程序运行良好
- std::string::append(std::string)错误输出
- 查看大错误输出的顶行
- 使用结构的错误输出