C++实验报告.docx

上传人:b****6 文档编号:8559810 上传时间:2023-01-31 格式:DOCX 页数:37 大小:24.28KB
下载 相关 举报
C++实验报告.docx_第1页
第1页 / 共37页
C++实验报告.docx_第2页
第2页 / 共37页
C++实验报告.docx_第3页
第3页 / 共37页
C++实验报告.docx_第4页
第4页 / 共37页
C++实验报告.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

C++实验报告.docx

《C++实验报告.docx》由会员分享,可在线阅读,更多相关《C++实验报告.docx(37页珍藏版)》请在冰豆网上搜索。

C++实验报告.docx

C++实验报告

年级

2014级

班号

 

 学号

 

专业

软件工程

 姓名

 

实验名称

一、I/OStream应用、文件操作

实验

类型

设计型

综合型

创新型

1.了解C++在非面向对象方面对C功能的扩充与增强;

2.掌握C++格式化的输入输出方法;

3.掌握文件的输入输出方法操作。

实验题目:

1、基础题:

教材P47第2.24、2.25题;P325第7.13题

2、提高题:

写程序计算一门课程的成绩(满分100)。

这门课的记录包含在一个名为in.txt的文件中,该文件将将用作程序的输入文件。

输入文件严格遵循以下格式:

每一行顺序包含一名学生的姓氏、一个空格、学生名字、又一个空格,最后是学生10次测验的分数(int类型,且全部包含在一行中)。

每个分数以空格分隔。

程序从这个文件读取输入,将输出发送到另一个文件(文件名为out.txt)。

输出文件中的数据比输入文件中的数据各行末尾多一个平均分(该学生10次测验的平均分,double类型)。

2.24.一元硬币换成1,2,5分硬币

#include

#include

usingnamespacestd;

intmain()

{

inta,b,c,S,i=0,sum=100,o=1,t=2,f=5;

for(a=0;a<=(sum/o);a++)

{

for(b=0;b<=(sum/t);b++)

{

for(c=0;c<=(sum/f);c++)

{

S=a*o+b*t+c*f;

if(S==sum)

{

cout<

(2)<

<

(2)<

i++;

}

}

}

}

cout<<"1元兑换成1、2、5分总共有"<

system("pause");

return0;

}

实验结果

100=26*1+37*2+0*5

100=27*1+4*2+13*5

100=27*1+9*2+11*5

......

100=96*1+2*2+0*5

100=98*1+1*2+0*5

100=100*1+0*2+0*5

1元兑换成1、2、5分总共有541种方法

2.25。

输入两个整数,由小到大输出

#include

usingnamespacestd;

intmain()

