C++ 实验二 类与对象(附答案)

合集下载

大学C 上机实验题目(版)

大学C 上机实验题目(版)

20XX年复习资料大学复习资料专业:班级:科目老师:日期:实验前言(建议认真阅读)一、上机实验的目的上机实验的目的是提高学生的分析问题、解决问题的能力和动手能力,通过实践环节理解C++语言的基本结构和程序设计方法。

通过亲手编程掌握C++语言编程的方法。

二、实验基本内容为了使学生在上机实验时目标明确,本实验指导书针对课程内容编写了五个实验。

学生在课内机时先完成指导书中标有“*”号的程序,理解所学的知识,在此基础上再编写其他应用程序。

指导书中的五个个实验如下:1. 函数与编译处理2. 指针与引用3. 类和对象4. 继承和派生类5. 多态性三、实验提交(特别提醒)1. 实验题目以附件形式提交,每个附件限一个源程序,附件以实验编号-题号-自己学号.cpp命名;如学号为20XXXX20XXXX20XXXX34的同学提交实验1的第5题,则附件命名方式为:1-5-20XXXX20XXXX20XXXX34.cpp,错误提交的将视为未提交。

2. 提交时间定为该次实验课的一周内,过期不再接收。

四、评分和作弊处理1. 要求提交实验题总数为6题(带“*”号),占期末总评成绩的20XX%;2. 存在抄袭和被抄袭的作业,无论抄袭与被抄袭者,本门课程平时成绩以零分记。

存在两次及两次以上抄袭和被抄袭者,本门课程以不及格记。

五、实验课要求(重点强调)1. 严禁QQ、MSN等即时软件工具聊天;2. 严紧接听手机、发送短信;3. 严紧玩游戏。

实验1 函数与编译处理一、实验目的1. 掌握函数声明、定义和使用的方法;2. 掌握形参与实参之间的对应关系;3. 掌握函数调用时,形参、实参之间的“值传递”和“引用传递”的区别;4. 掌握函数递归调用的方法;5. 掌握全局变量、局部变量、静态变量的使用方法;6. 掌握文件包含的使用方法。

二、实验内容1. 定义两个函数swap1和swap2,目的是实现两个整数的次序交换,其中swap1的参数是传递值参数,swap2的参数是引用参数,在程序中分别调用这两个函数,其输出结果如下所示:初始值:x=1,y=2调用swap1后的结果:x=1 y=2调用swap2后的结果:x=2 y=12. 编写一个函数,用来计算从键盘上输入的整数的阶乘。

C语言程序设计实验与习题(1-4)

C语言程序设计实验与习题(1-4)

