这个作业属于哪个课程 | 这个作业要求在哪里 | 我在这个课程的目标是 | 这个作业在哪个具体方面帮助我实现目标 | 参考文献 | |
---|---|---|---|---|---|
C语言程序设计II | C语言I—2019秋作业07,C语言作业评价标准 | 熟悉并掌握基本的程序语言知识,并拥有独立完成程序编辑的能力 |
|
C语言程序设计(第三版),百度百科 |
1.PTA实验作业
1.1 计算天数
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。在一行输出日期是该年中的第几天。
1.1.1 数据处理
①数据表达:使用了整形常量year,month,day,作为输入的年月日;
②数据处理:使用了Swtich多分支结构语句 ,作为判断并输出相对应的月份所包含的天数。
③简易流程图如下:
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2009/03/02 | 61 | 使用题试数据测试 |
2000/03/02 | 62 | 使用题试数据测试 |
2999/12/31 | 365 | 使用较大数据测试 |
1000/01/01 | 1 | 使用较小数据测试 |
2019/11/06 | 310 | 使用今日数据测试并百度检验 |
1.1.4 PTA提交列表及说明
提交列表说明:
1.编译错误:Swtich语句中default后没有加分号;(补齐分号解决)
2.答案错误:逻辑运算符的错误使用,使闰年判断错误;(使用逻辑运算符&&确保条件同时成立)
3.部分正确:在Swtich语句中没有全部的更改二月份的天数;(将闰年部分的二月份全部改为29)
4.答案正确:在VS中反复验证测试然后更正,粘贴到PTA中成功提交。
1.2 整数的分类处理
给定 N 个正整数,要求你从中得到下列三种计算结果:A1 = 能被 3 整除的最大整数;A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数;A3 = 存在整数 K 使之可以表示为 3K+2 的所有整数的平均值精确到小数点后一位。 输入首先在第一行给出一个正整数 N,随后一行给出 N 个正整数。所有数字都不超过 100,同行数字以空格分隔。在一行中顺序输出 A1、A2、A3的值,其间以 1 个空格分隔。如果某个数字不存在,则对应输出NONE。
1.2.1 数据处理
①数据表达:使用了整形变量N,number,i,x,result,count, sum,result1,以及浮点变量result2;其中,N作为输入的数字个数,number作为输入的数字,i和x作为程序运行的中间变量;result、result1、result2分别做微A1、A2、A3的数值,count作为符合A3条件的计数器,sum作为符合A3条件的数的总和;
②数据处理:使用了for循环语句,作为输入数据的数量判定,直达达到输入的N个数字;使用了if 选择语句,用来判断输入的数字符合哪个条件;使用了Swtich多分支结构语句 ,用来判断符合resul1条件的数字个数。
③简易流程图如下:
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
8,5 8 7 6 9 1 3 10 | 9 3 6.5 | 使用题试数据测试 |
8,15 18 7 6 9 1 3 10 | 18 3 NONE | 使用题试数据测试 |
10,1 3 5 7 9 12 14 16 18 20 | 18 3 13.0 | 使用随机数据测试 |
5,7 7 7 7 7 | NONE 5 NONE | 使用重复数据测试 |
1,3 | 3 NONE NONE | 使用单个数据测试 |
1.2.4 PTA提交列表及说明
提交列表说明:
1.编译错误:if语句和算术运算符的括号结合使用导致少使用一边括号;(补齐一边括号解决)
2.部分正确:使用了未经定义的变量运算;(重新定义所有使用了的变量)
3.部分正确:将result等变量的赋值语句放入了for循环语句中导致输出错误;(将赋值语句放在循环语句之前)
4.编译错误:在VS中编译后粘贴实验没有去除_s的符号导致编译错误;(去除_s符号)
5.部分正确:没有考虑到sum和count都为0的情况导致result2没有意义;(加入if语句考虑result2为0的情况)
6.部分正确:错误的在Swtich语句中加入多余的default语句给result1赋值;(去除default语句)
7.答案正确:在VS中反复验证测试然后更正,粘贴到PTA中成功提交。
2.代码互评
2.1同学代码截图①(来自李泽基)
2.1同学代码截图②(来自彭齐家)
2.2自己代码截图(使用习题7-12)
2.3比较结果
①使用的整形变量的不同,我的使用的比较多,还有简化的余地。当然名字的不同就不算在内了,每个人的习惯不一;不过主要是我使用了被调函数因此增加了一定的变量;
②使用的计算步骤的不同,由于自定义函数放在了前面所以我的会先进行判断再进入Swtich语句;
③使用的计算方法的不同,我整个自定义了一个新的函数来直接判断成绩区间,以此来作为Swtich的表达式。
3.学习总结
3.1 学习进度条
周数/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 | |
---|---|---|---|---|---|
第三周/10-11 | 约6-7h | 约200-240 | “if”和“else”选择结构语句的基本使用 |
|
|
第四周/10-16 | 约6-7h | 约320-360 | “for”循环结构语句的基本使用 |
|
|
第五周/10-24 | 约6-7h | 约320-360 | 自定义函数的格式以及应用 |
|
|
第六周/10-31 | 约6-7h | 约320-361 | 多分支结构、字符型数据类型和逻辑运算符 |
|
|
第七周/11-06 | 约7-8h | 约340-399 | 多分支结构中的Swtich结构的运用以及是否使用break的区别 |
|
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
还记得彭老师上课跟我们讲这次作业全部要使用Swtich语句来完成的时候,有同学问都用这个怎么完成代码的互评比较。哈哈现在自己整个做完了发现完全没得这个顾虑,虽说要求使用Swtich语句,但是每一个程序的设计都可以有好多种不同的方法和执行方案。尤其是当变量较多的时候,处理的方法和计算的步骤上更是有各种不同的方法。我想,比较的意义就在于取长补短,多多看看其他同学的代码,与自己的进行对比,学习其中的先进便捷的思想。集百家之长,对于我们的学习益处颇多。
就拿我比较的的习题7-12来说,我从Swtich语句出发,立马就想到了之前我们所学习的自定义函数。结合起来运用不但能够巩固之前所学,加强与现有新学知识的联系,相信也能够与其他同学的代码比对出很多可以学习反思的内容来。
顺带一提,感觉博客园整个更新了一下,字体变细了一点、加图片也在右上角了。不过这些都不重要,只是比较不习惯这个编辑模式发生了更改,打字输入的话不是向后顺推文本内容了,而是直接顶替原有文本内容,不知道哪里可以设置返回原有编辑模式。望解答。
发现代码互评原来真的不只是简单的找不同,学习自己所没有的知识和思路才是它的意义所在。
“他山之石,可以攻玉。” |
——《诗经·小雅》