C++程序设计总结

时间:2019-05-12 13:16:45下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《C++程序设计总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《C++程序设计总结》。

第一篇:C++程序设计总结

第一章面向对象编程原理

近五十年间,软件技术经历了多个阶段的发展演变  目前为止最流行的技术还是面向过程编程(POP)

 面向过程编程采用了自顶向下的设计方案,问题被看做多个执行任务的序列。为完成这些任务,须实现一些函数。

 面向过程有两大不足,即:(1)数据可在程序内自由迁移,程序内任何函数都会引起数据的更改,增加了数据的脆弱性。(2)它并不能很好地建模现实世界。

 为了克服面向过程编程中的不足,人们发明了面向对象编程(OOP)。它采用自底向上的编程方案,在程序开发中,把数据视为重要元素,不允许数据在系统内自由迁移。它还将数据和函数紧密绑定于成为类的数据结构中,函数可操作类中的数据。此特性称为数据封装。

 在面向对象编程中,问题被视为一系列称为对象的实体的集合。对象是类的实例;  将数据与程序的直接访问隔绝,这称为数据隐藏。

 数据抽象指的是,将各种必要特性合并,而不引入背景细节。 继承是这样的一个过程,即某类的对象得到另一类对象的属性。

 多态指的是,一个名称,多种形态。在程序中,我们可以借此定义多个同名函数。此特性亦可重载运算符,这样一来,同一个运算符在不同的实例下,会有不同的行为。 动态绑定指的是,给定过程的代码,直到运行期被调用时才确定。 消息传递涉及对象名,函数(消息)名以及发送的信息。

 与传统的编程技术相比,面向对象技术具有诸多优势——最显著的当属重用技术。 在实时系统等几乎所有的计算机领域,面向对象编程的应用程序都已受到重视。 不少语言都支持面向对象编程,流行的语言包括C++、Smalltalk和Java。

第二章C++入门

 C++是C语言的超级

 C++在C语言的基础上,添加了一些面向对象的特性,诸如对象、继承、函数重载和运算符重载。这些特性加强了程序的清晰性,可扩展性,使程序容易维护。

 C++可用于开发各种系统,诸如编辑器、编译器、数据库、通信系统以及其他更多复杂的实际系统。

 C++支持交互式输入输出,并引入了新的注释符号//,可用于注释单句。它也支持C语言的注释风格。

 和C程序一样,所有C++程序的执行入口都是main()函数,并以return()语句作为结束。头文件iostream应包含于所有使用输入输出操作的程序开头。 所有标准C++程序都要包含using namespace std指令

 典型的C++程序包括四个基本部分:也就是头文件包含部分、类声明部分、成员函数部分和主程序部分

 和C程序一样,C++程序可用于任何文本编辑器创建

 大多数编译器提供了集成开发运行环境。流行的编译器系统有UNIX AT&T C++、Turbo C++和微软公司的Visual C++

第三章符号、表达式和控制结构

 C++有不同的符号,包括关键字、标识符、常量、字符串和操作符  标识符指的是变量名、函数名、数组名、类名等  C++中增加了void的一个用途,可用于声明通用指针

 C++中枚举数据类型略有不同,枚举类型名称为新的类型名。这样我们就可以声明枚举类型的变量

 在C++中,字符数组的大小应比字符串的实际长度大1  C++增加了指针常量和常量指针的概念,对于前者我们不能修改赋予它的地址值,对于后者,我们不能修改它指向的内容。

 在C++的内存管理和多态实现中,指针被广泛地使用。

 C++中提供了const修饰符,用于声明常量,常量也是变量,只是其值不可变更。const修饰符默认修饰整型。

 C++的变量类型检查非常严格,它不允许不同类型变量之间的赋值。类型转换是打破此规的唯一办法。

 C++允许我们在程序中随处声明变量,而且可以利用声明处的表达式,在运行期完成初始化。

 引用变量给之前定义的变量提供了一个别名。它们都指向内存中的同一个数据对象。所以,改变其中一个的值,另一边量的值也会随之改变。

 引用变量必须在声明时初始化,这建立了它和要引用的变量之间的对应关系。 作用于解析操作符(::)的主要用于类,以识别成员函数所属的类

 除了malloc()、calloc()、free()函数外,C++提供了两个一元操作符,即new和delete,以更好和更方便地分配和释放内存

 C++也提供了操纵器,来格式化输出数据。最常用的操纵器为endl和setw  C++支持七种表达式类型。表达式中数据类型混用时,C++使用特定规则,自动地进行类型转换。

 使用类型转换操作符,C++也可显示地进行变量和表达式的类型转换

 和C语言一样,C++也支持三种基本的控制结构,也就是顺序结构,分支结构和循环结构,并使用各种控制语句实现它们,比如if、if…else、switch、do…while、while以及for。

