<<C++语言程序设计>>中的第4题,想请各位大侠帮帮忙!先谢谢了!

作者&投稿:台齿 (若有异议请与网页底部的电邮联系)
<<C++语言程序设计>>中的第一题,我编了以下程序,可老出错,想请各位大侠帮帮忙!先谢谢了!~

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

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

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

#include
#include//函数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
*/

可能有的程序不接受消息吧
试试keybd_event

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

#include<iostream>
#include<cstdio>//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<<"编号"<<"\t"<<"姓名"<<endl;
cout<<serialnumber<<"\t"<<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<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"年龄"<<endl;
cout<<serialnumber<<"\t"<<name<<"\t"<<gender<<"\t"<<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
*/

没问题,你应该是你划分的有问题,参考一下下面,我运行没问题:
======================================================
文件zgxxb.h
======================================================

#if!defined(zgxxb)
#define zgxxb
#include<iostream>
using namespace std;
const int SIZE=10;
class worker
{private:
char num[8];
char name[10];
public:
void setname(char[]);
char*getname();
void setnum(char[]);
char*getnum();
virtual void display();
};
class workers:public worker
{
private:
int age;
char sex[6];
public:
void setage(int a);
void setsex(char s[]);
int getage();
char*getsex();
void display();
};
void printer(worker &);
#endif
======================================================
文件zgxxb.cpp
======================================================
#include"zgxxb.h"

void worker::setname(char s[])
{strcpy(name,s);}
char*worker::getname()
{return name;}
void worker::setnum(char n[])
{strcpy(num,n);}
char*worker::getnum()
{return num;}
void worker::display()
{cout<<"\t"<<num<<"\t"<<name<<endl;
}
void workers::setage(int a)
{age=a;}
void workers::setsex(char s[])
{strcpy(sex,s);}
int workers::getage()
{return age;}
char*workers::getsex()
{return sex;}
void workers::display()
{cout<<"\t"<<getnum()<<"\t"<<getname()<<"\t"<<sex<<"\t"<<age<<endl;
}
void printer(worker &s)
{s.display();}

======================================================
文件main.cpp
======================================================
#include"zgxxb.h"

void main()
{
workers wks[SIZE];
worker wk[SIZE];
int number(0);
char ch[10];
int age;
for(int i=0;i<SIZE;i++)
{cout<<"\t 编号:";
cin.getline(ch,'\n');
if(ch[0]=='0')
{number=i;
break;
}
wks[i].setnum(ch);
cout<<"\t姓名:";
cin.getline(ch,'\n');
wks[i].setname(ch);
cout<<"\t性别:";
cin.getline(ch,'\n');
wks[i].setsex(ch);
cout<<"\t年龄:";
cin>>age;
wks[i].setage(age);
getchar();
}
for(i=0;i<number;i++)
wk[i]=wks[i];
cout<<"\n\t编号"<<"\t姓名"<<"\t性别"<<"\t年龄"<<endl;
for(i=0;i<number;i++)
printer(wks[i]);
cout<<"\n\t编号"<<"\t姓名"<<endl;
for(i=0;i<number;i++)
printer(wk[i]);
}


LT是什么意思?
LT指的是Lead Time的缩写。LT作为一个缩写,在不同的领域有不同的含义。以下是关于LT的详细解释:1. 工业制造领域:在制造业中,LT常用来表示“生产周期时间”或“前置时间”,即从一个产品的开始到结束所经过的时间。在这个过程中,LT涉及到材料准备、加工、质检等各个环节所需的时间总和。对于制造...

lt是什么意思的缩写?
LT是什么意思的缩写?LT缩写来自于英语“limited time”(有限时间)一词,通常用于商业或促销活动中。当公司或品牌限制某个产品或服务的供应时间时,会使用LT缩写来表示这段时间是有限的。这种营销策略可以促使顾客更快地做出决策,因为他们知道机会有限。除了商业和促销之外,LT缩写还可以表示其他词组,例如...

