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

2024-09-10

江西师范大学 C++程序设计教案(精选13篇)

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

编号C13 河北工业大学计算机软件技术基础(VC)课程设计报告

学院 XX 班级 XX 姓名 刘来 __ 学号 XXXXXXX_

成绩 __ ____

一、题目:

求线性代数方程组的解(高斯消去法)

二、设计思路

1、总体设计

1)分析程序的功能

通过高斯消去法求线性代数方程组的解

2)系统总体结构:设计程序的组成模块,简述各模块功能。1.方程组的系数矩阵和常数矩阵的输入函数 2.高斯消去法的算法函数(包括消元和回带)3.输出方程组的解函数

2、各功能模块的设计:说明各功能模块的实现方法

1.执行主函数调用输入函数,输入系数矩阵和常数矩阵 2.输入后主函数调用算法矩阵进行验证解情况和消元 3.消元后主函数调用回带函数计算方程组的解 4.计算后主函数调用输出函数输出方程组的解

3、设计中的主要困难及解决方案

在这部分论述设计中遇到的主要困难及解决方案。1)困难1 实现消元的函数处理

解决方案

通过依次进行的各行消元实现方程组的简化 2)困难2 方程无解的情况

解决方案

检查方程组第k到第n行方程中的第k列上的元素是否为0,如是则方程组无解或得不到唯一解

4、你所设计的程序最终完成的功能 1)说明你编制的程序能完成的功能

解决求解中小规模线性方程组(阶数不要太高,例如不超过1000)的问题 2)准备的测试数据及运行结果

测试数据1:方程有解的情况

第1页/共6 页

编号C13

测试数据2:方程无解的情况

三、程序清单

新的高斯消去法.cpp #include

第2页/共6 页

编号C13 #include const int s=100;void shuru(double a[s][s],double b[s],int n);//函数输入原型声明 void xiaoyuan(double a[s][s],double b[s],int n);//函数消元原型声明 void huidai(double a[s][s],double b[s],double x[s],int n);//函数回带原型声明 void shuchu(double x[s],int n,double a[s][s]);//函数输出原型声明 void main()//主函数的定义{ double a[s][s],b[s],x[s];// int n;cout<<“输入方程组的阶数:n”;cin>>n;shuru(a,b,n);// xiaoyuan(a,b,n);// huidai(a,b,x,n);// shuchu(x,n,a);//} void shuru(double a[s][s],double b[s],int n)//{ int i,j;cout<<“输入系数矩阵:n”;i=0;while(i

j=0;while(j

{

cin>>a[i][j];//

j++;}

变量数组的定义 调用函数输入 调用函数消元 调用函数回带 调用函数输出

函数输入的定义 输入矩阵到系数矩阵 第3页/共6 页

编号C13

} void xiaoyuan(double a[s][s],double b[s],int n)//函数消元的定义 {

int i,j,l;double p,q,max;for(l=0;l

max=fabs(a[l][l]);//调用绝对值函数,选出绝对值最大者 j=l;for(i=l;i

if(max

} for(i=l;i

}

第4页/共6 页 i++;}

cout<<“输入常数矩阵:n”;i=0;while(i

} cin>>b[i];//输入矩阵到常数矩阵 i++;max=fabs(a[i][l]);j=i;p=a[l][i];a[l][i]=a[j][i];a[j][i]=p;

编号C13

p=b[l];//交换常数行 b[l]=b[j];b[j]=p;for(i=l+1;i

} void huidai(double a[s][s],double b[s],double x[s],int n)//函数回带的定义 {

double p;int i,j;x[n-1]=b[n-1]/a[n-1][n-1];i=n-2;while(i>=0){

p=0;j=i+1;while(j

第5页/共6 页

}

{

} q=a[i][l]/a[l][l];for(j=l;j

b[i]-=q*b[l];//消元后的常数矩阵

编号C13 } void shuchu(double x[s],int n,double a[s][s])//函数输出的定义 {

int i;if(a[n-1][n-1]==0)//方程无解的情况 cout<<“方程无解!n”;} else { cout<<“方程组的解是:n”;i=0;

} while(i

} } cout<<“x”<

四、对该设计题目有何更完善的方案

1、对自己完成程序进行自我评价。

实现了用高斯消去法求低阶线性方程组的解,用四个函数实现了输入,消元,回带,输出,基本达到了题目要求。

2、对课题提出更完善的方案

高斯消去法程序过于繁杂,通过克拉默法则可以方便实现求线性方程组解的过程,程序比较简单。

五、收获及心得体会

1、通过本次课程设计,自己在哪些方面的能力有所提高。

对c++有了更深入的了解,可以通过编程解决一下简单的问题,综合运用了所学到的知识。

2、收获和心得体会。

对编程产生了浓厚的兴趣。

2011年X月X日

第6页/共6 页

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

一、实验目的

1)了解和使用VC++集成开发环境;

2)熟悉VC++环境的基本命令和功能键; 3)学习完整的C++程序开发过程; 4)理解简单的C++程序结构;

5)学习C++程序基本的输入输出操作。

二、实验内容及要求

