64,684
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<string>
#include<time.h>
#include<cstdlib>
#include"Singer.h"
Singer* creat() //选手链表
{
char define=' '; //用来存放结束标志
Singer* head;
Singer *p2,*p1;
while(define!='#')
{
string Name;
int Number;
cout<<"请输入姓名 编号"<<endl;
cout<<"姓名:";
cin>>Name;
cout<<"编号:";
cin>>Number;
define=getchar();
p1=new Singer(Number,Name);
if(Singer::counter==1)
{
p2=p1;
head=p2;
}
else
{
p2->next=p1;
p2=p1;
}
p2->next=NULL;
}
return head;
}
#include<iostream>
#include<string>
#include<time.h>
#include<cstdlib>
#include"Singer.h"
#include<windows.h>
Singer* creat() //选手链表
{
char define=' '; //用来存放结束标志
Singer* head;
Singer *p2,*p1;
while(define!='#')
{
string Name;
int Number;
cout<<"请输入姓名 编号"<<endl;
cout<<"姓名:";
cin>>Name;
cout<<"编号:";
cin>>Number;
define=getchar();
p1=new Singer(Number,Name);
if(Singer::counter==1)
{
p2=p1;
head=p2;
}
else
{
p2->next=p1;
p2=p1;
}
p2->next=NULL;
}
return head;
}
#ifndef SINGER_H //头文件
#define SINGER_H
class Singer //歌手类的声明
{
protected:
int number;
std::string name;
float grade;
public:
Singer* next;
static int counter;//计数器
Singer(); //默认构造
Singer(int,std::string);//构造函数的重载
int Get_number();
float Get_grade();
std::string Get_name();
friend std::ostream &operator<<(std::ostream &out,Singer& singer); //运算符重载
};
std::ostream &operator<<(std::ostream &out,Singer* singer)
{
out<<"姓名:"<<singer->Get_name()<<std::endl;
out<<"编号:"<<singer->Get_number()<<std::endl;
out<<"得分:"<<singer->Get_grade()<<std::endl;
return out;
}
Singer::Singer(){};
Singer::Singer(int num,std::string Name)
{
number=num;
name=Name;
counter++;
grade=(float)((8000+rand()%2001)/100);
}
std::string Singer::Get_name(){return name;}
int Singer::Get_number(){return number;}
float Singer::Get_grade(){return grade;}
#endif;
不加可以运行 加了就不能运行...