首页 > 其他 > 详细

C程序设计实验报告三

时间:2020-03-28 21:06:25      阅读:62      评论:0      收藏:0      [点我收藏+]

C程序设计实验报告

实验项目:4.3.1,4.3.2,4.3.3,4.3.4,4.3.5,计算器的实现
姓名:陈佳媛
实验地点:家
实验时间:2020.3.25

一、实验目的与要求

1、掌握c语言逻辑值的表示方法(0代表“假”,1代表“真”)
2、学会正确的使用关系表达式和逻辑表达式
3、掌握各种形式的if语句语法和使用方法。if语句中if和else的匹配关系,以及if语句的嵌套
4、熟练掌握switch语句的语法和使用方法,注意switch语句中break语句的用法及switch语句的嵌套

二、实验内容

1、实验练习:4.3.1

1问题的简单描述:

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

2实验代码:

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

3问题分析:

判断时不能连在一起,使用&&。

2、实验练习: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 a,b,c,f;
	float d,e;
	printf("请输入打印纸、墨盒、光盘的数量:");
	scanf("%d,%d,%d",&a,&b,&c);
	d=18*a+132*b+4.5*c;
	f=d/100;
	switch(f)
	{
		case‘1‘:e=d*(1-0.05);printf("应付款数=%f",e);break;
		case‘2‘:e=d*(1-0.06);printf("应付款数=%f",e);break;
		case‘3‘:e=d*(1-0.07);printf("应付款数=%f",e);break;
		case‘4‘:e=d*(1-0.08);printf("应付款数=%f",e);break;
		default:e=d*(1-0.1);printf("应付款数=%f",e);break;
	}
	return 0;
}

3问题分析:

3、实验练习:4.3.3

1问题的简单描述:

输入某一年、月的数值,输出该月的天数。

2实验代码:

#include<stdio.h>
int main()
{
	int year,month,days;
	printf("Please enter years and month:\n");
	scanf("%d%d",&year,&month);
	switch(month)
	{
		case 2:
			if(year%4==0&&year%100!=0||year%400==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天!\n",year,month,days);
	return 0;
}     

3问题分析:

重复的可以不用重复写。

4、实验练习:4.3.4

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元/块) 4.毛巾(8.6元/条\n");
				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元/个)\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=3.6*n;break;
				}
				break;						
	}
	printf("总计:%.2f元",sum);
	return 0;
}    

3问题分析:

文字和数据有点多,容易混乱。

5、实验练习:4.3.5

1问题的简单描述:

1.运行下列程序,分析输出的结果,并写入实验报告
2.运行下列程序,分析错误的原因并修改程序,使其输出正确的结果,然后写入实验报告

2实验代码:

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

技术分享图片

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

3问题分析:

不能写成5<num<7,应该分开写成5<num&&num<7。

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

1、设计思路

制作一个能实现简易的整数加减乘除的四则运算的计算器

2、流程图

技术分享图片

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

当除数为0是需要讨论。

4、代码

#include<stdio.h>
int main()
{
	while(1)
	{
		int a,b,c;
		char d;
		printf("输入:(格式:a+b,a-b,a*b,a/b)\n");
		scanf("%d%c%d",&a,&d,&b);
		switch(d)
		{
			case‘+‘:c=a+b;printf("=%d\n",c);break;
			case‘-‘:c=a-b;printf("=%d\n",c);break;
			case‘*‘:c=a*b;printf("=%d\n",c);break;
			case‘/‘:
			if(b!=0)
			{
				c=a/b;
				printf("=%d\n",c);
			}
			else
			{
				printf("有误,除数不能为0,请重新输入\n");
			}
			break;
			default:printf("有误,请重新输入");
		}
	}
	return 0;	
}

四、实验小结

加深了对switch语句的运用。制作计算器时,忘记了除数不能为0的情况,所以没讨论。细节问题还是需要注意,不要因小失大。

C程序设计实验报告三

原文:https://www.cnblogs.com/Cri-y/p/12589120.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!