1)控制台应用程序:在终端上输出“Hello”(printf); 2)Windows应用程序:在窗口上输出“Hello”(pDC->TextOut(50,50,“Hello”))。

三、实验重点

1)C、C++、VC++三者之间的关系; 2)项目与源文件的区别;

3)控制台应用程序与Windows应用程序的区别。

四、实验步骤

1)进入VC+;2)编写程序;3)调试程序;4)分析结果。

五、实验环境

Windows 2000、VC++ 6.0

六、思考题

在一个项目中可有几个main()函数?如何调试多个源程序?

七、实验报告要求

1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。

八、参考书籍 《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社

实验三 函数

一、实验目的

学习C++中内置函数、默认参数的定义与调用方法; 学习C++中函数重载的使用方法。

二、实验内容及要求

编写一个sum内联函数,能返回二个整数的和,其二个参数都为默认参数,然后由主函数进行调用;

编写二个add函数,分别可对int与char类型进行加法操作,其中针对char类型的加法操作可视为连接操作,如add(‘x’,’y’)的返回值为”xy”。

三、实验重点

函数的重载;

默认参数的定义次序。

四、实验步骤

1)进入VC+;2)编写程序;3)调试程序;4)分析结果。

五、实验环境

Windows 2000、VC++ 6.0

六、思考题

函数重载调用时的判断依据是什么?

七、实验报告要求

1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。

八、参考书籍

实验五 类与对象

一、实验目的

1)学习类与对象的定义和声明; 2)掌握类与对象的使用方法;

3)学习数据成员与成员函数的访问方式。

二、实验内容及要求

1)编程实现一个student类,管理一个学生的基本信息,包括学生姓名、学号、语文成绩、数学成绩、英语成绩、平均成绩等数据成员,然后在main函数中,从键盘输入得到一个学生的基本信息,最后输出所有数据成员值到屏幕上;

2)要求使用成员函数的方式实现对姓名、学号的读写操作、语数英三科成绩的写操作、平均成绩的读操作。

三、实验重点

1)类与实例的关系;

四、实验步骤

1)进入VC+;2)编写程序;3)调试程序;4)分析结果。

五、实验环境

Windows 2000、VC++ 6.0

六、思考题

为什么要采用成员函数对数据成员进行读写操作,而不是直接操作?

七、实验报告要求

1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。

八、参考书籍

《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社

实验七 对象数组与对象指针

一、实验目的

1)掌握数组与指针的定义与使用方法; 2)理解数组与指针的存储分配与表示; 3)学习向函数传递数组的方法;

4)学习用指针和引用向函数传递参数。

二、实验内容及要求

1)在实验五的student类基础上,实现一个Sum函数,可将一个student类数组作为参数传送到函数中,计算出语、数、英的总分,并输出在屏幕上;

2)要求Sum函数中的参数传送分别用普通、指针和引用三种方式实现。

三、实验重点

1)直接传送、引用传送、指针传送三种方式的区别,分别对参数值的影响;

四、实验步骤

1)进入VC+;2)编写程序;3)调试程序;4)分析结果。

五、实验环境

Windows 2000、VC++ 6.0

六、思考题

对象数组和对象指针与普通对象和普通指针的关系。

七、实验报告要求

1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。

八、参考书籍 《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社

《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社

实验九 派生类与继承

一、实验目的

1)学习类的的继承,能够定义和使用类的继承关系; 2)学习派生类的声明与定义方法; 3)熟悉公有派生和私有派生的访问特性。

二、实验内容及要求

在实验五的student类基础上,定义小学生、中学生、大学生三个继承类; 小学生类增加“年级”数据成员及读写函数,实现全部信息的屏幕输出; 中学生类增加“文理科”数据成员及读写函数,实现全部信息的屏幕输出; 大学生类增加“专业”数据成员及读写函数,实现全部信息的屏幕输出。

三、实验重点

Private和public派生方式对基类数据成员的可见性。

四、实验步骤

1)进入VC+;2)编写程序;3)调试程序;4)分析结果。

五、实验环境

Windows 2000、VC++ 6.0

六、思考题

为什么要派生类?类继承的好处是什么? 派生类的构造/析构函数执行次序。

七、实验报告要求

1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。

八、参考书籍

实验十一 函数和运算符重载

一、实验目的

1)掌握运算符重载的基本方法。

二、实验内容及要求

在实验五student类的基础上重载“= =”运算符,判断二个student对象是否相等; 在实验五student类的基础上重载“>”运算符,判断二个student对象的成绩关系。

三、实验重点

1)运算符重载的语法规则。

四、实验步骤

2)进入VC+;2)编写程序;3)调试程序;4)分析结果。

五、实验环境

Windows 2000、VC++ 6.0

六、思考题

函数与运算符的关系。

七、实验报告要求

1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。

八、参考书籍

《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社

实验十三 函数模板

一、实验目的

1)理解模板的作用;

2)学习函数模板及其声明和生成方法; 3)学习函数模板的异常情形处理方法。

二、实验内容及要求

1)定义函数模板实现对int型数组和double型数组的累加。

三、实验重点

1)函数模板的语法规则。

四、实验步骤

