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

合集下载

C++程序设计实验指导

C++程序设计实验指导

实验一C++简单程序设计(2学时)一、实验目的(1)学习用Visual C++6.0编写标准的C++控制台程序。

(2)学会编写简单的C++程序。

(3)复习基本数据类型变量和常量的应用。

(4)复习运算符与表达式的应用。

(5)复习结构化程序设计基本控制结构的运用。

(6)复习自定义数据类型的应用。

(7)练习使用简单的输入输出。

(8)观察头文件的作用。

二、实验任务(1)使用Visual C++来建立一个非图形化的标准C++程序,编译、运行以下程序:程序名:Lab1-1.cpp#include <iostream>using namespace std;int main(){cout<<”Hello! \n”;cout<<”Welcome to C++!\”;}(2)输入并运行下列程序,即用do-while语句编程,求自然数1~10之和。

程序正确运行之后,去掉源程序中#include语句,重新编译,观察会有什么问题。

程序名:Lab1-2.cppusing namespace std;void main(){int i(1), sum(0);do {sum+=i;i++;}while(i<=10);cout<<"sum="<<sum<<endl;}(3)将do-while语句用for语句代替,完成相同的功能。

程序名Lab1-3.cpp(4)编程计算图形的面积。

程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后,要求用户对圆形输入半径值,要求用户对长方形输入长和宽的值,要求用户对正方形输入边长的值,计算出面积的值后将其显示出来。

程序名:Lab1-4.cpp(5)声明一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。

程序名:Lab1-5.cpp三、实验步骤1.启动Visual C++ 6.0开发环境·从“开始”菜单中选择“程序”| Microsoft Visual Studio 6.0 | Microsoft Visual C++ 6.0,显示Visual C++6.0开发环境主窗口。

UML统一建模语言实验报告 2范文

UML统一建模语言实验报告 2范文

目录实验一 UML建模基础及用例图实验二类图与对象图实验三序列图与协作图实验四状态图实验五活动图实验(一)UML建模基础及用例图实验目的1、熟悉UML建模工具Rational Rose的基本菜单及操作。

2、掌握UML的可见性规则和构造型的作用。

3、掌握用例的概念;掌握UML用例图的组成及作用。

4、掌握用例与用例之间的各种关系。

实验内容1、练习使用建模工具建立各种UML图形,并对图形进行相应编辑和修改。

2、认识各种UML关系,并用工具表示出来。

中南民族大学管理学院学生实验报告3、什么是用例?用例图中有哪些组成元素?在UML中是如何表示的?答:用例是对系统功能的描述,是向参与者提供重要价值的操作序列。

用例图有:用例、参与者、关联(系统边界)等元素。

用来显示在系统或其他实体内的用例与系统参与者之间的关系。

主要使用场合:需求获取、定义、分析4、用例与用例之间的包含关系、扩展关系和泛化关系各代表什么含义?它们之间有何区别?对以上三种关系各举一例,画出用例图,并进行说明。

(1)包含关系:基本用例的行为包含另一用例的行为。

基本用例描述在多个用例中都有的公共行为。

包含关系是本质上比较特殊的依赖关系,它比一般的依赖关系多了一些语义。

在包含关系中箭头的放向是从基本用例到包含用例的。

(2)扩展关系:扩展关系的基本含义和泛化关系相似,但在扩展关系中,对于扩展用例有更多的规则限制。

基本用例必须声明扩展点,而扩展用例只能在扩展点上增加新的行为和含义。

(3)泛化关系:代表一般与特殊的关系。

UML用例图中泛化关系的意思和面向对象程序设计中的继承的概念是类似的。

不同的是继承使用在实施阶段,泛化使用在分析、设计阶段。

在泛化关系中子用例继承了父用例的行为和含义,子用例也可以增加新的行为和含义或者覆盖父用例中的行为和含义。

5、完成书中94页例子,体会用例图建模的分析过程并模仿来画出该学生信息管理系统的用例图。

