运算符重载、模板"/>
LHL PTA 实验11 运算符重载、模板
题目1
6-1 学生成绩的输入和输出(运算符重载) (25分)
现在需要输入一组学生的姓名和成绩,然后输出这些学生的姓名和等级。
输入时,首先要输入学生数(正整数)N。接着输入N组学生成绩,每组成绩包括两项:第一项是学生姓名,第二项是学生的成绩(整数)。
输出时,依次输出各个学生的序号(从1开始顺序编号),学生姓名,成绩等级(不小于60为PASS,否则为FAIL)
函数接口定义:
面向Student类对象的流插入和流提取运算符
裁判测试程序样例:
#include
#include
using namespace std;
/* 请在这里填写答案 */
int main(){
int i, repeat;
Student st;
cin>>repeat;
for(i=0;i<repeat;i++){
cin>>st;
cout<<st<<endl;
}
return 0;
}
static int cnt=0;
class Student
{
public:
string name;
int grade;
Student(string n=" ",int g=1)
{
name=n;
grade=g;
}
};
ostream&operator<<(ostream& out,const Student &s)
{
out<<cnt<<". “<<s.name<<” ";
if(s.grade>=60)
out<<“PASS”;
else
out<<“FAIL”;
}
istream&operator>>(istream& in,Student &s)
{
in>>s.name>>s.grade;
cnt++;
}运行结果截图
题目2
6-2 日期类的设计与实现 (25分)
使用重载运算符(++,+=,<<等)实现日期类的操作。功能包括: 1)设置日期,如果日期设置不符合实际,则设置为默认日期(1900年1月1日) 2)在日期对象中向日期添加1或者加若干天(加入日期值后根据实际的日期进行月份、年份的变化) 3)重载流插入运算符进行日期的输出,其中月份要用名称表示
定义类MyDate:
class MyDate
主测试程序样例:
#include
#include
using namespace std;
/* 请在这里填写答案 */
int main()
{
int m,d,y;
MyDate d1,d2,d3;
cin>>m>>d>>y;
d1.setDate(m,d,y);
cin>>m>>d>>y;
d2.setDate(m,d,y);cin>>m>>d>>y;
d3.setDate(m,d,y);cout << "d1 is " << d1 << "\nd2 is " << d2;
cout << "\n\nd1 += 7 is " << ( d1 += 7 );
cout << "\n\n d2 is " << d2;
cout << "\n++d2 is " << ++d2;
cout << "\n\nTesting the prefix increment operator:\
更多推荐
LHL PTA 实验11 运算符重载、模板
发布评论