1)进入VC+;2)编写程序;3)调试程序;4)分析结果。

五、实验环境

Windows 2000、VC++ 6.0

六、思考题

函数模板的应用场景是什么?

七、实验报告要求

1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。

八、参考书籍

《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社

实验十五 自定义类型I/O

一、实验目的

1)熟悉流及流类库的作用;

2)掌握流类库中常用的类及其成员函数的使用方法。

二、实验内容及要求

1)在实验五student类的基础上,重载“>>”和“<<”运算符。

三、实验重点

1)自定义类型的I/O运算符重载。

四、实验步骤

1)进入VC+;2)编写程序;3)调试程序;4)分析结果。

五、实验环境

Windows 2000、VC++ 6.0

六、思考题

在自定义类型上重载“>>”和“<<”运算符的用途。

七、实验报告要求

1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。

C++程序设计浅析 第3篇

在计算机课程中, "C++程序设计是计算机专业的一门必修基础课, 该语言以其高效而又实用的特性:既可以进行过程化程序设计, 又可进行面向对象的程序设计, 因此逐步成为各高校程序设计课程中的主流。C++语言既是进行软件开发的直接工具, 又是"数据结构"、"操作系统"、"编译原理"、"软件工程"以及其它相关课程的先修课程, 因此, 在整个教学体系中占据十分重要的地位。

中原工学院计算机科学与技术专业从2007版培养方案开始, 将2006版培养方案中"高级语言程序设计C++"课程分解成"高级语言程序设计C++ (上) "、"高级语言程序设计C++ (下) ", 两门课程, 分别在大学一年级的第一、二学期开设, 第一学期主要教授过程化程序设计, 第二学期主要教授面向对象程序设计, 以Visual C++6.0为实验教学平台。

笔者根据自身教学经验和讲授过程中出现的问题, 在此进行分析和探讨, 以期能进一步提高本课程的教学效果和教学质量。

2 存在的主要问题

(1) 程序设计类课程一般以程序设计语言自身的体系为教学路线, 侧重于编程语言的基本概念、基本语句和语法的详细讲解, 而没有把逻辑与实际编程解题思路作为教学的主线。达不到培养学生分析问题和解决问题的实际能力的目的。学生面对的是一大堆语言符号, 需要记忆的内容过多。在教学过程中学生们感觉学习相应的知识点 (语法) 并不困难, 听老师讲解例题时也容易明白。但真正让学生去解决实际问题, 有相当一部分学生感到无从下手, 觉得问题太难。学生对于课本上的例子容易理解, 但不会举一反三。

(2) 实践性教学薄弱。只有在上机实践中学生才能真正学会如何编写程序和调试程序, 才能更好地掌握程序设计的理论知识。可在C++语言实践教学中, 由于课时有限、教学条件有限等没有把编程思路和程序调试放在首位, 对学生分析问题和解决问题的能力训练不够;上机内容基本上都是立足于C++语言本身的一些语法规则, 和实际开发应用脱节, 无法激起学生的兴趣。

(3) 学生学习差距较大

由于学生水平不一, 并且部分学生学习自觉性较差, 学生学习的效果相差十分明显, 学生的编程能力逐渐下降, 学生不原意写C++/M F C程序, 而是写C#/JSP等网站程序设计。如果开展有效的教学研究, 使大多数学生都能学懂C++程序设计的基本概念、掌握常用的语法及算法、能用C++编写通用程序, 是值得研究的问题。

3 教学与实践改革的具体措施

3.1 以"深入浅出, 边学边用"作为指导思想组织教学内容

对于枯燥的语言叙述, 改用生动的比喻进行引导。比如, 学生学习指针概念时, 对"间接存取"难以理解, 就借用比喻:将A房间的钥匙放在B房间里, 若要取A房间里的物品, 就需要先打开B房间, 取出A钥匙, 再打开A房间, 取出A房间的物品, 这就是"间接存取"。学生很快就能理解, 也加深了指针的概念。再比如, 将给数组分配存储单元比喻成住旅馆分配连续的房间, 学链表时比喻成分配不连续的房间, 使学生由抽象变具体, 达到深入浅出, 容易接受的目的。变更教学形式, 结合实际生活, 组织教学内容以"提出问题--分析解决问题的方法--归纳出概念或一般规律"为线索, 侧重学以致用。每堂课都安排简单实用的程序学习并编制, 让学生全部可以接受, 每堂课都有一点成就感, 打消往届学生带给他们学习C++语言的畏难情绪。比如学生学习了输入输出函数的使用, 就提出"简单的超市算账问题", 仅仅使用顺序结构程序设计方法就能解决;将问题加深一点, 购物达到一定的金额商品会打折, 金额不同折扣率不同, 引入选择结构的程序设计方法, 利用类似的方法逐步深入, 培养学生分析解决问题的方法, 边学边用, 展示C++语言的用武之地, 激发学生学习的兴趣。

3.2 加强实践教学环节