画出课后习题101页第4题。

C语言程序设计实验指导书课后答案

C语言程序设计实验指导书课后答案
2.3.4 显示 1~10 平方,输出结果如下图所示: 1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49
8*8=64 9*9=81 10*10=100 #include<> int main(void) {
int i,a; for(i=1;i<=10;i++)
422有一个四位数千位上的数字和百位上的数字都被擦掉了已知十位上的数字是个位上的数字是2又知道这个数如果减去7就能被7整除减去8就能被8整除减去9就能被9整除
实验一
(1) 编程求 37+29 的值,实习 VC 环境。 #include<> void main() { int a,b,sum; a=37; b=29; sum=a+b; printf("sum=%d",sum); }
输入圆的半径,计算圆的面积,设圆周率为. #include<> int main() { float r,s; printf("请输入半径:"); scanf("%f",&r); s=*r*r; printf("圆的面积为%.6f",s); }
输入一个两位数,将其个位数和十位数互换后变成一个新的数,输出这个数。 #include <> int main(void) { int n,a,b; printf("input n:"); scanf("%d",&n); b=n%10; a=n/10; n=b*10+a; printf("%d\n",n); return 0; }
2.2.5 输入三个整数,用 if-else 结构求出其中的最大值。提示:首先求出两个 数的较大值放在一个变量里,然后用这个变量和第三个数再进行一次比 较。 #include<> int main() { int a,b,c,max; printf("请输入三个数"); scanf("%d,%d,%d",&a,&b,&c); if(a>b) max=a; else max=b; if(c>max) max=c; else max=a; printf("最大值为%d\n",max); return 0; }

《C语言程序设计》实验设计习题答案

《C语言程序设计》实验设计习题答案

《C语言程序设计》实验设计习题答案C语言程序设计是计算机专业的一门基础课程,通过实验设计习题可以帮助学生巩固所学的C语言知识,并提升编程能力。

本文将为您提供《C语言程序设计》实验设计习题的答案,以帮助您更好地理解和掌握相关知识。

实验一:基本输入输出实验题目描述:请编写一个程序,实现输入两个整数并输出其和与积。

```c#include<stdio.h>int main(){int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);int sum = num1 + num2;int product = num1 * num2;printf("和:%d\n", sum);printf("积:%d\n", product);return 0;```实验二:判断奇偶数实验题目描述:请编写一个程序,实现判断输入整数是奇数还是偶数的功能,并输出结果。

```c#include<stdio.h>int main(){int num;printf("请输入一个整数:");scanf("%d", &num);if(num % 2 == 0){printf("%d为偶数\n", num);}else{printf("%d为奇数\n", num);return 0;}```实验三:求和实验题目描述:请编写一个程序,实现输入n个整数并输出其和。

```c#include<stdio.h>int main(){int n, num;int sum = 0;printf("请输入整数的个数:");scanf("%d", &n);for(int i = 0; i < n; i++){printf("请输入第%d个整数:", i+1);scanf("%d", &num);sum += num;printf("和:%d\n", sum);return 0;}```实验四:阶乘实验题目描述:请编写一个程序,实现输入一个整数并输出其阶乘。

C++实验指导书专业资料

C++实验指导书专业资料

C++程序设计实验指导书实验一C++程序的运营环境和运营(2学时)实验名称: C++程序的运营环境和运营实验目的:1.熟悉C与C++的编程区别;2.熟悉C++的函数重载。

实验规定:求两个数的平方和。

规定如下:1、有int, float和long型的数据各3个;2.重载SumSqure函数求两个相同类型变量的平方和。

1、实验环节:2、添加头文献#include <iostream>和名字空间using namespace std。

若要使用cin和cout标准输入输出流, 则必须添加上述两个内容。

3、构建重载SumSqure函数。

SumSqure函数的功能是对输入的两个同类型形参a, b求其平方和, 并将结果返回。

