您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > 计算机科学与技术第2次上机实验
哈尔滨工程大学《程序设计基础》实验报告基础实践二姓名:麦豆班级:学号:实验时间:2018年4月19日成绩哈尔滨工程大学计算机基础课程教学中心实验题目1:输入一个整数,如果输入的数是偶数或者负数,则输出其平方,否则输出其一半的值设计思想:将数用2取余是否为0判断奇偶,与0判断大小判断正负,调用库函数来实现平方,在if语句中用到逻辑运算符||,同时在将奇数变为一半时用到了强制类型转换.实验代码及注释:#includestdio.h#includestdlib.h#includemath.h//输入一个整数,如果输入的数是偶数或者负数,则输出其平方,否则输出其一半的值intmain(){doubley=2,z;//二次方intx;//输入的数printf(请输入一个数:);scanf(%d,&x);if(((x%2)==0)||(x0))//利用if语句,将数用2取余是否为0判断奇偶,与0判断大小判断正负{x=(int)pow((int)x,y);//调用库函数来实现平方printf(%d,x);}else{z=(double)x/2;//将x值强制转换赋给double型变量zprintf(%.1lf,z);}return0;}验证与结论:总结与心得体会:真正明白了强制类型转换不改变变量类型,仅仅给变其数值的类型.同时对逻辑运算符有了更深的认识,另外知道了pow函数的两个变量均为double型int是不适用的实验题目2:编写程序,计算购贷款,请输入购货金额,输出实际付款金额.购物折扣率如下:购货金额=500元不打折500元购货金额=1000元9折1000元购货金额8折分别用if语句,switch语句编程.设计思想:在用switch语句编写时先用if语句来对switch变量c赋值,再用switch来进行运算在用if语句编写时直接用if来对输入的数进行判断选择相应的运算语句来得到最后的结果.Switch语句实验代码及注释:#includestdio.h#includestdlib.h//编写程序,计算购贷款,请输入购货金额,输出实际付款金额intmain(){intc;//switch语句变量doublemoney;//定义变量类型printf(请输入购货金额:);scanf(%lf,&money);if(money=500)//用if语句对c赋值{c=1;}elseif(money=1000){c=2;}else{c=3;}switch(c){case1:break;case2:money=money*0.9;break;case3:money=money*0.8;break;default:printf(输入错误);}printf(实际付款金额为:%.2f\n,money);return0;}If语句实验代码及注释:#includestdio.h#includestdlib.hintmain(){doublemoney;//定义变量类型printf(请输入购货金额:);scanf(%lf,&money);if(money0)//用if对值范围进行判断{printf(金额不能为负数!);}elseif(money=500&&money=0)printf(实际付款金额为:%.2f\n,money);elseif(money=1000){money=money*0.9;printf(实际付款金额为:%.2f\n,money);}else{money=money*0.8;printf(实际付款金额为:%.2f\n,money);}return0;}验证与结论:总结与心得体会:If与switch语句各有优劣,switch语句可以提高运算速度,但相应也有一些缺点,尤其对变量c的值,有时不得不借助if语句,反而繁琐运算速度变慢实验题目3:输入四个整数,求其前两个数中较小的数与后两个数中较大的数之和.设计思想:定义6个变量,其中两个变量为较小数与较大数,将第一个数暂时存储在最小值中,将第三个数暂时存储在最大值中,利用if语句判读若第一个数不为最小值重新赋值,若第三个数不为最大值重新赋值,得到前两个数中最小值和后两个数中最大值.最后对两数求和.实验代码及注释:#includestdio.h#includestdlib.hintmain(){inta,b,c,d,minnumber,maxnumber,sum;//定义整型变量printf(请输入四个数:);scanf(%d%d%d%d,&a,&b,&c,&d);minnumber=a;//将第一个数暂时存储在最小值中maxnumber=c;//将第三个数暂时存储在最大值中if(ab){minnumber=b;//第一个数不为最小值重新赋值}if(cd){maxnumber=d;//第三个数不为最大值重新赋值}sum=minnumber+maxnumber;printf(前两个最小数与后两个最大数之和为%d,sum);return0;}验证与结论:总结与心得体会:在比较两数大小时通常会用中间变量来存储过渡,这样会容易交换大小值,当涉及到三个以上数的比较视仍可用这种思想,在比较大小中if语句是必不可少的.实验题目4:某个服装展厅宣布表所示的物品季节性打折.请使用switch和if语句编写一个程序,计算某顾客应付的款项.设计思想:将输入值除以100,再强制转换为int型得到c值,在此之前用if语句将边界值提前去掉,防止对switch语句造成干扰,同时使用if来检测非法值的输入,运用goto语句跳转使其重新输入.实验代码及注释:#includestdio.h#includestdlib.hintmain(){doublemoneya,moneyb,summoney;//机加工制品总额,手工制品总额intc;//switch变量quit:;//输入非法值让其重新输入数据用goto跳转到此printf(请输入机加工制品总金额和手工制品总金额:);scanf(%lf%lf,&moneya,&moneyb);summoney=moneya+moneyb;//计算总金额c=(int)(summoney/100);//得到switch语句变量cif(summoney0){printf(数据错误!\n);gotoquit;//输入非法值故让其重新输入数据用goto跳转到quit位置注意goto语句跳转位置}elseif(summoney==100)//将边界值用if语句处理,switch语句无法处理{summoney=moneya+moneyb*0.95;}elseif(summoney==200){summoney=moneya*0.95+moneyb*0.925;}elseif(summoney==300){summoney=moneya*0.925+moneyb*0.9;}else{switch(c)//边界值去掉用switch{case0:summoney=moneya+moneyb*0.95;break;case1:summoney=moneya*0.95+moneyb*0.925;break;case2:summoney=moneya*0.925+moneyb*0.9;break;default:summoney=moneya*0.9+moneyb*0.85;}}printf(顾客应付的款项为:%.2lf(元)\n,summoney);return0;}验证与结论:总结与心得体会: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进行判断,输出用户名与费用实验代码及注释:#includestdio.h#includestdlib.hintmain(){doubleelectric_quantity,money;longintname;printf(请输入用户名和电量:);scanf(%ld%lf,&name,&electric_quantity);if(electric_quantity=200){money=electric_quantity*0.8;}elseif(electric_quantity=300){money=200*0.8+(electric_quantity-200)*0.9;}else{money=(electric_quantity-300)*1+200*0.8+100*0.9;}if(money=100)//对电价进行判断至少为100,大于400加收总数的15%{money=100;}elseif(money=400){money=money+money*0.15;}printf(用户名:%ld,应收费为:%.2lf,name,money);return0;}验证与结论:总结与心得体会:长整型需要用%ld来输出,同时对if的使用更加熟练.
本文标题:计算机科学与技术第2次上机实验
链接地址:https://www.777doc.com/doc-5571843 .html