C++语言课程是一门实践性很强的课程, 一定要动手多写设计、编写程序才能有所进步。在实践教学中必须做到循序渐进, 对所学的每一部分内容都应该要求学生完成一定数量的实验内容。每部分的上机习题必须精心挑选, 既要有基本的、较简单的题目, 又要有一些具有挑战性的新颖有趣的题目。学生自己编写的程序一定要到机器上去实现, 通过调试程序来修订语法错误, 排除逻辑错误, 进而提高编程能力, 通过做一定量的习题, 可以积累一定的经验, 同时对程序设计的精髓会有所领悟, 从而重视上机实验。

强调学以致用, 展示学生能够理解而且又容易提起兴趣的用C++语言设计的软件以及往届学生的设计成果, 给学生布置了几个专题, 比如:设计班级成绩管理系统、简易的图书管理系统、简易的通讯录管理系统、小游戏等让学生利用课余时间去思考、收集资料, 以教师为主导, 以任务为主线, 以学生为主体, 过一段时间在课堂上组织学生发言和讨论一次, 看看大家对这些问题的思考程度, 提提建议, 鼓励加引导, 最后到完成。这种教学法不仅可以让学生获得许多课外知识, 同时也促进教学内容的改革, 而且也有利于充分挖掘学生的学习潜力。

通过一个阶段C++语言的学习, 选拔出一批优秀的同学, 单独培养, 结合所学专业, 加宽加快加深学习内容, 使他们尽早切人实际应用, 有条件的进入相关的开放实验室, 参与计算机应用的小课题研究或参与大学生创新设计大赛等, 培养学生中的学术带头人[2]。以榜样的力量促进良好的学风建设, 形成良好的学习氛围, 促进整体的学习进步。在C语言教学中, 培养学生的自学能力尤为重要, 如果学生的学习完全依赖教师才能掌握, 而没有一定的自学能力, 其所学的知识很快就会被淘汰。对于多数学生, 则把精力放在最基本、最常用的内容上, 让他们学好基本功, 掌握程序设计的方法, 为后续课程的学习打下基础。

3.3 开展4年不间断的C++编程训练

仅靠一个学期的c++语言的学习是远远不够得, 需要在后续课程中进行巩固提高。C++兼容C语言, C语言是C++的子集, 我们把C语言和C++融合为一门课程, 第一学期授课以C语言为主, 第二学期讲授以C++为主, 所有程序都以VC++为调式环境。经过这样的整合, 知识内容显得很连贯, 一气呵成, 为第三学期的Windows程序设计课程奠定了基础。该课程利用MFC类库进行Windows应用程序开发。后继的数据结构、算法分析与设计、计算机网络原理、操作系统、编译原理等课程实践环节都利用C++语言进行开发, 开展4年不间断的C++编程训练。

3.4 改革课程的考核方法

对学生学习情况的考核不应以停留"期末试卷"为中心的传统考试观念, 应该进行改进, 以此提高学生对知识的运用能力、自学能力、分析和解决问题的能力。

(1) 加大平时成绩的考核。平时考核的方法有:课堂提问、作业与练习、阶段性测试、包括学生提出有价值的问题都给予记分。平时考核成绩占总成绩的比例为20%。加大平时成绩的考核, 有利于全面测评学生能力。这样可以激励学生学习的积极性和主动性, 并将这种积极与主动精神贯穿于课程学习的始终。

(2) 加大上机考核。对C语言的掌握情况主要看上机的调试, 要对上机过程和结果给学生进行考核, 既要看结果, 也要看过程。应鼓励学生在程序的设计上精简优化。上机考核成绩占总成绩的比例为20%。

3.5 应用现代化教学手段提高教学效率和效果

形式多样的教学手段课堂教学要应用现代化教育技术, 使用多媒体进行课堂教学, 给学生营造一个良好的程序设计环境。与传统教学方式相比, 多媒体教学具有形象生动、图文并茂、交互性好、信息量大、减少文字书写等显著特点, 对课程中难以理解的抽象内容, 可以给予直观展示和动态模拟, 达到既能辅助教师形象地讲授课程中的难点和重点的目的, 又能激发学生学习的兴趣, 从而提高教学效率和教学效果。并且, 把讲授法、练习法、实验法、演示法和网络技术结合起来, 将课程中抽象的、难以理解的教学内容, 进行形象化, 这样就更利于学生理解与记忆。

4 结语

本文针对笔者在连续几年"高级语言程序设计C++"教学过程中出现的问题, 进行了思考和探索, 并将所提出的方案在教学活动中实施, 较好地激发了学生的兴趣, 调动了学生的学习积极性, 培养学生的自学能力, 提高学生的编程思想和解决实际问题的能力, 取得了很好的教学效果。

参考文献

[1]张庆岚.提高《C程序设计》课程教学质量的探讨[J].福建电脑, 2009年第1期.

[2]施敏华, 等.计算机专业实验教学体系探索[J].计算机教育, 2007 (10) .

C++程序设计课程教学探讨 第4篇

关键词:C++程序设计教学方法教学内容教学手段

目前面向对象程序设计和分析方法是当前软件开发应用最广的方法,C++程序设计作为面向对象程序设计的具体的实现语言,其重要性可想而知。在目前计算机专业的高校毕业生在求职过程中,很多单位以C++作为一道初步的考核门槛。因此,C++程序设计的教学直接关系着高校计算机专业学生以后的就业竞争力,提高C++程序设计的教学效果对提高学生的就业能力作用可谓非常大。本文从教学方法、教学内容和教学手段这三方面有针对性的提出了改进思路。

