当前位置:编程学习 > C/C++ >>

两道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 sex; //m代表男,f代表女
 int id;
 cdate birth;
 double score;
 int rank;
public :
 student()
 {
 }
 void setname()//姓名
 {
 cin>>name;
 }
 void setid()//学号
 {
  cin>>id;
 }
 void setsex()
 {
  cin>>sex;
 }
 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].setsex  ();
 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 sex; //m代表男,f代表女
 int id;
 cdate birth;
 double score;
 int rank;
public :
 student()
 {
 }
 void sets()
 {
  int yy,mm,dd;
  cin>>name>>sex>>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++原代码

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,