<<C++语言程序设计>>中的第一题,我编了以下程序,可老出错,想请各位大侠帮帮忙!先谢谢了!

作者&投稿:慕聪 (若有异议请与网页底部的电邮联系)
<<C++语言程序设计>>中的第4题,想请各位大侠帮帮忙!先谢谢了!~

前几天写过的,修改了一下


#include
#include//strcpy()
using namespace std;

const int N=20;//字符长度的最大值
const int M=3;//职工数

class BaseEmployee
{
protected:
char serialnumber[N];
char name[N];
public:
BaseEmployee(char *s="Null",char *n="Null");
virtual void display() const;//动态联编
void setBase(char *s,char *n);
};
BaseEmployee::BaseEmployee(char *s,char *n)
{
strcpy(serialnumber,s);
strcpy(name,n);
}
void BaseEmployee::display() const
{
cout<<"编号"<<""<<"姓名"<<endl;
cout<<serialnumber<<""<<name<<endl;
}
void BaseEmployee::setBase(char *s,char *n)
{
strcpy(serialnumber,s);
strcpy(name,n);
}

class DerivedEmployee:public BaseEmployee
{
protected:
char gender[N];
int age;
public:
DerivedEmployee(char *s="Null",char *n="Null",char *g="Null",int a=0);
void display() const;
void setDerived(char *s,char *n,char *g,int a);
};
DerivedEmployee::DerivedEmployee(char *s,char *n,char *g,int a):BaseEmployee(s,n)
{
strcpy(gender,g);
age=a;
}
void DerivedEmployee::display() const
{
cout<<"编号"<<""<<"姓名"<<""<<"性别"<<""<<"年龄"<<endl;
cout<<serialnumber<<""<<name<<""<<gender<<""<<age<<endl;
}
void DerivedEmployee::setDerived(char *s,char *n,char *g,int a)
{
setBase(s,n);
strcpy(gender,g);
age=a;
}

void print(BaseEmployee *maybebase_maybederived)
{
maybebase_maybederived->display();
}

int main()
{
BaseEmployee base[M];
char s[N];
char n[N];
for(int i=0;i<M;i++)
{
cout<<"输入第"<<i+1<<"位BaseEmployee类员工的编号,姓名:";
cin>>s>>n;
base[i].setBase(s,n);
}
for(int k=0;k<M;k++)
print(base+k);



cout<<endl;
DerivedEmployee derived[M];
char g[M];
int a;
for(int j=0;j<M;j++)
{
cout<<"输入第"<<j+1<<"位DerivedEmployee类员工的编号,姓名,性别,年龄:";
cin>>s>>n>>g>>a;
derived[j].setDerived(s,n,g,a);
}
for(int l=0;l<M;l++)
print(derived+l);



return 0;
}
/*若令const int M=3,运行结果为:
输入第1位BaseEmployee类员工的编号,姓名:a aa
输入第2位BaseEmployee类员工的编号,姓名:b bb
输入第3位BaseEmployee类员工的编号,姓名:c cc
编号 姓名
a aa
编号 姓名
b bb
编号 姓名
c cc

输入第1位DerivedEmployee类员工的编号,姓名,性别,年龄:d dd ddd 24
输入第2位DerivedEmployee类员工的编号,姓名,性别,年龄:e ee eee 25
输入第3位DerivedEmployee类员工的编号,姓名,性别,年龄:f ff fff 26
编号 姓名 性别 年龄
d dd ddd 24
编号 姓名 性别 年龄
e ee eee 25
编号 姓名 性别 年龄
f ff fff 26
*/

#include
using namespace std;

int main()
{
cout <<"满足条件的数为:
";
for(int i=1000;i>=1;i--){
bool prma=false,prmb=false;
for(int m=1;m<=(i+100)/2;m++){
if(m*m==i+100){
prma=true;
break;
}
}
for(int n=1;n<=(i+168)/2;n++){
if(n*n==i+168){
prmb=true;
break;
}
}
if(prma==true&&prmb==true)cout <<i<<" 、";
}
cout <<endl;
return 0;
}
//运行结果是:
/*满足条件的数为:
156 、
请按任意键继续. . .*/

我修改了下,下面的代码在Windows XP + VC++6.0下正常运行,直接复制粘贴就行了

有2点是你需要注意的
(1)题目的意思是:
"当输入:"后面的那句"How about you?"和"输入:"后的那句"OK"是由你从键盘中输入的,其它的都由程序自动输出
(2)你存在很多语法错误
比如C++中是分大小写的,可你的代码中大小写不分;
类成员函数的定义格式也不对

建议你先看一下C++基础教材,先掌握语法,模仿教材上的设计

#include<iostream>
#include<cstdio>//函数strcpy(),stcmy()包含在此头文件中
using namespace std;

