第二十六课 利用switch语句解决问题 【项目1-7】
2015-09-16 15:48
190 查看
第二十六课 利用switch语句解决问题
项目一 【投票表决器】
设计一个投票表决器,其功能是:
输入Y、y,打印agree
输入N、n,打印disagree
输入其他,打印lose
请在下面代码的基础上,将程序补充完整
#include <stdio.h> int main( )
{
char c;
scanf("%c",&c);
____(1)____
{
case 'Y':
case 'y':
printf("agree");
____(2)____;
case 'N':
case 'n':
printf("disagree");
____(3)____;
____(4)____:
printf("lose");
}
return 0;
}
代码
#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; else days=28; break; default: printf("输入有误!"); } printf("本月有%d天\n",days); return 0; }
运行结果
项目五 【个人所得税计算器switch语句版】编写选择结构程序,输入个人月收入总额,计算出他本月应缴税款和税后收入(计算办法见附:关于个人所得税的有关背景知识)。(1)用switch语句完成;(2)可以在下面程序的基本框架基础上完成,如需其他变量自行增加
[cpp] viewplaincopyprint?
#include <stdio.h>
int main ( )
{
double dSalary,dTax=0,dNetIncome=0;
printf("请输入您本月的收入总额(元):");
scanf("%lf", &dSalary);
// 下面求解应缴个人所和税dTax和税后收入dNetIncome
printf("您本月应缴个人所和税 %.2lf 元,税后收入是 %.2lf 元。\n", dTax, dNetIncome);
printf("依法纳税,共享繁荣。谢谢使用!\n");
return 0;
}
附:关于个人所得税的有关背景知识计算方法:个人所得税=(收入总额-3500)*税率-速算扣除数从2011年9月1日起,我国个人所得税起征点基数为3500元,超出部分按以下7级计算。
序号 | 收入范围 | 税率 | 速算扣除数 |
1 | 超过0至1500 | 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; } } else printf("你选错啦!\n"); return 0; }
运行结果
知识点和心得:
不同于if语句,switch语句能根据条件的不同选出对应的程序结果在投票,筛选,计算等输入性的程序中能达到特殊的体现。
241相关文章推荐
- Android Annotation (AndroidStudio配置)
- 读“关于数据科学,书上不曾提及的三点经验”对数据挖掘,机器学习方面的实战感悟
- 常见SSL证书格式转换
- 代码审核 - 优先级别
- 【面试季之三】IE6兼容问题
- MVC文件夹
- 理解Java的封装与接口
- visio二次开发——图纸解析之线段
- 详解C++编程中类的声明和对象成员的引用
- unix/linux编程实践教程------学习笔记(四)
- 大数据Big Data
- 闭包漫谈(从抽象代数及函数式编程角度)
- Java-The type java.lang.Object cannot be resolved. It is indirectly。。。。
- 商户入网第三方支付——易宝之PC端支付流程
- easy ui datagrid 动态绑定数据并绑定链接,进行操作
- hdu 1045 Fire Net(dfs)
- MVC模式简介
- CentOS7下进入单用户模式
- 取得多选框值
- iOS蓝牙开发(一)蓝牙相关基础知识