对于输入和返回的不同类型int, float, long, 其函数内部实现代码是同样的, 所以可运用函数的重载写出三个SumSqure函数。

4、main函数中的赋值。

定义int, float, long三种类型的数据, 分别调用SumSqure函数, 测试其结果。

5、调用SumSqure函数。

注意SumSqure函数重载的调用, 根据SumSqure函数的定义可知: 实参必须是同一种类型的变量才干调用不同的SumSqure, 针对不同类型求平方和。

实验二类与对象(一)(4学时)实验名称: 类与对象(一)实验目的:1.掌握类的设计;2.掌握对象的创建;3.实现一个简朴的成员函数设计。

实验规定:求3个长方体的体积, 编写一个基于对象的程序, 数据成员涉及lenth, width, height。

规定用成员函数实现以下功能:1.由键盘分别输入3个长方体的长、宽、高;2.计算长方体的体积;3.输出3个长方体的体积。

实验环节:建立三个文献, 分别存储长方体类的声明头文献, 长方体类的定义文献和main函数测试文献。

注意: 类的头文献和类的定义实现文献的命名要一致!头文献信息:头文献长方体类的声明中, 类成员变量有:lenth,width,height;类成员函数有:V olumeCalculation(), InputData()。

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

实验二---类与对象的定义与使用
}
}
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;

C语言实验题及参考答案

C语言实验题及参考答案

实验一1、计算整数各位数字之和(10 分)输入一个3 位正整数,将其每一位的数字相加,输出和输入格式:输入一个3 位正整数。

变量数据类型为unsigned 。

输出格式:输出整数每一位相加后的整数和。

输入样例:输出样例:【参考答案】#include "" int main(){ unsigned int a,ge,shi,bai,sum;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;sum=ge+shi+bai;printf("%d\n",sum);return 0;}2、计算代数表达式(10 分)求:输入格式:输入角度x。

变量数据类型为double 。

π 为。

输出格式:输出y 的值,精确到小数点后2 位。

输入样例:输出样例:【参考答案】#include <>#include <>#define PIint main(){double x,y;scanf("%lf",&x); y=sqrt((sin(60*PI/180)+1)*(sin(30*PI/180)+1)/cos(x*PI/180));printf("%.2lf",y);return 0;}3、逆序的三位数 (10 分)程序每次读入一个正3 位数,然后输出按位逆序的数字。

有结尾的0 时,输出不应带有前导的0。

比如输入700,输入格式:每个测试是一个3 位的正整数。

输出格式:输出按位逆序的数。

输入样例:输出样例:注意:当输入的数字含输出应该是7。

【参考答案】#include ""int main(){ int a,ge,shi,bai,b;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;b=ge*100+10*shi+bai;printf("%d\n",b);return 0;}4、求整数均值 (10 分)本题要求编写程序,计算4 个整数的和与平均值。

实验二——精选推荐

实验二——精选推荐

实验⼆实验02:类与对象实验学时:6+(6)实验类型:验证实验要求:必修⼀、实验⽬的类是C++扩展数据类型,可以封装不同类型的数据成员和函数成员,类是⾯向对象程序设计的基础。

本次实验内容包括⾯向对象的基本概念、构造函数与析构函数,从实际问题抽象出类等,通过实验要求:1、理解类和对象的概念;2、了解C++在⾮⾯向对象⽅⾯对C功能的扩充与增强。

3、初步掌握使⽤类和对象编制C++程序。

4、掌握对象数组、对象指针和string类的使⽤⽅法。

5、掌握使⽤对象、对象指针和对象引⽤作为函数参数的⽅法。

6、掌握类对象作为成员的使⽤⽅法。

7、掌握静态数据成员和静态成员函数的使⽤⽅法。

8、理解友元的概念和掌握友元的使⽤⽅法。

⼆、实验内容1、输⼊下列程序。

