首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

运行后出现发送异常报告的窗口

2012-02-05 
运行后出现发送错误报告的窗口#includeiostream#includestringusing namespace stdclass Person{prot

运行后出现发送错误报告的窗口
#include<iostream>
#include<string>
using namespace std;
class Person{
protected:
char *name,*sex,*id;
int age;
float salary;
public:
virtual int getpay()=0;
virtual void print(){
cout<<"姓名:"<<name<<" "<<"性别:"<<sex<<" "<<"年龄:"<<age<<" "<<"编号:"<<id<<" "<<"工资:"<<salary<<endl;
}
Person(char *a,char *b,char *c,int d,float e){
strncpy(name,a,sizeof(name));
name[sizeof(name)-1]='\0';
strncpy(sex,b,sizeof(sex));
sex[sizeof(sex)-1]='\0';
strncpy(id,c,sizeof(id));
id[sizeof(id)-1]='\0';
age=d; salary=e;} 
};
class Boss:public Person{
public:
int getpay(){
salary=150000;
return salary;}
Boss(char *a,char *b,char *c,int d,float e):Person(a,b,c,d,e){}
};
class Employee:public Person{
double prize;
public:
int getpay(){
salary+=prize;
return salary;}
Employee(char *a,char *b,char *c,int d,float e,float f):Person(a,b,c,d,e){
prize=f;}
};
class HourlyWorker:public Person{
double worktime;
public:
int getpay(){
salary*=worktime;
return salary;}
HourlyWorker(char *a,char *b,char *c,int d,float e,float f):Person(a,b,c,d,e){
worktime=f;}
};
class CommWorker:public Person{
double gain;
public:
int getpay(){salary=salary+gain*0.05;
return salary;}
CommWorker(char *a,char *b,char *c,int d,float e,float f):Person(a,b,c,d,e){
gain=f;}
};
void main(){
Boss a("半导体","男","000001",21,0.0);
a.getpay();
a.print();
Employee b("半导体","男","000002",22,1500,500);
b.getpay();
b.print();
HourlyWorker c("半导体","男","000003",23,1300,10);
c.getpay();
c.print();
CommWorker d("半导体","男","000004",24,1200,100);
d.getpay();
d.print();
}


……………………………………
以上是源程序,编译没有错误,但是在运行后就出现发送错误报告的窗口。
请高手指点一下。。。。。。。。。
先行谢过了………………


[解决办法]

C/C++ code
using namespace std; class Person{ protected: char name[64],sex[8],id[64]; 姓名:半导体 性别:男 年龄:21 编号:000001 工资:150000姓名:半导体 性别:男 年龄:22 编号:000002 工资:2000姓名:半导体 性别:男 年龄:23 编号:000003 工资:13000姓名:半导体 性别:男 年龄:24 编号:000004 工资:1205Press any key to continue
[解决办法]
#include <iostream> 
#include <string> 
using namespace std; 
class Person{ 
protected: 
char name[100],sex[100],id[100];
int age; 
float salary; 
public: 
virtual int getpay()=0; 
virtual void print(){ 
cout <<"姓名:" <<name <<" " <<"性别:" <<sex <<" " <<"年龄:" <<age <<" " <<"编号:" <<id <<" " <<"工资:" <<salary <<endl; 

Person(char *a,char *b,char *c,int d,float e){ 
strncpy(name,a,sizeof(name)); 
name[sizeof(name)-1]='\0'; 
strncpy(sex,b,sizeof(sex)); 
sex[sizeof(sex)-1]='\0'; 
strncpy(id,c,sizeof(id)); 
id[sizeof(id)-1]='\0'; 
age=d; salary=e;}
}; 
class Boss:public Person{ 
public: 
int getpay(){ 
salary=150000; 
return salary;} 
Boss(char *a,char *b,char *c,int d,float e):Person(a,b,c,d,e){} 


}; 
class Employee:public Person{ 
double prize; 
public: 
int getpay(){ 
salary+=prize; 
return salary;} 
Employee(char *a,char *b,char *c,int d,float e,float f):Person(a,b,c,d,e){ 
prize=f;} 
}; 
class HourlyWorker:public Person{ 
double worktime; 
public: 
int getpay(){ 
salary*=worktime; 
return salary;} 
HourlyWorker(char *a,char *b,char *c,int d,float e,float f):Person(a,b,c,d,e){ 
worktime=f;} 
}; 
class CommWorker:public Person{ 
double gain; 
public: 
int getpay(){salary=salary+gain*0.05; 
return salary;} 
CommWorker(char *a,char *b,char *c,int d,float e,float f):Person(a,b,c,d,e){ 
gain=f;} 
}; 
void main(){ 
Boss a("半导体","男","000001",21,0.0); 
a.getpay(); 
a.print(); 
Employee b("半导体","男","000002",22,1500,500); 
b.getpay(); 
b.print(); 
HourlyWorker c("半导体","男","000003",23,1300,10); 
c.getpay(); 
c.print(); 
CommWorker d("半导体","男","000004",24,1200,100); 
d.getpay(); 
d.print(); 

热点排行