实验一三种基本结构.docx
《实验一三种基本结构.docx》由会员分享,可在线阅读,更多相关《实验一三种基本结构.docx(10页珍藏版)》请在冰豆网上搜索。
![实验一三种基本结构.docx](https://file1.bdocx.com/fileroot1/2023-2/1/2b6ffaea-b1c4-444e-9418-865c18450057/2b6ffaea-b1c4-444e-9418-865c184500571.gif)
实验一三种基本结构
昆明理工大学信息工程与自动化学院学生实验报告
(201—201学年第一学期)
课程名称:
结构化程序设计与C语言开课实验室:
年月日
年级、专业、班
学号
姓名
成绩
实验项目名称
实验一三种基本结构
指导教师
教师评语
教师签名:
年月日
一、实验目的
用C语言编写和调试三种基本结构的程序,包括顺序、分支与循环。
从而对三种基本结构的程序设计有比较深入的了解。
二、内容及结果
1、程序一顺序结构程序设计:
计算利息
1)程序要求:
题目
存款利息的计算。
有1000元,想存5年,可以按以下5种办法存:
(1)一次存5年期。
(2)先存2年期,到期后将本息再存3年期。
(3)先存3年期,到期后将本息再存2年期。
(4)存1年期,到期后将本息再存1年期,连续存5次。
(5)存活期存款。
活期利息每一季度结算一次。
2007年12月的银行存款利息如下:
1年期定期存款利息为4.14%;
2年期定期存款利息为4.68%;
3年期定期存款利息为5.4%;
5年期定期存款利息为5.85%;
活期存款利息为0.72%(活期存款每一季度结算一次利息)。
如果r为年利率,n为存款年数,则计算本息和的公式为
1年期本息和:
P=1000*(1+r);
n年期本息和:
P=1000*(1+n*r);
存n次1年期的本息和:
P=1000*pow(1+r,n);
活期存款本息和:
P=1000*pow(1+r/4,4n)。
说明:
1000*(1+r/4)是一个季度的本息和。
2)代码
#include
#include
intmain()
{
floatlixi1,lixi2,lixi3,lixi4,lixi5,jine;
printf("请输入存款金额:
");
scanf("%f",&jine);
lixi1=jine*(1+0.0585*5)-jine;
printf("一次存五年的利息为:
%.2f\n\n",lixi1);
lixi2=jine*(1+0.0468*2)*(1+0.054*3)-jine;
printf("先存2年,再存3年的利息为:
%.2f\n\n",lixi2);
lixi3=jine*(1+0.054*3)*(1+0.0468*2)-jine;
printf("先存3年,再存2年的利息为:
%.2f\n\n",lixi3);
lixi4=jine*pow(1+0.0414,5)-jine;
printf("存一年期,连续存5次的利息为:
%.2f\n\n",lixi4);
lixi5=jine*pow(1+0.0072/4,20)-jine;
printf("存活期存款的利息为:
%.2f\n\n",lixi5);
return0;
}
3)运行截图
2、程序二顺序结构程序设计:
房贷还款月数计算
1)程序要求:
题目
购房从银行贷了一笔贷款d,准备每月还款额为p,月利率为r,计算多少月能还清。
设d为300000元,p为6000元,r为1%。
对求得的月份取小数点后一位,对第2位按四舍五入处理。
提示:
计算还清月数m的公式如下:
m=(logp—log(p—d*r))/log(1+r)
可以将公式改写为
m=log(p/(p—d*r))/log(1+r)
C的库函数中有求对数的函数log10,是求以10为底的对数,log(p)表示logp。
2)代码
#include
#include
intmain()
{
floatd,p;
intm;
printf("请输入贷款金额和每月还款额\n");
scanf("%f,%f",&d,&p);
m=log(p/(p-d*0.001))/log(1+0.001);
printf("还清贷款月份为:
%d\n",m);
return0;
}
3)运行截图
3、程序三选择结构程序设计:
心理测试
1)程序要求:
题目
心里测试题目,至少有4种选项
2)代码
#include
voidmain()
{
charx,A,B,C,D,a,b,c,d;
printf("你这一辈子,假如只能喝一种饮料,在下面4种饮料中,你会选择哪一种作为你永远的饮品?
\nA,咖啡\nB,果汁\nC,茶\nD,水\n\n");
scanf("%c",&x);
switch(x)
{
case'a':
case'A':
printf("你的生活或爱情像新闻节目,24小时不停播放,重质又重量。
\n");break;
case'b':
case'B':
printf("你的生活或爱情像连续剧,强力放送。
\n");break;
case'c':
case'C':
printf("你的生活或爱情像节日的特别节目,重质不重量。
\n");break;
case'd':
case'D':
printf("你的生活或爱情是正常的。
\n");
}
}
3)运行截图
4、程序四选择结构程序设计:
身高、体重测试
1)程序要求:
题目
身高和体重问题再加上性别,输入身高和体重以及性别,查公式,输出偏瘦、正常、偏胖。
2)代码
#include
intmain()
{
charch;
intz;
floatheight,weight,m;
printf("请输入性别男(b),女(g)和身高、体重\n");
scanf("%c%f%f",&ch,&height,&weight);
switch(ch)
{
case'b':
z=105;break;
case'g':
z=110;
}
m=height-z;
if(weight>m*(1+1/10))printf("超重了\n");
elseif(weightelseprintf("正常\n");
return0;
}
3)运行截图
5、程序五循环结构程序设计:
小学生四则运算测试
1)程序要求:
题目
编写一个程序,自动生成10道四则运算题,做完后显示做对和做错的题数,并显示是否要继续答题,根据选择再生成题或结束测试。
2)代码
#include
#include
#defineN10
#include
main()
{
inti,j,right=0,error=0;
inta,b,op,result,input;
charops,jixu;
do
{
srand(time(NULL));
printf("请计算下列算术题的结果:
\n");
for(i=1;i<=N;i++)
{
printf("第%-2d题:
",i);
a=rand()%100;
b=rand()%99+1;
op=rand()%4;
switch(op)
{
case0:
ops='+';
result=a+b;
break;
case1:
ops='-';
if(a>=b)
result=a-b;
else
result=b-a;
break;
case2:
ops='*';
result=a*b;
break;
case3:
ops='/';
result=a/b;
break;
default:
break;
}
if(a
printf("%d%c%d=",b,ops,a);
else
printf("%d%c%d=",a,ops,b);
scanf("%d",&input);
if(result==input)
{
printf("\b答案正确!
\n");
right=right+1;
}
else
{
printf("答案错误!
\n");
error=error+1;
}
}
printf("练习结果:
你做对了%d道题,做错了%d道题。
\n",right,error);
printf("continue?
Y/N\n");
getchar();
scanf("%c",&jixu);
}
while(jixu=='Y'||jixu=='y');
}
3)运行截图
6、程序六循环结构程序设计:
车牌号码推理
1)程序要求:
题目
一辆卡车违反交通规则,撞人后逃跑。
现场有三个人目击事件,但都没有记住车号,只记下车号的一些特征。
一共有4位数。
甲说:
牌照的前两位数字相同。
乙说:
牌照的后两位数字不同,与前两位数也不同,是前两位数相乘的结果。
丙说:
最后一位是1或者是6。
请根据以上的线索求出车号的可能性。
2)代码
#include
voidmain()
{
inta,b,c,d;
for(a=0;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
if(a==b&&c!
=d&&a*b==c*10+d&&d==1||a==b&&c!
=d&&a*b==c*10+d&&d==6)
printf("%d\n",a*1000+b*100+c*10+d);
}
3)运行截图
三、实验结果、分析和结论(误差分析与数据处理、成果总结等。
其中,绘制曲线图时必须用计算纸)
这次实验开始时最基本的一些格式由于不熟悉程序还出了一些错,经过自己和同学查找到错误并改正,程序才编译成功。
虽然成功了,但仍然存在一些问题,比如说程序不够简洁、清楚等。
通过这次上机实验,我认为我们要多编一些程序,并记住一些常用的格式,还要与同学多交流,这样才有利于我们提高。
通过这次实验,我们学习了选择结构程序设计,如用if语句实现选择结构、用switch语句实现多分支选择结构等,以及选择结构的嵌套,还认识了一些关系运算符和关系表达式、逻辑运算符和逻辑表达式、条件运算符和条件表达式,通过选择结构我们可以根据某个条件是否满足来决定是否执行指定的操作任务,或者从给定的操作中选择其一,这样在一些问题中就可以很好的处理。