c++实验报告.docx

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

c++实验报告.docx

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

c++实验报告.docx

c++实验报告

C++程序设计

姓名:

学号:

班级:

 

实验一数据类型和表达式

【实验目的】

1、熟悉并学习使用C++程序编译平台VC6.0;

2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的C++程序;

3、掌握C++语言基础数据类型,熟悉变量及常量的定义和赋值方法;

4、学会使用C++算术运算符和算术表达式;

5、掌握C++程序的赋值和输入输出语句的使用方法;

6、掌握简单C++程序的编写和调试

【实验内容】

1、从键盘上输入两个int型数,比较其大小,并输出显示其中较小的数;

#include

usingnamespacestd;

intmain()

{

inta,b;

cout<<"Inputtoaandb:

"<

cin>>a>>b;

if(a>b)

cout<

if(b>a)

cout<

return0;

}

2、从键盘上输入一个int型数,一个浮点数,比较其大小,将输出其中较大的数;

#include

usingnamespacestd;

intmain()

{

inta;

floatb;

cout<<"Inputtoaandb:

"<

cin>>a>>b;

if(a>(int)b)

cout<

if(a<(int)b)

cout<

return0;

}

3、输入一摄氏温度,编程输出华氏温度。

已知;华氏温度转换为摄氏温度的计算公式如下:

其中,

表示华氏温度,

表示摄氏温度。

#include

usingnamespacestd;

intmain()

{

floatF,C;

cout<<"InputtoC:

"<

cin>>C;

F=9.0*C/5+32;

cout<

return0;

}

4、编程实现输入千米数,输出显示其英里数。

已知:

1英里=1.60934千米(用符号常量)

#include

usingnamespacestd;

#defineN1.60934

intmain()

{

floatk,m;

cout<<"Inputtok:

"<

cin>>k;

m=k/N;

cout<

return0;

}

5、输入一个int型数,将它的低4位(右四位)都置为1;

#include

usingnamespacestd;

intmain()

{

inti,j;

cout<<"Inputtoi:

"<

cin>>i;

if(i>=10000)

{

j=(i/10000)*10000+1111;

cout<

}

else

cout<<"error!

"<

return0;

}

【实验总结】

实验过程中没有错误。

cin和cout是c++中的标准输入和输出。

cin>>和cout<<就可以进行简单的输入和输出。

 

实验二预处理和语句

【实验目的】

1、熟悉并掌握使用文件包含命令;

2、熟悉并学习使用条件编译命令;

3、掌握选择语句;

4、掌握循环语句;

【实验内容】

1、编写一个程序,输入某雇员的每周工作时间(以小时计)和每小时的工资数,计算并输出他的工资。

若雇员周工作小时超过40小时,则超过部分按原工资的1.5倍的加班工资来计算。

若雇员每周工作小时超过60小时,则超过60的部分按原工资的3倍的加班工资来计算,而40到50小时的工资仍按照原工资的1.5倍的加班工资来计算。

•要求有输入提示和输出提示,如要输入雇员的工作时间和每小时的工资值时,可以提示:

“Pleaseinputemployee’sworktimeandwage_per_hour:

输出时,提示:

“Theemployee’swage:

”;

#include

usingnamespacestd;

intmain()

{

floata,b,c;

cout<<"Pleaseinputemployee’sworktimeandwage_per_hour:

"<

cin>>a>>b;

if(a>0&&a<=40)

c=a*b;

elseif(a>40&&a<=60)

c=b*40+b*1.5*(a-40);

   elseif(a>60)

c=b*40+b*1.5*20+3*b*(a-60);

cout<<"Theemployee’swage:

"<

return0;

}

2、编写一个程序,提示用户输入一个年份及这一年的第一天是星期几,输出每个月的第一天是星期几。

例如,如果用户输入2005和6,表示2005年1月1日是星期六,程序应输出如下内容:

January1,2005isSaturday

December1,2005isThursday

•用函数intComputeDay(intyear,intday)计算星期;

•在main函数完成用户输入和输出工作;

#include

#include

usingnamespacestd;

stringstr[12]={"January1,","February1","March1,","April1,","May1,",

     "June1,","July1,","August1,","September1,","October1,",

     "November1,","December1,"};

intday[12]={31,28,31,30,31,30,31,31,30,31,30,31};

stringweek[7]={"Sunday","Monday","Tuesday","Wednesday",

                 "Thursday","Friday","Saturday"};

boolIsLeapYear(intyear)

{

return(year%4==0&&year%100!

=0)||(year%400==0);

}

intmain()

{

intyear;

intdate;

cin>>year>>date;

if(IsLeapYear(year))

 day[1]+=1;

intsum=-3;

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

 sum+=day[i];

 intresult=((sum%7)+date)%7;

 if(i!

=1)

  cout<

 else

  cout<

}

return0;

}

 

3、编写贷款分期偿还程序。

一笔贷款的月还款包含偿还本金和偿还利息。

月利息可以通过月利率乘以余额(剩余本金)来计算,于是月偿还金额就等于月还款额减去月利息。

