不积跬步无以至千里(四)
来源:互联网 发布:养老金亏空 知乎 编辑:程序博客网 时间:2024/04/29 00:19
1.请你简述面向对象程序设计的基本思想
答:用面向对象程序设计语言中的对象和类直接模拟现实世界中的对象,将问题空间直接映射到软件
空间。从而设计出尽可能直接,自然地表示问题求解方法的软件。面向对象方法按照对象来划分系统,以对
象为模块,分而治之、
2我们应该如何使用类库?
如要利用类库,程序员必须知道类库的组织情况。 我们可以通过联机帮助或类库参考手册(类库工作手册
)了解
答:1.软件开发系统提供的类库层次结构。
2.可能需要用到的类及其父类的属性和方法。
3.通过联机文档提供的列子学习有关类的使用方法
3.什么是模板?在C++语言中有几种模板?模板有什么用处?
答:模板是一种使用类型作为参数产生一系列函数或者类的机制。或者说,模板是模式,她使我们
在不关心数据类型的情况下能够实现各种算法。在C++语言中有两种模板:函数模板和类模板。函数模板可
以用来创建适应多种数据类型的通用函数;类模板可以用来创建适应多种数据类型的通用类
4.面向对象程序设计中的分装性有什么好处?
答:封装性降低了程序设计的复杂度:封装性实现接口和实现的分离,从而将操作对象的内部复杂性
与应用程序的其他部分隔离开来,这样能够降低程序设计的复杂性。
提高了数据的安全性和代码的可靠性
封装改善了软件的可维护性
封装性改善了程序木块可重用性
5.继承机制在面向对象程序方法中的优点?
答:继承性很好实现了代码的重用
能改进软件系统的可维护性
继承性使已有的程序库具有清晰的层次结构关系
5.多态性及其优点?
答:当不同的对象接受到相同的消息产生不同的动作,这种称为多态性。
降低了程序设计时的复杂性
多态性支持程序猿的知识重用
增强了软件的灵活性
6.面向对象程序设计中的继承性有何益处?在C++语言中如何实现继承性?
答:面向对象程序设计中的继承性的主要益处是很好地实现了软件重用,有利于降低软件的开发和维
护成本。并且有利于软件扩充,改进软件的可维护性。在C++语言中主要通过派生类来实现继承性。也可以
在新类中创建已有类的对象作为成员来实现。
将绝对值函数abs( )重载三次。请在主函数中演示这三个函数,求出并输出整型数168,长整型数+1000000
,双精度数 -2.781828的绝对值。
[参考答案]#include"iostream"
using std::cout;
using std::endl;
int abs(int a)
{
if(a<0) a=-a;
return(a);
}
long abs(long a)
{
if(a<0) a=-a;
return(a);
}
double abs(double a)
{
if(a<0) a=-a;
return(a);
}
int main()
{
int x1=168;
long x2=+1000000;
double x3=-2.781828;
cout<<"x1="<<abs(x1)<<endl;
cout<<"x2="<<abs(x2)<<endl;
cout<<"x3="<<abs(x3)<<endl;
return 0;
}
下列shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同
形状的图形面积总和的函数。请从shape类派生三角形类(triangle)、矩形类(rectangle),并给出具体的
求面积函数。请在main( )函数中创建一个三角形对象(高=3,底=4)和一个矩形对象(长=4,宽=5),并
使用total( )求它们的面积之和。(10分)
[参考答案]class shape{
public:
virtual float area( )=0;
};
float total(shape *s[ ],int n)
{
float sum=0.0;
for(int i=0;i<n;i++)
sum+=s[i]->area( );
return sum;
}
class Triangle:public Shape
{
public:
Triangle(double h,double w){H=h;W=w;}
double Area() const{return H*W*0.5;}
private:
double H,W;
};
class Rectangle:public Shape
{
public:
Rectangle(double h,double w){H=h;W=w;}
double Area()const{return H*W;}
private:
double H,W;
};
}
int main( )
{
Triangle tri(3,4); Rectangle rect(4,5);
Shape *s[2];
s[0]=&tri; s[1]=▭
cout<<"Sum of area is: "<<total(s,2)<<endl;
return 0;
}
创建一个函数模板max( ),该模板返回两个参数中的最大值,例如:max(3,4)
返回4, max('c','a')返回'c',并在主函数中演示这个模板。
[参考答案]#include <iostream.h>
template <class T>
T max(T x, T y)
{
return (x>y) ? x:y;
}
int main( )
{
cout<<max(3,4)<<endl;
cout<<max('c','a')<<endl;
return 0;
}
从键盘输入若干个同学的姓名(使用拼音表示),按字典顺序排序后输出。
要求利用C++标准模板库STL或者你熟悉的其他类库编程实现。
[参考答案]#include <iostream>
#include <list>
#include <string>
#include <cstdlib>
using namespace std;
int main( )
{
list <string> lst;
int i;
char classmates_name[20];
for( i = 0; i < 6; i++)
{
cout<<"Please input a classmate's name:"<<endl;
cin.getline(classmates_name,'\n');
lst.push_back(classmates_name);
}
cout << "Original contents: ";
list <string>::iterator p = lst.begin();
while( p != lst.end()){
cout << *p<<"; ";
p++;
}
cout << endl << endl;
lst.sort();
cout << "Sorted contents: "<<endl;
p = lst.begin();
while( p != lst.end()){
cout << *p<<endl;
p++;
}
cout << endl;
return 0;
}
设计一个简单的电话本软件。当用户从键盘输入联系人的姓名,能够查找到对应的电话号码。要求利用C++
标准模板库或者你熟悉的其他类库编程实现。
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main( )
{
map<string,int>m;
int i;
m.insert(pair<string,int>("WangGang",88168898));
m.insert(pair<string,int>("LiNa",88168558));
m.insert(pair<string,int>("LiTing",88163798));
m.insert(pair<string,int>("FengGang",88144368));
string s;
cout<<"Enter the name:"<<endl;
cin>>s;
map<string,int>::iterator p;
p=m.find(s);
if( p != m.end())
cout <<s<< "'s phone number is: " << p->second << endl;
else
cout <<s<< "'s phone number is not in the phonebook.\n";
return 0;
}
- 不积跬步无以至千里(四)
- 不积跬步,无以至千里
- 不积跬步,无以至千里
- 不积跬步无以至千里
- 不积跬步,无以至千里
- 不积跬步无以至千里
- 不积跬步,无以至千里
- 不积跬步,无以至千里
- 不积跬步无以至千里
- 不积跬步 无以至千里
- 不积跬步,无以至千里
- 不积跬步,无以至千里。
- 不积跬步,无以至千里
- 不积跬步无以至千里
- 不积跬步,无以至千里
- 不积跬步无以至千里(一)
- 不积跬步无以至千里(二)
- 不积跬步无以至千里(三)
- POJ 3176 Cow Bowling(dp)
- 053第246题
- mac adt导出APK崩溃,直接调试正常解决方法
- 在 Windows2003 中启用分布式事务遇到的部分问题
- Iterator与Enumeration的区别
- 不积跬步无以至千里(四)
- hdu 5280 Senior's Array 修改区间和最大
- leetCode 45.Jump Game II (跳跃游戏) 解题思路和方法
- 【sql】——日志表过大,整理日志表
- TouchSlide (图片轮播的效果)
- [LeetCode]Merge Two Sorted Lists
- C语言-对一个结构体中的字段进行排序
- 【猫猫的Unity Shader之旅】之Phong高光
- mongod连接不上的原因