C语言I博客作业06

1.作业头

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-2
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11553
这个作业的目标 <通过写较长的代码提升我们的逻辑思维和培养我们对编程的兴趣,同时也会让我们变得更加有耐心。>
学号 <20209136>

一、本周教学内容&目标

第3章 分支结构 3.3 使学生熟悉多分支结构switch语句的使用。

二、本周作业头

这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11553
我在这个课程的目标是 <熟悉掌握多分支结构switch语句的使用,清楚的理解switch语句的使用逻辑。>
这个作业在哪个具体方面帮助我实现目标 <写代码的思路,逻辑思维,数学知识的运用>
参考文献 <C语言程序设计>

三、本周作业

1.PTA实验作业
2.代码互评
3.学习总结

四、作业格式

1.PTA实验作业
请在此处列出自己的排名图片:

从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:

1.1题目名1: 前天是哪天

题目内容描述:
​​本题目要求读入年、月、日,然后判断前天日期。

1.1.1数据处理

介绍实现本题过程中,你的数据表达、数据处理是怎么做的。注意:请务必按照以下方式书写。
数据表达:用到了year,month,day,time四个变量。year,month,day的值通过调用输入函数获取用户输入的数值再进行赋值,其属于整型变量。time的值通过判断每一种不同的情况后根据题目要求进行变换,例如闰年的3月1日的前天是2月28日,此时就直接将28赋值给time,而不是将time-2赋值给time,也属于整型变量。
数据处理:用到了赋值表达式time=time-2,time=30等等,用到了多分支if-else结构。

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
2020 5 20 2020-5-18 2020年5月20日的前天是2020年5月18日
2021 3 1 2021-2-27 2021年3月1日的前天是2021年的2月27日
2018 2 20 2018-2-18 2018年2月20日的前天是2018年2月18日
1966 1 24 1966-1-22 1966年1月24日的前天是1966年1月22日
2012 1 2 2011-12-31 2012年1月2日的前天是2011年12月31日
2017 3 2 2017-2-28 2017年3月2日的前天是2017年的2月28日

1.1.4 PTA提交列表及说明

根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。

提交列表说明:

 1.答案错误:首先判断是否是闰年时,代码if( (year%4==0 || year%100!=0)|| (year%400==0))误用了逻辑或,导致答案错误。后将逻辑或改成逻辑与完成修改。
 2.答案错误:发现每个答案都是错误的,于是仔细审题将输出语句中%d %d %d改成%d-%d-%d。
 3.部分正确:将闰年中有特殊情况的月份当成2月了,因为这是求前天,所以3月1或者3月2的前天才会涉及到2月的天数。正确修改后进行提交。
 4.部分正确:脑子一热只在上个问题中修改了闰年中的错误,忘记了修改非闰年中的错误,正确提交后显示答案正确。

1.2题目名2:计算天数

题目内容描述:
本题要求编写程序计算某年某月某日是该年中的第几天。
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。

1.2.1数据处理

介绍实现本题过程中,你的数据表达、数据处理是怎么做的。注意:请务必按照以下方式书写。
数据表达:用到了year,month,day,number,i,s这六个变量。number的值根据判断后的情况再被赋相应的值,四种情况,number=30,number=31,number=29,number=28其属于整型变量。year,month,day的值通过调用输入函数获取用户输入的数值再进行赋值,其属于整型变量。i与s开始就分别被1与0赋值,不过i在后面的循环中依次递增1,其都属于整型变量。
数据处理:用到了赋值表达式s=s+number,number=30等。用到了if-else分支结构,多分支结构switch语句,while循环语句。

1.2.2实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
2001/04/19 109 年份为非闰年2月有28天,结果是该年的第109天。
2520/05/20 141 此年份为闰年2月有29天,结果是该年的第141天。
1999/11/26 330 年份为非闰年2月有28天,结果是该年的第330天。
1583/07/14 195 年份为非闰年2月有28天,结果是该年的第195天。
2007/10/08 281 年份为非闰年2月有28天,结果是该年的第281天。
2020/04/19 110 此年份为闰年2月有28天,结果是该年的第110天。
2019/12/09 343 年份为非闰年2月有28天,结果是该年的第343天。

1.2.4 PTA提交列表及说明

根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。

提交列表说明:

 1.部分正确:第二个while循环体中丢了i++导致非闰年中的计算出错,重新修改后再次提交。
 2.编译错误:修改过程中不小心删去了引号和括号导致编译错误,正确添加后再提交显示答案正确。

2.代码互评

同学代码截图

自己代码截图

1.同学的代码只定义了较少的变量,而我定义了大量的变量,相比较我的代码运算速度慢。
2.同学的代码使用了定义函数并调用函数的方法还使用了结构数组的方法解题,而我使用的是while循环里面再加switch语句的方法。
3.同学的代码用了自学的知识,代码量仅有25行,比我的更简单明了。

同学代码截图

自己代码截图

1.同学的代码定义了六个变量,其中简化了变量名,在进行逻辑判断时比较清楚可读性较强。
2.同学的代码很简单的就把题目做出来了,逻辑判断非常合理,而我的代码冗长复杂还浪费了大量的时间。相比较可读性差,运行速度慢。

二.学习进度条

周/日期 代码行 这周所花的时间 学到的知识点简介 目前比较疑惑的问题
第八周10.19-10.25 480 23小时 调用输入输出函数,输出任意的字符串。 输入输出格式常没有与题目一致
第九周10.26-11.01 599 33小时 数的类型,定义变量时要先考虑清楚。 数据溢出和负数的浮点型
第十周11.02-11.08 519 27小时 for循环语句,if的判断语句。 多次循环与循环体中再添加变量赋值并再循环
第十一周11.09-11.15 520 20小时 定义函数,调用函数 调用函数和定义函数易将变量弄混淆
第十二周11.16-11.22 550 28小时 多分支结构、字符型数据类型和逻辑运算符。 多分支结构容易弄错,逻辑运算符使用不熟练
第十三周11.23-11.29 540 30小时 多分支结构switch语句 switch语句使用不熟练,容易出现漏掉符号的情况
3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

感悟:

1.这周新学了多分支结构switch语句,上课时老师的讲课速度还是挺快的,我还在写上一道题目时老师就已经讲switch了,课后还是有点晕晕的,所以我在课后都要将上课讲到的代码都打一遍,因为只有这样才能印象深刻!
2.在专业课的学习过程中,最重要的还是自学,我们在做题时感到很多局限性,因为我们现在掌握的知识太少,做一些题目需要写六十多行代码,但如果自己提前去预习就可以用更好的方法来解题。
3.PTA上的作业还是越来越深入,越来越有意思,这次同学们的做题方法还是呈现百花齐放的局面,这是非常好的局面,希望同学们能保持下去!
4.最后还是强调耐心这一点, 这次作业让我发现了发际线与耐心成正比这个规律,因为我在写第四题的时候被月份的特殊情况困住了,足足有好几个小时感觉特别烦,在这期间我一直在抓头发,所以说写代码要有耐心一点千万不要烦躁。
posted @ 2020-11-28 17:38  Vatij  阅读(151)  评论(7编辑  收藏  举报