C语言实验报告(三)

实验项目:

4.3.1:if语句的应用

4.3.2:switch-case的应用

4.3.3:switch-case嵌套if语句的应用

4.3.4:switch-case结构嵌套的应用

4.3.5:分析程序

项目实训:计算器的实现

姓名:徐志平 实验地点:家  实验时间:2020.3.28

一、实验目的与要求

1.掌握C语言逻辑值的表示方法(0代表“假”,1代表“真”)

2.学会正确地使用关系表达式和逻辑表达式

3.掌握各种形式的if语句语法和使用方法。if语句中if和else的匹配关系,以及if语句的嵌套。

4.熟练掌握switch语句的语法和使用方法,注意在switch语句中break语句的用法及switch语句的嵌套

二、实验内容

1、实验练习:if语句的应用

1、问题的简单描述:读人3个表示箱子长、宽、高的整数值,判断并输出该箱子是正方体还是长方体。

2、实验代码:

1 #include

2 intmain()3 {4 intl,w,h;5 printf("请输入箱子的长、宽、高:\n");6 scanf("%d%d%d",&l,&w,&h);7 if(l==w&&l==h)8 printf("该箱子是正方体。\n");9 else

10 printf("该箱子是长方体。\n");11 return 0;12

13 }

3、问题分析:不能直接用l=w=h,要用于&&。

2、实验练习:switch-case语句的应用

1问题的简单描述:

编写一程序实现如下功能,商店有打印纸(18元/本)、墨盒(132元/个)、光盘(4.5元/片)出售,商店进行优惠酬宾活动。具体做法如下:顾客购买商品的总额达到了100元,优惠5%;达到200元以上,优惠6%;达到了300元以上,优惠7%;达到了400元以上,优惠8%;达到了500元以上,优惠10%,根据不同的购买量,打印应付货款。

2实验代码:

1 #include

2 intmain()3 {4 float a,b,c,x;/*a,b,c分别为打印纸、墨盒、光盘的数量,x为顾客应付款*/

5 int sum;/*sum为 顾客购买商品总和*/

6 printf("请输入打印纸、墨盒、光盘的数量:\n");7 scanf("%f,%f,%f",&a,&b,&c);8 sum=18*a+132*b+4.5*c;9 switch(sum/100)10 {11 case 0:x=sum;12 break;13 case 1:x=0.95*sum;14 break;15 case 2:x=0.94*sum;16 break;17 case 3:x=0.93*sum;18 break;19 case 4:x=0.92*sum;20 break;21 default:x=0.90*sum;22 break;23 }24 printf("应付款数:%.2f\n",x);25 return 0;26

27

28 }

3、问题分析:用switch时,定义sum不能用浮点型数据定义,要用整型、字符型或枚举类型,否则会出错。

3、实验练习:switch-case嵌套if语句的应用

1问题的简单描述:输入某一年月,输出该月的天数。

2实验代码:

1 #include

2 intmain()3 {4 intyear,month,days;5 printf("Please enter year and month:\n");6 scanf("%d%d",&year,&month);7 switch(month)8 {9 case 2:if(year%4==0&&year%100!=0||year%400==0)10 printf("day=29");11 else

12 printf("day=28");13 break;14 case 1:printf("day=31");break;15 case 3:printf("day=31");break;16 case 5:printf("day=31");break;17 case 7:printf("day=31");break;18 case 8:printf("day=31");break;19 case 10:printf("day=31");break;20 case 12:printf("day=31");break;21 case 4:printf("day=30");break;22 case 6:printf("day=30");break;23 case 9:printf("day=30");break;24 case 11:printf("day=30");break;25 break;26 return 0;27 }28 }

3、问题分析:主要是运用逻辑运算符,其他的没什么问题。

4、实验练习:switch-case结构嵌套的运用

1问题的简单描述:

编写一个自动售货机的程序,改程序有以下功能:有二级菜单,一级菜单是商品类型的选择;二级菜单是具体商品的选择(商品价格和品种可以自拟)。顾客先选择商品类型,然后选择具体商品,输入购买数量。自动售货机根据选择的商品和输入的数量,计算并显示所选商品总金额。

2实验代码:

1 #include

