《C语言程序设计》实验报告

学  号

160809209

姓  名

李梦鑫

专业、班

计科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 个人所得税计算器

教师评语

 

成绩

 

实验2-6 猜数字游戏

实验要求:

编写一个C程序实现一个[1-100]以内的猜数字游戏。

(1) 系统随机产生一个[1-100]之间的随机数。

(2) 输入任意一个数字。数字的要求是1—100的自然数即可。

(3) 系统对您输入的数字进行判断。如果玩家输入的数字与计算机随机生成数相比较, 输入的数字比随机生成数小,系统将提示您,数字太小请您重新输入。如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大,系统将提示您,数字太大请您重新输入。如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请重新输入。 如果两个数字相同,输出“恭喜您,猜对了!”。

(4) 每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次

(5) 游戏结束后,根据所猜次数,给出评语(3次内猜出来的,天才!,4-7次猜出来的,智力正常,8次以上猜出来的,笨)

(6) 可以在下面程序的基本框架基础上完成,如需其他变量自行增加源码

参考:

#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次\n",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=;
char c;
do{
//指定种子值为现在的时间
srand((unsigned)time(NULL));
//产生[1,100]之间的随机数
myNumber=(rand()%(-))+;
do{
printf("请输入您猜想的数值:");
scanf("%d",&yourNumber);
count++;
if(yourNumber<myNumber)
printf("数字太小请重新输入!\n");
else if(yourNumber>myNumber)
printf("数字太大请重新输入!\n");
else if(yourNumber==myNumber)
printf("恭喜您,猜对了!\n");
else
printf("您输入的字符不合法,请重新输入!\n");
}
while(yourNumber!=myNumber);
printf("您一共猜了%d次\n",count);
if(count<)
{
printf("您在第%d次就猜对了!\n",count);
printf("你是个天才!\n");
}
if(count>=&&count<)
{
printf("您在第%d次猜对了!\n",count);
printf("智商还算正常!\n");
}
if(count>)
{
printf("您在第%d次猜对了!\n",count);
printf("笨啊!\n");
}
printf("继续请按Y/y,退出请按N/n");
getchar();
c=getchar();
system("cls");
}while(c=='Y'||c=='y');
return ;
}

运行截图:

实验2-7判断能否成为三角形

实验要求:

(1) 输入三角形的三条边,判断能否构成三角形,输出其能否成为三角形。

(2) 若为三角形,请计算出周长和面积并输出。

源码:

#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c,p,s,d;
printf("请输入三角形的各边边长:\n");
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
printf("符合三角形定理,能够构成三角形\n");
}
else{ printf("不符合三角形定理,不能构成三角形\n");
return ;
}
p=(a+b+c)/;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("三角形的面积是:%f\n",s);
d=(a+b+c);
printf("三角形的周长是:%f\n",d);
return ;
}

运行截图:

 

实验2-8 个人所得税计算器

实验要求:

编写选择结构程序,输入个人月收入总额,计算出他本月应缴税款和税后收入(计算办法见附:个人税率表)。

(1) 分别用if语句和switch语句完成;

(2) 可以在下面程序的基本框架基础上完成,如需其他变量自行增加源码:

#include <stdio.h>

int main ( )

