码迷,mamicode.com
首页 > 编程语言 > 详细

C语言实验报告(三)

时间:2020-03-26 21:37:19      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:info   简单计算器   笔记本   com   alt   总计   形式   输入   实验目的   

C程序设计实验报告

姓名:杨静  实验地点:家  实验时间:2020.03.24

实验项目

1.If语句的应用

2.switch-case语句的应用

3.switch-case嵌套if语句的应用

4.switch-case结构嵌套的运用

5.分析程序

6.简单计算器

 

一、实验目的与要求

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

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

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

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

 

 二、实验内容

1.If语句的应用

(1)问题简单描述:读入三个分别表示箱子长宽高的整数值,判断并输出该箱子是长方体还是正方体。

(2)实验代码:

#include<stdio.h>
main()
{
 int l,w,h;
 printf("请输入箱子的长、宽、高:\n");
 scanf("%d%d%d",&l,&w,&h);
 if(l==h&&l==w)
   printf("该箱子是正方形。\n");
 else
   printf("该箱子是长方形。\n");
 return 0;
}

(3)问题分析:重点是判断正方形时用==,而且要用上&&.

2.switch-case语句的应用

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

(2)实验代码:

#include <stdio.h>
main()
{
    int x,y,z,n;
    float sum=0;
    printf("请输入打印纸,墨盒,光盘的数量:\n");
    scanf("%d,%d,%d",&x,&y,&z);
    sum=18*x+132*y+4.5*z;
    printf("总价: %f\n",sum);
    n=sum/100;
    switch(n)
    {
     case 0:printf("sum=%2f",sum);
        case 1:printf("sum=%2f",sum*0.95);break;
        case 2:printf("sum=%2f",sum*0.94);break; 
        case 3:printf("sum=%2f",sum*0.93);break;
        case 4:printf("sum=%2f",sum*0.92);break;
        case 5:printf("sum=%2f",sum*0.9);break;
        default: printf("sum=%2f",sum*0.9);
    }
}

(3)问题分析:余数为5以上的数较为特殊,单独判断。

3.switch-case嵌套if语句的应用

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

(2)实验代码:

#include <stdio.h>
int main(){
    int year,mouth,days;
    printf("please enter year and mouth:\n");
    scanf("%d%d",&year,&mouth);
    switch (mouth){
        case 2:if((((year)%4==0)%100!=0)||((year)%400)==0)
               printf("days==29");
               else
               printf("days=28");
               break;
        case 1:printf("days==31");break;
        case 3:printf("days==31");break;
        case 5:printf("days==31");break;
        case 7:printf("days==31");break;
        case 8:printf("days==31");break;
        case 10:printf("days==31");break;
        case 12:printf("days==31");break;
        case 4:printf("days==30");break;
        case 6:printf("days==30");break;
        case 9:printf("days==30");break;
        case 11:printf("days==30");break;
    }
    scanf("该月的天数");
    return 0;
}

 (3)问题分析:难点是判断闰年,能被400和4整除,不能被100整除。2月的时候要分两种情况。

4.switch-case结构嵌套的运用

 

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

(2)实验代码

 #include<stdio.h>
int main()
{
 int x,n,y;
 float sum=0.0;
 printf("请选择:1.日用品 2.文具 3.食品\n");
 scanf("%d,&x");
 switch(x)
     {
     case 1: printf("请选择:1.牙刷(3.5元/支) 2.牙膏(6.2元/支)\n");
      printf("3.肥皂(2元/块) 2.牙膏(8.6元/条)\n");
      scanf("%d",&y);
      printf("数量?");
   scanf("%d",&n);
   switch(x)
      {
       case 1:sum=3.5*n;break;
       case 2:sum=6.2*n;break;
       case 3:sum=2*n;break;
       case 4:sum=8.6*n;break;
      }
            break;
  case 2:printf("请选择:1.笔(3元/支) 2.笔记本(1.2元/个)\n");
         printf("3.文件夹(12元/个) 4.文具盒(8.6元/个)\n");
         scanf("%d",&y);
         printf("数量?");
      scanf("%d",&n);
      switch(y)
      {
       case 1:sum=3*n;break;
       case 2:sum=1.2*n;break;
       case 3:sum=12*n;break;
       case 4:sum=8.6*n;break;
      }
      break;
     case 3:printf("请选择:1.白糖(3.6元/包) 2.盐(1元/包)\n");
         printf("3.饼(2元/个) 4.方便面(3.6元/条)\n");
         scanf("%d",&y);
         printf("数量?");
      scanf("%d",&n);
      switch(y)
      {
       case 1:sum=3.6*n;break;
       case 2:sum=1*n;break;
       case 3:sum=2*n;break;
       case 4:sum=.6*n;break;
             }
      break;
}
    printf("总计:%.2f元\n",sum);
    return 0;
}

(3)问题分析:代码较长,带的括号较多,容易忘记和混乱,做的时候会忘记每个case结束后加break。

 

 5.分析程序

(1.0)

(1)问题简单描述:.运行以下程序,分析输出结果。

(2)实验代码

#include<stdio.h>
main()
{
 double x=1000/3.0;
    double y=x-333.0;
    double z=3*y-1.0;
    printf("x=%1f\n",x);
    printf("y=%1f\n",y);
    printf("z=%1f\n",z);
    if(z==0) printf("z==0.\n");
        else printf("z不等于0.\n");
    return 0;
 }

(3)实验结果:

技术图片

 

(2.0)

(1)问题简单描述:运行下列程序,分析错误原因,请修改程序。

(2)实验代码:

更改前:

#include<stdio.h>
main()
{
 int num=20;
 if(5<num<10)
     printf("%d in grang (5,10)!\n",num);
 else
     printf("%d out of grang (5,10)!\n",num);
      
}

更改后:

#include<stdio.h>
main()
{
 int num=20;
 if(5<num&&num<10)
     printf("%d in grang (5,10)!\n",num);
 else
     printf("%d out of grang (5,10)!\n",num);
      
}

(3)实验结果:

技术图片

(4)问题分析:c语言表达式与数学表达式有区别。

6.简单计算器

(1)问题简单描述:模拟一个简单的计算器,进行两个数的加、减、乘、除四则运算。

(2)实验代码:

#include<stdio.h>
main()
{
 float x,y;
    char op;
    printf("输入表达式:");
    scanf("%lf %c %lf ",&x,&op,&y);
    switch(op)
    {
     case‘+‘:
      printf("%f%c%f=%f\n",x,op,y,x+y);break;
     case‘-‘:
      printf("%f%c%f=%f\n",x,op,y,x-y);break;
     case‘*‘:
      printf("%f%c%f=%f\n",x,op,y,x*y);break;
     case‘/‘:
      if (y!=0)
      {
   printf("%f%c%f=%f\n",x,op,y,x/y);break;
   }
      else {
       printf("除数为零!\n");break;
   }
     default:printf("输入表达式有错!\n") ;
 }
    return 0;
}

(3)流程图:

技术图片

 

C语言实验报告(三)

标签:info   简单计算器   笔记本   com   alt   总计   形式   输入   实验目的   

原文地址:https://www.cnblogs.com/Yee123/p/12557332.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!