主题:编译出错了,但找不出问题所在
大家帮忙看看这个程序问题出在哪儿了,谢谢.
main部分:
#include<iostream>
#include"bankaccount.h"
using namespace std;
int main()
{
bankaccount account1,account2;
cout<<"start of test:\n";
account1.set(123,99,3.0);
cout<<"account1 inital statement:\n";
account1.output(cout);
account1.set(100,5.0);
cout<<"account1 intigal statement:\n";
account1.output(cout);
account1.update();
cout<<"account1 after uodate:\n";
account1.output(cout);
account2=account1;
cout<<"account2:\n";
account2.output(cout);
return 0;
}
#include"bankaccount.h"
// bankaccount.h: interface for the bankaccount class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_BANKACCOUNT_H__DEF2BADF_C38E_4467_AB58_C791B0B9AD11__INCLUDED_)
#define AFX_BANKACCOUNT_H__DEF2BADF_C38E_4467_AB58_C791B0B9AD11__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include<iostream>
class bankaccount
{
public:
void set(int dollars,int cents,double rate);
void set(int dollars,double rate);
void update();
double get_balance();
double get_rate();
void output(ostream& outs);
bankaccount();
virtual ~bankaccount();
private:
double balance;
double interest_rate;
double fraction(double percent);
};
#endif // !defined(AFX_BANKACCOUNT_H__DEF2BADF_C38E_4467_AB58_C791B0B9AD11__INCLUDED_)
bankaccount.cpp:
// bankaccount.cpp: implementation of the bankaccount class.
//
//////////////////////////////////////////////////////////////////////
#include "bankaccount.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
bankaccount::bankaccount()
{
}
bankaccount::~bankaccount()
{
}
void bankaccount::set(int dollars, int cents, double rate)
{
if((dollars<0)||(cents<0)||(rate<0))
{
cout<<"illegal values for money or interest rate.\n";
exit(1);
}
balance=dollars+0.01*cents;
interest_rate=rate;
}
void bankaccount::set(int dollars,double rate)
{
if((dollars<0)||(rate<0))
{
cout<<"illegal values for money or interest rate.\n";
exit(1);
}
balance=dollars;
interest_rate=rate;
}
void bankaccount::update()
{
balance=balance+fraction(interest_rate)*balance;
}
double bankaccount::fraction(double percent_value)
{
return (percent_value/100.0);
}
double bankaccount::get_balance()
{
return balance;
}
double bankaccount::get_rate()
{
return interest_rate;
}
void bankaccount::output(ostream& outs)
{
outs.setf(ios::fixed);
outs.setf(ios::showpoint);
outs.precision(2);
outs<<"account balance $"<<balance<<endl;
outs<<"interest rate"<<interest_rate<<"%"<<endl;
}
问题主要存在于
main.cpp
d:\program files\microsoft visual studio\myprojects\project1\bankaccount.h(20) : error C2061: syntax error : identifier 'ostream'
d:\program files\microsoft visual studio\myprojects\project1\main.cpp(12) : error C2660: 'output' : function does not take 1 parameters
d:\program files\microsoft visual studio\myprojects\project1\main.cpp(16) : error C2660: 'output' : function does not take 1 parameters
d:\program files\microsoft visual studio\myprojects\project1\main.cpp(20) : error C2660: 'output' : function does not take 1 parameters
d:\program files\microsoft visual studio\myprojects\project1\main.cpp(24) : error C2660: 'output' : function does not take 1 parameters
执行 cl.exe 时出错.
main.obj - 1 error(s), 0 warning(s)
main部分:
#include<iostream>
#include"bankaccount.h"
using namespace std;
int main()
{
bankaccount account1,account2;
cout<<"start of test:\n";
account1.set(123,99,3.0);
cout<<"account1 inital statement:\n";
account1.output(cout);
account1.set(100,5.0);
cout<<"account1 intigal statement:\n";
account1.output(cout);
account1.update();
cout<<"account1 after uodate:\n";
account1.output(cout);
account2=account1;
cout<<"account2:\n";
account2.output(cout);
return 0;
}
#include"bankaccount.h"
// bankaccount.h: interface for the bankaccount class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_BANKACCOUNT_H__DEF2BADF_C38E_4467_AB58_C791B0B9AD11__INCLUDED_)
#define AFX_BANKACCOUNT_H__DEF2BADF_C38E_4467_AB58_C791B0B9AD11__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include<iostream>
class bankaccount
{
public:
void set(int dollars,int cents,double rate);
void set(int dollars,double rate);
void update();
double get_balance();
double get_rate();
void output(ostream& outs);
bankaccount();
virtual ~bankaccount();
private:
double balance;
double interest_rate;
double fraction(double percent);
};
#endif // !defined(AFX_BANKACCOUNT_H__DEF2BADF_C38E_4467_AB58_C791B0B9AD11__INCLUDED_)
bankaccount.cpp:
// bankaccount.cpp: implementation of the bankaccount class.
//
//////////////////////////////////////////////////////////////////////
#include "bankaccount.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
bankaccount::bankaccount()
{
}
bankaccount::~bankaccount()
{
}
void bankaccount::set(int dollars, int cents, double rate)
{
if((dollars<0)||(cents<0)||(rate<0))
{
cout<<"illegal values for money or interest rate.\n";
exit(1);
}
balance=dollars+0.01*cents;
interest_rate=rate;
}
void bankaccount::set(int dollars,double rate)
{
if((dollars<0)||(rate<0))
{
cout<<"illegal values for money or interest rate.\n";
exit(1);
}
balance=dollars;
interest_rate=rate;
}
void bankaccount::update()
{
balance=balance+fraction(interest_rate)*balance;
}
double bankaccount::fraction(double percent_value)
{
return (percent_value/100.0);
}
double bankaccount::get_balance()
{
return balance;
}
double bankaccount::get_rate()
{
return interest_rate;
}
void bankaccount::output(ostream& outs)
{
outs.setf(ios::fixed);
outs.setf(ios::showpoint);
outs.precision(2);
outs<<"account balance $"<<balance<<endl;
outs<<"interest rate"<<interest_rate<<"%"<<endl;
}
问题主要存在于
main.cpp
d:\program files\microsoft visual studio\myprojects\project1\bankaccount.h(20) : error C2061: syntax error : identifier 'ostream'
d:\program files\microsoft visual studio\myprojects\project1\main.cpp(12) : error C2660: 'output' : function does not take 1 parameters
d:\program files\microsoft visual studio\myprojects\project1\main.cpp(16) : error C2660: 'output' : function does not take 1 parameters
d:\program files\microsoft visual studio\myprojects\project1\main.cpp(20) : error C2660: 'output' : function does not take 1 parameters
d:\program files\microsoft visual studio\myprojects\project1\main.cpp(24) : error C2660: 'output' : function does not take 1 parameters
执行 cl.exe 时出错.
main.obj - 1 error(s), 0 warning(s)