ffB v vbvv bgbb实验一C程序运行环境及简单程序的运行2.程序改错并调试改正后的程序⑴下列程序的功能为:计算x*y的值并将结果输出,程序中有8处错误,尝试改正并上机调试之(程序以文件名sy1_2.cpp#include <stdio.h>void main{ int x=2;y=3;aA=x*yprint ("a=%d",a);printf(‘\n’);}⑵下列程序的功能为:输入圆的半径,计算圆面积并将结果输出;程序中有9处错误,尝试改正并上机调试之(程序以文件名sy1_3.cpp存盘)。

#include stdio.h;int mian();float r; area;printf("input r:\n"); scanf("%f",r);area=3.14159r*r;printf("r=%f , area=%f\n"3.编写程序并上机调试⑴输入三个整数a、b、c,显示出其中的最大值。

4.分析与总结⑴总结C程序的结构和书写规则。

⑵阅读:附件1-C语言程序的跟踪调试。

特别提示:当程序在编译时发现很多错误,此时应从上到下逐一改正,或改一个错误,就重新再编译,因为有时一个错误会引起很多错误信息。

12习题一一、选择题参考答案:1~5 C B A C D 6~10 C C A C B 11~14 A A C B二、综合题绘制NS 算法流程图。

(1)输入10个数,求其中的最大值。

(2)输入3个数,将它们升序排列输出。

(3)输入2个数,求它们的最大公约数。

(4)输入一元二次方程的系数a 、b 、c ,判断其根。

实验二顺序结构程序设计1.阅读程序,尝试写出程序的运行结果,然后输入并调试程序,对照其实际输出与分析的结果是否一致,若不一致,请找出原因。

⑴以下程序用于测试C中不同类型数据所占内存字节数,运行并体会sizeof运算符的使用方法。

C语言详细教程(完整版)ppt课件

C语言详细教程(完整版)ppt课件
. C Programming Language
教学目的:掌握“文化基础”中的相关概 念,明确学习方法,了解C语言基本知识。
教学要求:明确本课程的目标及学习方法, 复习“文化基础”中与C语言相关的知识: 数制、编码、计算机系统组成,了解算法 的概念及表示、C语言及标识符、C语言基 本结构。
学时:2学时
输出AVER的值
.
A
C Programming Language
结束
[例1.2] 输出一个数的绝对值。
开始 输入 X
输入 X N X>=0吗? Y
N X>=0吗? Y
输出 -X 输出 X
输出 -X
输出 X
结束
. C Programming Language
[例1.3] 输入10个 数,把其 中的正数 输出。
程序语言发展现状程序语言发展现状programminglanguage三翻译方式三翻译方式高级语言源程序高级语言源程序目标程序目标程序codecode翻译翻译programminglanguage用高级语言用高级语言书写的源程序书写的源程序用高级语言用高级语言书写的源程序书写的源程序机器指令机器指令程序程序机器指令机器指令程序程序函数函数库库函数函数库库编译程序编译程序编译编译用用高级语言高级语言书写的书写的源程序源程序用高级语言高级语言书写的书写的源程序源程序执行结果执行结果执行结果执行结果解释程序解释程序函数函数库库函数函数库库解释并解释并执行执行programminglanguage用计算机解决问题的基本过程
. C Programming Language
1.1 引言 1.2 算法和程序设计初步 1.3 C语言简介 1.4 集成开发环境TurboC 2.0简介

C#程序设计及应用教程(第2版)习题答案

C#程序设计及应用教程(第2版)习题答案

网络应用编程作业及答案课程名称网络应用编程院(部)计算机与信息工程学院教研室(实验室) 网络工程教研室主讲教师侯彦娥职称讲师使用教材21世纪高等学校计算机规划教材(精品系列)《C#程序设计及应用教程(第2版)》,马骏等主编,人民邮电出版社第1章作业及答案本章作业题目:P16页1、2、31、可以用C#编写哪些类型的应用程序?【解答】1)控制台应用程序。

2) Windows应用程序。

3) Web应用程序。

4) Web服务应用程序。

5) 水晶报表Web应用程序。

6)智能设备应用程序。

7)安装和部署应用程序。

2、什么是命名空间?命名空间和类库的关系是什么?【解答】1)命名空间是对类的一种逻辑上的分组,即将类按照某种关系或联系划分到不同的命名空间下。

2)命名空间又可以包含其它的命名空间,例如s,是指System命名空间下有Windows命名空间,Windows命名空间下有Forms命名空间。

3)所有类库都在规定的命名空间下。

3、举例说明using关键字有哪些主要用途。

【解答】在C#中,using关键字有3个用途1)2)3)作为语句,定义一个范围。

例如:Font font1 = new Font("Arial", 10.0f);using (font1){…}程序执行到“}”时,就会自动释放font1对象。

第2章作业及答案本章作业题目:P41 2、3、4、5、7容易做错的题目:5题(有部分同学看成求平方和了)1、C#支持的数据类型有那些?值类型和引用类型有何不同?【解答】C#支持的数据类型有:(1)值类型,包括:简单类型、结构类型、枚举类型。

其中,简单类型又分为:整型、布尔型、字符型、浮点型、小数型。

(2)引用类型,包括:对象类型、类类型、接口、元数据、字符串类型、数组。

值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。

C语言实验报告

C语言实验报告

中南民族大学管理学院学生实验报告课程名称:C程序语言设计姓名:郭晋学号:10056006年级:2010专业:信息管理与信息系统指导教师:李超锋实验地点:管理学院综合实验室2010 学年至20 11 学年度第2 学期目录实验一熟悉C语言的开发环境和C程序的上机步骤实验二基本数据类型及数据的输入输出实验三运算符及表达式实验四顺序结构程序设计实验五选择结构程序设计实验六循环结构程序设计实验七数组及其应用实验八函数及其应用实验九指针及其应用实验(一)熟悉C语言的开发环境和C程序的上机步骤实验时间:2011.3.29同组人员:郭晋,金亚男实验目的:1,了解T urb C3.0编译系统,熟悉各菜单的功能,掌握在该系统上编辑,编译,连接,运行一个C程序的方法。

2,通过调试,运行简单的C程序,初步了解C语言程序的特点。

实验内容:1.编写一个C程序,求一个圆的面积。

我们的程序设计#include<stdio.h>void main(){float r,s;scanf("%f",&r);s=3.14*r*r;printf("s=%f",s);}2.编写程序求任意三个书的最大值。