第四章C++中的函数

 在程序的不同处,调用函数可减少程序的大小。

 在C++中,main()函数向操作系统返回一个整型值。因为函数的返回值类型默认是整型,所以main()函数中的关键字int是可选的。而如果没有返回语句,大部分C++编译器会提示一个警告。

 函数原型向编译器提供了函数的细节,比如参数的数目和类型,以及返回值的类型。 C++的引用变量使我们可以传引用参数给函数。函数也可以返回引用变量。

 当函数声明为内联时,编译器用相应的函数代码替换了函数调用。一般情况下,小函数才使用内联。

 编译器可能会忽略函数的内联声明,如果函数声明太长或过于复杂,编译器将按常规函数编译它。

 当函数声明时,C++允许我们把默认值赋给函数参数。这种情况下,我们可以无需指明所有参数,便可调用函数。默认参数总是由右到左添加。 C++中,函数的参数可声明为常量,表示函数不可更改此变量。

 C++允许函数重载,也就是说,我们可以定义多个同名函数。通过检查参数数目和类型编译器会准确地匹配函数调用和函数代码。

 C++支持两种新的函数类型,亦即友元函数和虚函数。

 C++标准库支持很多数学库函数,使用它们可以完成许多数学计算。

第五章 类和对象

 类是结构体数据类型的扩展,一个类有多个成员变量和成员函数。 默认情况下,类的成员是私有的,而结构体的成员是公用的。

 只有成员函数可以访问私有数据成员和私有函数。但是类外可以访问公用成员。 在C++中,类变量称为对象。利用对象并使用点操作符,我们可以访问类的公用成员。 我们可以在类内或类外定义成员函数。成员函数和常规函数的区别在于,成员函数的头

部有一个隶属标识符,以表明所属类。

 对象声明时,内存空间才会分配。每一对象的成员变量空间单独分配,而成员函数的空间则统一分配。

 类的一个成员变量可声明为静态成员,一般用于维护整个类的通用值。 静态成员变量必须定义于类外。

 静态成员函数可访问声明在同类的静态成员,调用静态成员函数时需要用到类名。 C++允许我们使用对象数组。 对象可用作函数自变量。

 友元函数不在友元声明类的作用域类,它可以访问累的所有私有数据。 函数可以返回对象。

 如果成员函数不改变类内的任何数据,我们可以将其声明为常量成员函数,只要在函数原型中加上关键词const(声明和定义都要加)。

 我们也可以在函数内定义和使用类。这种类称为局部类。

第六章构造函数和析构函数

 C++提供了一种称为构造函数的特殊成员函数,它能帮助对象在创建时完成初始化。这一过程被称为对象的自动初始化。 构造函数名和类名一致。

 构造函数通常用来初始化变量,以及分配内存。 和常规函数一样,构造函数也可以被重载。

 当对象同时被创建和初始化时,复制构造函数被调用。 我们可以声明一个常量对象,其数据值不能改变。

 C++还提供另一种成员函数,称为析构函数。当对象不再需要时,会调用这种函数来销毁对象。

第七章运算符重载和类型转换

 运算符重载是C++的重要特性之一。又被称为编译时多态性。

 使用重载特性,我们可以对两个用户自定义数据类型,比如说对象,执行相加的操作,使用的语法就和基本数据类型一样。

 我们可以重载几乎所有C++的运算符,下面几个是例外:

 类成员访问符(.,.*)。 作用域解析符(::)。

 大小运算符(sizeof)。 条件运算符(?:)。

 运算符重载是通过一种称为运算符函数的特殊函数完成的,该函数定义了运算符的特定任务。

 运算符重载时有一些限制。运算符函数必须是非静态的成员函数或者友元函数。重载的运算符必须有至少一个用户自定义类型的操作数。

 编译器不支持用户自定义数据类型的自动类型转换,我们可以使用自定义的转换运算符函数,以实现自定义数据类型的自动类型转换。 转换运算符函数应符合下列条件:

 必须是类成员。 必须不指定返回值。 必须没有参数。

第八章继承:类的扩展

 从旧类派生一个新类的机制被称为继承。继承提供了可重用性的概念。通过继承,C++的类可以被重用。

 派生类继承了基类的一部分或所有特性。 只有一个基类的派生类被称为单继承。 可从多个类继承,这被称为多继承。 可从另一派生类继承类,这被称为多级继承。

 当某类的属性被多于一个类继承时,这被称为层次继承。 不管是在公用模式还是私有模式,类的私有成员都不可被继承。

 以公用模式继承的保护成员仍为派生类的保护成员,而以私有模式继承的保护成员,则变成派生类的私有成员。

 友元函数和友元类的成员函数可直接访问私有和保护数据。

 派生类的成员函数只能直接访问保护和公用数据。不过他们可通过基类的成员函数访问私有数据。

 多路继承可能引起祖父基类的继承成员的重复。通过将共同的基类设为虚基类,我们可以避免祖父基类成员的重复。

 在多继承中,基类的创建次序与他们在派生类中的声明次序一致。 类可包含其他类的对象。这被称为包含关系或嵌套。