1.教学方法的选取要和课程特点相结合

目前,高校计算机专业C++程序设计这门课程的开设方法主要有两种,第一种是先开设一个学期的C语言程序设计,再在下一学期开设C++面向对象的程序设计;第二种方法是直接开设C++程序设计这门课。 两种方法各有优缺点,第一种方法采取循序渐进的方法,学生在学习C++时相对比较轻松,因为C++中毕竟要用到C语言中的基本语法,而他们事先已经学过C语言程序设计。但缺点是C++程序设计和C语言程序设计主张的思想不同,C语言用的结构化的程序设计思想,而C++采用的是面向对象的程序设计思想[1],这样会导致学生以以前学习C语言的方法来学习C++程序设计;第二种方法可以让学生一开始就接受面向对象的程序设计思想,但缺点是学生入门比较难。

梧州学院计算机专业C++程序设计这门课程是排在大二的第一学期,也就是在刚学完C语言程序设计之后,这样有一个优点是可以使学生尽快的利用已学习的C语言基础来学习C++,因为C++程序设计中必须用到相关的C语言的基本语法知识,但缺点是会导致学生以以前学习C语言的方法来学习C++程序设计,因此,必须要让学生的思维从C语言学习中过渡到C++学习中来。荐于这样,在教学过程中可以采用这种方法:首先在正式讲解C++中的类之前,要求学生先利用以前学习过的C语言来编写一个较为复杂的程序,然后在在以后讲解C++的内容时,就以这个较为复杂的程序为例,以面向对象的思想对比以前用C语言编写的程序,从而可以使学生深入理解面向对象的程序设计方法比结构化程序设计方法的优越性,这样更能让学生理解到面向对象的程序设计思想的优点。

2.教学内容的组织要合理

C++程序设计课程要求学生掌握的是面向对象的程序设计思想和方法[2],对算法没有很高的要求,因此教学内容的组织也和其它程序设计语言有所区别。下面分课堂教学[3]和实验课教学两方面来研究一下。

2.1课堂教学方面

首先,要告诉学生C++程序设计这门课程学习的目标和要求。本课程主要要是讲解面向对象程序设计的三种特性,即封装性、继承性和多态性,要求学生在理解这三种特性的基础上能对其进行灵活运用,并且最终能运用面向对象的程序设计的思想和方法来分析问题和解决问题。因此在教学过程中,首先是要告诉学生这门课程学习的目标和要求是对面向对象程序设计的思想,而对算法没有什么要求。这一点针对梧州学院计算机专业的学生很重要,因为根据以前的教学经验了解到,梧州学院的在校生大多来自广西区,很多学生在高中时根本没有接触过计算机,逻辑分析能力比较差,因此很多学生对所学的第一门程序设计语言——C语言都还不是很熟悉,对C语言存在着心理阴影,因此首先从告诉他们学习C++程序设计对具体的逻辑分析要求不高,以解除学生的压力,只有这样才能在以后的教学过程中逐步激发学生的学习积极性。

另一方面,在C++程序设计课程教学过程中举例要有代表性和针对性。正是因为C++程序设计对具体的算法要求不高,因此对相关内容的讲解不可能用到那些短小而有趣的例程来讲解,这就给激发学生的兴趣带来了不利影响。实际上,几乎所有的C++程序设计的教材在讲解相关知识点时都是举一些简单而又很枯燥的例子,比如在讲封装性时,很多教材就直接以桌子、椅子等对象来说明怎样达到封装的效果,但根本体现不了封装带来的好处。针对这一特点,我总结的方法是首先在正式讲解C++程序设计前,让学生运用C语言编写一个较为复杂的程序,比如前面讲到的“学生成绩管理系统”,然后在讲解后面的封装时告诉学生哪些应该封装成一个类,应该怎样封装,封装之后有什么好处,再和以前的程序进行比较就可以让学生很直接就体会到面向对象的程序设计方法的优点。

2.2实验教学方面

C++程序设计作为一门程序设计语言,上机实验是必不可少的,而且是很重要的一个教学环节。实验课的目的是让学生把课堂上学习的C++程序设计方法具体的运用到实际的程序中,以加强学生对面向对象程序设计思想和方法的进一步的体会[4]。

首先,在C++程序设计实验课教学中,要改变传统的TC集成环境,而要用更加实用和方便的Visual C++开发环境。和C语言程序设计不同,C++程序设计不仅是要学习基本的语法,更重要的是学习面向对象的程序设计的思想和方法,比C语言程序设计有着更高的实用性,并且Visual C++开发环境对C++语法有着更好的支持,对多文件结构的程序更加容易组织,可以直接在窗口界面下直接操作,调式功能比TC集成环境操作更加简单,而功能更加强大;另外,Visual C++作为一个优秀的开发环境,学生越早接触越能够激起学生的编程兴趣,对学生以后掌握Visual C++开发环境有很大好处。

