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语句使用不熟练,容易出现漏掉符号的情况 |