高级语言程序设计实验报告
高级语言程序设计实验报告
实验一选择结构程序设计
班级 179 学号 2011179 姓名
一、实验目的
1、熟悉VC6.0编程环境。
2、进一步熟悉用VC6.0调试C语言源程序的过程。
3、熟练使用关系表达式和逻辑表达式作为if语句的条件判断。
4、熟练掌握if语句和switch语句的使用方法。
二、实验内容及步骤
1、身高预测
每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。
设faHeight为其父身高,moHeight为其母身高,身高预测公式为:
男性成人时身高 = (faHeight + moHeight) * 0.54(cm)
女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm)
此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%。
编程从键盘输入小孩的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M 表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示喜爱,输入字符N表示不喜爱),利用给定公式和身高预测方法对小孩的身高进行预测。
程序代码:
#include"stdio.h"
#include"conio.h"
main()
{
char sex,sports,diet;
double faHeight,moHeight,height;
printf("请输入性别(M表示男/F表示女)\n");
scanf("%c",&sex);
printf("请输入父亲身高和母亲身高\n");
scanf("%lf%lf",&faHeight,&moHeight);
printf("是否喜欢体育锻炼?(Y/N)\n");
sports=getche();
printf("\n");
printf("是否有良好的饮食习惯?(Y/N)\n");
diet=getche();
printf("\n");
if(sex=='F'||sex=='f')
height=(faHeight*0.923+moHeight)/2;
if(sex=='M'||sex=='m')
height=(faHeight+moHeight)*0.54;
if(sports=='Y'||sports=='y')
height=1.02*height;
if(diet=='Y'||diet=='y')
height=1.015*height;
printf("这个孩子成人后的身高为%lf厘米\n",height);
}
设计多组测试数据对程序进行测试,并观察运行结果。将程序的运行情况写在下面。
『运行结果:』
2、使用switch语句实现下面程序。
输入一个学生的两门课成绩(百分制),计算该生的总分并要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。总分在180分以上为‘A’,160~179分为‘B’,140~159分为‘C’,120~139分为‘D’,120分以下为‘E’。
具体要求:
①学生的两门课成绩通过键盘输入,成绩应该都为整数,输入之前要有提示信息。
②若输入的成绩不是百分制成绩,则给出错误提示信息,并且不再进行下面的等级评价;若输入的成绩是百分制成绩,则计算总分,并根据要求评价等级。
③按下面形式输出结果:
总分----〉等级
如:186----〉A
把正确的程序源代码写在下面。
程序代码:
#include
#include
int main()
{
int score,total=0;
int i;
for(i=0;i<2;)
{
printf("\n请输入学生第%d门课的成绩(注意: 成绩应该为百分制的整数)\n",i+1); scanf("%d",&score);
if(score>=0&&score<=100)
{
total+=score;
i++;
}
else
{
printf("输入错误,请重新输入!\n");
continue;
}
}
printf("\n总分 ----〉等级\n");
switch(total/10)
{
case 20:
case 19:
case 18:
printf("%4d ----〉A\n",total);
break;
case 17:
case 16:
printf("%4d ----〉B\n",total);
break;
case 15:
case 14:
printf("%4d ----〉C\n",total);
break;
case 13:
case 12:
printf("%4d ----〉D\n",total);
break;
default:
printf("%4d ----〉E\n",total);
break;
}
getch();
return 1;
}
}
设计多组测试数据对程序进行测试,并观察运行结果。将程序的运行情况写在下面。『运行结果:』
3、【选作】
给一个不多于5位的正整数,要求:
①求出它是几位数;
②分别打印出每一位数字;
③按逆序打印出各位数字,例如原数为321,应输出123。程序代码:
#include
#include
int main()
{
where:
printf("请输入一个不多于5位的正整数:");
int len;
char num[6];
scanf("%s",num);
len=strlen(num);
putchar('\n');
if(len>5)
{
printf("这个数多于5位,请重新输入:");
goto where;
}
else
printf("这个数是 %d 位数. \n",len);
putchar('\n');
int g;
for(g=0;g printf("第 %d 数为 %d\n",g+1,num[g]-48); putchar('\n'); printf("逆序输出为:\n"); for(g=len-1;g>=0;g--) printf("%d ",num[g]-48); getchar(); getchar(); return 0; } 『运行结果:』 三、实验心得