{

float salary,tax=0,afterTaxIncome=0;

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

scanf("%f", &salary);

// 下面求解应缴个人所和税tax和税后收入afterTaxIncome  

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

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元

源代码:

#include <stdio.h>
int main()
{
float a,tax=,TaxIncome=;
printf("请输入您本月收入总额(元):");
scanf("%f",&a);
if(a<=)
{
tax=(a-)*0.03-;
TaxIncome=a-tax;
}
else if(a> || a<=)
{
tax=(a-)*0.1-;
TaxIncome=a-tax;
}
else if(a> || a<=)
{
tax=(a-)*0.2-;
TaxIncome=a-tax;
}
else if(a< || a<=)
{
tax=(a-)*0.25-;
TaxIncome=a-tax;
}
else if(a> || a<=)
{
tax=(a-)*0.3-;
TaxIncome=a-tax;
}
else if(a> || a<=)
{
tax=(a-)*0.35-;
TaxIncome=a-tax;
}
else
{
tax=(a-)*0.45-;
TaxIncome=a-tax;
}
printf("您本月应缴税为:%f\n您本月的税后收入为:%f\n",tax,TaxIncome);
return ;
}

运行截图:

实验心得

本次作业的内容我认为比前几次的作业难度大了不少,循环结构的学习从开始的不懂到渐渐的理解,不懂和混乱的地方就是逻辑的关系,什么时候如果,什么时候除非,这些都很难。我自己通过问老师和同学加上百度,学会准确的赋值和结构的设计。第一题有例子示范,加上老师的课堂演示,完美的写了出来。第二题我记得的前几次课老是有提到,有讲函数的例子,也很顺利的完成。但是尤其是最后一题的难度很大,从理解上和结构的设计上花了不少心思,参考了同学的并且查了查百度,用if语句完成了,但是swich语句的循环结构还没有完全搞定,还需要更努力的学习。

总之,这次的作业很有收获,我相信在以后的学习中我会一直努力取得不断的进步。

160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶的更多相关文章

  1. 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...

  2. 160809209_李梦鑫_C语言程序设计实验2 选择结构程序设计

    实验2-1 输入3个数,并按由大到小的顺序输出. 实验要求: 编写一个C程序,输入3个数,并按由大到小的顺序输出. 源码:#include <stdio.h> int main() { i ...

  3. 160809212田京诚C语言程序设计实验2 选择结构程序设计_进阶

    实验2-6 猜数字游戏 实验要求: 编写一个C程序实现一个[1-100]以内的猜数字游戏. (1)       系统随机产生一个[1-100]之间的随机数. (2)       输入任意一个数字.数字 ...

  4. 160809225_叶桦汀_C语言程序设计实验2 选择结构程序设计_进阶

    #include<stdio.h> #include<math.h> int main() { int a,b,c,l,p,s; printf("请输入三个数:&qu ...

  5. 符瑞艺 160809228_C语言程序设计实验2 选择结构程序设计

    实验2- 输入3个数,并按由大到小的顺序输出. 实验要求: 编写一个C程序,输入3个数,并按由大到小的顺序输出. 参考: 源码: #include <stdio.h> int main() ...

  6. 学号160809224姓名黄家帅c语言程序设计实验2 选择结构程序设计

    实验2-1 输入3个数,并按由大到小的顺序输出. 实验要求: 编写一个C程序,输入3个数,并按由大到小的顺序输出. 源码: #include <stdio.h>void main(){ i ...

  7. 学号160809212姓名田京诚C语言程序设计实验2选择结构程序设计

    编写一个C程序,输入3个数,并按由大到小的顺序输出. 1 #include <stdio.h> void main(){ int a,b,c,t; printf("请输入三个整数 ...

  8. 160809228_符瑞艺_C语言程序设计实验3 循环结构程序设计

      #include <stdio.h> int main(){ //使用for循环完成1+2+......+100 ; ;i<=;i++) sum +=i; //sum = sum ...

  9. 【C语言】第4章 选择结构程序设计

    第4章 选择结构程序设计 C语言有两种选择语句: if 语句,实现两个分支的选择结构 switch 语句,实现多分支的选择结构 输入3个数a,b,c,要求按由小到大的顺序输出. 可以先用伪代码写出算法 ...

随机推荐

  1. jdk jre jvm 三者之间关系

    JDK JDK是java开发工具包,是Sun公司针对Java开发员的产品.     JDK 中包含JRE,在JDK安装的目录下有一个叫jre的目录,里面有两个文件夹,bin/和lib,其中bin就是j ...

  2. ant常用命令

    1.ant -version

  3. Odoo 9 PDF不显示中文字体

    在Ubuntu中安装中文字体:    $ sudo apt-get install ttf-wqy-zenhei    $ sudo apt-get install ttf-wqy-microhei

  4. shell脚本实现数据库自动备份和删除备份

    为了安全起见,我们每天都需要备份数据库,但是备份数据库的时间往往是在凌晨左右,大家都休息,没人使用的时候,这样我们就需要linux系统实现自动备份,即定时自动执行脚本.但是我们又不能让所有的备份一直保 ...

  5. Delphi 的字符及字符串[6] - Char(AnsiChar)、WideChar 与其编码的相互转换

    );    );   {返回: A }  c := Char($41);  {返回: A }end; ];  );     );  {万}  c := WideChar($4E07);  {万}end ...

  6. Oracle Hang Manager

    名词术语1.Cross Boundary Hang 交叉边界hang.在12.1.0.1中,hang manager可以检测database和asm之间的hang.2.Deadlock or Clos ...

  7. ASP.Net 验证控件 RangeValidator

    RangeValidator 定义和用法 RangeValidator 控件用于检测用户输入的值是否介于两个值之间.可以对不同类型的值进行比较,比如数字.日期以及字符. 注释:如果输入控件为空,验证不 ...

  8. NET 使用HtmlAgilityPack抓取网页数据

    刚刚学习了XPath路径表达式,主要是对XML文档中的节点进行搜索,通过XPath表达式可以对XML文档中的节点位置进行快速定位和访问,html也是也是一种类似于xml的标记语言,但是语法没有那么严谨 ...

  9. 中文编码之GB2312,Big5,GBK简介

    汉字编码中现在主要用到的有三类,包括GBK,GB2312和Big5. 1.GB2312 又称国标码,由国家标准总局发布,1981年5月1日实施,通行于大陆.新加坡等地也使用此编码.它是一个简化字的编码 ...

  10. VirtualBox 上安装CentOS 6.5

    目标:1.在VirtualBox中安装CentOS2.配置虚拟机网络,实现:    a.主机联网后,宿机能够通过主机上网    b.不管主机联网与否,主机都能SSH登录宿机,并且主宿机能互相传送文件 ...