zoukankan      html  css  js  c++  java
  • C语言I博客作业07

    这个作业属于哪个课程 这个作业要求在哪里 我在这个课程的目标是 这个作业在哪个具体方面帮助我实现目标 参考文献
    C语言程序设计II C语言I—2019秋作业07C语言作业评价标准 熟悉并掌握基本的程序语言知识,并拥有独立完成程序编辑的能力
    进一步强化C语言的基础学习,学习掌握多分支结构中的switch语句,同时通过PTA作业了解其在实际编程语言中的应用
    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的区别
    Swtich语句的重复多次运用方法

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

       还记得彭老师上课跟我们讲这次作业全部要使用Swtich语句来完成的时候,有同学问都用这个怎么完成代码的互评比较。哈哈现在自己整个做完了发现完全没得这个顾虑,虽说要求使用Swtich语句,但是每一个程序的设计都可以有好多种不同的方法和执行方案。尤其是当变量较多的时候,处理的方法和计算的步骤上更是有各种不同的方法。我想,比较的意义就在于取长补短,多多看看其他同学的代码,与自己的进行对比,学习其中的先进便捷的思想。集百家之长,对于我们的学习益处颇多。
       就拿我比较的的习题7-12来说,我从Swtich语句出发,立马就想到了之前我们所学习的自定义函数。结合起来运用不但能够巩固之前所学,加强与现有新学知识的联系,相信也能够与其他同学的代码比对出很多可以学习反思的内容来。
       顺带一提,感觉博客园整个更新了一下,字体变细了一点、加图片也在右上角了。不过这些都不重要,只是比较不习惯这个编辑模式发生了更改,打字输入的话不是向后顺推文本内容了,而是直接顶替原有文本内容,不知道哪里可以设置返回原有编辑模式。望解答。
       发现代码互评原来真的不只是简单的找不同,学习自己所没有的知识和思路才是它的意义所在。

    “他山之石,可以攻玉。”

       ——《诗经·小雅》

  • 相关阅读:
    ubuntu18.04下eclipse修改maven源为阿里源
    Java中使用队列Queue
    Redis学习笔记——Redis的基本操作
    ubuntu安装redis
    Spring Boot使用监听器Listener
    Spring Boot中在程序中获得application.properties中的值
    Spring Boot使用过滤器Filter
    基于GTID的主从架构异常处理流程
    goroutine与调度器
    使用synergyc共享键鼠
  • 原文地址:https://www.cnblogs.com/rodcirdo/p/11801171.html
Copyright © 2011-2022 走看看