程序设计基础C++ 实验报告3信息开发.docx

上传人:b****4 文档编号:4884435 上传时间:2022-12-11 格式:DOCX 页数:12 大小:420.88KB
下载 相关 举报
程序设计基础C++ 实验报告3信息开发.docx_第1页
第1页 / 共12页
程序设计基础C++ 实验报告3信息开发.docx_第2页
第2页 / 共12页
程序设计基础C++ 实验报告3信息开发.docx_第3页
第3页 / 共12页
程序设计基础C++ 实验报告3信息开发.docx_第4页
第4页 / 共12页
程序设计基础C++ 实验报告3信息开发.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

程序设计基础C++ 实验报告3信息开发.docx

《程序设计基础C++ 实验报告3信息开发.docx》由会员分享,可在线阅读,更多相关《程序设计基础C++ 实验报告3信息开发.docx(12页珍藏版)》请在冰豆网上搜索。

程序设计基础C++ 实验报告3信息开发.docx

程序设计基础C++实验报告3信息开发

实验项目(03)—实验报告

项目

名称

编写简单程序

指导教师

曹晶华

实验室

A7-315

实验日期

2012年3月31日

学生

姓名

程思航

成绩

实验步骤(算法、代码、方法)

(1)求一元二次方程ax2+bx+c=0的根。

其中系数a(a≠0)、b、c的值由键盘输入。

分析:

输入系数a(a≠0)、b、c后,令delta=b2–4ac,结果有三种情况:

处理:

若delta=0,方程有两个相同实根;

若delta>0,方程有两个不同实根;

若delta<0,方程无实根。

输出:

方程有两个相同实根为,方程有两个不同实根分别为,方程无实根

代码:

#include

#include

usingnamespacestd;

voidmain(){

//因为不是整形,所以不可用int

floata,b,c,delta;

floatx1,x2,x;

cout<<"◎一般方程:

a^2+bx+c=0"<

cout<<"◎请分别输入系数a,b,c的值(a≠0):

"<

cin>>a>>b>>c;

//先输入在列等式否则会显示没有初始化

delta=b*b-4*a*c;

if(delta<0){cout<<"△该方程无实根!

"<

else{if(0==delta){x=(-b)/2/a;cout<<"△该方程有两个相等时实根:

x1=x2="<

else{x=sqrt(delta);x1=(-b+x)/2/a;x2=(-b-x)/2/a;

cout<<"△该方程有两个不相等时实根:

x1="<

}

}

(2)某商店出售四种商品:

A商品每公斤2.75元;B商品每个12.5元;C商品每米26.8元;D商品每台512元,超过3台优惠10%,超过8台优惠15%。

为其设计一个计算价格的程序(输入购买四种商品的数量,计算出应付款金额并显示付款金额明细单)。

分析

输入:

购买商品A,B,C,D的数量countA,countB,countC,countD。

处理:

商品付款金额sum=A商品数量*单价+B商品数量*单价+C商品数量*单价+D商品数量*单价

若D商品数量小于3,则D商品的总金额为单价*D商品数量;

若D商品数量大于3而小于8,则D商品的总金额为优惠10%后的单价*实际数量;

若D商品数量大于于8,则D商品的总金额为优惠15%后的单价*实际数量;

输出:

计算后的总金额sum。

代码:

#include

usingnamespacestd;

voidmain(){

doublecountA,countB,countC,countD;

doublesumA,sumB,sumC,sumD;

doublesum;

cout<<"★输入A商品的公斤数:

";

cin>>countA;

cout<<"★输入B商品的个数:

";

cin>>countB;

cout<<"★输入C商品的米数:

";

cin>>countC;

cout<<"★输入D商品的台数:

";

cin>>countD;

sumA=countA*2.75;

sumB=countB*12.5;

sumC=countC*26.8;

sumD=countD*512;

sum=sumA+sumB+sumC+sumD;

if(countD>=8){sumD*=0.85;}

else{if(countD>=3){sumD*=0.9;}};

cout<<"★A商品"<

cout<<"★B商品"<

cout<<"★C商品"<

cout<<"★D商品"<

cout<<"●●总计:

"<

"<

}

(3)输入一个int型的百分制成绩d,程序负责将其转换为等级字母并输出。

若d处于90到100之间,输出“grade=A”;若d处于80到89之间,输出“grade=B”;若d处于70到79之间,输出“grade=C”;若d处于60到69之间,输出“grade=D”;若d为其他分数值时,输出“grade=E”。

若输入数据不处于0~100之间时,提示出错信息后结束程序。

算法分析

将百分制成绩被10除后的值记为m,结果只能在10,9,8,7,6,5…中取值。

可使用case语句完成相应的操作,输入其值对应的等级信息。

算法描述如下:

M=10或M=9:

输出“A”

M=8:

输出“B”

M=7:

输出“C”

M=6:

输出“D”

M=其他:

输出“E”

若输入数据不处于0~100之间时,提示出错信息后结束程序。

代码:

#include

usingnamespacestd;

intmain(){

inti,score;

cout<<"☆你考试考了多少分?

(0~100):

";

cin>>score;

if(score>100||score<0){cout<<"分数值必须在0到100之间!

";}

else{i=score/10;switch(i){

case10:

case9:

cout<<"Grade=A!

"<

break;

case8:

cout<<"Grade=B!

"<

break;

case7:

cout<<"Grade=C!

"<

break;

case6:

cout<<"Grade=D!

"<

break;

default:

cout<<"Grade=E!

"<

//break;(这个break可有可无)

}}

return0;

}

(4)运输公司对所运货物实行分段计费。

设运输里程为s,则运费打折情况如下:

s<250不打折扣

250<=s<5002%折扣

500<=s<10005%折扣

1000<=s<20008%折扣

2000<=s<300010%折扣

3000<=s15%折扣

设每公里每吨的基本运费为p,货物重量为w,总运输里程在某段中的里程为Δs,折扣为d,则该段运费为:

p*w*Δs*(1-d)

设计程序,当输入p、w和s后,计算运费f。

•算法分析

总费用为各段费用之和,可采用不加break的switch语句。

分析:

switch语句要求条件表达式取值为确定的若干个开关量,而不能使用关系表达式,用里程s进行判断似乎不符合条件。

但是分析发现,里程s的分段点均是250的倍数,因此,将里程s除以250,取整数商c,可得到若干整数值。

因此算法描述如下:

3000>=s

15%折扣

2000<=s<3000

10%折扣

1000<=s<2000

8%折扣

500<=s<1000

5%折扣

250<=s<500

2%折扣

s<250

不打折扣

代码:

#include

usingnamespacestd;

intmain(){

intc;

doubles,p,w,d;

floatf;

cout<<"★每公里每吨的基本运费p,货物重量为w和里程s:

";

cin>>p>>w>>s;

c=s/250;

f=0;

switch(c){

default:

d=0.15;f+=p*w*(s-3000)*(1-d);

case8:

case9:

case10:

case11:

d=0.1;f+=p*w*(s-2000)*(1-d);

case4:

case5:

case6:

case7:

d=0.08;f+=p*w*(s-1000)*(1-d);

case2:

case3:

d=0.05;f+=p*w*(s-500)*(1-d);

case1:

d=0.02;f+=p*w*(s-250)*(1-d);

case0:

d=0;f+=p*w*s*(1-d);

}

cout<<"△运输单价:

"<

"<

"<

cout<<"☆☆折扣后运费:

"<

return0;

}

 

实验结果(结论及

分析)

第一题结果

第二题结果

第三题结果

第四题结果

教师

评语

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

当前位置:首页 > 高等教育 > 哲学

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

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