•要求用户输入贷款额、贷款年限和利率,程序输出分期还款的计划。

•如果输入贷款额度10000美元、期限1年和利率7%,程序应该输出:

LoadAmount:

10000

NumberofYears:

1

AnnualInterestRate:

7%

MonthlyPayment:

865.26

TotalPayment:

10381.21

Payment#InterestPrincipalBalance

158.33806.939193.07

253.62811.648381.43

1110.0855.26860.27

125.01860.250.01

#include

usingnamespacestd;

intmain()

{

   intyear,i;

   doublerate;

   doublemouthly_pay,total;

   doublem,n,s,amout;

   cout<<"LoadAmount:

"<

   cin>>amout;

   cout<<"NumberofYears"<

   cin>>year;

   cout<<"AnnualInterestRate"<

   cin>>rate;

   rate=rate/12;

   mouthly_pay=amout*rate*pow(1+rate,12*year)/(pow(1+rate,12*year)-1);

   total=mouthly_pay*12*year;

   cout<<"MonthlyPayment:

"<

   cout<<"TotalPayment:

"<

   cout<<"Payment#     Interest    Principal     Balance"<

   for(i=1;i<=12*year;i++)

   {

       m=amout*rate;

       n=mouthly_pay-m;

       s=amout-n;

       amout=s;

       printf("%d       %.2f      %.2f  %.2f\n",i,m,n,s);

   }

   return0;

}

【实验总结】

计算日期差时要考虑闰年和二月的特殊情况,开始编写时没有注意到。

实验时在计算利率的时候不知道利率的计算方法,在找到利率计算公式后才继续编写程序。

 

实验三指针和数组

【实验目的】

1、掌握指针的概念、学会定义和使用指针变量;

2、学习使用指针数组和指向数组的指针;

【实验内容】

1、一个班有5名学生,每个学生修了五门课,求每个学生的平均成绩,并输出每个学生的学号,每门课程的成绩及平均值。

求某门课程的平均分;

实现要求:

•分别编写2个函数实现以上2个要求,第1个函数用数组名作参数,第2个函数用指针用参数,并在函数体内用指针对数组操作。

#include

usingnamespacestd;

classstud

{

public:

intnumber;

floata[5];

floatav;

};

voidjs(stud*x)

{

intta;

x->av=0;

for(ta=0;ta<5;ta++)

x->av+=x->a[ta];

x->av=x->av/5;

cout<<"学号:

";

cout<number<

cout<<"顺序输出学生各门成绩"<

for(ta=0;ta<5;ta++)

cout<a[ta]<

cout<<"学生平均成绩:

";

cout<av<

}

intmain()

{

studstudent[5];

stud*y;

inti,j,k=0;

floatl=0;

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

{

cout<<"请输入学生的学号,各门成绩:

"<

cin>>student[i].number;

for(j=0;j<5;j++)

cin>>student[i].a[j];

}

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

{

y=&student[i];

js(y);

}

cout<<"请输入要计算的课程编号:

";

cin>>k;

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

l+=student[i].a[k-1];

l/=5;

cout<<"此课程平均分为:

"<

return0;

}

 

#include

usingnamespacestd;

classstud

{

public:

intnumber;

floata[5];

floatav;

};

voidjs(studx)

{

intn;

x.av=0;

for(n=0;n<5;n++)

x.av+=x.a[n];

x.av=x.av/5;

cout<<"学号:

";

cout<

cout<<"顺序输出学生各门成绩"<

for(n=0;n<5;n++)

cout<

cout<<"学生平均成绩:

";

cout<

}

intmain()

{

studstudent[5];

inti,j,k=0;

floatl=0;

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

{

cout<<"请输入学生的学号,各门成绩:

"<

cin>>student[i].number;

for(j=0;j<5;j++)

cin>>student[i].a[j];

}

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

{

js(student[i]);

}

cout<<"请输入要计算的课程编号:

";

cin>>k;

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

l+=student[i].a[k-1];

l/=5;

cout<<"此课程平均分为:

"<

return0;

}

2、编写一个程序,实现矩阵运算,具体要求如下:

•用函数addMatrix(inta[][COLUMN_SIZE],intb[][COLUMN_SIZE],intc[][COLUMN_SIZE],introwSize)实现矩阵相加运算;

•用函数multiplyMatrix(inta[][COLUMN_SIZE],intb[][COLUMN_SIZE],intc[][COLUMN_SIZE],introwSize)实现矩阵相乘运算;

•矩阵a和矩阵b的数据从键盘输入;

•输出矩阵相乘或相加结果即c矩阵的数据;

#include

usingnamespacestd;

voidaddMatrix()

{inti,j;

inta[3][3],b[3][3];

intc[3][3]={0};

cout<<"请输入3*3的矩阵:

"<

for(i=0;i<3;i++)

for(j=0;j<3;j++)

cin>>a[i][j];

cout<<"请输入3*3的矩阵:

"<

for(i=0;i<3;i++)

for(j=0;j<3;j++)

cin>>b[i][j];

for(i=0;i<3;i++)

for(j=0;j<3;j++)

c[i][j]=a[i][j]+b[i][j];

cout<<"矩阵相加的结果:

"<

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

cout<

cout<

}

}