我们的程序设计#include<stdio.h>void main(){int a,b,c,max;scanf("%d,%d,%d" ,&a,&b,&c);if(a>b&&a>c)max=a;if(b>a&&b>c)max=b;if(c>a&&c>b)max=c;printf("max=%d\n",max);}实验步骤:1.首先,我们两人先根据题目中的编程要求确定实验步骤,分别写下相应的编程语言进行比较,未出现明显的分歧。

2.打开Turb C 程序,然后将刚刚确定的C语言程序输入,打开Proiles,进行系统纠错,看是否出现错误或者警告,进行相应的调试。

【最新文档】oc实验指导书-范文模板 (15页)

【最新文档】oc实验指导书-范文模板 (15页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==oc实验指导书篇一:OC实验指导实验一:熟悉Object-C语言程序开发环境(基本操作性实验2学时)一. 目的要求1. 熟悉Xcode环境;2. 掌握在Xcode中创建Object-C项目的步骤;3. 掌握程序的编译和运行方法;4. 掌握应用NSLog方法进行屏幕输出。

二.实验任务在Xcode环境中创建一个Object-C项目,实现屏幕输出功能,并进行编译和运行。

三.实验环境、设备苹果电脑、Xcode。

四.实验指导(一)背景知识简述Xcode 是苹果公司开发的编程软件,是开发人员建立OS X 和 iOS 应用程序的最快捷方式。

Xcode 具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。

(二)实验步骤1. 打开Xcode,新建Xcode项目,如图1。

图12. 选择最简单的命令行项目,如图2。

图23. 输入项目名称,选择Foundation框架进行创建项目,如图3。

图34. 编写程序。

5. 点击Run,运行项目,如图4图4实验二:Object-C类的设计(基本操作性实验2学时)一. 目的要求1. 理解类、对象、方法的概念;2. 掌握类的声明格式;3. 掌握类的定义格式;4. 掌握对象的创建步骤二.实验任务定义一个分数类,用来保存分子、分母。

定义一些方法,分别用来设置和获取分子、分母的数值。

编写一个Objective-C程序,实现这个类并测试它。

三.实验环境、设备苹果电脑、Xcode。

四.实验指导(一)实验步骤1. 创建一个Xcode项目;2. 创建一个分数类;3. 在接口文件中实现分数类的声明部分;4. 在实现文件中实现分数类的定义部分;5. 测试该类。

实验三:继承的使用(基本操作性实验2学时)一. 目的要求1. 理解继承的概念;2. 能够通过继承对现有类进行扩展;3. 掌握覆写方法。

C#程序设计实验指导

C#程序设计实验指导

学生实验报告册(理工类)课程名称: C#程序设计专业班级:学生学号:学生姓名:所属院部:信息技术学院指导教师:20 12 ——20 13 学年第 1 学期金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。

若因课程特点需打印的,标题采用四号黑体,正文采用小四号宋体,单倍行距。

纸张一律采用A4的纸张。

实验报告书写说明实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。

教师可根据学科特点和实验具体要求增加项目。

填写注意事项(1)细致观察,及时、准确、如实记录。

(2)准确说明,层次清晰。

(3)尽量采用专用术语来说明事物。

(4)外文、符号、公式要准确,应使用统一规定的名词和符号。

(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。

实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。

实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。

实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称: C#编程基础实验学时: 6学时同组学生姓名:无实验地点:实验日期:实验成绩:批改教师:批改时间:实验1 C#编程基础一、实验目的(1)熟悉Visual 集成开发环境(IDE),熟悉C#源程序语言的编辑、编译和运行过程;(2)学会创建简单的控制台应用程序和windows窗体应用程序;(3)能够使用C#选择、循环等流程控制语句编写并调试程序;(4)掌握使用数组来求解一些现实问题的步骤和方法。

二、实验要求(1)编写程序要规范、正确,上机调试过程和结果要有记录;(2)做完实验后给出本实验的实验报告。

三、实验设备、环境安装有 2005以上版本软件。

四、实验步骤1. 采用VS2010编写一个简单的控制台应用程序(1)打开VS2010开发工具。

实验二---类与对象的定义与使用

实验二---类与对象的定义与使用
}
}
void paixuYuwen() //按语文成绩排序;
{
Student str[50],*p,q;
int i,j;
p=stu;
for(p=stu,i=0;i<n;i++)
{ str[i]=*p;
*p++;
}
for(i=0;i<n-1;i++,p++)
{
for(j=0;j<n-1-igt;str[j+1].yuwen)
{
q=str[j];
str[j]=str[j+1];
str[j+1]=q;
}
}
}
for(i=0;i<n;i++)
{
printf("学号:%d姓名:%s数学:%.2f语文:%.2f英语:%.2f总成绩:%.2f平均成绩:%.2f\n",str[i].num,str[i].name,str[i].shuxue,str[i].yuwen,str[i].yingyu,str[i].zongcj,str[i].avg);
}
}
void paixuCJ()
{
int flag;
printf("1->按数学成绩排序\n2->按语文成绩排序\n3->按英语成绩排序\n4->按总成绩排序\n5->按总分\n");
printf("请选择成绩由低到高的排序方式:");
scanf("%d",&flag);
switch(flag){
case 0:paixuShuxue();break;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二类与对象实验目的和要求1.掌握类、类的数据成员、类的成员函数的定义方式。

2.理解类成员的访问控制方式。

3.掌握对象的定义和操作对象的方法。

4.理解构造函数和析构函数的定义与执行过程。

5.掌握重载构造函数的方法。

6.了解拷贝构造函数的定义方法。

实验内容1.下面程序中有错,在不删除和增加代码行的情况下,改正错误语句,使其正确运行。

#include<iostream.h>class Aa{public:Aa(int i=0){a=i;cout<<"Constructor "<<a<<endl;}~Aa(){cout<<"Destructor "<<a<<endl;}void print(){cout<<a<<endl;}private:int a;};int main(){Aa al(1),a2(2);al.print();cout<<a2.a<<endl;return 0;}2.检查下面的程序,找出其中的错误,并改正。

然后上机调试,使程序能正常运行。

(1)#include<iostream.h>class Date{void set_date();void show_date();int year;int month;int day;};Date d;int main(){set_date();show_date();}void set_date(){cin>>d.year;cin>>d.month;cin>>d.day;}void show_date(){cout<<d.year<<'/'<<d.month<<'/'<<d.day<<endl; }(2)#include<iostream.h>class A{public:void A(int i=0){m=i;}void show(){cout<<m<<endl;}void ~A(){}private:int m;};int main(){A a(5);a.m+=10;a.show();return 0;}(3)#include<iostream.h> class X{private:int a=0;int &b;void setA(int i){a=i;}X(int i){a=i;}public:int X(){a=b=0;}X(int i,int j){a=i;b=j;}void setC(int k){c=c+k;}};void main(){X x1;X x2(2);X x3(1,2);x1.setA(3);}3.调试下列程序。

#include<iostream.h>class TPoint{private:int X,Y;public:TPoint(int x,int y){X=x;Y=y;cout<<"Constructor is called"<<endl;}TPoint(TPoint &p);~TPoint(){ cout<<"Destructor is called"<<endl; }int getx(){ return X; }int gety(){ return Y; }};TPoint::TPoint(TPoint &p){X=p.X;Y=p.Y;cout<<"Copy-initialization Constructor is called"<<endl;}void main(){TPoint p1(4,9);TPoint p2(p1);TPoint p3 = p2;cout<<"p3=("<<p3.getx()<<","<<p3.gety()<<")"<<endl;}(1)写出程序的输出结果,并解释输出结果。

(2)按下列要求进行调试:在主函数体内,添加下列说明语句:TPoint p4,p5(2);调试程序会出现什么现象?为什么?如何解决?(提示:对已有的构造函数进行适当修改)结合运行结果分析如何使用不同的构造函数创建不同的对象。

(3)在主函数内使用new创建不同参数动态两个动态对象,输出其坐标,并用delete 删除之。

运行程序,分析运行结果。

(4)在程序中定义个全局对象,在主函数最前添加语句:cout<<"Enter main"<<endl;运行程序,分析运行结果。

4.完善程序,并写出运行结果根据程序要求,完善程序后输入源程序,编译连接,并写出运行结果。

如果某个自然数除了1和它本身外还有其他因子,则这个自然数就是合数(非素数)。

试定义一个类NUM,从3开始向上试探找出n个连续的自然数,且它们都是合数。

当找到第一组连续的n个合数后,即停止查找。

具体要求如下:(1)私有成员int n : 存放满足条件的连续自然数的个数。

int *p: 根据n的值申请一个动态数组用来存放求出的满足条件的n个自然数。

(2)公有成员函数NUM(int n1): 构造函数,用n1初始化n,根据n的值申请动态数组空间,使p指向该动态数组空间。

int yes(int x): 判断x是否为合数。

如果是,返回1,否则返回0。

void fun(): 从3开始向上试探找出n个连续的自然数,且它们都是合数,并依次存入动态数组。

void print(): 输出满足条件的n个合数。

~NUM(): 析构函数,释放动态数组所占用的存储空间。

(3)在主函数中定义一个NUM类的对象num,求出10个连续的合数。

然后通过对象num调用成员函数求出10个连续的合数,并输出计算结果。

#include <iostream.h>class NUM{ //定义数据类NUMprivate:int n;int *p;public:NUM(int n1){n=n1;p= ; //动态分配存放连续合数的存储空间}int yes(int x){for(int i=2;i<=x/2;i++)if (x%i==0)return 1;return 0;}void fun(void){int j;for(int i=3;1;i++){j=0;while( &&j<n){p[j]=i;j++;i++;}if(j==n)break;}}void print(void){cout<<"找到的"<<n<<"个连续合数为:"<<endl;for(int i=0;i<n;i++)cout<<p[i]<<" ";cout<<endl;}~NUM(){; //释放在构造函数中申请的存储空间}};void main(){cout<<"请输入要求的连续合数的个数(例如10):";int n;cin>>n;NUM num(n);; //寻找连续的合数,并存入动态申请的存储空间中; //输出寻找到的合数}5.请定义一个矩形类(Rectangle),私有数据成员为矩形的长度( len)和宽度(wid),缺省构造函数置len和wid为0,有参构造函数置len和wid为对应形参的值,另外还包括求矩形周长、求矩形面积、取矩形长度和宽度、修改矩形长度和宽度为对应形参的值、输出矩形尺寸等公有成员函数。

要求输出矩形尺寸的格式为“length:长度,width:宽度”。

编写主函数对定义的类进行测试。

6.声明一个时间类,时间类中有3个私有数据成员(Hour,Minute,Second)和两个公有成员函数(SetTime和PrintTime)。

SetTime根据传递的3个参数为对象设置时间;PrintTime负责将对象表示的时间显示输出,输出格式为“Hour:Minute:Second”。

(1)在主函数中,建立一个时间类的对象,设置时间为9点20分30秒并显示该时间。

(2)使用构造函数代替上面的SetTime成员函数,并在主函数中使用构造函数设置时间为10点40分50秒,并显示该时间。

(3)重载时间类的构造函数(不带参数)使小时、分、秒均为0。

(4)在时间类的析构函数中输出"Good bye!”(5)定义拷贝构造函数并调用。

7.下面是一个整型链表类intList的声明,请给出该类所有数据成员的类外定义,并在主函数中测试该类。

class intList{protected:struct Node{int data;Node *next;};Node *L;public:intList(); //构造函数~intList(); //析构函数bool Insert(int i,int elem);bool Remove(int i,int &elem);//删除链表的第i个位置的元素,删除成功返回true,失败返回falseint Find(int elem);//在链表中查找值为elem的元素,找到返回该元素在链表中的位置,否则返回0int Length(); //返回链表长度(元素个数)void PrintList(); //输出链表};参考答案(非权威,仅仅是我自己的理解,如有错误,欢迎批评指正!)第一题:#include<iostream.h>class Aa{public:Aa(int i=0){a=i;cout<<"Constructor "<<a<<endl;}~Aa(){cout<<"Destructor "<<a<<endl;}void print(){cout<<a<<endl;}private:int a;};int main(){Aa al(1),a2(2);al.print();a2.print();return 0;}第二题(1)#include<iostream.h>class Date{public:void set_date();void show_date(); private:int year;int month;int day;};Date d;int main(){d.set_date();d.show_date();return 0;}void Date::set_date(){cin>>year;cin>>month;cin>>day;}void Date::show_date(){cout<<year<<'/'<<month<<'/'<<day<<endl; }(2)#include<iostream.h>class A{public:A(int i=0){m=i;}void show(){cout<<m<<endl;}~A(){}friend void add(A &); private:int m;};void add(A &a){a.m+=10;}int main(){A a(5);add(a);a.show();return 0;}#include<iostream.h> class X{private:int a,b,c; public:X(int i){a=i;}X(){a=b=0;}X(int i,int j){a=i;b=j;}void setC(int k){c=c+k;}void setA(int i){a=i;}};void main(){X x1;X x2(2);X x3(1,2);x1.setA(3);}(1)void main(){TPoint p1(4,9); //调用构造函数初始化p1TPoint p2(p1); //显示调用拷贝构造函数初始化p2TPoint p3 = p2; //对象之间的赋值,由于之前没有定义p3,因此用另一个同类的对象给其赋值时,会调用拷贝构造函数。

相关文档
最新文档