女人说lt代表什么
英文缩写“LT”有以下几种含义:1. 病理学专有名词:一种炎症介质,白三烯。全名为“Leukotriene”,是在超敏反应中效应阶段新合成的生物活性介质,属于慢反应物质,其作用类似于组胺。2. 动漫人物简称:“LT”是动漫《高返首达OO》中“洛克昂”和“提耶利亚”这对CP的简称。3. 军事职称:在美军中...

LT是什么意思?
1、LT是动漫中《高达OO》洛克昂X提耶利亚这对CP的简称。2、LT是美军的陆军中尉和海军上尉的缩写,Lieutenant简称LT。3、LT在数学里,是Less Than的意思,相当于数学符号”<“。4、LT在预测微生物领域为Lag Time,即延迟期的时间。5、淋巴毒素(lymphotoxin,LT),也称TNF-β,为肿瘤坏死因子(tumor...

想知道lt是什么工作?
LT主要指的是信息技术行业,这个行业比较广泛,涵盖的岗位也比较多。每个工作都有自己不同的工作职能。IT责任要求 1.负责网站数据库的规划和建设。2.负责网站数据库的管理:日常维护、备份、恢复、性能优化和故障排除。3.负责数据库表结构设计的建议和SQL的审核。4.负责网站运营中各种数据的综合查询和分析...

lt标识是什么意思?
lt是Less Than符号的缩写,代表小于号。在数学和编程方面经常使用,通常用于比较两个数值的大小。在HTML中,lt作为特殊符号被用于表示小于号,而使用<作为小于号的文本转义符。根据上下文语境,lt还可以代表其他的意思,例如"列表"或"莱特兄弟"等。lt标识在网页开发中的应用 在网页...

lT是什么意思
IT是信息技术的简称,Information Technology,指与信息相关的技术。不同的人和不同的书上对此有不同解释。但一个基本上大家都同意的观点是,IT有以下三部分组成:---传感技术 这是人的感觉器官的延伸与拓展,最明显的例子是条码阅读器;---通信技术 这是人的神经系统的延伸与拓展,承担传递信息的功能...

1LT是多少升
1LT(公升)=1L 英文缩写lt 英文全称litre 中文解释公升 容量10lt水壶,也就是20斤。公升(Liter)是公制(metric system)中的容积单位。国家所用公升,是世界上绝大部分国家同样采用的法源公制(metric system)中的公升(Liter)。P。S。引进国际单位时对单位名称进行本土化,本土化“Liter”将旧制“...

液体单位 LT 知道是什么吗?
LT是long ton的缩写,即长吨。长吨是英帝国制沿用的质量单位,使用地区主要为英国、美国与一些大英国协国家。在中国常用公吨。长吨和短吨被称为广义上的英吨。长吨在英国较为常用,为狭义的英吨,在英国常直接称为吨(ton)。短吨在美国较为常用,又称美吨。以“长吨”、“短吨”称呼较不易导致混淆...

生物化学中LT 是什么?
你好,很高兴为解答:白细胞三烯病理学专有名词;一种炎症介质,白三烯。leukotriene,LT.超敏反应中效应阶段新合成的生物活性介质,为慢反应物质,作用似组胺,比组胺作用强百倍,缓慢而持久。预测微生物专有名词;LT在预测微生物领域为Lag Time,即延迟期的时间。

会泽县17348552419: 什么是C++程序设计 -
梅瑞索拉: 就是C语言啊,但它比C语言要难,它是一个程序设计,就是一种编程类的软件

会泽县17348552419: 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; }

会泽县17348552419: 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, ...

会泽县17348552419: 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<...

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

会泽县17348552419: 用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 ...

会泽县17348552419: 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().

会泽县17348552419: 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;...

会泽县17348552419: 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]; ...

会泽县17348552419: c++程序设计 -
梅瑞索拉: cin.getline(p,20,'\n');替换cin>>p;

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