其次,在实验内容方面体现多层次、阶段性的特点。针对梧州学院计算机专业的学生,其中有一部分相对基础比较差,有一部分相对比较好,因此要做到因材施教,在实验内容方面就要有一个层次要求。实验内容分成基本部分和提高部分,基础比较差的只要完成基本部分,基础相对好的可以让他们完成提高部分;阶段性主要是和C++程序设计这门课程特点相关的,可以在实验课时要求学生完成一个比较复杂的程序作为课程设计,在学习到相关知识点时就完成相关的设计,到学期期末时,所有知识点学完了就正好可以完成整个设计,这样的好处是可以使学生在学习中直接运用所学到的方法开发具体的程序,使学生更快更牢的掌握对面向对象的程序设计方法。

3.教学手段采用多媒体技术和传统的黑板板书相结合的方式

在教学手段方面,主要采用多媒体技术和传统的黑板板书施教。现代教学手段充分利用计算机网络和多媒体技术,突出信息的形象性及感染力,使计算机具有综合处理文字、声音、图形、图像和视频信息的能力。多媒体教学使能把教学内容直观地显示出来,提高学生的注意力和学习兴趣,同时能加大课堂教学的信息量。另一方面,使用多媒体教学课件时,可以教师可以提前把教学资源按照自己熟悉的思路整理好,使教学内容规范有序。但使用多媒体教学由于没有板书的过程,学生在听课时可能没有太多的时间去思考,在上课过程中教师和学生的互动性也不好;而传统的黑板加粉笔法正好相反,其优点是注重抽象说理,学生可以感受到教师的思维过程,缺点是以“听”或“视”的单一通道方式传送信息,信息量少,进度较慢。因此C++程序设计这门课程建议采用多媒体技术和传统的黑板板书相结合的方式。目前,梧州学院教学综合楼大多数教室都配备了多媒体设备,在硬件上已经具备了多媒体教学的条件,另外,C++程序设计这门课程在教学过程中有很多内容需要即时演示给学生,主要采取多媒体教学为主,传统教学为辅的方式。

4.结束语

每门课程都有自身的特点,根据课程自身特点和各学校学生特点而采取相应的教学方法和手段,以及对课程教学内容的组织,是提高课程教学效果的一个较好的方法。

参考文献:

[1] 刘玉英.《C++语言程序设计》教学中的几个关键问题[J].浙江万里学院学报.2004,17(2):169

[2] 谭浩强.C++面向对象程序设计[M].北京:清华大学出版社,2006

[3] 陈鸣,胡谷雨,周雷,等.计算机网络课程教学的思考与创新[J].高等教育研究学报,2008(2):66

[4] 李文军. 计算机专业实验教学改革的实践与探讨[J]. 实验室研究与探索,2007( 12) :45-47

C++程序设计总结 第5篇

近五十年间,软件技术经历了多个阶段的发展演变  目前为止最流行的技术还是面向过程编程(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++程序设计教案 第6篇

试题纸

面向对象的程序设计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++计算器实践报告 第7篇

本科生课程设计(实践)任务书、设计报告

(C++程序设计)

题目

学生姓名 指导教师

学院

专业班级 学生学号 科学计算器应用程序严晖 材料科学与工程学院 1206

c++程序实习报告 第8篇

第二天上机的时候也很快完成了第一步,觉得还行,慢慢来五天完全可以完成。后来也就没怎么好好思考,没想到第二天遇到麻烦了,编不出第二步了。第三天下午也没调试好,第一步输入的数据在第二步统计的时候怎么也数不出来,我从头至尾研究了多次,没发现一点问题,请舍友帮我检查也说没错,到了傍晚还是看不出来。哎!又找一个人给我看了看,竟然错得那么幼稚,类外定义了全局对象,在数据输入put()函数里又重新定义了对象,这样在put()输入的数据无法用到其他函数中,自然统计的时候都是默认值了。

就这么一个小小的错误整得我一天一晚上寝食难安。

编程序时深深感受到要不得半点马虎,有时少一个“}”或“<”都会导致程序语法错误;由于编程序经常要变换输入法,很容易输进中文字符,这也会导致语法错误;调用类里重名函数时要注明属于哪个类的。

第三天的时候第二步基本都编出来了,傍晚那时我没检查出错误来的时候,实在是把我急坏了,借了台电脑,在那安静专心的研究程序,舍友帮我检查出错误来之后,编程序有了感觉,那时已经22:00多了,竟然没有一丝睡意。

后来舍友们陆续睡觉了,可我就是不愿睡。可能是出于自尊心需要,别人都编出来了,自己编不出来,让我无法接受;也可能是第二步出来了急于尽快搞定。从19:00到凌晨4:00一直在那儿编程序了,一次次地听到铃声响竟然没有上床睡觉的冲动,满脑袋只有一个想法:认真编程序,争取晚上搞定。后来差不多了,只有备份不怎么完善,当时电脑已经用了好长时间了,实在不忍心一直用人家的电脑,只好关机睡觉了。