2 main()3 {4 intx,n,y;5 float sum=0.0;6 printf("请选择: 1.日用品 2.文具 3.食品\n");7 scanf ("%d",&x);8 switch(x)9 {10 case 1: printf("请选择: 1.牙刷(3.5元/支) 2. 牙膏(6.2元/支)\n");11 printf ("3.肥皂(2元/块) 4.毛巾(8.6元/条)\n");12 scanf ("%d",&y);13 printf ("数量?");14 scanf ("&d",&n) ;15 switch(y)16 {17 case 1:sum=3.5*n;break;18 case 2:sum=6.2*n;break;19 case 3:sum=2*n;break;20 case 4:sum=8.6*n;break;21 }22 break;23 case 2: printf("请选择: 1笔(3元/支) 2.笔记本(1.2 元/个)\n");24 printf("3. 文件夹(12元/个) 4.文具盒(8.6 元/个)\n");25 scanf ("%d",&y);26 printf ("数量?");27 scanf ("%d",&n);28 switch(y)29 {30 case 1: sum=3*n; break;31 case 2: sum=1.2*n; break;32 case 3: sum=12*n; break;33 case 4: sum=8.6*n; break;34 }35 break;36 case 3: printf("请选择: 1.白糖(3.6元/包) 2. 盐(1元/包)\n");37 printf("3 .饼(2元/个) 4.方便面(3.6 元/条) \n");38 scanf ("%d",&y);39 printf("数量?");40 scanf ("%d",&n);41 switch(y)42 {43 case 1: sum=3.6*n; break;44 case 2: sum=1*n; break;45 case 3: sum=2*n; break;46 case 4: sum=3.6*n; break;47 }48 break;49 }50 printf("总计:%2f元\n",sum);51 return 0;52 }

3、问题分析:主要是中英文的切换,容易出错。

5、实验项目:分析程序

1问题的简单描述:运行下列程序,分析输出的结果,并写入实验报告

2实验代码:

更改前

1 #include

2 intmain()3 {4 double x=1000/3.0;5 double y=x-333.0;6 double z=3*y-1.0;7 printf("x=%1f\n",x);8 printf("y=%1f\n",y);9 printf("z=%1f\n",z);10 if(z==0)11 printf("z=0.\n");12 else

13 printf("z不等于0.\n");14 return 0;15 }

实验结果:

更改后

1 #include

