第二十六课 利用switch语句解决问题 【项目1-7】

2024-02-14 23:40

本文主要是介绍第二十六课 利用switch语句解决问题 【项目1-7】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


第二十六课 利用switch语句解决问题 





项目一 【投票表决器

设计一个投票表决器,其功能是:

  • 输入Y、y,打印agree
  • 输入N、n,打印disagree
  • 输入其他,打印lose
请在下面代码的基础上,将程序补充完整



  1. #include <stdio.h>  
  2. int main( )  
  3. {  
  4.     char c;  
  5.     scanf("%c",&c);  
  6.     ____(1)____  
  7.     {  
  8.     case 'Y':  
  9.     case 'y':  
  10.         printf("agree");  
  11.         ____(2)____;  
  12.     case 'N':  
  13.     case 'n':  
  14.         printf("disagree");  
  15.         ____(3)____;  
  16.     ____(4)____:  
  17.         printf("lose");  
  18.     }  
  19.     return 0;  
  20. }  


代码

#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;
}</span><span style="font-family:Arial Black;">
</span>

运行结果













项目二 【成绩等级
给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90分以上为’A’,80-89分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’。



代码


#include <stdio.h>
int main()
{int grade;printf("请输入成绩:\n");scanf ("%d",&grade);switch (grade/10){case 10:case 9:printf ("等级为A\n");break;case 8:printf ("等级为B\n");break;case 7:printf ("等级为C\n");break;case 6:printf ("等级为D\n");break;default :printf ("等级为E\n");}return 0;
}

运行结果








项目三 【分段函数求值switch语句版
从键盘输入x的值(要求为整型),根据公式1计算并输出x和y的值。要求用switch语句完成。





#include <math.h>
int main()
{int x,y,t;printf("输入x的值:\n");scanf("%d",&x);t=(x<2)+(x<6)+(x<10);switch(t){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);}printf("Y=%d\n",y);return 0;
}

运行结果








项目四 【本月有几天?
编程序,输入年份和月份,输出本月有多少天。合理选择分支语句完成设计任务。
样例输入1:2004 2
输出结果1:本月29天
样例输入2:2010 4
输出结果2:本月30天


代码

#include <stdio.h>
int main()
{int year,month,days;printf("请输入年、月:\n");scanf("%d %d",&year,&month);switch(month){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;case 2:if((year%4==0&&year%100!=0)||(year%400==0))days=29;elsedays=28;break;default:printf("输入有误!");}printf("本月有%d天\n",days);return 0;
}
 

运行结果

项目五 【个人所得税计算器switch语句版编写选择结构程序,输入个人月收入总额,计算出他本月应缴税款和税后收入(计算办法见附:关于个人所得税的有关背景知识)。(1)用switch语句完成;(2)可以在下面程序的基本框架基础上完成,如需其他变量自行增加

[cpp]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. #include <stdio.h>  
  2. int main ( )  
  3. {  
  4.     double dSalary,dTax=0,dNetIncome=0;   
  5.     printf("请输入您本月的收入总额(元):");  
  6.     scanf("%lf", &dSalary);  
  7.     // 下面求解应缴个人所和税dTax和税后收入dNetIncome  
  8.   
  9.   
  10.     printf("您本月应缴个人所和税 %.2lf 元,税后收入是 %.2lf 元。\n", dTax, dNetIncome);  
  11.     printf("依法纳税,共享繁荣。谢谢使用!\n");  
  12.     return 0;  
  13. }  

附:关于个人所得税的有关背景知识计算方法:个人所得税=(收入总额-3500)*税率-速算扣除数从2011年9月1日起,我国个人所得税起征点基数为3500元,超出部分按以下7级计算。

序号

收入范围

税率

速算扣除数

1

超过01500

3%

0

2

超过1500元至4500元的部分

10%

105

3

超过4500元至9000元的部分

20%

555

4

超过9,000元至35,000元的部分

25%

1005

5

超过35,000元至55,000元的部分

30%

2755

6

超过55,000元至80,000元的部分

35%

5505

7

超过80,000以上

45%

13505