第二篇:C++程序设计实习报告

目录

一、实习内容…………………………………………………………………………1

二、设计思路…………………………………………………………………………2

三、程序清单…………………………………………………………………………3

四、运行结果…………………………………………………………………………15

五、程序使用说明……………………………………………………………………20

六、总结及心得体会…………………………………………………………………21

课程设计的题目:《小型公司工资管理系统》设计

设计说明:公司主要有四类人员:经理、技术员、销售员、销售经理。程序要求存储这些人的职工号、姓名、月工资、年龄、性别等信息。并且应用程序中要求给出菜单,用于选择各项功能。

一、程序要求实现的功能即菜单目录有:

1、数据输入:输入各种数据;

2、数据统计:统计各销售经理下属销售员的销售额及销售额之和;销售经理工资进行冒泡排序;

3、数据打印:打印各类员工的数据信息;

4、数据备份:把各类员工的数据信息写入文件中保存;

5、退出:退出本系统,即结束程序的运行。

二、工资的计算方法

A:经理:固定月薪为8000元;B:技术员:工作时间*小时工资(100元/小时);C:销售员:销售额* 4%提成;D:销售经理:底薪(5000)+所辖部门销售额总额* 0.5%。

三、类的层次结构大体如下

雇员类

技术员类

经理类

销售员类

↓ 销售经理类

二、设计思路

1.(1)首先我们要搞清楚各类之间的继承关系,设置基类employee,其派生类manager,technician,salesman。再以manager类为基类,再派生一个salesmanager类,将各类的数据成员设计成protected,方便派生类对基类的继承;

(2)在public里编写数据输入的函数,在主函数中输出菜单并定义各类的对象,通过对象来调用数据输入函数; 2.

(1)在基类employee中补充几个返回各类数据的函数以用于返回输入的各类值;

(2)在主函数内用冒泡法对销售经理的工资进行排序,定义一个wage[]来将各销售经理下面的销售员的销售额进行储存,定义一个all用于计算销售经理的销售总额,以便于下面对其进行工资的计算 ;

(3)第2,3,4步都用大量的for循环进行输出,以实现表格的形成还有表格中数据的输入;在主函数内定义各类的对象,然后都是直接通过类的对象调用类内的函数,运用for循环进行打印,统计; 3.

备份参照课本格式,选择路径及格式,运用for循环备份;就是那个fstream之类的东西;、退出系统用exit(5)函数实现;

4.主函数运用switch语句,将上述功能编为case 1~5,每个case后添加break;5.程序结束。

以上是我所认为的该程序的几个要点…………………………………..三、程序清单

#include #include #include #include #include using namespace std;const N=2;fstream outfile;class employee

//基类,雇佣者 { protected:

string name;char sex;int age;public:

virtual void display()

{

cout<<“其姓名:”;

cin>>name;cout<<“性别(m/w):”;cin>>sex;cout<<“年龄:”;

cin>>age;} string nam(){return name;} char se(){return sex;} int ag(){return age;} };

// class technician: public employee

//技术员类 { public:

int worktime;int number1;public:

void display1()

{

} int time(){return worktime;} int numb1(){return number1;} cout<<“技术员的编号:”;cin>>number1;employee::display();cout<<“工作时间”;cin>>worktime;};

// class manager : public employee

//经理类 {protected:

int number2;

public:

void display2(){

} int numb2(){return number2;} cout<<“经理的编号:”;cin>>number2;employee::display();};

// class salesman : public employee

//销售员类 { protected:

int total;int boss;int number3;public:

};

//

class salesmanager : public manager

//销售经理类 {protected:

int number4;public: void display4(){ void display3(){

cout<<“销售员的编号:”;cin>>number3;employee::display();

cout<<“销售额:”;

} int hismanager(){return boss;} int xiaoshoue(){return total;} int numb3(){return number3;} cin>>total;cout<<“所属销售经理的编号:”;cin>>boss;

cout<<“销售经理的编号:”;

cin>>number4;

employee::display();} int numb4(){return number4;} };

//