class Welcome
{
private:
char str[128];
public:
Welcome(char s[]="Welcome!");
Welcome (Welcome &);
void set(char []);
void display();
char *Get();
void talk();
~Welcome();
};
Welcome::Welcome(char s[])//默认参数值在函数声明中已写了,此处若改为char s[]="Welcom!"错
{
strcpy(str,s);//把字符串数组s中的所有字符,拷贝到字符串数组str中
}

Welcome::Welcome(Welcome &c)//拷贝构造函数
{
strcpy(str,c.str);
}

void Welcome::set(char s[])
{
strcpy(str,s);
}

void Welcome::display()
{
cout<<str<<endl;
}

char* Welcome::Get()
{
return str;
}
Welcome::~Welcome()
{
cout<<"Goodbye!"<<endl;
}

void Welcome::talk()
{
char s[128];
cout<<"当输入:";
cin.getline(s,128);//不用cin>>s;因为输入为几个字符串
while(strcmp(s,"OK")!=0)//s不等于"OK"时,循环输出及输出
{
cout<<"就输出:"<<s<<endl;
cout<<"输入:";
cin.getline(s,128);
}
strcpy(str,"OK");//或strcpy(str,s);因为执行到这个指令时,必有s="OK"
cout<<"All right!"<<endl;
cout<<"Goodbye!"<<endl;
}

void main()
{
Welcome we;
Welcome you(we);
you.display();
you.set("Thank you.");
cout<<you.Get()<<endl;
you.talk();
you.display();
}
/*运行结果
Welcome!
Thank you.
当输入:How about you?
就输出:How about you?
输入:OK
All right!
Goodbye!
OK
Goodbye!
Goodbye!
Press any key to continue
*/


车牌号lt开头的白牌是哪里的车?
兰州军区军用车辆号牌。车牌是广东省广州市的车子,粤代表广东省,A代表广州市,粤A就是广州市的车牌代码。白色代表军牌、警牌,比如GK12001,代表广州军区。浙A1063警,代表杭州公安局的车。1、蓝色代表普通的小车。2、黄色代表普通的大型车辆。3、黑色代表外国人员在中国投资者,或者重要人物使用。

从外观怎么区分ar和lt
从外观区分ar和lt的方法:1、AR的面料比LT的更厚实,是N70P的,涤纶的材料拥有更好的定型能力,强度更高,弹性更好。2、AR有腋下拉链设计,LT没有,日常穿着中LT会比AR更响。

始祖鸟阿童木lt国内官网没有
1. 始祖鸟阿童木LT并未在我国官方商城中推出。2. 始祖鸟品牌以生产高品质户外服饰和装备著称,阿童木LT可能是其产品系列中的一种。3. 我国官方商城缺少阿童木LT的原因可能有多种。首先,这款产品可能仅作为限量版或特别版在全球范围内限定发售。4. 这意味着,尽管阿童木LT受到全球消费者的欢迎,但它可能...

游戏手柄里,RS、RT、LT、LS分别指的是哪些按钮?
RT是右下;RB是右上,LT是左下;RT是右下,LS是左摇杆;RS是右摇杆。相关介绍:游戏手柄是一种常见电子游戏机的部件,通过操纵其按钮等,实现对游戏虚拟角色的控制。游戏手柄的标准配置是由任天堂确立及实现的,它包括十字键(方向),ABXY键(动作-亦有硬件生产商使用不同方法标记,但排列分大体相同)...

液位仪表的是LT是什么单词的缩写??
LT-Level Transmitter(液位变送器)FT-Flow Transmitter(流量变送器)TT-Temperature Transmitter(温度变送器)PDT-Pressure DifferenceTransmitter (差压变送器)PT-Pressure Transmitter(压力变送器)

郊区街道场景下,计算传播损耗Lt的公式是什么?
LT公式如下传输损耗可用下式表式Lt=LP-(Gt+Gr)(dB)LP=32.45+20lgf+20lgd+A(dB)或Lt=Lb-GP(dB)式中LP为路径损耗

LT这两个拼音拼出来是什么字
老套、老天、论坛、聊天、两天、联通

为什么& lt;11-9=5& gt;这个算式是错的?
这个等式11-9=5是不正确的。标准算术运算中,11减去9等于2,而不是5。首先,从数学的角度来看,11-9的结果无疑是2。这是基础的减法运算,其中被减数(11)与减数(9)的差是2。然而,这个问题可能是在某种特定的文化或社交背景中提出的,其中“11-9=5”具有某种隐含或比喻的意义。在...

迈凯伦765LT突然进入我国市场,这意味着什么?
“LT”在MyCaren的词典中相当于“longtail”,即长尾。首次出现的F1 GTR LT赛车当时非常简单粗暴,加长的车身有助于提高动态稳定性和速度。首次量产的“LT”-675 LT正式上市,“LT”是MyCaren的高性能后缀,主要致力于极度的驾驶乐趣、赛道表现、空气动力和轻量化。765LT由720S制成,外观使用更激进...

