《面向对象程序设计C++》问题,0错误0警告,但是运行不了,请高手帮忙看看,内有程序源代码。

\u5173\u4e8ec++\u9762\u5411\u5bf9\u8c61\u7a0b\u5e8f\u8bbe\u8ba1\u7684\u95ee\u9898 \u5728\u7ebf\u7b49

#include
using namespace std;
class Date
{
public:
Date(){}//\u65e0\u53c2\u6570\u6784\u9020\u51fd\u6570
Date(int nYear, int nMonth, int nDay)//\u6709\u53c2\u6784\u9020\u51fd\u6570
{
m_nYear = nYear;
m_nMonth = nMonth;
m_nDay = nDay;
}
Date(Date &p)//\u62f7\u8d1d\u6784\u9020\u51fd\u6570
{
m_nYear = p.m_nYear;
m_nMonth = p.m_nMonth;
m_nDay = p.m_nDay;
}
void SetDate()//\u8bbe\u7f6e\u65e5\u671f
{
cout<<"\u8bf7\u8f93\u5165\u51fa\u751f\u5e74\u6708\u65e5:";
cin>>m_nYear>>m_nMonth>>m_nDay;
}
void ShowDate()//\u663e\u793a\u65e5\u671f
{
cout<<"\u751f\u65e5:"<<m_nYear<<"/"<<m_nMonth<<"/"<<m_nDay<<endl;
}
~Date(){}//\u6790\u6784\u51fd\u6570
private:
int m_nYear;
int m_nMonth;
int m_nDay;
};
class CPeople
{
public:
virtual void InPut() = 0;
virtual void OutPut() = 0;
void basicInput()
{
cout<<"\u7f16\u53f7:";
cin>>m_nNum;
cout<<"\u59d3\u540d:";
cin>>m_chName;
cout<<"\u6027\u522b:";
cin>>m_chSex;
m_tBirthday.SetDate();
}
void basicOutput()
{
cout<<"\u7f16\u53f7:"<<m_nNum<<endl;
cout<<"\u59d3\u540d:"<<m_chName<<endl;
cout<<"\u6027\u522b:"<<m_chSex<<endl;
m_tBirthday.ShowDate();
}
CPeople(){}
~CPeople(){}//\u6790\u6784\u51fd\u6570
CPeople(int num, char name[16], char sex[16], Date date):m_tBirthday(date)//\u5e26\u53c2\u6570\u6784\u9020\u51fd\u6570
{
m_nNum = num;
strcpy(m_chName, name);
strcpy(m_chSex, sex);
}
CPeople(CPeople& p):m_tBirthday(p.m_tBirthday) //\u62f7\u8d1d\u6784\u9020
{
m_nNum = p.m_nNum;
strcpy(m_chSex, p.m_chSex);
strcpy(m_chName, p.m_chName);
}
int m_nNum;//\u7f16\u53f7
char m_chName[16];//\u59d3\u540d
char m_chSex[16];//\u6027\u522b
Date m_tBirthday;//\u751f\u65e5
};
class CStudent:virtual public CPeople
{
public:
CStudent():CPeople(){}
void InPut()
{
cout<<"\u8bf7\u8f93\u5165\u5b66\u751f\u4fe1\u606f:"<<endl;
basicInput();
cout<<"\u73ed\u7ea7\u53f7:";
cin>> m_nClassNum;
}
void OutPut()
{
cout<<"\u5b66\u751f\u4fe1\u606f\u663e\u793a\u5982\u4e0b:"<<endl;
basicOutput();
cout<<"\u73ed\u7ea7\u53f7:"<< m_nClassNum<<endl;
}
int m_nClassNum;//\u73ed\u7ea7\u53f7
};
//\u6559\u5e08\u7c7b
class CTeacher:virtual public CPeople
{
public:

void InPut()
{
cout<<"\u8bf7\u8f93\u5165\u6559\u5e08\u4fe1\u606f:"<<endl;
basicInput();
cout<<"\u804c\u4f4d:";
cin>> m_chPosition;
cout<<"\u90e8\u95e8:";
cin>> m_chdepartment;
}
void OutPut()
{
cout<<"\u6559\u5e08\u4fe1\u606f\u663e\u793a\u5982\u4e0b:"<<endl;
basicOutput();
cout<<"\u804c\u4f4d:"<< m_chPosition<<endl;
cout<<"\u90e8\u95e8:"<< m_chdepartment<<endl;
}
char m_chPosition[16];//\u804c\u4f4d
char m_chdepartment[16];//\u90e8\u95e8
};
//\u7814\u7a76\u751f\u7c7b
class CGraduateStudent:virtual public CStudent
{
public:
void InPut()
{
cout<<"\u8bf7\u8f93\u5165\u7814\u7a76\u751f\u4fe1\u606f:"<<endl;
basicInput();
cout<<"\u73ed\u7ea7\u53f7:";
cin>> m_nClassNum;
cout<<"\u4e13\u4e1a:";
cin>> m_chMajor;
cout<<"\u5bfc\u5e08:";
cin>> m_chTutor;
}
void OutPut()
{
cout<<"\u7814\u7a76\u751f\u4fe1\u606f\u663e\u793a\u5982\u4e0b:"<<endl;
basicOutput();
cout<<"\u73ed\u7ea7"<< m_nClassNum<<endl;
cout<<"\u4e13\u4e1a:"<< m_chMajor<<endl;
cout<<"\u5bfc\u5e08:"<< m_chTutor<<endl;
}
char m_chMajor[24];//\u4e13\u4e1a
char m_chTutor[16];//\u5bfc\u5e08
};
//\u52a9\u6559\u7c7b
class CTS:public CGraduateStudent,public CTeacher
{
void InPut()
{
cout<<"\u8bf7\u8f93\u5165\u52a9\u6559\u4fe1\u606f:"<<endl;
basicInput();
cout<<"\u73ed\u7ea7\u53f7:";
cin>> m_nClassNum;
cout<<"\u4e13\u4e1a:";
cin>> m_chMajor;
cout<<"\u5bfc\u5e08:";
cin>> m_chTutor;
cout<<"\u804c\u4f4d:";
cin>> m_chPosition;
cout<<"\u90e8\u95e8:";
cin>> m_chdepartment;
}
void OutPut()
{
cout<<"\u52a9\u6559\u4fe1\u606f\u663e\u793a\u5982\u4e0b:"<<endl;
basicOutput();
cout<<"\u73ed\u7ea7"<< m_nClassNum<<endl;
cout<<"\u4e13\u4e1a:"<< m_chMajor<<endl;
cout<<"\u5bfc\u5e08:"<< m_chTutor<<endl;
cout<<"\u804c\u4f4d:"<< m_chPosition<<endl;
cout<<"\u90e8\u95e8:"<< m_chdepartment<<endl;
}
};
void main()
{
CPeople *pStudent = new CStudent;
pStudent->InPut();
pStudent->OutPut();
CPeople *pTeacher = new CTeacher;
pTeacher->InPut();
pTeacher->OutPut();
CPeople *pGS = new CGraduateStudent;
pGS->InPut();
pGS->OutPut();
CPeople *pTS = new CTS;
pTS->InPut();
pTS->OutPut();
system("pause");
}

