第二周《C语言及程序设计》实践项目26 利用switch语句解决问题

4h0min

【项目1:投票表决器】

/* 
 * Copyright (c) 2016, CSDN学院 
 * All rights reserved. 
 * 文件名称:【项目1:投票表决器】.cpp 
 * 作    者:张易安 
 * 完成日期:2016年 8 月 15 日 
 * 版 本 号:v1.0 
 * 
 * 问题描述:设计一个投票表决器,其功能是:
 * 输入Y、y,打印agree
 * 输入N、n,打印disagree
 * 输入其他,打印lose 
 */ 
#include <stdio.h>  
int main( )  
{  
    char c;  
    scanf("%c",&c);  
    switch(c)  
    {  
    case 'Y':  
    case 'y':  
        printf("agree");  
        break;  
    case 'N':  
    case 'n':  
        printf("disagree");  
        break;
    default :
        printf("lose");  
    }  
    return 0;  
} 
运行结果



【项目2:成绩等级】

/* 
 * Copyright (c) 2016, CSDN学院 
 * All rights reserved. 
 * 文件名称:【项目2:成绩等级】.cpp 
 * 作    者:张易安 
 * 完成日期:2016年 8 月 15 日 
 * 版 本 号:v1.0 
 * 
 * 问题描述:给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。
 * 90分以上为’A’,80-89分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’。 
 * 输入描述:分数 
 * 输出描述: 成绩等级 
 */ 
#include<stdio.h>
int main()
{
	int score,c;
	printf("请输入你的成绩:");
	scanf("%d",&score);
	c = score/10;
	switch(c)
	{
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
		  printf("E");
		  break;
		case 6:
		  printf("D");
		  break;
		case 7:
		  printf("C");
		  break;
		case 8:
		  printf("B");
		  break;
		case 9:
	    case 10:
		  printf("A");
		  break;
	    default:
	    	printf("error!");
		      	
	}
	
	return 0;
}
运行结果



【项目3:分段函数求值switch语句版】

/* 
 * Copyright (c) 2016, CSDN学院 
 * All rights reserved. 
 * 文件名称:【项目3:分段函数求值switch语句版】.cpp 
 * 作    者:张易安 
 * 完成日期:2016年 8 月 15 日 
 * 版 本 号:v1.0 
 * 
 * 问题描述:从键盘输入x的值(要求为整型),根据公式1计算并输出x和y的值。要求用switch语句完成。 
 * 输入描述:输入x的值 
 * 输出描述: 输出x和y的值 
 */ 
#include<stdio.h>
#include<math.h>
int main()
{
	int x,c;
	double y;
	printf("请输入x的值:");
	scanf("%d",&x);
	c =(x<2)+(x<6)+(x<10);
	switch(c)
	{
		case 3:
			y = x;
			break;
		case 2:
		    y = x*x+1;
		    break;
		case 1:
		    y = sqrt(x+1);
			break;
		case 0:
		    y = 1/(x+1);
			break;	    	
	 } 
	 printf("%lf",y);
	
	return 0;
}

运行结果


心得

其中有一点要注意,就是1/(x+1),这样写是错误的,都是整型,输出的就是0.00000了,要写成1.0/(x+1)才对


【项目4:本月有几天?】

/* 
 * Copyright (c) 2016, CSDN学院 
 * All rights reserved. 
 * 文件名称:【项目4:本月有几天?】.cpp 
 * 作    者:张易安 
 * 完成日期:2016年 8 月 15 日 
 * 版 本 号:v1.0 
 * 
 * 问题描述:编程序,输入年份和月份,输出本月有多少天。合理选择分支语句完成设计任务。
 * 样例输入1:2004 2
 * 输出结果1:本月29天
 * 样例输入2:2010 4
 * 输出结果2:本月30天 
 * 输入描述:输入年份和月份
 */
