C++面向对象程序设计5
- 格式:doc
- 大小:102.00 KB
- 文档页数:12
学习中心/函授站姓名学号西安电子科技大学网络与继续教育学院2022 学年下学期《面向对象程序设计(C++)》期末考试试题(综合大作业)考试说明:1、大作业试题公布时间:(1)毕业班:2022 年10 月21 日;(2)正常班:2022 年11 月18 日;2、考试必须独立完成,如发现抄袭、雷同均按零分计;3、答案须用《西安电子科技大学网络与继续教育学院2022 秋期末考试答题纸》(个人专属答题纸)手写完成,要求字迹工整、卷面干净、整齐;4、在线上传时间:(1)毕业班学生于2022 年10 月21 日至2022 年11 月1 日在线上传大作业答卷;(2)正常班学生于2022 年11 月18 日至2022 年12 月5 日在线上传大作业答卷;5、拍照要求完整、清晰,一张图片对应一张个人专属答题纸(A4 纸),正确上传。
一、简答题(10 分)1、运算符 new 和 delete 的功能分别是什么?(3 分)答案:运算符new的功能是创建动态对象;delete的功能是释放由new创建的动态对象。
2、若派生类以 private 方式从一个基类派生,派生类的对象可以访问基类中的哪些成员?派生类的成员函数可以访问基类中的哪些成员?(3 分)答案:若派生类以private方式从一个基类派生,派生类的对象不能访问基类中的任何成员(1分);派生类的成员函数可以访问基类中的public和protected成员(2分)。
3、构造函数的作用是什么?在创建派生类的对象时,应按照怎样的顺序调用构造函数?(4 分)答案:构造函数的作用是创建对象并对其进行必要的初始化。
(1分)构造函数调用顺序:基类构造函数、子对象类构造函数(如果有)、派生类构造函数。
(2分)二、填空题(每空 2 分,共 20 分)1、函数的返回值是通过函数体中的return语句带回的;若被调用函数被定义为 void 类型,则被调用函数不带回任何值。
2、表示逻辑关系“ a 大于等于8 或者 a 小于等于5”的C++表达式是。
《面向对象程序设计》第02章在线测剩余时间:59:56试答题须知:1、本卷满分20分.2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)1、在关键字public后面定义的成员为类的()成员。
A、私有B、公用C、保护D、任何2、当一个类对象结束它的生存期的时侯,系统自动调用该类的( )。
A、无参构造函数B、带参构造函数C、拷贝构造函数D、析构函数3、类的构造函数被自动调用执行的情况是在定义该类的 ( )A、成员函数时B、数据成员时C、对象时D、友元函数时4、假定AB为一个类,则执行“AB *p=new AB(1,2);”语句时共调用该类构造函数的次数为( )。
A、0B、1C、2D、35、假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete []px;"语句时共调用该类析构函数的次数为( )。
A、0B、1C、nD、n+1第二题、多项选择题(每题2分,5道题共10分)1、下面有关类说法正确的是(A,B,D )A、一个类可以有多个构造函数B、一个类只有一个析构函数C、析构函数需要指定参数D、在一个类中可以说明具有类类型的数据成员2、关于封装,下列说法中正确的是()。
A、通过封装,对象的全部属性和操作结合在一起,形成一个整体B、通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)C、通过封装,每个对象都成为相对独立的实体D、通过封装,对象的属性都是不可见的3、定义析构函数时,错误的说法是()。
A、其名与类名完全相同B、返回类型是 void 类型C、无形参,也不可重载D、函数体中必须有 delete 语句4、假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的语句错误的是()。
最新国家开放大学电大本科《面向对象程序设计》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。
该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。
做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。
本文库还有其他网核及教学考一体化答案,敬请查看。
《面向对象程序设计》题库及答案一一、单项选择题(每小题2分,共20分)1.设x和y均为bool量,则x||y为假的条件是( )。
A.它们均为真 B.其中一个为真C.它们均为假 D.其中一个为假2.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}}”,则元素a[1][2]的值为( )。
A.2 B.4 C.6 D.83.假定P是具有int* *类型的指针变量,则给P赋值的正确语句为( )。
A.p=new int B.p=new int*C.p=new int** D.p=new int[10]4.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( )。
A.可维护性 B.可复用性C.兼容性 D.正确性5.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。
‘A.in B.inlineC.inLine D.InLiner .6.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾的后一个位置为( )。
A.1ength+1 B first+lengthC.(first+1ength—1)%MS D.(first+length)%MS7.假定一个类的构造函数为“A(int aa,int bb){a=aa;b=aa*bb;)”,则执行“A x(4,5);”语句后,X.a和x.b的值分别为( )。
c面向对象程序课程设计一、教学目标本节课的教学目标是让同学们掌握C面向对象程序的基本概念和语法,包括类、对象、继承、多态等核心概念。
通过学习,同学们能够熟练使用C++编写简单的面向对象程序,培养编程思维和解决问题的能力。
同时,在学习过程中,培养同学们的团队合作意识和自主学习能力。
二、教学内容本节课的教学内容主要包括以下几个部分:1.面向对象程序概述:介绍面向对象程序的基本概念,如类、对象、封装、继承、多态等。
2.类和对象:讲解如何定义一个类,如何创建和使用对象,以及构造函数和析构函数的概念。
3.继承:介绍继承的概念和实现方式,以及继承的好处和注意事项。
4.多态:讲解多态的概念、实现方式以及多态的好处。
5.面向对象程序设计实例:通过实例讲解如何运用面向对象程序设计的方法解决实际问题。
三、教学方法为了更好地实现教学目标,本节课采用以下几种教学方法:1.讲授法:讲解面向对象程序的基本概念、语法和实例。
2.讨论法:同学们进行小组讨论,分享学习心得和解决问题的方法。
3.案例分析法:分析实际编程案例,让同学们更好地理解面向对象程序设计的方法。
4.实验法:安排课后的编程实践,让同学们动手编写面向对象的程序,巩固所学知识。
四、教学资源为了支持本节课的教学内容和教学方法的实施,准备以下教学资源:1.教材:《C++面向对象程序设计》等相关教材。
2.参考书:提供一些关于C++面向对象程序设计的参考书籍,供同学们课后自主学习。
3.多媒体资料:制作精美的PPT,直观地展示面向对象程序设计的相关概念和实例。
4.实验设备:提供计算机和编程环境,让同学们能够进行实际的编程练习。
五、教学评估本节课的教学评估将采用多元化的评估方式,以全面、客观、公正地评价同学们的学习成果。
评估方式包括:1.平时表现:考察同学们在课堂上的参与程度、提问回答、小组讨论等,占总评的20%。
2.作业:布置与课程内容相关的编程作业,让同学们巩固所学知识,占总评的30%。
九江学院信息科学与技术学院《面向对象程序设计(C++)》课程设计(实训)报告书题目:C++类与对象的设计专业:应用电子技术班级:B1321班姓名:缪谢非学号:21311100136同组人员:指导老师:设计时间:年月日1.课程设计(实训)计划完成银行贷记卡模拟系统,具体要求如下:●客户余额的输出采用“5元5角5分”●允许客户存款、取款,并允许客户取款透支●设计一个主程序进行基本情况的演示2.功能分析与设计(根据课题的要求进行简单的分析,设计相应的类图和基本流程)(1)、需求与功能分析随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银行客户的需要。
现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各种经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务:同时,随着我国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理、进行银行业务再造,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。
近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业务特点,为其提供各种高效、快捷的代收代付业务,也就是中间代理业务,目前以与广大人民群众生活密切相关的各项缴费业务如水电费、电话费、手机费等代收业务为主,这些业务开展方式多种多样,但一般都离不开计算机的高效管理支持。
随着代理业务不断发展,业务品种越来越多,各项业务做法互有差异,这就对银行的电子化水平和相应的管理水平提出了更高的要求。
如何利用电子化的手段构建一个高效统一的、通用灵活的系统来管理各种各样的业务,是每个商业银行所要研究的课题。
C++面向对象程序设计-编程题C++面向对象程序设计2010期末考试编程题1、编写一个程序根据输入的三角形的三条边判断是否能组成三角形,如果可以则输出它的面积和三角形类型(等边、等腰、直角三角形)。
#include<iostream>#include<math.h>using namespace std;int main(){double a,b,c;double v,p;cout<<"请输入三角形三条边:"<<endl;cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a){p=(a+b+c)/2;v=sqrt(p*(p-a)*(p-b)*(p-c));cout<<"该三角形面积是"<<v<<endl;if(a==b&&a==c)cout<<"该三角形是等边三角形!"<<endl;elseif(a==b&&a!=c||a==c&&a!=b||b==c&&b!=a)cout<<"该三角形是等腰三角形!"<<endl;if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a))cout<<"该三角形是直角三角形!"<<endl;}elsecout<<"这三条边组不成三角形!"<<endl;return 0;}2、定义一个学生类,其中有3 个数据成员:学号、姓名、年龄,以及若干成员函数。
同时编写main 函数使用这个类,实现对学生数据的赋值和输出。
《C++面向对象程序设计》课程设计专业:数学与应用数学学号:0809401-22姓名:孙文指导教师:李又良成绩:二00九年12 月20 日目录1. 课程设计目的 (3)2. 课程设计题目描述和要求 (3)3. 课程设计内容 (4)3.1 题目求解的理论依据 (4)3.2 操作流程图 (9)3.3程序调试出错信息及解决方法 (10)3.4要程序运行结果 (10)3.5心得体会 (11)参考书目 (11)用VC++制作一个简易仿真计算器1.课程设计目的随着人类科技日新月异,科技计算量越来越大。
传统的手工计算已经完全不适应新时代的数字计算,手工计算不仅容易出错,而且耗时相当长。
所以我开发了一个简易仿真计算器的软件平台,用以方便学生在学习期间,提高学习效率,减轻学生负担。
掌握VC++利用MFC创建对话框和添加标准控件的方法,熟悉应用程序框架的创建方法及应用,理解VC++编程和系统开发应用。
2. 课程设计题目描述和要求2.1 课程设计题目描述用VC++制作一个仿真计算器系统,在系统的设计中主要实现以下一些功能:加减乘除运算功能、小数点运算功能、sin运算功能、平方运算功能、和一键清除功能等等。
2.2 课程设计要求2.2.1 该仿真计算器应通过点击VC++不同的button按键发送消息给对应的消息处理函数,实现各自按键不同的功能。
2.2.2 该仿真计算器的功能包括加减乘除运算功能、小数点运算功能、三角运算功能、平方开方开n次方运算功能、各类对数运算功能,简单括号运算和一键清除功能。
2.2.3 该仿真计算器的界面包括数值输入区,各类运算区,显示区。
2.3 课程设计分组2.3.1 组长:刘冰组员:唐陆军肖继宏陈昕唐晓曼孙文刘智丽李健2.3.2 分工情况、本人负责孙文:显示之前四则运算操作功能和求余运算功能的实现。
3.实验报告内容3.1 题目求解的理论依据及算法(1)在计算器界面上按下所输入的数值1,系统自动把数值1赋给编辑框关联成员变量double m_s1,在输入数值1的过程中如果按下了小数点的键,则改变了int huanxiaoshudian的值,并且多次数值键时通过double xiaoshudian3可以使得系统接收多位小数。
然后按下所选运算符的按键,系统把double m_s1的值赋给公有成员变量double a1,并且把double m_s1重新赋值为0,且改变int yunsuanfu的数值。
为后面通过选择语句执行对应运算。
继续按数值键,输入数值2,系统自动把数值2赋给编辑框关联成员变量double m_s1,之后按下等于键,系统把double m_s1赋值给double s2,系统根据int yunsuanfu的值和对应的选择语句,执行对应的运算,并且将对应结果赋值给double m_s1,编辑框显示运算结果。
(2)利用宏定义 #define PI 3.14159为后面的三角运算提供PI=3.14159。
(3)如果需要进行括号运算,系统初始化int kuohaobianliang为1,按下左括号键后,变量值改为2,之后的运算进入括号运算,直到按下右括号键,算出括号内运算值,并将该值赋给double m_s1。
(4)利用宏定义#define e 2.71828182845905 为后面的对数运算提供e 值为2.71828182845905主要数据结构类公有成员变量说明(1)int huanxiaoshudian;在按下小数点键之后通过对应的消息处理函数,改变该变量值使得继续按键输入的是小数。
(2)double xiaoshudian3;在按下小数点键之后通过对应的消息处理函数,改变该变量值使得继续按键,以后每一次按键输入的数是紧接着前面的数,实现正常的小数的输入。
(3)double s2;在按下等于键之后通过对应的消息处理函数,将m_s1的值赋给s2,从而s2保存了运算数2,为后面的运算做准备(4)int yunsuanfu; 在按下某一运算符键之后通过对应的消息处理函数,改变该变量值为后面通过选择语句执行对应运算(5)double a1;在按下运算键之后通过对应的消息处理函数,将m_s1的值赋给a1,从而a1保存了运算数1,为后面的运算做准备(6)double m_s1; 控件IDC_EDIT1 的关联成员变量,储存数值和将数值显示在显示框。
(7)CString m_xianshibuzhu; 控件IDC_EDIT2 的关联成员变量,将之前的操作步骤显示在显示框IDC_EDIT2。
(8)#define PI 3.14159 为后面的三角运算提供PI=3.14159(9)char computerchar; 在实现将操作步骤显示在显示框IDC_EDIT2中,在按下运算符键时,将对应运算符的字符存储于char computerchar 中。
(10)int kuohaobianliang; 该变量初始值为1,按下左括号键后,变量值改为2,之后的运算进入括号运算,直到按下右括号键,算出括号内运算值,并将该值赋给double m_s1。
类公有成员函数说明[1] void CJisuanqiDlg::OnButton1()是类CJisuanqiDlg的共有成员函数按下1键即输入向系统输入数值1 void CJisuanqiDlg::OnButton1(){// TODO: Add your control notification handler code hereUpdateData();if(huanxiaoshudian==1)m_s1=10*m_s1+1;else{ m_s1=m_s1+xiaoshudian3*1;xiaoshudian3=xiaoshudian3*0.1;}m_xianshibuzhu=m_xianshibuzhu+"1";UpdateData(FALSE);}[2] 0值和2到9的输入相应类成员函数与数值1输入的类成员函数void CJisuanqiDlg::OnButton1()对应类似[3] void CJisuanqiDlg::OnButton10()是类CJisuanqiDlg的共有成员函数,通过改变变量huanxiaoshudian的值使得后面输入数时一开始输入整数。
将m_s1的值赋给a1,从而a1保存了运算数1,为后面的运算做准备。
改变变量值yunsuanfu=1 为后面通过选择语句执行对应运算(执行+运算)。
void CJisuanqiDlg::OnButton10(){// TODO: Add your control notification handler code hereUpdateData();huanxiaoshudian=1;a1=m_s1;m_s1=0;yunsuanfu=1;computerchar='+';m_xianshibuzhu=m_xianshibuzhu+computerchar;UpdateData(FALSE);}[4] -,*,/的运算的类成员函数与+运算的类成员函数void CJisuanqiDlg::OnButton10()对应类似减法运算 void CJisuanqiDlg::OnButton11()乘法运算 void CJisuanqiDlg::OnButton12()除法运算 void CJisuanqiDlg::OnButton13()[5] void CJisuanqiDlg::OnButton14()是类CJisuanqiDlg的共有成员函数,首先把m_s1的值赋给s2,通过选择语句根据yunsuanfu的具体值,选择执行对应的语句,即实现对应运算。
void CJisuanqiDlg::OnButton14(){// TODO: Add your control notification handler code hereCString str;UpdateData();s2=m_s1;if(yunsuanfu==1){ if(kuohaobianliang==1){ m_s1=a1+s2;computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else{ a1=a1+s2;}}else if(yunsuanfu==2){ if(kuohaobianliang==1){ m_s1=a1-s2;computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else{ a1=a1-s2;}}else if(yunsuanfu==3){ m_s1=a1*s2;computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar; }else if(yunsuanfu==4){ m_s1=a1/s2;computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else if(yunsuanfu==5){ m_s1=sin(s2);computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else if(yunsuanfu==6){ m_s1=sqrt(s2);computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else if(yunsuanfu==7){ m_s1=cos(s2);computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else if(yunsuanfu==8){ m_s1=tan(s2);computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else if(yunsuanfu==9){ m_s1=a1*a1;computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else if(yunsuanfu==10){ m_s1=asin(s2);computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else if(yunsuanfu==11){ m_s1=acos(s2);computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else if(yunsuanfu==12){ m_s1=atan(s2);computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else if(yunsuanfu==13){ m_s1=exp(s2);computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else if(yunsuanfu==14){ m_s1=pow(a1,s2);computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else if(yunsuanfu==15){ m_s1=fmod(a1,s2);computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else if(yunsuanfu==16){ m_s1=log(s2);computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}else if(yunsuanfu==17){ m_s1=log10(s2);computerchar='=';m_xianshibuzhu=m_xianshibuzhu+computerchar;}//在此行添加将结果将双精度数变成字符串类型使用 CStr 函数将一数值转换为 String。