\u6211\u8fd9\u6253\u4e86\u597d\u534a\u5929\uff0c\u7ed9\u5206\u54e6~~~

\u6211\u6539\u4e86\u4e00\u4e0b\uff0c\u5df2\u7ecf\u80fd\u901a\u8fc7\u5e76\u4e14\u8fd0\u884c\u4e86\uff1a
#include
class Geometry{
public:
Geometry(double a,double b,double c)
{x=a,y=b,c=z;}
~Geometry(){};
virtual double GetArea()=0;
virtual double GetPerimeter()=0;//\u8fd9\u91cc\u6709\u6539\u52a8
virtual double GetColume()=0;
virtual void Show()=0;
protected:
double x,y,z;
};
class Circle:public Geometry{
protected:
double r;
public:
Circle(double a):Geometry(a,0,0)
{r=a;}
~Circle(){};
double GetArea()
{return 3.14*r*r;}
double GetPerimeter()
{return 6.28*r;}
virtual double GetColume()
{return 0;}
void Show()
{cout<<"Area is:"<<GetArea()<<endl;
cout<<"Perimeter is:"<<GetPerimeter()<<endl;}
};
class Rectangle:public Geometry{
public:
Rectangle(double a,double b):Geometry(a,b,0)
{}
~Rectangle(){};
double GetArea()
{return x*y;}
double GetPerimeter()
{return x+y;}
virtual double GetColume()//\u8fd9\u91cc\u6709\u6539\u52a8
{return 0;}
void Show()
{cout<<"Area is:"<<GetArea()<<endl;
cout<<"Perimeter is:"<<GetPerimeter()<<endl;}
};
class Ball:public Circle{
public:
Ball(double a):Circle(a)
{};
~Ball(){};
double GetArea()
{return 4*3.14*x*x;}
double GetColume()
{return (4/3)*3.14*x*x*x;}
double GetPerimeter()
{return 0;}
void Show()
{cout<<"Area is:"<<GetArea()<<endl;
cout<<"Getcolume is:"<<GetColume()<<endl;}
};
class Column:public Circle{
public://\u8fd9\u91cc\u6539\u4e3apublic
double h;
Column(double a,double h):Circle(a),h(h){}
~Column(){};
double GetArea()
{return 2*3.14*x*x+2*3.14*x*h;}
double GetColume()
{return 3.14*x*x*h;}
double GetPerimeter()
{return 0;}
void Show()
{cout<<"Area is:"<<GetArea()<<endl;
cout<<"Getcolume is:"<<GetColume()<<endl;}
};
int main()
{Geometry *p;
Circle ob1(1);
Rectangle ob2(2,2);
Ball ob3(3);
Column ob4(4,3);
p=&ob1;
p->GetArea();
p->GetPerimeter();
p->Show();
p=&ob2;
p->GetArea();
p->GetPerimeter();
p->Show();
p=&ob3;
p->GetArea();
p->GetPerimeter();
p->Show();
p=&ob4;
p->GetArea();
p->GetPerimeter();
p->Show();
return 0;
}