#includeusing namespace std;class Coordinate{public:Coordinate(int x1,int y1){ x=x1;y=y1; }Coordinate(Coordinate &p);~Coordinate(){ cout<<"Destructor is called\n";}intgetx(){ return x;}intgety(){ return y;}private:intx,y;};Coordinate::Coordinate(Coordinate &p){x=p.x;y=p.y;cout<<"Copy-initialization Constructour is called\n";}int main(){Coordinate p1(3,4);Coordinate p2(p1);Coordinate p3=p2;cout<<"p3=("<return 0;}【运⾏结果截图】:将Coordinator类中带有两个参数的构造函数进⾏修改,在函数体内增添下列语句:cout<<”constructor is called.\n”;【运⾏结果截图】:【运⾏结果分析】:按下列要求进⾏调试:在主函数体内,添加下列语句:Coordinator p4;Coordinator p5(2);调试程序时会出现什么错误?为什么?如何对已有的构造函数进⾏适当修改?【运⾏结果截图】:【解释】:经过以上第(2)步和第(3)步的修改后,结合运⾏结果分析:创建不同的对象时会调⽤不同的构造函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
(1)写出程序的输出结果,并解释输出结果。
(2)按下列要求进行调试: 在主函数体内,添加下列说明语句:
TPoint p4,p5(2);
调试程序会出现什么现象?为什么?如何解决? (提示: 对已有的构造函数进行适 当修改)结合运行结果分析如何使用不同的构造函数创建不同的对象。
(3)在主函数内使用new创建不同参数动态两个动态对象,输出其坐标,并用delete删除之。运行程序,分析运行结果。
{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;
{
Aa al(1),a2(2);
();
cout<<a2.a<<endl;
return0;
}
2.检查下面的程序,找出其中的错误,并改正。然后上机调试,使程序能正常运行。
(1)
#include<iostream.h>
class Date
{
void set_date();
void show_date();
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)
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()
}
(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(); return0;
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;
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)
具体要求如下:
(1)私有成员
intn:存放满足条件的连续自然数的个数。
int *p:根据n的值申请一个动态数组用来存放求出的满足条件的n个自然数。
(2)公有成员函数
NUM(int n1):构造函数,用n1初始化n,根据n的值申请动态数组空间,使p指向该
动态数组空间。
int yes(int x):判断x是否为合数。如果是,返回1,否则返回0。
{
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;
void fun():从3开始向上试探找出n个连续的自然数,且它们都是合数,并依次存入动
态数组。
void print():输出满足条件的n个合数。
~NUM():析构函数,释放动态数组所占用的存储空间。
(3)在主函数中定义一个NUM类的对象num,求出10个连续的合数。然后通过对象num调用成员函数求出10个连续的合数,并输出计算结果。
实验二 类与对象
实验目的和要求
1.掌握类、类的数据成员、类的成员函数的定义方式。2.理解类成员的访问控制方式。
3.掌握对象的定义和操作对象的方法。4.理解构造函数和析构函数的定义与执行过程。5.掌握重载构造函数的方法。
6.了解拷贝构造函数的定义方法。
实验内容
1.下面程序中有错,在不删除和增加代码行的情况下,改正错误语句,使其正确运行。#include<iostream.h>
}
(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)
#in clude <iostream.h>
class NUM
{〃定义数据类NUM
private:
int n; int *p;
public:
NUM(i nt n1)
{
n=n1;
p=;//动态分配存放连续合数的存储空间
}
int yes(i nt x)
{
for(int i=2;i<=x/2;i++) if (x%i==0)
(4)在程序中定义个全局对象,在主函数最前添加语句:cout<<"Enter main"<<endl;
运行程序,分析运行结果。
4•完善程序,并写出运行结果
根据程序要求,完善程序后输入源程序,编译连接,并写出运行结果。
如果某个自然数除了1和它本身外还有其他因子,则这个自然数就是合数(非素数)。
试定义一个类NUM,从3开始向上试探找出n个连续的自然数,且它们都是合数。当找到 第一组连续的n个合数后,即停止查找。
相关文档
最新文档