这几天可以说是两耳不闻窗外事,一心只顾编程序了,电话都懒得打,只想尽快把程序搞定,晚上没有电脑用,我们三个女生就去网吧,只是那儿没有vusual-c++,只好作罢。

虽然我们一直在编程序,觉得挺累的,其实还有比我们更累的——我们的老师。我们是每天只有半天的实习时间,可是老师却整天在机房里,看得出来,老师连坐下休息的时间都没有,刚要喝点水,立马就被一个同学叫去了,实习完那天下午看见老师都不想走路了。太累了,一天站7小时,还一直给别人检查程序,太忙了。想想老师这么认真,我们还有什么理由不认真呢?

只有五天的实习,却让我受益匪浅:这不仅是一次对我们的c++掌握和运用的熟练程度的检查,更是一次磨练我们耐性、培养认真态度的机会。这次实习让我深刻体会到“细节决定成败,态度决定一切”;更让我 从 老师身上学到了很多在以后工作中需要的优秀品质。相信这会在我今后的学习和以后的工作很有帮助。

通过完成本次面向对象程序设计的任务,使我熟练和掌握了上学期所学的有关visual c++中的一些主要知识点和应用点,如类的定义,类的实现,对象的定义,类的继承等等。可以所学有所学,所有所用,不至于自己所学知识由于没有经历可用过程,而放弃对它的兴趣。

第一天上课时候听老师讲,第一反应是这可怎么做了。当时有些迷茫。但是事在人为,下午回去之后在宿舍苦心研究,终于在整体上有了一定的把握。我们可以先定义一个基类,再派生三个子类,然后在类外定义函数。有人数规定,我们就定义相应长度的对象数组,最后在实现程序功能时,用函数调用就行。

于是当晚很快就完成了第二天的预习报告,上机调试时也没什么大问题,就这样第二天顺利通过。

虽说接下来的统计没那么容易,但就顺着数据顺利输入的喜悦心情,我还是较好的完成了这个任务。在类外定义一个函数用来输出雇员的基本情况,表头,表尾直接在统计函数中输出,也就是在统计函数中调用函数。打印与统计有异曲同工之妙,所以在统计做出之后,打印自然而然的也就很快完成了。

接下来的数据备份中,遇到了一个小问题,一开始以为也是函数中调用打印函数中用的那函数。其实不然,如若那样,又变成了打印。那我们就直接输出,但详细资料是受保护的,不能直接输出,那还得调用函数。于是在每个类中的公共成员中定义了直接返回的函数,接下来顺利完成了备份。调用头文件

里的exit(int)函数,可以用if()语句进行判断是否确定退出。程序顺利完成。

面向对象程序设计作为一门软件设计的课程,具有极强的实践性,使我加强了灵活应用理论知识的能力及面向对象程序设计技能。

此次,应用程序的设计和创建,经历了平时在课堂中和考试中,决不会有的重重难题和问题。而这些问题,又都是课本上很少提到的、更深一层的知识领域和应用领域。这些问题,并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们面对难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断能力。

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

为了减少函数调用的开销,引入了内联函数机制。编译器处理对内联函数的调用语句时,是将整个函数的代码插入到调用语句处,而不会产生调用函数的语句。

重载函数:一个或多个函数,名字相同,然而参数个数或参数类型不相同,这叫做函数的重载。编译器根据调用语句的中的实参的个数和类型判断应该调用哪个函数。

(1) int Max(double f1,double f2) { }(2) int Max(int n1,int n2) { }(3) int Max(int n1,int n2,int n3) { }Max(3.4,2.5); //调用 (1)Max(2,4); //调用 (2)Max(1,2,3); //调用 (3)Max(3,2.4); //error,二义性,既可以类型转换后调用(1),也可以类型转换后调用(2)

1.8 函数缺省参数

C++中,定义函数的时候可以让最右边的连续若干个参数有缺省值,那么调用函数的时候,若相应位置不写参数,参数就是缺省值,

函数参数可缺省的目的在于提高程序的可扩充性。即如果某个写好的函数要添加新的参数,而原先那些调用该函数的语句,未必需要使用新增的参数,那么为了避免对原先那些函数调用语句的修改,就可以使用缺省参数。

2.1 面向对象程序设计方法

面向对象的程序设计方法

面向对象的四个基本概念:抽象、封装、继承、多态

抽象:将一类客观事物的共同属性归纳出来,形成一个数据结构。将这类事物所能进行的一些行为和操作归纳起来形成函数,这些函数可以来操作具体的数据结构。

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

一、课程设计任务

1.学生成绩管理系统

2.图书管理系统

3.通讯录管理系统

4.自选

对于管理系统要求程序必备如下功能:(1)所有记录保存在一个数据文件中;(2)具备记录添加功能;(3)查询功能(如按学号查询成绩);(4)计算统计功能(如统计某门课程的平均程序);(5)排序功能(如按成绩排序);(6)修改功能。

二、要求

1.分组设计,1-3人一组(自由组合),明确分工。(1)小组负责人一般进行总体设计(包

括总体设计流程图、模块函数原型接口设计);(2)模块的程序设计由组长、成员分别完成,并独立调试自己的程序;(3)组长至少完成2个功能模块的设计,成员至少完成3个功能模块的设计;(4)模块组装调试共同完成;