{

inta,b;

int&m=a,&n=b;

cout<<"输入两个整数:

";

cin>>a>>b;

cout<<"由小到大输出:

";

(a>b)?

(cout<

(cout<

system("pause");

return0;

}

实验结果

输入两个整数:

9865

由小到大输出:

6598

7.13.小写字母转换成大写字母

#include

#include

usingnamespacestd;

intmain()

{

fstreamin("file1.txt",ios:

:

in);

if(!

in){

cout<<"Erroropenfile1"<

return1;

}

fstreamout("file2.txt",ios:

:

out);

if(!

out){

cout<<"Erroropenfile2"<

return2;

}

charch;

while(in.get(ch)){

if(ch>='a'&&ch<='z')

{

ch=ch-32;

out.put(ch);

}

elseout.put(ch);

//cout<

}

in.close();

out.close();

system("pause");

return0;

}

提高题

#include

#include

#include

usingnamespacestd;

structstudent{

stringX,M;

intscore[10];

};

intmain(){

fstreamin("in.txt",ios:

:

in);

if(!

in){

cout<<"Erroropenfile1;"<

return1;

}

fstreamout("out.txt",ios:

:

out);

if(!

in){

cout<<"Erroropenfile2;"<

return2;

}

studentstu[4];

for(inti=0;i<4;i++){

intsum=0;

doubleavg=0.0;

in>>stu[i].X>>stu[i].M;

out<

for(intj=0;j<10;j++){

in>>stu[i].score[j];

out<<""<

sum+=stu[i].score[j];

//while(in.eof())break;

}

avg=sum/10.0;

out<<""<

}

in.close();

out.close();

return0;

}

实验结果:

欧阳浩辰45646465595.4

上官北45656265965.4

季微然42566556424.5

李维58545864655.6

 

教师签名:

年月日

年级

2014级

班号

 

 学号

 

专业

软件工程

 姓名

 

实验名称

二、类与对象设计、友元函数与运算符重载

实验

类型

设计型

综合型

创新型

1.理解和对象的概念,掌握声明类和定义对象的方法;

2.掌握构造函数和析构函数的实现方法;

3.掌握对象数组、对象指针和string类的使用方法;

4.掌握静态数据成员和静态成员函数的使用方法;

5.理解友元的概念和掌握友元的使用方法。

实验题目:

1、基础题:

教材P134第3.32、3.33、3.34题

2、提高题:

教材P134第3.35、3.36题

3、选做题:

参考第3.32题,建立类球体类Sphere和正方体类Cube,要求能够计算球体、正方体的体积。

3.32圆柱体积

#include

usingnamespacestd;

classcylinder{

private:

doubler;

doubleh;

public:

cylinder(doublei,doublej)

{r=i;

h=j;

}

doublevol()

{doubleV;

constdoublePI=3.14;

V=PI*r*r*h;

returnV;

}

};

intmain()

{

cylinderA(1.1,2.2);

cout<<"圆柱体积:

"<

return0;

}

实验结果:

圆柱体积:

8.35868

3.33显示qu*price

#include

usingnamespacestd;

classbook{

private:

intqu,price;

public:

book(inti)

{

qu=i;

price=10*qu;

}

intshow()

{

returnprice*qu;

}

};

intmain()

{

bookA[5]={1,2,3,4,5};

for(inti=0;i<5;i++)

{

cout<

}

return0;

}

实验结果:

104090160250

3.34显示qu*price(对象数组)

#include

usingnamespacestd;

classbook{

private:

intqu,price;

public:

book(inti)

{

qu=i;

price=10*qu;

}

intshow()

{

returnprice*qu;

}

};

intmain(){

book*pa;

bookA[5]={1,2,3,4,5};

pa=A+4;

for(inti=0;i<5;i++)

{cout<show()<<"";

pa--;

}

return0;

}

实验结果:

250160904010

3.35.显示Stock的值

#include

usingnamespacestd;

classStock{

private:

charstockcode[10];

intquan;

doubleprice;

public:

Stock(charna[],intq=1000,doublep=8.98);

voidprint();

};

Stock:

:

Stock(charna[],intq,doublep)//类外定义,不带默认参数值

{

for(inti=0;i<10;i++)

{

stockcode[i]=na[i];

//while(stockcode[i]='\0')break;

}

quan=q;

price=p;

}

voidStock:

:

print()

{

for(inti=0;i<10;i++)

{

if(stockcode[i]=='\0')break;

cout<

}

cout<<""<

}

intmain(){

Stocksto1("600001",3000,5.67);

sto1.print();

Stocksto2("600001");

sto2.print();

return0;

}

实验结果

60000130005.67

60000110008.98

3.36学生成绩

#include

#include

usingnamespacestd;

classStudent{

private:

stringname;

stringstu_no;

floatscore;

staticintcount;

staticfloatsum;

staticfloatavg;

public:

Student(stringstr1,stringstu_no1,floatscore1);

voidshow();

voidshow_count_avg();

};

Student:

:

Student(stringstr1,stringstu_no1,floatscore1)

{

name=str1;

stu_no=stu_no1;

score=score1;

count++;

sum+=score1;

avg=sum/count;

}

voidStudent:

:

show()

{

cout<<"\n姓名:

"<

cout<<"\n学号:

"<

cout<<"\n成绩:

"<

}

voidStudent:

:

show_count_avg()

{

cout<<"\n总人数:

"<

cout<<"\n平均分:

"<

cout<<"\n*******************************"<

}

intStudent:

:

count=0;

floatStudent:

:

sum=0.0;

floatStudent:

:

avg=0.0;

intmain()

{

Studentstu1("里美","20140001",90);

stu1.show();

stu1.show_count_avg();

Studentstu2("欧浩","20140002",80);

stu2.show();

stu2.show_count_avg();

Studentstu3("网飞","20140003",75);

stu3.show();

stu3.show_count_avg();

return0;

}

实验结果:

姓名:

里美

学号:

20140001

成绩:

90

总人数:

1

平均分:

90

*******************************

姓名:

欧浩

学号:

20140002

成绩:

80

总人数:

2

平均分:

85

*******************************

姓名:

网飞

学号:

20140003

成绩:

75

总人数:

3

成绩:

81.6667

提高题:

求球和正方体体积

#include

usingnamespacestd;

constdoublePI=3.14;

classSphere{

public:

Sphere(doubler)

{

radius=r;

V_Sphere=4.0/3*PI*radius*radius*radius;

}

voidvol()

{

cout<<"Sphere'svolumeis:

"<

}

private:

doubleradius,V_Sphere;

};

classCube{

public:

Cube(doubler)

{

radius=r;

V_Cube=radius*radius*radius;

}

voidvol()

{

cout<<"Cube'svolumeis:

"<

}

private:

doubleradius,V_Cube;;

};

intmain()

{

SphereS(3.0);

CubeC(4.0);

S.vol();

C.vol();

return0;

}

实验结果:

Sphere'svolumeis:

113.04

Cube'svolumeis:

64

 

教师签名:

年月日

年级

2014级

班号

 

 学号

 

专业

软件工程

 姓名

 

实验名称

 三、派生类与继承

实验

类型

设计型

综合型

创新型

1.掌握派生类的声明方法和派生类构造函数的定义;

2.掌握不同继承方式下,基类成员在派生类中的访问属性;

3.掌握在继承方式下,构造函数与析构函数的执行顺序与构造规则;

4.学习虚基类在解决二义性问题中的作用。

 实验题目:

1、基础题:

教材P196第4.20、4.21题

2、提高题:

教材P134第4.22题

3、选做题:

实验二选做题的加强版,设计一个图形类Shape作为父类,圆柱体类Cylinder、球体类Sphere和正方体类Cube为其子类,要求能够图形的体积。

4.20矩形,三角形面积(虚函数)

#include

usingnamespacestd;

classarea_cl{

protected:

doubleheight;

doublewidth;

public:

area_cl(doubler,doubles)

{

height=r;width=s;

}

virtualdoublearea()=0;

};

classrectangle:

publicarea_cl{

public:

rectangle(doubler,doubles):

area_cl(r,s)

{};

doublearea()

{returnheight*width;}

};

classisosceles:

publicarea_cl{

public:

isosceles(doubler,doubles):

area_cl(r,s)

{};

doublearea()

{

return0.5*height*width;

}

};

intmain()

{

area_cl*op;

rectangleor(10.0,5.0);

isoscelesoi(4.0,6.0);

op=∨

cout<<"rectangle'sareais:

"<area()<

op=&oi;

cout<<"isosceles'sareais:

"<area()<

return0;

}

实验结果:

rectangle'sareais:

50

isosceles'sareais:

12

4.22学生老师信息

#include

#include

usingnamespacestd;

classperson{

public:

person();

voidprint();

protected:

stringnum;

stringname;

};

classstudent:

publicperson{

protected:

intclass_num;

floatscore;

public:

student();

voidprint_stu();

};

classteacher:

publicperson{

protected:

stringjob;

stringsection;

public:

teacher();

voidprint_teh();

};

person:

:

person()

{

stringnum1;

stringname1;

cout<<"输入编号:

";

cin>>num1;

cout<<"输入姓名:

";

cin>>name1;

num=num1;

name=name1;

}

voidperson:

:

print()

{

cout<<"编号:

"<

cout<<"姓名:

"<

}

student:

:

student()

{

intclass_num1;

floatscore1;

cout<<"输入班号:

";

cin>>class_num1;

cout<<"输入成绩:

";

cin>>score1;

class_num=class_num1;

score=score1;

}

voidstudent:

:

print_stu()

{

cout<<"*****学生信息:

*****"<

print();

cout<<"班号:

"<

cout<<"成绩:

"<

cout<

}

teacher:

:

teacher()

{

stringjob1;

stringsection1;

cout<<"输入职称:

";

cin>>job1;

cout<<"输入部门:

";

cin>>section1;

job=job1;

section=section1;

}

voidteacher:

:

print_teh()

{

cout<<"*****老师信息:

*****"<

print();

cout<<"职称:

"<

cout<<"部门:

"<

cout<

}

intmain()

{

studentstu;

stu.print_stu();

teacherteh;

teh.print_teh();

return0;

}

实验结果:

输入编号:

20140001

输入姓名:

偶偶

输入班号:

01

输入成绩:

96

*****学生信息:

*****

编号:

20140001

姓名:

偶偶

班号:

1

成绩:

96

输入编号:

0001

输入姓名:

大大

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1