急求一个C++程序,要求包含C++的20个特性 150
麻烦发到邮箱lmnssy@126.com程序内容不定,要体现如下C++特性,最好在代码后注释下体现特性。可追加财富悬赏到2001.构造函数重载2.运行时多态3.正确使用初...
麻烦发到邮箱lmnssy@126.com
程序内容不定,要体现如下C++特性,最好在代码后注释下体现特性。可追加财富悬赏到200
1. 构造函数重载
2. 运行时多态
3. 正确使用初始化列表
4. 分离编译模式
5. 友元函数
6. 抽象类
7. 显式定义拷贝构造函数
8. 析构函数
9. 正确分配类成员的访问权限
10. 操作符重载
11. 使用指针访问数组元素
12. 正确完成数据类型的转换
13. 构造派生类
14. 动态申请空间并释放空间
15. 类中使用静态成员
16. 正确使用引用与常引用
17. 使用内联函数
18. 定义类模板和函数模板
19. 文件的输入输出操作
20. 字符指针与字符串的操作 展开
程序内容不定,要体现如下C++特性,最好在代码后注释下体现特性。可追加财富悬赏到200
1. 构造函数重载
2. 运行时多态
3. 正确使用初始化列表
4. 分离编译模式
5. 友元函数
6. 抽象类
7. 显式定义拷贝构造函数
8. 析构函数
9. 正确分配类成员的访问权限
10. 操作符重载
11. 使用指针访问数组元素
12. 正确完成数据类型的转换
13. 构造派生类
14. 动态申请空间并释放空间
15. 类中使用静态成员
16. 正确使用引用与常引用
17. 使用内联函数
18. 定义类模板和函数模板
19. 文件的输入输出操作
20. 字符指针与字符串的操作 展开
4个回答
展开全部
其实我想帮你写一下,不过看了两位网友的话说的很对。我想给你看看我们老师是怎么指导学生学习的:
第13周实验指导
【目的】
1. 进一步多态性的基本概念
2. 学会利用虚函数实现多态性
3. 学会在设计中利用纯虚函数构造抽象基类
【任务1】阅读下面的程序
(任务1.1)请写出程序的执行结果,并在上机时对照理解
#include <iostream>
using namespace std;
class Vehicle
{
public:
void run() const { cout << "run a vehicle. "<<endl; } //(2) run()为虚函数
};
class Car: public Vehicle
{
public:
void run() const {cout << "run a car. "<<endl; }
};
class Airplane: public Vehicle
{
public:
void run() const {cout << "run a airplane. "<<endl;}
};
int main()
{
cout<<"(a) 直接用对象访问成员函数: "<<endl;
Vehicle v;
v.run();
Car car;
Airplane airplane;
car.run();
airplane.run();
cout<<"(b) 用指向基类的指针访问成员函数: "<<endl;
Vehicle *vp;
vp=&car;
vp->run();
vp=&airplane;
vp->run();
system("pause");
return 0;
}
(任务1.2)如果将Vehicle类的定义修改为虚函数,其余不变,请写出程序的执行结果,并在上机时对照理解
class Vehicle
{public:
virtual void run() const { cout << "run a vehicle. "<<endl; } //(2) run()为虚函数
};
(任务1.3)如果将Vehicle类的定义修改为纯虚函数,找出main()函数中将使编译出错的行删除(或改为注释),请写出程序的执行结果,并在上机时对照理解
class Vehicle
{public:
virtual void run() const = 0; //(3) run()为纯虚函数
};
(任务1.4)提交博文,记录实验过程和结果,用自己的话概括你对虚函数、多态性和抽象类的理解。
【任务2】下面给出了基类Animal和main()函数。
(任务2.1)根据main()函数给出的注释提示,设计出相关的各个类。
(任务2.2)显然,Animal设计为抽象类更合适,Animal不需要能够实例化,是专门作基类使用的。改造程序,使Animal设计为抽象类,这时main()函数中p = new Animal();将出错,将此行删除。
(任务2.3)每一个Animal的派生类都有一个“名字”数据成员,改造上面的程序,将这一数据成员作为抽象类Animal数据成员被各派生类使用。
#include "iostream"
#include<string>
using namespace std;
class Animal
{
public:
virtual void cry() {cout<<"不知哪种动物,让我如何学叫?"<<endl;}
};
int main( )
{
Animal *p;
p = new Animal(); p->cry(); //输出: 不知哪种动物,让我如何学叫?(问题出自此处)
Mouse m("Jerry"); p=&m; p->cry(); //输出: 我叫Jerry,是一只老鼠,我的叫声是:吱吱吱!
Cat c("Tom"); p=&c; p->cry(); //输出: 我叫Tom,是一只猫,我的叫声是:喵喵喵!
Dog d("Droopy"); p=&d; p->cry(); //输出: 我叫Droopy,是一条狗,我的叫声是:汪汪汪!
Giraffe g("Gill"); p=&g; p->cry(); //输出: 我叫Gill,是长颈鹿,脖子太长,发不出声音来!
system("pause");
return 0;
}
【任务3】写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、Triangle(三角形)。用如下的mian()函数,求出定义的几个几何体的面积和。
int main()
{
Circle c1(12.6),c2(4.9); //建立Circle类对象c1,c2,参数为圆半径
Rectangle r1(4.5,8.4),r2(5.0,2.5); //建立Rectangle类对象r1,r2,参数为矩形长、宽
Triangle t1(4.5,8.4),t2(3.4,2.8); //建立Triangle类对象t1,t2,参数为三角形底边长与高
Shape *pt[6]={&c1,&c2,&r1,&r2,&t1,&t2}; //定义基类指针数组pt,各元素指向一个派生类对象
double areas=0.0; //areas为总面积
for(int i=0; i<6; i++)
{
areas=areas+pt[i]->area();
}
cout<<"totol of all areas="<<areas<<endl; //输出总面积
system("pause");
return 0;
}
【任务4】设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。设计个派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义基类的指针p(CSolid *p;),利用p指针,输出正方体、球体及圆柱体对象的表面积及体积。
第13周实验指导
【目的】
1. 进一步多态性的基本概念
2. 学会利用虚函数实现多态性
3. 学会在设计中利用纯虚函数构造抽象基类
【任务1】阅读下面的程序
(任务1.1)请写出程序的执行结果,并在上机时对照理解
#include <iostream>
using namespace std;
class Vehicle
{
public:
void run() const { cout << "run a vehicle. "<<endl; } //(2) run()为虚函数
};
class Car: public Vehicle
{
public:
void run() const {cout << "run a car. "<<endl; }
};
class Airplane: public Vehicle
{
public:
void run() const {cout << "run a airplane. "<<endl;}
};
int main()
{
cout<<"(a) 直接用对象访问成员函数: "<<endl;
Vehicle v;
v.run();
Car car;
Airplane airplane;
car.run();
airplane.run();
cout<<"(b) 用指向基类的指针访问成员函数: "<<endl;
Vehicle *vp;
vp=&car;
vp->run();
vp=&airplane;
vp->run();
system("pause");
return 0;
}
(任务1.2)如果将Vehicle类的定义修改为虚函数,其余不变,请写出程序的执行结果,并在上机时对照理解
class Vehicle
{public:
virtual void run() const { cout << "run a vehicle. "<<endl; } //(2) run()为虚函数
};
(任务1.3)如果将Vehicle类的定义修改为纯虚函数,找出main()函数中将使编译出错的行删除(或改为注释),请写出程序的执行结果,并在上机时对照理解
class Vehicle
{public:
virtual void run() const = 0; //(3) run()为纯虚函数
};
(任务1.4)提交博文,记录实验过程和结果,用自己的话概括你对虚函数、多态性和抽象类的理解。
【任务2】下面给出了基类Animal和main()函数。
(任务2.1)根据main()函数给出的注释提示,设计出相关的各个类。
(任务2.2)显然,Animal设计为抽象类更合适,Animal不需要能够实例化,是专门作基类使用的。改造程序,使Animal设计为抽象类,这时main()函数中p = new Animal();将出错,将此行删除。
(任务2.3)每一个Animal的派生类都有一个“名字”数据成员,改造上面的程序,将这一数据成员作为抽象类Animal数据成员被各派生类使用。
#include "iostream"
#include<string>
using namespace std;
class Animal
{
public:
virtual void cry() {cout<<"不知哪种动物,让我如何学叫?"<<endl;}
};
int main( )
{
Animal *p;
p = new Animal(); p->cry(); //输出: 不知哪种动物,让我如何学叫?(问题出自此处)
Mouse m("Jerry"); p=&m; p->cry(); //输出: 我叫Jerry,是一只老鼠,我的叫声是:吱吱吱!
Cat c("Tom"); p=&c; p->cry(); //输出: 我叫Tom,是一只猫,我的叫声是:喵喵喵!
Dog d("Droopy"); p=&d; p->cry(); //输出: 我叫Droopy,是一条狗,我的叫声是:汪汪汪!
Giraffe g("Gill"); p=&g; p->cry(); //输出: 我叫Gill,是长颈鹿,脖子太长,发不出声音来!
system("pause");
return 0;
}
【任务3】写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、Triangle(三角形)。用如下的mian()函数,求出定义的几个几何体的面积和。
int main()
{
Circle c1(12.6),c2(4.9); //建立Circle类对象c1,c2,参数为圆半径
Rectangle r1(4.5,8.4),r2(5.0,2.5); //建立Rectangle类对象r1,r2,参数为矩形长、宽
Triangle t1(4.5,8.4),t2(3.4,2.8); //建立Triangle类对象t1,t2,参数为三角形底边长与高
Shape *pt[6]={&c1,&c2,&r1,&r2,&t1,&t2}; //定义基类指针数组pt,各元素指向一个派生类对象
double areas=0.0; //areas为总面积
for(int i=0; i<6; i++)
{
areas=areas+pt[i]->area();
}
cout<<"totol of all areas="<<areas<<endl; //输出总面积
system("pause");
return 0;
}
【任务4】设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。设计个派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义基类的指针p(CSolid *p;),利用p指针,输出正方体、球体及圆柱体对象的表面积及体积。
展开全部
这道题目没有想象中那么难。不过楼上的分析有些道理,学习C++不是在于知道它有多NB,而在于你知道它的哪些特性能够方便快速的实现你的需要。
我看了一下需求,给你一个思路,你可以考虑做一个打开记事本文件的程序,在该程序实现单词查找和排序功能。可能排序对你来说有难度,好吧。那你就做单词查找。这个做完了。你老师的要求也就做完了。
文件操作类,你自己封装一个类,里面可以用VC提供的函数。这个类就可以实现需求1,3,7,8,9,13,15,19,20.
字符查找类,这个时候你可以定义一个模板类,因为文件可能不只是单词,还有其他符号,数字等,这个类你可以实现其他需求。
上个大学不容易,C++是基础课程,希望你能多花点心思,在学校里面还有机会与人交流这种没有实际意义的语言特性问题,等出来工作后,发现会很少有人愿意与你谈论这钟话题了。
最后,我相信只要愿意花费两天时间,就足以解决这个问题。相信你能考上大学,智力上应该不存在问题。好好把握,如果真的有具体的问题可以再和我交流,直接百度发消息给我就行。
不要追问让我直接把写好的代码给你。我相信没几个人愿意这么做。
我看了一下需求,给你一个思路,你可以考虑做一个打开记事本文件的程序,在该程序实现单词查找和排序功能。可能排序对你来说有难度,好吧。那你就做单词查找。这个做完了。你老师的要求也就做完了。
文件操作类,你自己封装一个类,里面可以用VC提供的函数。这个类就可以实现需求1,3,7,8,9,13,15,19,20.
字符查找类,这个时候你可以定义一个模板类,因为文件可能不只是单词,还有其他符号,数字等,这个类你可以实现其他需求。
上个大学不容易,C++是基础课程,希望你能多花点心思,在学校里面还有机会与人交流这种没有实际意义的语言特性问题,等出来工作后,发现会很少有人愿意与你谈论这钟话题了。
最后,我相信只要愿意花费两天时间,就足以解决这个问题。相信你能考上大学,智力上应该不存在问题。好好把握,如果真的有具体的问题可以再和我交流,直接百度发消息给我就行。
不要追问让我直接把写好的代码给你。我相信没几个人愿意这么做。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
出题的人大脑抽筋了,不解释。
最酷的做法就是,你买本(写一本效果更好)C++教科书送给他。
最酷的做法就是,你买本(写一本效果更好)C++教科书送给他。
追问
这是C++课程作业
追答
不论什么程序语言,它的特性都是为实际的需要而存在的,而不是有什么特性就一定要用拼命的上的。
学一门语言(不仅仅是C++),不是为了炫耀你知道它多少牛逼的特性,还可以一条一条列给别人看;
而是别人给你一个问题,甚至一个项目,你可以充分发挥出这么语言的特性,同时用最简洁的方法,出色的完成任务。
你的这个课程设计,完全的是本末倒置。
学习程序语言(不仅仅是C++)的“本”,当然是融汇贯通,举一反三,针对实际问题提出实际的解决方案,然后选择最合适的语言,选择可以用到它的特性。
学习程序语言(不仅仅是C++)的“末”,是知道一门程序语言的名字,知道它的一些特性。但也可能只是会生搬硬套,为了显示程序语言的特性而特别的去设计一段代码。这在教学过程中无可厚非,课程设计还这样,就说不过去了。
一个程序语言的特性,都是有它最适合的应用场景的。
你的课程设计,非要把20个特性的它们最适合的应用场景,拼接到一起。就好比把20部最好的电影最精彩的镜头,拼接在一起,这也会是一部好电影么(恩,如果你是大师级别的电影剪辑,还是有可能的)?
我得出的结论是,你们老师想让你们一下子学会C++的所有特性,也就是一下子吃成胖子。
当然,还不是他给你们喂胖(只给你们列出特性,没出具体的题目;好比他只给你们饭菜,没给你们勺子),要你们自己吃胖(要你们自己想出一个可以容纳所有特性的题目,也就是自己找到一把可以一下子装下所有饭菜的勺子,一口吃下去)。
好吧,就把这段话给你出题目的老师看,看他怎么反驳吧。
最好我想说,你们老师不仅大脑抽筋了,还坑了你150百度积分,真是个坏老师啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-05-17
展开全部
蛋疼的题目
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询