估计是电脑问题吧,特别是系统是盗版情况下

1.肯定是代码问题
2.第二个小分句是一个限制i的执行条件的语句,比如i < length就不执行这个循环了
你写的这个冒泡排序我实在是看不下去
3.你这个程序里没有用到#include <iomanip>和#include <cmath>这两个库,至于你说的有没有.h
有.h就是C头文件,没有.h就是C++头文件
C++从C借鉴过来在头文件开始有个c 就如 cmath 就是从 math.h来的

下面给你一个冒泡排序
所用语言C++,参考:算法导论
swap用了stl
void bubble_sort(int iarray[],int iarray_length)
{
for(int i = 0;i != iarray_length;++i){
bool swapped = false;
for(int j = iarray_length - 1;j != i;--j){
if(iarray[j] < iarray[j - 1]){
std::swap(iarray[j],iarray[j - 1]);
swapped = true;
}//end if
} // end inner for loop
if(!swapped) break;
}
}

交换排序没有听说过,只听说过
冒泡 选择 快速 堆 合并 计数 基数 桶 插入等排序方法

//交换排序法
for(i=length-1;i>=0;i++) //死循环,最终导致内存越界
{
max=c[i];
for(j=i;j>=0;j--)
{
if(max<=c[j])
{
max=c[j];
tempmax=j;
}
}
c[tempmax]=c[i];
c[i]=max;
}
修改如下:
//交换排序法
for(i=length-1;i>=1;--i)
{
max=c[i];
for(j=i-1;j>=0;j--)
{
if(max<c[j])
{
max=c[j];
tempmax=j;
}
}
if (max != c[i])
{
c[tempmax]=c[i];
c[i]=max;
}
}