2.在网上、图书馆等查找相关资料,搜集、整理相关模块的程序源代码;

3.一个小组完成完成一份课程设计报告。内容包括:

(1)封面扉页(见模板文件)

(2)设计任务书

(3)成绩评定表(见模版文件)

(4)目录

(5)总体设计方案(包括流程图)

(6)使用说明及运行实例(包括界面)

(7)成员设计内容简介

(8)项目源程序代码(注意注释的使用)

(9)课程设计心得

4.专用教室:新教学楼A-112(机械1101-1104),A114(机械1105-1109)

A-111(机械1110-1114),A-115(机械115-117),A-113(工程实验班)。专用教室作为学生看书、编程、交流、写报告的地方。

5.报告格式:一级标题:三号黑体,二、三级标题小四黑体,正文小四宋体,行距23,程

序代码5号宋体,统一用胶装订(封面由装订点提供)

6.进程安排

1.课程设计时间:第18周~19周2.辅导答疑:机电工程院A-620(夏建芳),D-315(樊广军)

3.上机安排:上机见进度安排表。

4.提交报告与答辩:第19周星期四~星期五

地点机电工程院D-317(夏建芳),D-315(樊广军)

三、考核

(1.)据课程设计报告的内容、工作量、难度、合理性;

(2)程序演示情况

(3)汇报、回答问题情况

综合上述三方面进行考核,评定成绩。

2012年6月1日

C++课程设计实验报告(范文) 第11篇

设计题目:

院: 专业班级: 学生姓名: 学生学号: 指导教师:

计算机技术与科学

3班 樊冠男 40912140 马军亮

提交时间:

2011/1/12 成绩:

目录

C++课程设计报告

第一章 引言

C++课程设计报告

第二章 概要设计

C++课程设计报告

第三章 软件实现

C++课程设计报告

Win32窗口程序(C++) 第12篇

// Win32对话框.cpp : Defines the entry point for the application.

//

#include “stdafx.h”

//定义窗口消息响应函数

LRESULT CALLBACK WndProc(HWND hwnd,

UINT uMsg,

WPARAM wParam,

LPARAM lParam)

{

HDC hdc;

RECT rect;

PAINTSTRUCT ps; //接收BeginPaint返回的客户区绘图信息

switch(uMsg)//接收GetClientRect返回的客户区坐标

{

case WM_PAINT:

{

//指针参数一般代表接收函数的返回值,即_out

hdc = BeginPaint(hwnd, &ps);

GetClientRect(hwnd, &rect);

DrawText(hdc, “hi.baidu.com/darks00n”, -1, &rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER);

EndPaint(hwnd, &ps);

break;

}

case WM_DESTROY: //窗口被关闭后终止对应线程

{

PostQuitMessage(0);

}

default:

break;

}

return DefWindowProc(hwnd, uMsg, wParam, lParam); //未处理的消息发给默认消息处理函数

}

int APIENTRY WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

//第一步.填充WNDCLASS结构体

WNDCLASS wndclass;

wndclass.style. = CS_HREDRAW|CS_VREDRAW;

wndclass.lpfnWndProc = WndProc;

wndclass.cbClsExtra = 0;

wndclass.cbWndExtra = 0;

wndclass.hInstance = hInstance;

wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);

wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);

wndclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);

wndclass.lpszMenuName = NULL;

wndclass.lpszClassName = “WND”;

//第二步.注册窗口类

RegisterClass(&wndclass);

//第三步.创建窗口

HWND hwnd = CreateWindow(“WND”, “Win32对话框”, WS_OVERLAPPEDWINDOW , CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

//第四步.指定显示窗口状态

ShowWindow(hwnd, nCmdShow);

//第五步.显示窗口(发送WM_PAINT消息)

UpdateWindow(hwnd);

//第六步.消息循环(不断从窗口线程消息队列中获取并处理消息)

MSG msg;

//返回值0代表WM_QUIT退出程序,-1代表获取消息失败

C++复习题 程序填空 第13篇

程序填空(10分)

1.使执行结果为100 #include class Test {

public:

Test(int aa){(○1)}

int Getx(){

(○2)

} private:int x;};

void main(){

Test xx(100);

cout<

答案:○1 X=aa ○return X 2.下面程序是应用C++多态性,计算矩形面积。在横线上填写适当语句使程序正确进行并得到给定程序结果.运行结果: 长:10 宽:20 矩形面积:200 半径:3 圆面积:28.26 # include classShape {public:

virtualvoidshow_area()=0;};class Rectangle :public Shape{ pulic:

Rectangle(double ll,double ww){L=ll;W=ww;}

voidshow_area()(○3)

private: float L,W;};

class Circle:public Shape{ Public:

Circle(double rr){○}

void show_area()

cout<<”半径:”<

积:”<<3.14*R*R<

doubleR;};voidmain(){Shape *p;Rectangle

○;CircleC(3);

P&r;

p->show_area();P=&c;

p->show_area();} }

答案:

上一篇:再担保协议书下一篇:亭子口水利枢纽工程建设征地移民安置实施办法