用switch编写一个计算机程序,第二十六课 利用switch语句解决问题 【项目1-7】

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

项目一 【投票表决器】

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

输入Y、y,打印agree

输入N、n,打印disagree

输入其他,打印lose 请在下面代码的基础上,将程序补充完整

#include 

intmain( )

{

charc;

scanf("%c",&c);

____(1)____

{

case'Y':

case'y':

printf("agree");

____(2)____;

case'N':

case'n':

printf("disagree");

____(3)____;

____(4)____:

printf("lose");

}

return0;

}

代码

#include

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;

}

运行结果

ead9316663e18ffebec162e786d3ee89.png338c64d43c2c9304b3080955ddb71540.png

项目二 【成绩等级】

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

代码

#include

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;

}

运行结果

a8593db10f0bed26cf87f35bea73943a.png

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

从键盘输入x的值(要求为整型),根据公式1计算并输出x和y的值。要求用switch语句完成。

6056888a6994f4c12adbeee19f8e6e30.png

代码

#include

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;

}

运行结果

efba5f0e9d70c045d2a2692d98552428.png

项目四 【本月有几天?】

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

代码

#include

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]  view plain copy print ?

#include 

intmain ( )

{

doubledSalary,dTax=0,dNetIncome=0;

printf("请输入您本月的收入总额(元):");

scanf("%lf", &dSalary);

// 下面求解应缴个人所和税dTax和税后收入dNetIncome

printf("您本月应缴个人所和税 %.2lf 元,税后收入是 %.2lf 元。\n", dTax, dNetIncome);

printf("依法纳税,共享繁荣。谢谢使用!\n");

return0;

}

附:关于个人所得税的有关背景知识计算方法:个人所得税=(收入总额-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

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;

}

运行结果

项目六 【定期存款利息计算器】输入存款金额并选择存款种类,计算出利息(不计利息税)和本息合计。要求使用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%。程序运行图参考下面的界面:

e208fec0e68cddaba17d0ad089d69678.png

代码

#include

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;

}

运行结果

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

a2e77ab33dc97cd6722d4e0357d51533.png

代码

#include

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;

}

运行结果

0c3fc90c9ccc176b8f84087af1b8d6fc.png

知识点和心得:

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

241

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值