下面的程序有什么问题,希望给出改正后的代码,用vs2010编译的
//gradebook.h
#include<string>
using namespace std;
class gradebook
{
public:
gradebook(string name);
void setcoursename(string name);
string getcoursename();
void displaymessage();
void inputgrades();
void displaygradereport();
private:
string coursename;
int acount;
int bcount;
int ccount;
int dcount;
int fcount;
}
//gradebook.cpp
#include<iostream>
#include"gradebook.h"
using namespace std;
gradebook::gradebook(string name)
{
setcoursename(name);
acount=0;
bcount=0;
ccount=0;
dcount=0;
fcount=0;
}
void gradebook::setcoursename(string name)
{
string nameofcourse;
if(name.length()<=25)
coursename=name;
if(name.length()>25)
{
getline(cin,nameofcourse);
if(nameofcourse.length()<=25)
coursename=nameofcourse;
else
coursename=nameofcourse.substr(0,25);
}
}
string gradebook::getcoursename(){return coursename;}
void gradebook::displaymessage(){cout<<"welcome to gradebook for"<<getcoursename()<<"!"<<endl;}
void gradebook::inputgrades ()
{
int grade;
cout<<"Enter the letter grade."<<endl
<<"Enter the EOF character to end input."<<endl;
while(grade=cin.get ()!=EOF)
{
switch(grade)
{
case 'A':
case 'a':
acount++;
break;
case 'B':
case 'b':
bcount++;
break;
case 'C':
case 'c':
ccount++;
break;
case 'D':
case 'd':
dcount++;
break;
case 'F':
case'f':
fcount++;
break;
case '\t':
case ' ':
case '\n':
break;
default:
cout<<"Icorrect letter grade entered."<<endl;
cout<<"Enter a new grade:"<<endl;
break;
}
}
}
void gradebook::displaygradereport ()
{
cout<<"\nNumber of students who receive each letter grade:\n"
<<"A:\n"<<acount
<<"\nB:\n"<<bcount
<<"\nC:\n"<<ccount
<<"\nD\n"<<dcount
<<"\nF\n"<<fcount<<endl;
}
//test.cpp
#include <iostream>
#include "gradebook.h"
int main()
{
gradebook mygradebook("c++");
mygradebook.displaymessage();
mygradebook.inputgrades();
mygradebook.displaygradereport();
system("pause");
return 0;
}
最佳答案
gradebook类声明中没有加分隔号;添加上以后应该级没问题了。
其他回答
暂无其它回答!