voidmultiplyMatrix()

{

inti,j,k;

inta[3][3],b[3][3];

intc[3][3]={0};

cout<<"请输入3*3的矩阵:

"<

for(i=0;i<3;i++)

for(j=0;j<3;j++)

cin>>a[i][j];

cout<<"请输入3*3的矩阵:

"<

for(i=0;i<3;i++)

for(j=0;j<3;j++)

cin>>b[i][j];

for(i=0;i<3;i++)

for(j=0;j<3;j++)

for(k=0;k<3;k++)

c[i][j]+=a[i][k]*b[k][j];

cout<<"矩阵相乘的结果:

"<

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

cout<

cout<

}

}

intmain()

{

intl;

cout<<"矩阵相加1矩阵想乘2"<

cout<<"请输入要计算的编号哦:

";

cin>>l;

if(l==1)

addMatrix();

else

multiplyMatrix();

return0;

}

【实验总结】

在实验开始时不知道如何进行矩阵的计算,之后想到利用数组进行矩阵的保存于计算。

其他便没有什么问题了。

 

实验四函数和作用域

【实验目的】

1、掌握函数的定义和说明方法;

2、掌握函数调用时的传值调用、传址调用和引用调用方法;

3、掌握函数重载的方法;

4、学习使用指向字符串的指针变量;

5、掌握作用域的种类和范围;

【实验内容】

1、编写一个极坐标转换为直角坐标的程序,具体要求如下:

•在main函数中读入极坐标半径和相角;

•使用函数conver实现极坐标和直角坐标之间的转换;

•分别用传址调用和引用调用的方式调用conver函数;

#include

#include

usingnamespacestd;

voidcover(floata,floatb)

{

floatx,y;

b=b/360*2*3.14;

x=a*cos(b);

y=a*sin(b);

cout<<"直角坐标是:

("<

}

intmain()

{

floata,b;

cin>>a>>b;

cout<<"极坐标是:

("<

cover(a,b);

return0;

}

2、编写一个程序,实现浮点类型数据和复数类型数据的相乘;具体要求如下:

•用结构体定义复数类型数据;

•编写浮点类型数据乘法运算函数product;

•重载函数product实现复数类型数据相乘;

•在mian函数中通过键盘输入一对浮点数和一对复数,分别对这两对数据进行相乘计算,并输出结果;

#include

usingnamespacestd;

voidproduct(floata,floatb)

{

floatz;

z=a*b;

cout<

}

voidproduct(floatx,floaty,floata,floatb)

{

floatz,f;

z=x*y+a*b;

f=x*b+y*a;

cout<

}

structfushu

{

floatr;

floati;

}fu[3];

intmain()

{

floata,b;

cin>>a>>b;

product(a,b);

cout<<"pleaseinputa+b*i"<

cin>>fu[1].r>>fu[1].i>>fu[2].r>>fu[2].i;

product(fu[1].r,fu[2].r,fu[1].i,fu[2].i);

return0;

}

3、编写程序计算一个人的生物节律指数,它是生理、智力和情绪指数之和。

情绪周期

是一个正弦曲线,其振幅为1,周期为28天,在给定的一天内,一个人的情绪指数是

是他的年龄(以天计算)类似地,生理和智力周期也是正弦曲线,振幅为1,周期分别是23天和33天。

•编写输入年月日计算天输的函数computeday;

•编写计算生理指数的函数compute_physiological_index;

•编写计算情绪指数的函数compute_emotional_index;

•编写计算智力指数的函数compute_mentality_index;

•在主程序中输入年月日,计算生物节指数并输出;

#include

#include

#definepi3.14

usingnamespacestd;

intcomputeday(inty1,intm1,intd1,inty2,intm2,intd2)

{

inti,s=0;

inta[13]={31,28,31,30,31,30,31,31,30,31,30,31};

for(i=y1+1;i<=y2;i++)

{

if((i%4==0&&i!

=0)||(i==0))

s+=366;

else

s+=365;

}

if((y1%4==0&&y1!

=0)||(y1==0))

a[1]+=1;

for(i=0;i<=m1-2;i++)

s+=a[i];

s=s+d1;

if((y2%4==0&&y2!

=0)||(y2==0))

a[1]+=1;

for(i=0;i<=m2-2;i++)

s+=a[i];

s+=d2;

returns;

}

floatcompute_physiological_index(intt)

{

floatk,s;

intj;

j=t;

k=j/23.0*2*pi;

s=sin(k);

returns;

}

floatcompute_emotional_index(intt)

{

floatk,s;

intj;

j=t;

k=j/28.0*2*pi;

s=sin(k);

returns;

}

floatcompute_mentality_index(intt)

{

floatk,s;

intj;

j=t;

k=j/33.0*2*pi;

s=sin(k);

returns;

}

intmain()

{

intt,y1,m1,d1,y2,m2,d2;

floats,s1,s2,s3;

cout<<"请输入出生年月日"<

cin>>y

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

当前位置:首页 > 解决方案 > 学习计划

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

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