代码问题,数组越界,for(i=length-1;i>=0;i++)
i永远是大于0的

  • C++闈㈠悜瀵硅薄绋嬪簭璁捐闂
    绛旓細鎴戞敼浜嗕竴涓嬶紝宸茬粡鑳介氳繃骞朵笖杩愯浜嗭細include<iostream.h> class Geometry{ public:Geometry(double a,double b,double c){x=a,y=b,c=z;} ~Geometry(){};virtual double GetArea()=0;virtual double GetPerimeter()=0;//杩欓噷鏈夋敼鍔 virtual double GetColume()=0;virtual void Show()=0;prot...
  • C 闈㈠悜瀵硅薄绋嬪簭璁捐涔犻瑙g瓟涓庡疄楠屾寚瀵煎唴瀹圭畝浠
    绛旓細C++闈㈠悜瀵硅薄绋嬪簭璁捐涔犻瑙g瓟涓庡疄楠屾寚瀵兼槸瑗垮畨浜ら氬ぇ瀛﹀嚭鐗堢ぞ鍑虹増鐨勩奀++闈㈠悜瀵硅薄绋嬪簭璁捐銆鏁欐潗鐨勯噸瑕佽ˉ鍏呰祫鏂欙紝鍏剁洰鏍囨槸涓哄鐢熸彁渚涜鍚庝範棰樼殑璇︾粏瑙g瓟鍜屽疄楠屾寚瀵笺傝繖鏈功鐨勪富瑕佸姛鑳藉湪浜庨氳繃璁捐閫傞噺鐨勪範棰橈紝甯姪瀛︾敓娣卞寲瀵笴++璇█鏍稿績姒傚康鐨勭悊瑙o紝鍩瑰吇浠栦滑鐨勭紪绋嬫妧宸э紝浠ュ強鐔熺粌鎺屾彙VC 6.0闆嗘垚寮鍙戠幆澧冪殑浣跨敤锛...
  • 銆婇潰鍚戝璞$▼搴忚璁°楂樻墜杩泘~~!!
    绛旓細姝g‘閿欒閿欒閿欒姝g‘绫绘槸鍏锋湁鐩稿悓鏂规硶鍜屽睘鎬х殑瀵硅薄鐨勯泦鍚堜笌鎶借薄瀵硅薄鏄幇瀹炰笘鐣屼腑瀛樺湪鐨勪竴涓簨鐗┿c鏄笉闈㈠悜瀵硅薄鐨勶紝鍙兘缂栬瘧浠g爜銆侰++鏄潰鍚戝璞★紝灏辨槸浣犲仛鐨绋嬪簭浣犺兘鐪嬪埌瀹炵幇浜嗕粈涔堝姛鑳姐傞潰鍚戝璞″氨濡傚悓浣犱笂缃戞椂鍦ㄦ煇涓綉椤典笂鐐逛簡鍙充笂瑙掔殑鍙夛紝杩欎釜缃戦〉灏卞叧闂簡锛岃鏄庝綘鐨勬搷浣滄槸瀵硅繖涓綉椤佃繘琛岀殑銆
  • 鍏充簬闈㈠悜瀵硅薄绋嬪簭璁捐鐨勪竴浜涢鐩,姹傞珮鎵嬭В绛斻
    绛旓細浣犳庝箞2涓涔濋 1.B,2.B,3.A,4.A,5.D,6.D,7.D,8.D,9.A,9.C,10.D
  • 闈㈠悜瀵硅薄缂栫▼鏈夊摢浜闂
    绛旓細褰撶劧锛屽鏋滃湪杩唬鐨勬椂鍊欒兘瀛樺彇灏介噺澶氱殑鎴愬憳鍙橀噺锛岃繖涓闂鍙兘骞朵笉瀛樺湪锛屼絾瀹為檯涓婃槸寰堝洶闅剧殑銆傚鏋滈噰鐢ㄤ紶缁熺殑OOP缂栫▼鑼冨紡鍙婂疄鐜版柟寮忥紝鏁版嵁甯冨眬鐨勯棶棰樺嚑涔庢病鏈夎В鍐虫柟妗堛傛墍浠ュ湪[1]閲岋紝浣滆呮彁鍑猴紝鍦ㄦ煇浜涙儏鍐典笅锛屽簲璇ユ斁寮僌OP鏂瑰紡锛屼互鏁版嵁鐨勫瓨鍙栧強甯冨眬涓虹紪绋嬬殑鑰冭檻閲嶄腑锛岀О浣闈㈠悜鏁版嵁缂栫▼锛坉ata-oriented ...
  • 闈㈠悜瀵硅薄绋嬪簭璁捐銆楂樻墜杩泘~~!!
    绛旓細1銆佸涓嬩袱涓嚱鏁板師鍨嬫槸鍚︾瓑浠凤紵Float fun(int a, flaot b, char*c);Float fun(int, float, char* c);绛変环 2銆佸涓嬩袱涓嚱鏁扮涓琛屾槸鍚︾瓑浠凤紵Float fun(int a, flaot b, char*c)Float fun(int, float, char*);绛変环 3銆佸涓嬩袱涓嚱鏁版槸鍚︾瓑浠 Float fun ( );Float fun (void);绛変环 4...
  • c++闈㈠悜瀵硅薄绋嬪簭璁捐璇惧悗绗簲绔犵7棰
    绛旓細缁撴灉濡備笅锛歛=0 b=0 c=0 a=1 b=0 c=0 a=1 b=3 c=0 a=1 b=3 c=5 娉ㄦ剰锛氬垱寤烘淳鐢熺被鐨瀵硅薄锛屽熀绫荤殑鏋勯犲嚱鏁板嚱鏁颁紭鍏堣璋冪敤锛堜篃浼樺厛浜庢淳鐢熺被閲岀殑鎴愬憳绫伙級锛涘鏋滄湁澶氫釜鍩虹被鍒欐瀯閫犲嚱鏁扮殑璋冪敤椤哄簭鏄煇绫诲湪绫绘淳鐢熻〃涓嚭鐜扮殑椤哄簭鑰屼笉鏄畠浠湪鎴愬憳鍒濆鍖栬〃涓殑椤哄簭銆侭 b1; 鎵ц娴佺▼锛 A(...
  • 瀛︿範浜銆婇潰鍚戝璞$▼搴忚璁(c#)銆嬪悗,璋堣皥闈㈠悜瀵硅薄缂栫▼涓庨潰鍚戣繃绋嬬紪绋嬬殑涓...
    绛旓細c璇█鏄竴绉嶉潰鍚戣繃绋缂栫▼鎬濇兂鐨勮瑷锛宑璇█鐨勫叧閿壒鎬у寘鎷細婧愪唬鐮佺殑鍙Щ妞嶆э紝鎻愪緵闈炲父鎺ヨ繎纭欢鐨勬搷浣滆兘鍔涳紝楂樻晥鐜囥 鈥闈㈠悜瀵硅薄鈥(Object Oriented,绠绉癘O)鏄竴绉嶄互浜嬬墿涓轰腑蹇冪殑缂栫▼鎬濇兂銆 闈㈠悜瀵硅薄鐨绋嬪簭璁捐(Object-Oriented Programming锛岀畝璁颁负OOP) 姣斿浠ュ叕鍏辨苯杞﹁岃█銆 鈥滈潰鍚戣繃绋嬧濆氨鏄苯杞﹀惎鍔ㄦ槸...
  • 璋旦寮虹殑銆奵++闈㈠悜瀵硅薄绋嬪簭璁捐銆绗簩绔犵殑璇惧悗涔犻
    绛旓細妤间富鏄C++ 鎴戠湅妤间富搴旇C璇█涓嶅叆闂ㄦ妸 瀹氫箟涓涓綋绉嚱鏁般 閲岄潰鐨璁捐鐨勫彉閲忔槸涓変釜 濡備笅 float V(float length,float width,float height){ float s;s=length*width*height;return s;} 杩欐牱浣犺皟鐢ㄨ繖涓嚱鏁板簲璇ュ氨鍙互浜
  • 姹備笅闈闈㈠悜瀵硅薄绋嬪簭璁捐闂绛旀
    绛旓細25. A=2,B=8 A=4,B=8(鍥犱负涓や釜閮芥槸涓璧疯緭鍑 鑰宻(2)涓師鏈殑B=4涔熻鏀逛负B=8浜嗭級26.worker,cadre 杩欓鏄疉SCII鐨勬瘮杈冧簡 27灏变笉绠椾簡~28.120+120 = 240 鎵浠 b鏄240
  • 扩展阅读:c++编程入门自学 ... c++和java哪个好就业 ... c++程序设计 ... 面试官最讨厌的6句话 ... c++编程 ... c++面试常见问题及答案 ... c++面试题 ... python和c++学哪个好 ... 学c#有前途吗 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网