Arc’teryx 始祖鸟海淘指南,AR,LT,SV是什么意思
AR:恶劣气候,针对恶劣的天气环境强化的型号,不少都是系列的高端款,属于LT(部分系列)的进阶型号,个人认为该型号最大的特点不是对天气防护增强了多少,而是面料的耐操程度直线上升。LT:轻量型,系列中轻量的型号,其实它在大多数系列里都是入门级的意思。但是在部分特殊系列里,他就变成高端型号了...

青川县13679896965: 什么是C++程序设计 -
巴农氨苄: 就是C语言啊,但它比C语言要难,它是一个程序设计,就是一种编程类的软件

青川县13679896965: C++程序设计 -
巴农氨苄: #include int main(){ int x1,x2; cout scanf("%d",&x1); cout scanf("%d",&x2); if(x1 int tmp = x1; x1 = x2; x2 = tmp; } if((x1%x2 == 0)){ cout } else{ for(int i=2;i if((x1%i==0)&&(x2%i==0)){ cout return 0; } } cout } return 0; }

青川县13679896965: C++程序设计
巴农氨苄: C++ 程序时由主函数入口(main 函数) 看你的主函数 欲行到这个 int x=5, y=8; cout<<x+y<<' '; 毫无疑问 5+8=13 到这里的时候 LF(x,y); 侧要运行函数 void LF(int& x, int y) 很明显 X 声明的是引用 在这个过程中 他的值是变化的 在void LF(int& x, ...

青川县13679896965: C++语言程序设计 -
巴农氨苄: do while 循环#include <iostream> using namespace std; void main( ) { int n,num; srand( (unsigned)time( NULL ) ); n=rand()%100+1; do{ cout<<"请猜一个数字(1~100):"; cin>>num; if(num==n){ cout<<"猜中了"<<endl; }else if(num>n){ cout<...

青川县13679896965: C++语言程序设计的内容简介 -
巴农氨苄: 本书针对程序设计的初学者,以面向对象的程序设计思想为主线,以通俗易懂的方法介绍C++语言,引导读者以最自然的方式,将人类习惯的面向对象的思维方法运用到程序设计中.主要内容包括程序设计基础知识、类与对象的基本概念、继承与多态、输入输出流,以及泛型程序设计.此外,本教材还介绍了一些常用数据结构基础知识,使得读者学习本书后,能够解决一些简单的实际问题.整套教材语言生动、流畅,深入浅出.适用于各类学校的C++语言程序设计课程.

青川县13679896965: 用C++语言编写一个程序 -
巴农氨苄: int find(int a[10],int a, int b){ int num=0; for (int i=0;i<10;i++) if (a[i]<b && a[i]>a) num++; return num; } void main(){ int a[10],max,min,sum=0; for (int i=0;i<10;i++){ scanf("%d",&a[i]); sum+=a[i]; if (i==0){ max=a[i]; min=max; } if (max<a[i]) max=a[i]; if ...

青川县13679896965: c++程序设计5
巴农氨苄: 一、(1)错;(2)错(注意:只有一个=,等同于0);(3)错(应该为100);(4)错(6个,还有一个结束符'\0');(5)对;(6)错;(7)错(C++严格区分大小写);(8)错;(9)对;(10)对. 二、(1)A;(2)C;(3)B(去尾);(4)C;(5)B(该题中,&&的优先级最低);(6)C;(7)A;(8)D;(9)C;(10)B. 三、(1)A<B||A<C;(分号不要漏掉);(2)1、3;(3)主函数main;(4)注释;(5)'\0';(6)44;(7)顺序、循环、判断;(8)while()、do…while()、for();(9)指针;(10)switch().

青川县13679896965: C++程序设计
巴农氨苄: #include &lt;iostream&gt; using std::cout; using std::cin; using std::endl; class STR { public: STR(int x) : num(x) {} void itoa(); void show(); private: char s[15]; int num; }; void reverse(char *first, char *last) { for (char c; first &lt; last; ++first, --last) { c = *first;...

青川县13679896965: C++语言程序设计>>数组,指针与字符串
巴农氨苄: 程序我在vc6.0上调试过了,能通过. 希望对你有所参考. #include&lt;iostream&gt; using namespace std; int* min(int*array,int*s) { for(int i=0;i&lt;5;i++) { for(int j=5*i;j&lt;5*i+4;j++) { if(array[j]&lt;array[j+1]) { int temp; temp=array[j]; array[j]=array[j+1]; ...

青川县13679896965: c++程序设计 -
巴农氨苄: cin.getline(p,20,'\n');替换cin>>p;

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网