void form(){ cout<<“★★小型公司工资管理系统★★”<

请选择您所需的操作

│”<

数据输入:1,并按回车键 │”<

数据统计:2,并按回车键 │”<

数据打印:3,并按回车键 │”<

数据备份:4,并按回车键 │”<

退出系统:5,并按回车键 │”<

int main(){ int i,j,k,g,m,all,t;

char shuzi;

int wage[N];

technician t1[N];

//提示表格

manager m1[N];

salesman s1[2*N],s2[2*N];

salesmanager sm1[N],f;

for(t=1;;t++){

form();cin>>shuzi;switch(shuzi){ case '1':{

//功能1

for(i=0;i

t1[i].display1();cout<<“.......................................”<

for(i=0;i

m1[i].display2();cout<<“.......................................”<

for(i=0;i<2*N;i++)

s1[i].display3();cout<<“.......................................”<

for(i=0;i

sm1[i].display4();cout<<“.......................................”<

//功能2 for(i=0;i

cout<<“│职工号

│姓名

│销售额

│”<

for(m=0;m<2*N;m++){if(s1[m].hismanager()==sm1[i].numb4()){ wage[i]=wage[i]+0.005*(s1[m].xiaoshoue());all=all+s1[m].xiaoshoue();

cout<<“├─────┼────┼─────┤”<

cout<<“├─────┼────┴─────┤”<

cout<<“│销售额总计│”<

for(j=0;j

for(k=0;k

if(wage[k]

//冒泡

wage[k]=wage[k+1];wage[k+1]=t;f=sm1[k];sm1[k]=sm1[k+1];sm1[k+1]=f;} cout<<“销售经理按工资排序为:”<

│姓名

│性别

│年龄

│工资

│”<

”<

│”<

break;

//功能3 case '3': cout<<“请等待............”<

cout<<“┌─────┬────┬────┬────┬────┐”<

cout<<“│职工号

│姓名

│性别

│年龄

│工资

│”<

for(i=0;i

”<

│”<

cout<<”.......................................................“<

cout<<”┌─────┬────┬────┬────┬────┐“<

cout<<”│职工号

│姓名

│性别

│年龄

│工资

│“<

for(i=0;i

“<

│“<

} cout<<”└─────┴────┴────┴────┴────┘“<

//经理表

cout<<”.......................................................“<

cout<<”┌─────┬────┬────┬────┬────┐“<

cout<<”│职工号

│姓名

│性别

│年龄

│工资

│“<

for(g=0;g

cout<<”├─────┼────┼────┼────┼────┤“<

cout<<”

“<

“<

││“<

cout<<”└─────┴────┴────┴────┴────┘“<

//销售经理表

cout<<”销售员“<

cout<<”┌─────┬────┬────┬────┬────┬────────┐“<

cout<<”│职工号

│姓名

│性别

│年龄

│工资

│所属部门经理编号│“<

for(i=0;i<(2*N);i++){ cout<<”├─────┼────┼────┼────┼────┼────────┤“<

“<

│“<

────────┘“<

//经理表 cout<<”...............................................................................“<

break;case '4': cout<<”数据备份“<

outfile.open(”E:sjq.txt“,ios::in|ios::out|ios::trunc);

outfile<<”技术员“<

outfile<<”┌─────┬────┬────┬────┬────┐“<

outfile<<”│职工号

│姓名

│性别

│年龄

│工资

│“<

for(i=0;i

“<

│“<

outfile<<”.......................................................“<

outfile<<”┌─────┬────┬────┬────┬────┐“<

outfile<<”│职工号

│姓名

│性别

│年龄

│工资

│“<

for(i=0;i

“<

“<

││“<

} outfile<<”└─────┴────┴────┴────┴────┘“<

//经理表

outfile<<”.......................................................“<

outfile<<”┌─────┬────┬────┬────┬────┐“<

outfile<<”│职工号

│姓名

│性别

│年龄

│工资

│“<

for(g=0;g

{

outfile<<”├─────┼────┼────┼────┼────┤“<

outfile<<”

“<

“<

││“<

outfile<<”└─────┴────┴────┴────┴────┘“<

//销售经理表 outfile<<”销售员“<

outfile<<”┌─────┬────┬────┬────┬────┬────────┐“<

outfile<<”│职工号

│姓名

│性别

│年龄

│工资

│所属部门经理编号│“<

for(i=0;i<(2*N);i++){ outfile<<”├─────┼────┼────┼────┼────┼────────┤“<

“<

│“<

┴────────┘“<

//经理表

outfile<<”...............................................................................“<

case '5':cout<<”确定退出系统吗?“<

cout<<”是:1,否:2“<>a;if(a==1)exit(5);break;

default :cout<<”error"<

} return 0;} }

四、运行结果

数据备份内容…………………………………………….1.从键盘输入1,按回车键,可进行各类数据的输入,此步骤必须执行; 2.从键盘输入2,按回车键,即可进行数据统计,得到统计列表; 3.从键盘输入3,按回车键,可打印出各类成员的基本信息; 4.从键盘输入4,按回车键,可进行数据备份;

5.从键盘输入5,按回车键,出现提示信息,若退出系统输入1否则输入2。

六、总结及心得体会

从9月2号,我们开始了为期一周的C++程序设计实习——《小型工资管理系统》,每天下午去机房调试程序,上午编写下一天的程序代码。

刚开始的时候,脑袋里一点思路都没有,因为以前没有接触过这么大的程序。所以刚开始的时候,心里只有一个字能形容就是怕。怕自己便不好,怕这门课程完成不了,很多很多。去做一件事情,最忌讳的就是这一点。失败者和成功者最大的区别就是面对困难时的心态,我深知这一点。所以,我沉下心来思考了很多。做一个程序,最重要的就是大体思路,得有全局的思考,我承认,这一点我做的不是很好,因为我第2天的程序做了大改动,也许是我基本功不扎实,但是我所能想到的就是大改动了,可能有其他简便的方法,所以这对于我而言,是一个重大的警告。在第二天的晚上,我花了一晚的时间来重新整理思路,以防止在接下来的几天里再出现那样的错误,那就很让人纠结了。第1天时完成数据的输入以及类的设计。这个还不是很难,就是定义一个基类employee,然后派生下来几个子类。然后在类内编写返回值的函数,以及数据输入的函数等等,数据成员都设置成protected。在类外在编几个数组,用来调用类内函数。

第2天是完成数据统计,排序功能。排序的话用冒泡法,用数组进行数据的排序。但是问题出现了,第一天我是把输入功能独立变成一个void函数在主函数前面的,但是我发现数据无法存储下来。所以第2天我就把第一步的内容全改了,搬到了类内,这样才解决了问题。

第三天时完成数据的输出显示,这个地方的难点就是设计表格,这个就涉及到了那个输入内容宽度的设计,以及制表键盘的。然后数据的输出就是在主函数内定义类对象数组,以此来实现数据的调用。

然后剩下的就是备份以及推出功能的实现了。这些都是在网上查了相关资料然后学会如何编写的,刚开始觉得很深奥,学了之后,就觉得,嗯,还行。所以其他的任务在半天内就完成了。看着自己编出的程序,真心觉得一切都值了,很有成就感的样子,我想这就是编程员的欢喜吧。整个实习过程让我明白了几点:

1.设计一个程序时需要从整体考虑,不能分散到最后结合不到一起; 2.有些貌似简单的功能的实现其程序实现不一定简单,但也不能畏首畏尾,不敢尝试,要勇于挑战自己,相信自己一定可以; 3.

1.需要具有刻苦钻研的精神,注意总结,遇到问题认真思考,力求得到结果; 2.同时也不能忽略团队的力量,遇到实在个人解决不了的问题可以通过与同学商量解决,并且结合别人和自己的观点,从多方面考虑,在众多方案中找出最优化的;

3.遇到一些问题时要有耐心进行更正,因为可能有时候一个很小的错误会导致整个程序运行失常。

我感觉这一周的实习非常充实,谢谢这一周给我指导的老师,以及各位同学的陪伴。

第三篇:《C++程序设计》实验报告范例

注意:以下蓝色文字部分根据情况增删

实验1熟悉VC++6.0集成开发环境

一、实验时间:

2011年9月20日

二、实验地点:

第7机房

三、指导教师:

邓谱

四、实验目的:

1.了解VC++6.0的主要特点;

2.熟悉VC++6.0的集成开发环境;

3.学习用VC++6.0编写简单的C++应用程序,掌握C++程序的上机调试步骤。

五、实验内容:

1.P19 第1题:在屏幕上输出字符串“欢迎大家学习VC++6.0!”

 【编程思想】

 【流程图】

 【源程序】见上机作业“实验11_11_1.cpp”

问题1:不知道如何在VC++6.0里输入源程序

解决方法:

(1)首先建立“Win32 Console Application”工程;

(2)再向工程中添加源文件;

(3)在添加的源文件中输入代码。

以上的详细操作流程见“Visual C++ 6.0集成开发环境.doc”文件。

问题2:error LNK2001: unresolved external symbol _WinMain@16:连接错误2001:未解决的外部符号_WinMain@16

问题原因:创建工程时选的创建“Win32 Application”,这是创建图形用户界面的C++工程,而程序是字符界面,两者不一致导致该错误。

解决方法:创建工程时应选“Win32 Console Application”

问题3:error C1010: unexpected end of file while looking for precompiled header directive:错误C1010:在查找预编译头时遇到意外的文件结尾。

问题原因:在选择创建工程种类时选择了“a simple application”,该工程还包含stdafx..h和stdafx..cpp两个文件,这两个文件是为编译系统进行预编译服务的,需要在源程序开始部分使用#include “stdafx.h”进行引用,如果未进行引用,会导致该错误。

解决方法1:在选择创建工程种类时选择第一项“an empty project”

解决方法2:如果工程文件列表中(窗口左边)有stdafx..h和stdafx..cpp两个文件,则源程序开始要使用#include “stdafx.h”进行引用。

问题4:error C2143: syntax error : missing ';' before '}':错误C2143:语法错误:在'}'之前丢失了';'

问题5:……

2.P19 第2题:求两个整数之和

……

六、实验总结:

(将实验过程中或学习本章节的上机过程中值得记录的内容按1.2.3.分条写下来)

第四篇:c++程序设计教案(朱红)

1构造一个类,含有3个数据成员,为长方体的长、宽、高,含有一个成员函数,用来计算长方体的体积 #include “stdafx.h” #include class cub { private: double a,b,c;public: void setabc(double,double,double);double volu(void);};void cub::setabc(double x,double y,double z){a=x;b=y;c=z;} double cub::volu(void){return a*b*c;} void main(){ cub cuba;cuba.setabc(3,4,5);cout<<“cuba的体积为:”< class cub { private: double a,b,c;public: void setabc(double x,double y,double z){

a=x;b=y;c=z;} double volu(void){

return a*b*c;} };int main(int argc, char* argv[]){

cub cuba;cuba.setabc(3,4,5);cout<<“cuba的体积为:”< class stu { private: double a,b,c;public: void setabc(double x,double y,double z){

a=x;b=y;c=z;} double average(void){

return(a+b+c)/3;} void show(void){

cout<<“数学、物理、英语成绩分别是:”<

cout<<“平均成绩是:”<

stu Yin;Yin.setabc(80,81,82);cout<<“张三的成绩表:”< #define pI 3.14 class circle { private: double radius;public: circle(double x=0){radius=x;} circle(circle &t)

//拷贝

{ radius=t.radius;} double peri(void){return 2*pI*radius;} double area(void){return pI*radius*radius;}

void show(void){cout<<“圆形的半径为:”<

cout<<“圆形的周长为:”<

cout<<“圆形的面积为:”<

cout<<“circlea的参数是:”<

circle circlea(3);circle circleb(circlea);

circlea.show();

cout<<“circleb的参数是:”< #include class Rect { public: double a,b;Rect(double x,double y){

a=x;b=y;

} double area(void){

return a*b;} void showA(void){

cout<<“长方形的边长是:”<

cout<<“长方形的面积是:”<

class Cub:public Rect { private: double H;public: Cub(double x,double y,double h):Rect(x,y){H=h;} double volume(){return area()*H;} double Aarea()//表面积

{return(2*a*b+2*b*H+2*b*H);} void showB(void){

cout<<“长方体的高是:”<

cout<<“长方体的表面积是:”<

cout<<“长方体的体积是:”<

void main(int argc, char* argv[]){

Cub abc(3,4,4);cout<<“长方形的参数是:”<

a=x;b=y;r=z;} double area1()//圆的面积

{

return PI*r*r;

} double area2(){

return a*b;}

//长方形面积

void showA(){

cout<<“圆的半径为”<

cout<<“圆的面积为”<

cout<<“长方形的边长为”<

cout<<“长方形的面积为”<

class sphere:public shape

//圆类 {

public: sphere(double z):shape(0,0,z)

{

}

double Aarea1()

{

return 4*PI*r*r;

}

double volume1()

{

return(4*PI*r*r*r)/3;

}

void showC(void)

{

cout<<“球的表面积为:”<

cout<<“球的体积为:”<

}

};class cube:public shape

//长方体类

{ private:

double h;public:

cube(double x,double y,double z):shape(x,y,z)

{ h=z;}

double Aarea2()

{

return 2*(a*b+a*h+b*h);

}

double volume2()

{

return area2()*h;

}

void showD(void)

{

cout<<“长方体的高为:”<

cout<<“长方体的表面积为:”<

cout<<“长方体的体积为:”<

}

};

void main(int argc, char* argv[]){

sphere yuan(1);

cout<<“球类的参数是:”<

yuan.showA();

//abc.showB();

yuan.showC();

cube chang(1,2,3);

cout<<“长方体的参数是:”<

chang.showB();

chang.showD();}

四则运算:

#include #include class CA { private: int D1,D2;char Opr;public: long GetResult(){

switch(Opr)

{

case '+': return D1+D2;break;

case '-': return D1-D2;break;

case '*': return D1*D2;break;

case '/': if(D2!=0)return D1/D2;

else{

cout<<“分母为0”<

default:

{

cout<<“非法 Opr”<

} } }

void SetOpr(char opr){ switch(opr){ case '+': case '-': case '*': case '/':

Opr=opr;break;default:Opr='';} }

void SetData(int d1,int d2){ D1=d1;D2=d2;}

int GetD1(){return D1;}

int GetD2(){return D2;} };

int main(int argc, char* argv[]){ CA calc;calc.SetData(3,2);

calc.SetOpr('*');cout<<“result=”<

++双目

#include “stdafx.h” #include #include class Rect { private: double a,b;public: //Rect()//{cout<<“构造函数”<

a=x;b=y;

cout<<“构造函数”<

return a*b;} void showA(void){

cout<<“长方形的参数是:”<

cout<<“长方形的边长是:”<

cout<<“长方形的面积是:”<

~Rect(){cout<<“析构函数”<

a+=5,b+=5;return *this;} };void main(int argc, char* argv[]){ Rect abc(2,3);

abc.showA();

cout<<“++后的值”<

abc++;

abc.showA();

//cout<<“主函数”<

第五篇:C++程序设计试卷2010(有答案)

XX大学

试题纸

面向对象的程序设计C++

(B)

题号

总分

得分

阅卷人

一、选择题:(每小题2分,共20分)

1.下面四个选项不属于表达式的语句是(B)。

A.z=x+y

B.x*y;

C.z=x;

D.z=y/2;

2.若定义int

a=10,下面选项中合法的if语句是(D)

Aif(a<

>0)a=a+2;

B.if(a=<1)a=a+2;

C.if(a=>1)a=a+2;

D.if(a=

=0)a=a+2;

3.表达式2!=3的值是(B)

A.非0值

B.1

C.0

D.2

4.假设Myclass是一个类,则该类的拷贝构造函数的声明语句为

C。

A.Myclass(Myclass

P);

B.Myclass

&(Myclass

P);

C.Myclass(Myclass

&p);

D.Myclass

(Myclass

*P);

5.下列说法正确的是:

A。

A.类定义中只能说明成员函数的函数头,不能定义函数体;

B.类中的成员函数可以在类体中定义,也可以在类体外定义;

C.类中的成员函数可以在类体外定义时必须要与类声明在同一文件中;

D.在类体外定义的成员函数不能操作该类的私有数据成员。

6.假定DD为一个类,则执行“DD

a[10],b(2);”语句时,系统自动调用该类构造函数的次数为

B。

A.12

B.11

C.2

D.1

7.下面对静态数据成员的描述中,正确的是:

B。

A.静态数据成员可以在类体内进行初始化;

B.静态数据成员不可以在类体内进行初始化;

C.静态数据成员不能受private控制符的作用;

D.静态数据成员不可以使用对象名访问。

D.类A的成员函数可以访问类B的对象的任何成员。

8.下列各类函数中,不是类的成员函数的是:

C。

A.构造函数;

B.析构函数;

C.友员函数;

D.拷贝构造函数。

9.下列静态数据成员的特性中,错误的是

D。

A.说明静态数据成员时前边要加上static

B.静态数据成员要在类体外初始化;

C.引用静态数据成员时要在静态数据成员前加<类名>和作用域运算符;

D.静态数据成员不是一个类所有对象共享的。

10.假定一个类的构造函数为“A(int

aa=1,int

bb=0){a=aa;b=bb;}”,则执行“A

x(4);”语句后,x.a和x.b的值分别为

D。

A.1和0

B.4和1

C.1和4

D.4和0

二、填空题:(每空2分,共10分)

1.面向对象程序设计的三大特征是:、和。

2.在下面程序的横线处填上适当字句,使该程序执行结果为8。

#include

class

Myclass

{

int

x;

public:

//为X置值

//取X值

};

void

main()

{

Myclass

test;

test.init(8);

cout<

}

三、编程题:(共50分)

要求:1)符合题意,测试结果正确;

2)语句简洁易懂、程序版式良好。(版式差也在扣分之列!!)

1.有一个函数:

2x+5

(x<1)

y

=

(1≤x<10)

1/x

(x≥10)

输入x,输出

y。(15分)

2.求1~12的立方,并按每行4个数的格式排列整齐输出。(15分)

3.设计一个圆类Circle,要求输出圆的半径、周长和面积等数据。其中,类Circle包含数据成员radius和求圆的半径、周长和面积的成员函数。通过实例验证其正确性。(20分)

四、改错题:P234第10题(20分)

一、BDBCA

BBCDD

二、1.封装性、继承性、多态性

2.void

init(int

r)

{

x

=

r

;

}

//为X置值

int

Getnum()

{

return

x;

}

//取X值

三、1./*1.有一个函数:

2x+5

(x<1)

y

=

(1≤x<10)

1/x

(x≥10)

输入x,输出

y。(15分)

*/

#include

void

main()

{

double

y

;

double

x

;

cout

<<

“enter

x=“

<

cin

>>

x

;

if

(x<10)

{

if(x<1)

{

y=2*x+5;

}

else

y=

2/(x*x+3);

}

else

y=1/x;

cout

<<

“y=“

<<

y<<

endl;

}

2./*求1~12的立方,并按每行4个数的格式排列整齐输出。(15分)*/

#include

void

main()

{

int

i;

int

a=1;

int

m;

int

b[12];

for

(i=0

;

i<12

&&

a

<=12

;

i++)

{

m=a*a*a;

b[i]=m;

a++;

}

for

(i=0

;

i<12

;

i++)

{

cout

<<

b[i]<<

“;

if

(i==3

||

i==7)

cout

<<

endl;

}

3./*设计一个圆类Circle,要求输出圆的半径、周长和面积等数据。

其中,类Circle包含数据成员radius和求圆的半径、周长和面积的成员函数

。通过实例验证其正确性。(20分)*/

#include

const

double

pi=3.14159265;

class

circle

{

public:

circle

(double

r)

{

radius

=

r;

}

double

L

()

{

return

*

pi

*

radius;

}

double

A

()

{

return

pi

*

radius

*

radius;

}

void

print()

{

cout

<<

“r=“

<<

radius

<<

endl;

cout

<<

“L=“

<<

L()

<<

endl;

cout

<<

“A=“

<<

A()

<<

endl;

}

private:

double

radius;

};

void

main

()

{

double

m;

cout

<<

enter

m

:

“<<

endl;

cin

>>

m;

circle

r1(m);

r1.print();

}

四、#include

class

Myclass

{

public:

Myclass(int

i,int

j)

{

m1=i;m2=j;

}

void

Print()

{

cout<

}

friend

void

setm(Myclass

&m,int

i,int

j);

friend

void

setm(Myclass

&m,int

i);

private:

int

m1,m2;

};

void

setm(Myclass

&m,int

i,int

j)

{

m.m1=i;

m.m2=j;

}

void

setm(Myclass

&m,int

i)

{

m.m1=i;

m.m2=i;

}

void

main()

{

Myclass

m1

(5,10),m2

(0,0);

m1.Print();

setm(m2,3,6);

m2.Print();

setm(m2,8);

m2.Print();

}

下载C++程序设计总结word格式文档
下载C++程序设计总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C++程序设计—电话簿管理系统

    XXXXXXXXXXXC/C++程序设计实训 电话簿管理系统 学生姓名 ×××× 学 号 ×××× 所在学院 ×××× 专业名称 ×××× 班 级 ×××× 指导教师 XXX XXXXXXXXXXXXXXXX XX......

    C C++程序设计大赛策划

    曲阜师范大学IT协会 C语言程序设计大赛活动策划书 一、活动背景: C语言是当今世界使用最为广泛的语言,小到家用电器,大到航空航天,无处不见C语言的身影。我校理科生及部分文科生......

    C++可视化程序设计实践要求

    C/C++可视化程序设计实践安排 一、 课程设计任务 1. 学生成绩管理系统 2. 图书管理系统 3. 通讯录管理系统 4. 自选 对于管理系统要求程序必备如下功能:(1)所有记录保存在一个......

    江西师范大学 C++程序设计教案

    江西师范大学 教 案 课程名称:C++语言程序设计 教师: 揭 安 全 年度:2007-2008上学期 课程简介: C++是当今最流行的高级程序设计语言之一,应用十分广泛。它也是一门复杂的语......

    《C++面向对象程序设计》谭浩强版复习总结

    第一章 C++ 基础 endl 换行并刷新输出流 setw(n) 设置字段位数为n hex,oct,dec 十六进制,八进制,十进制表示 setfill 定义填充字符 setprecision 定义浮点数的精度 left,r......

    《C++面向对象程序设计》教案(精选5篇)

    《面向对象程序设计》课程教案 课程编号:08051230 课程名称:面向对象程序设计(Object-oriented Programming) 学时:72学时,其中理论学时54,上机学时18 学分:3.5开课部门:数学与计算......

    西安交大C++程序设计第四章作业

    西安交通大学实验报告 课程_计算机程序设计_实验名称_数组与结构体_第 1 页 共 15页 系 别____ ___________ 实 验 日 期 2014年 3 月 18 日 专业班级___ ___组别__________......

    《面向对象程序设计》(c++)实验教学大纲

    《面向对象程序设计》实验教学大纲 课程总学时:64 学分:4 实验学时:16 实验个数: 6个实验学分:1分 课程性质:专业必修课适用专业:计算机类专业 教材及参考书:《C++语言程序设计(第四......