例如:王某月收入总额3600元,个人所得税=(3600-3500)*3%=3元;再例:李某月收入13500元,个人所得税=(13500-3500)*25%-1005=2500-1005=1495元

代码

#include <stdio.h>
int main()
{int m,r;double dSalary,dTax=0,dNetIncome=0;double dRate,t;printf("请输入您本月收入总额(元):\n");scanf("%lf",&dSalary);t=(dSalary-3500)/500;if(t<=0)printf("您不需要交税");else{m=(t<3)+(t<=9)+(t<18)+(t<70)+(t<110)+(t<160);switch(m){case 6:dRate=0.030,r=0;break;case 5:dRate=0.100,r=105;break;case 4:dRate=0.200,r=555;break;case 3:dRate=0.250,r=1005;break;case 2:dRate=0.300,r=2755;break;case 1:dRate=0.350,r=5505;break;case 0:dRate=0.450,r=13505;break;}dTax=(dSalary-3500)*dRate-r;dNetIncome=dSalary-dTax;printf("您的个人所得税为:%.2lf\n",dTax);printf("您的税后收入为:%.2lf\n",dNetIncome);}return 0;
}
</span>

运行结果





项目六 【定期存款利息计算器
输入存款金额并选择存款种类,计算出利息(不计利息税)和本息合计。要求使用switch语句,根据选择的存款种类,确定利率和存期后计算。
提示:利息=金额×年利率×存期(单位:年,3个月为0.25年,6个月为0.5年)。
例如:1000元存6个月,利息=1000×0.033×0.5=16.5元
利率使用2011年7月7日公布的年利率:3个月  3.10%,6个月 3.30%,一年 3.50%,二年 4.40%,三年 5.00%,五年 5.50%。
程序运行图参考下面的界面:



代码

#include <stdio.h>
int main()
{int t;double money,period,rate,interest;printf("欢迎使用利息计算器!\n请输入存款金额:");scanf ("%lf",&money);printf("*****存款期限*****\n");printf("1: 3个月\n");printf("2: 6个月\n");printf("3: 一年\n");printf("4: 二年\n");printf("5: 三年\n");printf("6: 五年\n");printf ("请输入存款期限代号:");scanf("%d",&t);if (t>=1 && t<=6){switch (t){case 1:period=0.25;rate=0.031;break;case 2:period=0.5;rate=0.033;break;case 3:period=1;rate=0.035;break;case 4:period=2;rate=0.044;break;case 5:period=3;rate=0.050;break;case 6:period=5;rate=0.055;break;}interest=money*period*rate;printf("到期利息为:%0.2lf元。\n本息合计为%0.2lf元。\n",interest,interest+money);}else{printf ("您的输入有误!\n");}printf("谢谢使用!\n");return 0;
}

运行结果






项目七 【构造菜单
在应用程序中,很多都将各种功能设计了“菜单”供用户选择,本项目做些体验。
请编写程序,显示“菜单”,由用户输入代号后,输出对所选项目的简短评论。运行结果参考下图:



代码

#include <stdio.h>
int main()
{int t;printf ("****今天晚上吃什么?****\n");printf ("1:山西刀削面\n");printf ("2:兰州拉面\n");printf ("3:西安羊肉泡馍\n");printf ("4:烟台焖子\n");printf ("5: 西北风\n");printf ("请输入你的选择:");scanf ("%d",&t);if (t>=1 && t<=5){switch (t){case 1:printf ("山西刀削面,真真不嚷切!");break;case 2:printf ("兰州拉面,唏不香唠着!");break;case 3:printf ("西安羊肉泡馍,瞭咋咧!");break;case 4:printf ("烟台焖子,金好逮!");break;case 5:printf ("西北风,北风那个吹~~雪花那个飘~~");break;}}elseprintf("你选错啦!\n");return 0;
}

运行结果





知识点和心得:

不同于if语句,switch语句能根据条件的不同选出对应的程序结果在投票,筛选,计算等输入性的程序中能达到特殊的体现。











241

这篇关于第二十六课 利用switch语句解决问题 【项目1-7】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/709899

相关文章

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关