《C语言程序设计》实验报告
学 号 160809201 姓 名 王浩然专业、班 计科16-2班
学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆
实验地点 C05 机 器 号
上课时间 2016年 10 月 8 日 5 周 周六 1-4 节
截止时间 2016年 10 月 13 日 6 周 周三 晚
实验任务清单 1.实验2-6 猜数字游戏。
2.实验2-7 判断能否成为三角形
3.实验2-8 个人所得税计算器
#include <stdio.h>
#include <stdlib.h>
//猜数字游戏
int
main()
{
int
myNumber,yourNumber,count=0;
char
c;
do
{
//指定种子值为现在的时间
srand((unsigned)time(NULL));
//产生[1,100]这间的随机数
myNumber = (rand() % (101 - 1)) + 1;
do
{
printf(
"请输入您猜想的数值:"
);
scanf(
"%d"
,&yourNumber);
//请在此输入代码,猜数字,并给予提示,同时记录次数
//……
}
while
(yourNumber!=myNumber);
printf(
"您一共猜了%d次
"
,count);
//请在此输入代码,根据用户猜的次数给予评价
//……
printf(
"继续请按Y/y,退出请按N/n:"
);
getchar();
c=getchar();
system(
"cls"
);
//清屏函数
}
while
(c==
'Y'
|| c==
'y'
);
return
0;
}
源码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//猜数字游戏
int
main(
void
)
{
int
myNumber,yourNumber,count=0;
char
c;
do
{
//指定种子值为现在的时间
srand((unsigned)time(NULL));
//产生[1,100]之间的随机数
myNumber=(rand()%(101-1))+1;
do
{
printf(
"请输入您猜想的数值:"
);
scanf(
"%d"
,&yourNumber);
count++;
if
(yourNumber<myNumber)
printf(
"数字太小请重新输入!
"
);
else
if
(yourNumber>myNumber)
printf(
"数字太大请重新输入!
"
);
else
if
(yourNumber==myNumber)
printf(
"恭喜您,猜对了!
"
);
else
printf(
"您输入的字符不合法,请重新输入!
"
);
}
while
(yourNumber!=myNumber);
printf(
"您一共猜了%d次
"
,count);
if
(count<3)
{
printf(
"您在第%d次就猜对了!
"
,count);
printf(
"天才啊!
"
);
}
if
(count>=3&&count<8)
{
printf(
"您在第%d次猜对了!
"
,count);
printf(
"正常!
"
);
}
if
(count>8)
{
printf(
"您在第%d次猜对了!
"
,count);
printf(
"笨死了!
"
);
}
printf(
"继续请按Y/y,退出请按N/n"
);
getchar();
c=getchar();
system(
"cls"
);
}
while
(c==
'Y'
||c==
'y'
);
return
0;
}
实验2-7判断能否成为三角形
实验要求:
(1)输入三角形的三条边,判断能否构成三角形,输出其能否成为三角形。
(2)若为三角形,请计算出周长和面积并输出。
源码:
#include <stdio.h>
#include <math.h>
int
main()
{
float
a,b,c,p,s,d;
printf(
"请输入边长:
"
);
scanf(
"%f%f%f"
,&a,&b,&c);
if
(a+b>c&&a+c>b&&b+c>a)
{
printf(
"能够构成三角形
"
);
}
else
{
printf(
"不能构成三角形
"
);
return
0;
}
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf(
"面积是:%f
"
,s);
d=(a+b+c);
printf(
"周长是:%f
"
,d);
return
0;
}
附:个人税率表
2011年9月1日起调整后,也就是2012年实行的7级超额累进个人所得税税率表
应纳个人所得税税额= 应纳税所得额× 适用税率- 速算扣除数
扣除标准3500元/月(2011年9月1日起正式执行)(工资、薪金所得适用)
个税免征额3500元 (工资薪金所得适用)
级数 全月应纳税所得额(含税级距)【税率资讯网提供】 全月应纳税所得额(不含税级距) 税率(%) 速算扣除数
1 不超过1,500元 不超过1455元的 3 0
2 超过1,500元至4,500元的部分 超过1455元至4155元的部分 10 105
3 超过4,500元至9,000元的部分 超过4155元至7755元的部分 20 555
4 超过9,000元至35,000元的部分 超过7755元至27255元的部分 25 1,005
5 超过35,000元至55,000元的部分 超过27255元至41255元的部分 30 2,755
6 超过55,000元至80,000元的部分 超过41255元至57505元的部分 35 5,505
7 超过80,000元的部分 超过57505元的部分 45 13,505
注:
例如:某人某月工资减去社保个人缴纳金额和住房公积金个人缴纳金额后为5500 元,个税计算:(5500-3500)*10%-105=95元
源码(使用
if
语句完成):
#include <stdio.h>
int
main()
{
float
a,tax=0,TaxIncome=0;
printf(
"请输入您本月收入总额(元):"
);
scanf(
"%f"
,&a);
if
(a<=1455)
{
tax=(a-3500)*0.03-0;
TaxIncome=a-tax;
}
else
if
(a>1455 || a<=4155)
{
tax=(a-3500)*0.1-105;
TaxIncome=a-tax;
}
else
if
(a>4155 || a<=7755)
{
tax=(a-3500)*0.2-555;
TaxIncome=a-tax;
}
else
if
(a<7755 || a<=27255)
{
tax=(a-3500)*0.25-1005;
TaxIncome=a-tax;
}
else
if
(a>27255 || a<=41255)
{
tax=(a-3500)*0.3-2755;
TaxIncome=a-tax;
}
else
if
(a>41255 || a<=57505)
{
tax=(a-3500)*0.35-5505;
TaxIncome=a-tax;
}
else
{
tax=(a-3500)*0.45-13505;
TaxIncome=a-tax;
}
printf(
"您本月应缴税为:%f
您本月的税后收入为:%f
"
,tax,TaxIncome);
return
0;
}
源码(使用
switch
语句完成):
#include <stdio.h>
int
main()
{
float
a,tax=0,TaxIncome=0;
printf(
"请输入您本月收入总额(元):"
);
scanf(
"%f"
,&a);
if
(a<=1455)
{
tax=(a-3500)*0.03-0;
TaxIncome=a-tax;
}
else
if
(a>1455 || a<=4155)
{
tax=(a-3500)*0.1-105;
TaxIncome=a-tax;
}
else
if
(a>4155 || a<=7755)
{
tax=(a-3500)*0.2-555;
TaxIncome=a-tax;
}
else
if
(a<7755 || a<=27255)
{
tax=(a-3500)*0.25-1005;
TaxIncome=a-tax;
}
else
if
(a>27255 || a<=41255)
{
tax=(a-3500)*0.3-2755;
TaxIncome=a-tax;
}
else
if
(a>41255 || a<=57505)
{
tax=(a-3500)*0.35-5505;
TaxIncome=a-tax;
}
else
{
tax=(a-3500)*0.45-13505;
TaxIncome=a-tax;
}
printf(
"您本月应缴税为:%f
您本月的税后收入为:%f
"
,tax,TaxIncome);
return
0;
}
实验心得:怎么贴图啊,好像贴不上去我试了好几次。第3个不会今天百度了才知道。有点难啊,拜托老师下次题目不要这么复杂。
第3题是两种都要写吗,忘记switch的写法了。