两道C++题目,100分求解
第一题:第二题:
谢谢~~~~
追问:试着把两个程序分开,但出现了一些错误,怎么分呢、
追问:试着把两个程序分开,但出现了一些错误,怎么分呢、
答案:#include <iostream>
using namespace std;
class cdate{
private:
int y,m,d;
public :
cdate(){}
void set(int yy,int mm,int dd)
{
y=yy;
m=mm;
d=dd;}
};
class student{
private:
char name[10];
char 易做图; //m代表男,f代表女
int id;
cdate birth;
double score;
int rank;
public :
student()
{
}
void setname()//姓名
{
cin>>name;
}
void setid()//学号
{
cin>>id;
}
void set易做图()
{
cin>>易做图;
}
void setbirth()
{
int y,m,d;
cin>>y>>m>>d;
birth.set(y,m,d);}
void setscore()
{
cin>>score;
}
void setrank()
{
cin>>rank;
}
double getscore()
{
return score;
}
int getrank()
{
return rank;
}
void show()
{
cout<<rank<<"\t"<<name<<endl;
}};
int main()
{
int i,avg=0,j;
student stu[10];
cout<<"输入10名学生的姓名";
for(i=0;i<10;i++)
stu[i].setname ();
cout<<"学号:";
for(i=0;i<10;i++)
stu[i].setid ();
cout<<"性别:";
for(i=0;i<10;i++)
stu[i].set易做图 ();
cout<<"出生日期:";
for(i=0;i<10;i++)
stu[i].setbirth ();
cout<<"班排名:";
for(i=0;i<10;i++)
stu[i].setrank ();
for(i=0;i<10;i++)
{
avg+=stu[i].getscore ();
stu[i].show ();
}
cout<<"平均分为:"<<avg/10.0<<endl;
cout<<"排名:";
for(i=1;i<=10;i++)
{
for(j=0;j<10;j++)
{
if(i=stu[j].getrank ())
stu[j].show ();
}
}
return 0;
}#include <iostream>
using namespace std;
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
class cdate{
private:
int y,m,d;
public :
cdate(){}
void add(int n){ // 增加日期
if((y%4==0&&y%100!=0)||(y%400==0))
a[1]=29;
for(int i=1;i<=n;i++)
{
d++;
if(d>a[m-1])
{
m++;
d=1;
}
if(m>12)
{
y++;
m=1;
}
}
}
void set(int yy,int mm,int dd)
{
y=yy;
m=mm;
d=dd;}
void del(int n){ // 减去日期
if((y%4==0&&y%100!=0)||(y%400==0))
a[1]=29;
for(int i=1;i<=n;i++)
{
d--;
if(d<1)
{
m--;
d=a[m-1];
}
if(m<1)
{
y--;
m=12;
}
}
}
};
class student{
private:
char name[10];
char 易做图; //m代表男,f代表女
int id;
cdate birth;
double score;
int rank;
public :
student()
{
}
void sets()
{
int yy,mm,dd;
cin>>name>>易做图>>id>>score>>yy>>mm>>dd;
birth.set(yy,mm,dd);
rank=1;
}
double getscore()
{
return score;
}
void setrank()
{
rank++;
}
void show()
{
cout<<name<<"排名:"<<rank<<endl;
}};
int main()
{
int i,avg=0,j;
student stu[10];
for(i=0;i<10;i++)
stu[i].sets ();
for(i=0;i<10;i++) //排名
{
for(j=0;j<10;j++)
{
if(stu[j].getscore ()<stu[i].getscore ())
stu[j].setrank ();
}
}
for(i=0;i<10;i++)
{
avg+=stu[i].getscore ();
stu[i].show ();
}
cout<<"平均分为:"<<avg/10.0<<endl;
return 0;
}
上一个:C++问题:struct结构体与类
下一个:求四则运算计算器C++原代码