计算机科学与技术第2次上机实验 下载本文

实验题目4:某个服装展厅宣布表所示的物品季节性打折.

请使用switch和if语句编写一个程序,计算某顾客应付的款项. 设计思想:将输入值除以100,再强制转换为int型得到c值,在此之前用if语句将边界值提前去掉,防止对switch语句造成干扰,同时使用if来检测非法值的输入,运用goto语句跳转使其重新输入. 实验代码及注释: #include #include int main() {

double moneya,moneyb,summoney;//机加工制品总额,手工制品总额

int c;//switch变量

quit :;//输入非法值让其重新输入数据用goto跳转到此 printf(\请输入机加工制品总金额和手工制品总金额:\ scanf(\ summoney=moneya+moneyb;//计算总金额 c=(int)(summoney/100);//得到switch语句变量c if(summoney<0) {

printf(\数据错误!\\n\

goto quit;//输入非法值故让其重新输入数据用goto跳转到quit位置注意goto语句跳转位置 }

else if(summoney==100)//将边界值用if语句处理,switch语句无法处理 {

summoney=moneya+moneyb*0.95; }

else if(summoney==200) {

summoney=moneya*0.95+moneyb*0.925; }

else if(summoney==300) {

summoney=moneya*0.925+moneyb*0.9; } else {

switch (c)//边界值去掉用switch { case 0:

summoney=moneya+moneyb*0.95; break; case 1:

summoney=moneya*0.95+moneyb*0.925; break; case 2:

summoney=moneya*0.925+moneyb*0.9; break; default :

summoney=moneya*0.9+moneyb*0.85; } }

printf(\顾客应付的款项为:%.2lf(元)\\n\ return 0;

}

验证与结论:

总结与心得体会:switch在边界值处理上比较麻烦,有时容易出错,需要注意,一般要与if搭配使用,但switch语句提高了运行速度,goto语句慎用

实验题目5:一个电表按照如下的比率计费: 前200度电:每度0.8元; 后100度电:每度0.9元; 超过300度电:每度1元;

所有用户都是按照最少100元进行收费.如果总费用大于400元还要加收总数的15%的费用.请编写一个程序,读取用户名和用电量,并按用户名显示应收费. 设计思想:

声明长整型变量name,double型变量electric_quantity,money,用if语句来进行判断电量electric_quantity范围,最后对费用总数与400进行判断,输出用户名与费用 实验代码及注释: #include #include int main() {

double electric_quantity,money; long int name;

printf(\请输入用户名和电量:\