#include<stdio.h>
int main()
{
	int year,month,day = 0,c;
	printf("请输入年份和月份:");
	scanf("%d%d",&year,&month);
		switch(month)
		{
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10: 
			case 12:
				day = 31;break;
			case 4:
			case 6:
			case 9:
			case 11:
				day = 30;break;
			case 2:
				if(year%4 == 0&&year%100 != 0 ||year%400 == 0)
				day = 29;
				else
				day = 28;
		}
	printf("本月%d天",day); 
	
	return 0;
}

运行结果


心得

在case 2 中if的运用值得借鉴

【项目6:定期存款利息计算器】

/* 
 * Copyright (c) 2016, CSDN学院 
 * All rights reserved. 
 * 文件名称:【项目6:定期存款利息计算器】.cpp 
 * 作    者:张易安 
 * 完成日期:2016年 8 月 15 日 
 * 版 本 号:v1.0 
 * 
 * 问题描述:输入存款金额并选择存款种类,计算出利息(不计利息税)和本息合计。
 * 要求使用switch语句,根据选择的存款种类,确定利率和存期后计算。
 * 输入描述:存款数额和时间 
 * 输出描述: 到期利息和本息 
 */ 
#include<stdio.h>
int main()
{
    int  type,days;
    double money, period, rate, interest;  
    printf("欢迎使用利息计算器!\n");
	printf("请输入存款金额:\n");
	scanf("%lf",&money);
	printf("====存款期限====\n");
	printf("1. 活期存款\n"); 
	printf("2. 3个月\n");
	printf("3. 6个月\n");
	printf("4. 一年\n");
	printf("5. 两年\n");
	printf("6. 三年\n");
	printf("7. 五年\n");
	printf("请输入存款期限的代号:\n");
	scanf("%d",&type);
	if(type>=1&&type<=6)
	{
	   switch(type)
	   {
	   	case 1:
	   		printf("请输入存款天数:\n"); 
	   		scanf("%d",&days);
	   		rate = 0.0035;
	   		 interest = money * days * rate;
	    case 2:  
            period = 0.25;  
            rate = 0.031; 
			 interest = money * period * rate; 
            break;  
        case 3:  
            period = 0.5;  
            rate = 0.033;  
             interest = money * period * rate;
            break;  
        case 4:  
            period = 1;  
            rate = 0.035; 
			  interest = money * period * rate;
            break;  
        case 5:  
            period = 2;  
            rate = 0.044; 
			  interest = money * period * rate;
            break;  
        case 6:  
            period = 3;  
            rate = 0.05;
			   interest = money * period * rate;
            break;  
        case 7:  
            period = 5;  
            rate = 0.055;  
             interest = money * period * rate;
            break;  
        }   
         printf("到期利息为:%.2lf 元,本息合计共 %.2lf 元。\n", interest, interest + money);  
    }
    else
     printf("选择存款类型错误!\n");  
    printf("感谢您的使用,欢迎下次光临!\n");  
    return 0;  

	 
 } 

运行结果


心得

加了一个活期存款

【项目7:构造菜单】

/* 
 * Copyright (c) 2016, CSDN学院 
 * All rights reserved. 
 * 文件名称:【项目7:构造菜单】.cpp 
 * 作    者:张易安 
 * 完成日期:2016年 8 月 15 日 
 * 版 本 号:v1.0 
 * 
 * 问题描述:在应用程序中,很多都将各种功能设计了“菜单”供用户选择,本项目做些体验。
 */
#include<stdio.h>
int main()
{
	int a;
	printf("====今天晚上吃什么?====");
	printf("1.山西刀削面\n"); 
	printf("2.兰州拉面\n") ;
	printf("3.西安羊肉泡馍\n");
	printf("4.烟台焖子\n");
	printf("5.西北风\n");
	printf("请输入你的代号:");
	scanf("%d",&a);
	switch(a)
	{
		case 1:
			printf("1.山西刀削面"); break;
		case 2:
			printf("2.兰州拉面") ;break;
		case 3:
			printf("3.西安羊肉泡馍");break;
		case 4:
			printf("4.烟台焖子");break;
		case 5:
			printf("5.西北风");break;
		default:
		    printf("你选错了!"); 
	 } 
 } 

运行结果



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值