2 intmain()3 {4 int num=20;5 if(5

8 printf("%d out of range (5,10)!\n",num);9 }

实验结果:

3问题描述:于数学的运算符不同,不能直接用5

三、项目实训:计算器的实现

1、设计思路:实现计算器的加减乘除的简单计算

2、流程图

3、设计过程中遇到的问题及改进的方法:

(1)改进了被除数为0的情况;

(2)只能算加减乘除和取余。

4、代码

1 #include

2 main()3 {4 inta,b;5 charm;6 printf("请输入要计算式子:\n");7 scanf("%d %c %d",&a,&m,&b);8 if(m==‘+‘)9 printf("%d+%d=%d\n",a,b,a+b);10 else if(m==‘-‘)11 printf("%d-%d=%d\n",a,b,a-b);12 else if(m==‘*‘)13 printf("%d*%d=%d\n",a,b,a*b);14 else if(m==‘/‘)15 {16 if(b==0)17 printf("输入错误,分母不为零\n");18 else

19 printf("%d/%d=%d\n",a,b,a/b);20 }21 else if(m==‘%‘)22 printf("%d Mod %d= %d\n",a,b,a%b);23 else

24 printf("输入错误");25 return 0;26

27

28 }

四、实验小结

本次实验主要是对if结构和switch结构的熟悉与掌握,通过编写代码发现自己的不足,主要还是熟练的问题,得多练。还有就是简单计算器的代码,可以通过百度要了解别人的代码,然后自己得在理解的情况下,借鉴别人的代码的优点,再结合自身的想法,得出属于自己的计算器代码。

c语言实验报告问题错误分析,C语言实验报告(三)相关推荐

  1. 重庆理工大学c语言程序实验报告,重庆理工大学-C语言程序实验报告.doc

    重庆理工大学-C语言程序实验报告 程序设计基础C实验报告 PAGE 47 <程序设计基础C> 实 验 报 告 教学班级: 学号: 姓名: 课程教师: 实验辅导教师: 重庆理工大学计算机学院 ...

  2. 华中科技大学c语言作业测评,华中科技大学C语言实验报告.docx

    华中科技大学C语言实验报告 课 程 实 验 报 告课程名称: C语言程序设计 专业班级: CS1409 学 号: U201414813 姓 名: 唐礼威 指导教师: 吴海 报告日期: 2015年6月2 ...

  3. 哈工大 c语言测试与系统控制 ad,哈工大——c语言在测量与控制中应用实验报告.pdf...

    哈工大--c语言在测量与控制中应用实验报告 Harbin Institute of Technology Harbin Institute of Technology C 语言在测量与控制中的 C 语 ...

  4. 太原理工软件学院c语言2020,太原理工软件工程C语言实验报告 数组.doc

    太原理工软件工程C语言实验报告 数组 实 验 报 告 课程名称: C语言程序设计 实验项目: 数组 实验地点: ZSA*** 专业班级: **** 学号: 201******* 学生姓名: ***** ...

  5. python语言程序设计实践教程答案实验六_20192417 实验一《Python程序设计》实验报告...

    20192417 2019-2020-2 <Python程序设计>实验1报告 课程:<Python程序设计> 班级: 1924 姓名: 张家华 学号:20192417 实验教师 ...

  6. DFA的构造C语言,DFA的编程实现含源代码实验报告剖析

    <DFA的编程实现含源代码实验报告剖析>由会员分享,可在线阅读,更多相关<DFA的编程实现含源代码实验报告剖析(20页珍藏版)>请在人人文库网上搜索. 1.实验一(一)程序设计 ...

  7. 五猴分桃c语言课程设计,c语言程序设计五猴分桃问题实验报告.doc

    c语言程序设计五猴分桃问题实验报告.doc 课程设计报告学院.系:吉林大学珠海学院计算机科学与技术系专业名称:软件工程课程设计科目C语言程序课程设计所在班级:10班学生学号:04121010学生姓名: ...

  8. c语言实验报告熟悉vc,C语言实验报告源代码

    C语言实验报告源代码 1.问题描述:计算三个整数12*34*56的积,得出正确的结果,并能通过此实验熟悉vc6.0的操作环境: 源程序及注释: # include void main() /*求三个数 ...

  9. c语言编程流水灯与交通灯实验,C51单片机实验报告_流水灯_交通灯_定时器_双机交互_时钟.doc...

    C51单片机实验报告_流水灯_交通灯_定时器_双机交互_时钟 学 号: 班 级: 自动化10班 姓 名: 张 指导老师: 胡 2012.12 单片机核心板实验要求 流水灯实验 实验目的: 简单I/O引 ...

  10. 太原理工大学c语言课程设计报告,[太原理工大学C语言实验报告.doc

    [太原理工大学C语言实验报告 本科实验报告 课程名称: 程序设计技术B 实验项目: 实验地点: 明向校区软件学院机房 专业班级: 学号: 学生姓名: 指导教师: 呼克佑 2014年 12月 日 实验名 ...

最新文章

  1. android虚拟机下载地址,12bet备用网址「永久地址0365.tv」android虚拟机下载在虚拟机中安装Android 操作系统...
  2. 一起写框架-Ioc内核容器的实现-对象的调用-属性注入容器的对象(十)
  3. jsp编写程序实现写读留言板内容的功能
  4. 浅谈Java中的栈和堆
  5. 2008年信息安全服务市场发展报告
  6. matlab中cuda编程中分配grid和block dimension的时候的注意事项
  7. JSK-27321 统计单词数【字符串】
  8. Objective-C JSON字符串解析
  9. 一己之力,不过举鼎,奈何撼天;一世芳华,不余百年,怎易如愿?
  10. 微信支付 android4.4,Android集成微信支付
  11. 开源知识管理系统_逛了4年Github,一口气把我收藏的 Java 开源项目分享给你
  12. sql 服务器停止运行,3.1.1 启动、停止、暂停和重新启动SQL Server服务
  13. Developpeur Reference对Bjarne Stroustrup的采访(转载)
  14. 六、分享优秀的Armv8 虚拟化技术地址
  15. win10笔记本电源的高性能找不到
  16. Capacitor Plugin 实现
  17. 如何在Firefox火狐浏览器点击链接打开新标签页、搜索、和书签
  18. 轻松实现Android 更换皮肤(主题)
  19. RN开发问题总结(一)
  20. matlab显示一幅图像

热门文章

  1. python 生成nc文件_如何python写nc文件
  2. ActiveMQ 下载与安装
  3. 电商详情页的一般实现
  4. 基于稀疏表示的图像超分辨
  5. OHSAS18000认证(转载)
  6. RTOS中动态内存和静态内存管理机制
  7. 在Android的Termux超级终端下进行内网穿透
  8. 杰奇1.7--关关采集器使用教程
  9. 关于origin2019的安装教程
  10. eda课程设计,求救!!!!!!!!