| 问题 | 回答 |
|---|---|
| 这个作业属于哪个课程 | C语言程序设计ll |
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/9930 |
| 我在这个课程的目标是 | 掌握switch的用法,能熟练解释出自己编写的整段代码 |
| 这个作业在哪个具体方面帮助我实现目标 | PTA作业,写伪代码 |
| 参考文献 | 《C语言程序设计》 百度 CSDN(APP) |
1. PTA实验作业

1.1 题目7-10计算天数
题目内容描述:本题要求编写程序计算某年某月某日是该年中的第几天
1.1.1 数据处理
- 数据表达:定义了整型变量y,m,d,number, y,m,d分别表示年,月,日
- 数据处理:使用了if-else语句进行判断,switch语句处理多分支选择问题
- 伪代码:

1.1.2 实验代码截图

1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 2000/02/20 | 51 | 闰年 |
| 2005/08/08 | 220 | 不是闰年 |
| 2019/10/01 | 274 | 不是闰年 |
| 2020/12/20 | 355 | 闰年 |
1.1.4 PTA提交列表及说明

提交列表说明
- 答案错误:没有定义number,直接写了d=31+d...等等
- 编译错误:定义了number,但写的是number=31+d...等等
- 编译错误:还是没有去掉+d,而是在switch中的每个语句后面加了个答案(如:number=31+d=31;)
- 答案错误:去掉了所有+d,还是错的
- 答案错误:在第二个switch语句最后加上了一个"number=number+d"
- 答案错误:在第一个switch语句后面也加上了一个"number=number+d"
- 中间还出现了许多错误,但我找不到错误原因,就乱试,这是不好的学习方法和态度,一定要改
1.2 题目7-12统计学生成绩
题目内容描述:本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E
1.2.1 数据处理
- 数据表达:定义了整型变量i,score,N,A,B,C,D,E, A,B,C,D,E是五分制成绩,N是学生人数
- 数据处理:使用了for语句进行循环计算,switch语句处理多分支选择问题
- 伪代码:

1.2.2 实验代码截图

1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 4 50 68 70 81 | 0 1 1 1 1 | 没有90分以上的 |
| 5 45 48 69 81 98 | 1 1 0 1 2 | 没有70-80分的 |
| 6 55 67 78 86 99 100 | 2 1 1 1 1 | 90分以上的有两人 |
| 7 35 58 66 79 80 81 96 | 1 2 1 1 2 | 80-90,60分以下的分别有两人 |
1.2.4 PTA提交列表及说明

提交列表说明
- 答案错误:没有定义A,B,C,D,E
- 答案错误:A++,B++等没有写,而写了printf("A")等
- 答案错误:A,B,C,D,E没有赋初始值
- 答案错误:score没有除以10(/10)
- 答案错误:少写了一个语句,A++
- 答案错误:10,9,8...与A,B,C...顺序搭配反了
- 答案错误:没有输出A,B,C,D,E
- 部分错误:for语句括号放错了地方
2. 代码互评
同学代码截图

自己代码截图

代码对比
- 她定义了字符型变量a,b,并且她输入了五个变量
- 她每个天数后面都加了日数,我的没加,也是可以的
- 我的代码写了天数的表达式,她的并没有写出
- 两份代码还是很相似的,都是使用if-else语句和switch语句
同学代码截图

自己代码截图

代码对比
- 两份代码使用的语法是一样的,都使用了for语句和switch语句
- 最大的区别就是她的分数没有除以十取整,她将每个范围内的分数全部列了出来,这样太麻烦了
- 她的代码一眼看过去挺整齐的,但同时也很复杂,我觉得我的代码更清晰
3. 学习总结
3.1 学习进度条
| 周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
|---|---|---|---|---|
| 7/10.9-7/10.11 | 21小时 | 120 | else-if从句,关系运算 | PTA显示的答案错误究竟是指什么 |
| 8/10.16-8/10.18 | 15小时 | 84 | 用for语句计算简单的序列和 | 双精度浮点型变量的定义 |
| 9/10.23-9/10.26 | 16小时 | 102 | 学到while语句的一点点知识,对自定义函数了解了一点 | while语句的具体用法 |
| 10/10.30-10/11.2 | 14小时 | 145 | 多分支结构,逻辑运算符 | 当分支较多时不太会使用if,else,for |
| 11/11.6-11/11.8 | 14小时 | 143 | 利于switch语句处理多分支选择问题 | 伪代码的具体定义 |
3.2 累积代码行和博客字数
| 时间 | 博客字数 | 代码行数 |
|---|---|---|
| 第四周 | 596 | 32 |
| 第五周 | 1288 | 54 |
| 第七周 | 2240 | 174 |
| 第八周 | 3254 | 364 |
| 第九周 | 6124 | 512 |
| 第十周 | 8085 | 796 |
| 第十一周 | 9625 | 1030 |
![]() |
3.3 学习内容总结和感悟
3.3.1 学习内容总结

3.3.2 学习体会
- 本次PTA作业要求全部使用switch语句进行编程,刚开始还比较焦虑,后来写着写着就熟悉了很多,感觉思路一下子清晰了许多
- 这次作业又多了一项内容--伪代码,我不知道伪代码是什么,然后按照自己的理解写了伪代码,应该是那样的
- 每次写一个编程题都要用好久的时间,还要在DEV-C++上编译很多次,特别是运行的时候,出现了正确答案,心情是激动的
- 每次作业都在不停地翻书,查资料,通过自己努力得来的印象都要深刻一些,然后,自己还是要加强自学能力
