• 第二次实验报告


    C程序设计实验报告

    实验项目:___分支结构实验__

    姓名:___ 杨珺茹____实验地点:___514______实验时间____2019·4·3_______

    一、实验目的与要求

    1.掌握c语言逻辑运算和关系运算的规则;

    2、学会正确的使用关系表达式和逻辑表达式;

    3、掌握if else语句的使用方法;

    4、掌握算术运算符和运算规则。

    5、掌握switch/case语句的使用方法。

    6、掌握switch/case语句语法和使用方法。注意switch语句的控制流程,在switch语句中break语句的用法。

    7.、break语句与continue语句的用法

    8、switch/case结构的嵌套使用

    二、实验内容

    1、实验练习:

    if语句的应用(4.3.1)

    1、问题的简单描述:

    读入3个分别表示箱子长、宽、高的整数值,判断并输出该箱子是正方体还是长方体。

    2,实验代码:

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

    3,问题分析:

    我在该实验的遇到的主要问题是if中的条件语句不能直接写(a==b==c),而应该是(a==b)&&(b==c)

    2、实验练习:switch/case语句的应用(4.3.2)

    1问题的简单描述:

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

    2实验代码:

    #include<stdio.h>
    int main()
    {   
        int x,y,z;
        float a,b;
    printf("请输入打印纸、墨盒、关盘数量:
    ");
    scanf("%d%d%d",&x,&y,&z);
    a=x*18+y*132+z*4.5;
    if(a<100)
    b=a; 
        else if(a>=100&&a<200)
    b=a*0.95; 
        else if(a>=200&&a<300)
    b=a*0.94; 
        else if(a>=300&&a<400)
    b=a*0.93; 
        else if(a>=400&&a<500)
    b=a*0.92; 
        else if(a>=500)
    b=a*0.9;  
        printf("应付款数=%.2f
    ",b);
    }

    3问题分析:一开始我完全忘记怎么去计算这个if  else怎么用,于是就去请教同学,就弄明白了,果然还是要数学好一点才能学好C语言啊~嘿嘿,然后我就也能教同学这个结构了,真好。

    3、实验练习:switch/case语句嵌套if语句的应用(4.3.3)

    1问题的简单描述:

    输入某一年月,输出该月的天数。
    2实验代码:

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

    3,问题分析:一开始写的时候并没有什么问题,后来遇到如何判断闰年就懵了,然后上网查找发现闰年的判断语句是这样的:year%400==0||(year%4==0&&year%100!=0)

    4、实验练习:switch/case结构的嵌套应用(4.3.4)

    1,问题的简单描述:

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

    2,实验代码:

    #include<stdio.h>
    int main()
    {
        int x,n,y;
        float sum=0.0;
        printf("请选择:1.日用品  2.文具  3.食品
    ");
        scanf("%d",&x);
        switch(x)
        {
            case 1:printf("请选择:1.牙刷(3.5元/支) 2.牙膏(6.2元/支)
    ");
                   printf("        3.肥皂(2元/支) 4.毛巾(8.6元/支)
    ");
                   scanf("%d",&y);
                   printf("数量?");
                   scanf("%d",&n);
                   switch(y)
                   {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元/个)
    ");
                   printf("        3.文件夹(12元/个) 4.文具盒(8.6元/个)
    ");
                   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元/包)
    ");
                   printf("        3.饼(2元/个) 4.方便面(3.6元/条)
    ");
                   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=3.6*n;break;
                   }
                   break;
                   
        }
        printf("总价:%.2f元
    ",sum);
        return 0;
    }

    3,问题分析:因为书上有流程图也有提示,所以编写也就比较顺利,然后发现运行不出来,经过和同学的对比,发现程序模板是switch中应该是用(y),而我之前是用的(x)

    5、实验练习:分析程序(4.3.5)

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

    2,实验代码:

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

    1,问题的简单描述:

    运行下列程序,分析错误原因,请修改程序,使其输出正确的结果,并写入实验报告,掌握c语言表达式与数学表达式的区别。

    2,实验代码:

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

    3,问题分析:还是if条件语句的问题,c语言不能识别出5<a<10这样的语句,而应该是5<a&&a<10

     三、实验小结(在本次实验中收获与不足)

           这节实验课总共有5个实验,其中我认为最难的就是第二个实验,关于switch/case来编写这个程序,在实验课上我是用的if  else的语句进行,因为当时并不是很熟悉switch/case,所以下课后看书本,对照书将switch/case又重新做了一遍,现在大概了解了这个结构。这也算是我在这次实验课上的一个收获吧。

           其此就是我对键盘的熟练程度还不够,这次实验课完成的比较慢,所以我会重视这个不足,之后加以改正。

  • 相关阅读:
    css的一些属性及其属性值
    HTML基本标签
    JQuery
    js中的Dom事件模型以及表格方面等内容
    Alpha的过程总结
    数独+GUI界面
    数独
    调研《构建之法》指导下的全国高校的历届软工实践作品、全国互联网+竞赛、物联网竞赛、华为杯研究生作品赛、全国大学生服务外包赛等各类全国性大学生信息化相关的竞赛平台的历届作品
    本学期高级软件工程课程的实践项目的自我目标
    高级软件工程第八次作业:“两只小熊队”团队作业-5
  • 原文地址:https://www.cnblogs.com/YANG1116/p/10674389.html
Copyright © 2020-2023  润新知