PTA题目集4,5及期中考试总结Blog
一.前言;
大一下学期开始,我们开始接触java这门语言,Java具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的形式和感觉,但它要比C++语言更易于使用,而且在编程时彻底采用了一种以对象为导向的方式。
Pta作业已经写了五次,除了第一次题目难度比较平缓,后面的数次难度激增,我也只有第一次全部写完pta的所有题目,后面就没有拿到过满分。总体来说,最近两次pta的主要知识点还是在设计类和学习java语言,以及用面向对象的思维方式。对只接触过一点java语言的我们还是很有挑战的。最近两次pta作业虽然题类似,但是难度很大,两次作业都有菜单的设计,有很多类的调用,十分复杂,还需要使用很多函数,要有继承和传参,对我们来说确实十分困难。
二.设计与分析:
第四次题目集:
本次作业比菜单计价系列-3增加的功能:
菜单输入时增加特色菜,特色菜的输入格式:菜品名+英文空格+基础价格+"T"
例如:麻婆豆腐 9 T
菜价的计算方法:
周一至周五 7折, 周末全价。
注意:不同的四舍五入顺序可能会造成误差,请按以下步骤累计一桌菜的菜价:
计算每条记录的菜价:将每份菜的单价按份额进行四舍五入运算后,乘以份数计算多份的价格,然后乘以折扣,再进行四舍五入,得到本条记录的最终支付价格。
最后将所有记录的菜价累加得到整桌菜的价格。
代码如下:
Dish类:
Menu类:
Record类:
Order类:
Table类:
Main类:
类图如下:
圈复杂度:
题目分析:
此题是菜单类,包含菜品类,菜谱类,点菜记录类和订单类,菜品类主要是对应菜谱上一道菜的信息。菜谱类主要是对应菜谱,包含饭店提供的所有菜的信息。点菜记录类主要是保存订单上的一道菜品记录。订单类主要是保存用户点的所有菜的信息。一开始看到这个题目的时候,我是被吓了一跳的,因为这道题的文字量特别的大,而且在上次的pta上有加了许多别的功能,比如说删除和时间,还有特色菜,有这与普通菜不同的计算价格的方式和打折的方式。在得分上,得分点又被细化,导致不好拿到高分。
踩坑心得:
1,价格的算法出错,注意特色菜的价格算法以及打折的时间。
2,同一桌菜名、份额相同的点菜记录要合并成一条进行计算,否则可能会出现四舍五入的误差。
3,超出范围的返回值错误,导致返回date。
4,方法后没有带上(),导致报错,所以方法类函数后都要加上()。
5,大小写注意,java语言对输入的语言的精确度和精准度要去很高,很多时候报错是因为方法首字母没有大写。
6,“{}”没有对应上,很多时候只记得打“{”,不记得在后面打“}”。
第五次题目集:
本次课题相比菜单计价系列-3新增要求如下:
1、菜单输入时增加特色菜,特色菜的输入格式:菜品名+英文空格+口味类型+英文空格+基础价格+"T"
菜价的计算方法:
周一至周五 7折, 周末全价。
特色菜的口味类型:川菜、晋菜、浙菜
川菜增加辣度值:辣度0-5级;对应辣度水平为:不辣、微辣、稍辣、辣、很辣、爆辣;
晋菜增加酸度值,酸度0-4级;对应酸度水平为:不酸、微酸、稍酸、酸、很酸;
浙菜增加甜度值,甜度0-3级;对应酸度水平为:不甜、微甜、稍甜、甜;
输出一桌的信息时,按辣、酸、甜度的顺序依次输出本桌菜各种口味的口味度水平,如果没有某个类型的菜,对应的口味(辣/酸/甜)度不输出,只输出已点的菜的口味度。口味度水平由口味度平均值确定,口味度平均值只综合对应口味菜系的菜计算,不做所有菜的平均。比如,某桌菜点了3份川菜,辣度分别是1、3、5;还有4份晋菜,酸度分别是,1、1、2、2,辣度平均值为3、酸度平均值四舍五入为2,甜度没有,不输出。
一桌信息的输出格式:table+英文空格+桌号+:+英文空格+当前桌的原始总价+英文空格+当前桌的计算折扣后总价+英文空格+"川菜"+数量+辣度+英文空格+"晋菜"+数量+酸度+英文空格+"浙菜"+数量+甜度。
2、考虑客户订多桌菜的情况,输入时桌号时,增加用户的信息:
格式:table+英文空格+桌号+英文空格+":"+英文空格+客户姓名+英文空格+手机号+日期(格式:YYYY/MM/DD)+英文空格+ 时间(24小时制格式: HH/MM/SS)
输出用户支付金额格式:
用户姓名+英文空格+手机号+英文空格+支付金额
代码如下:
Dish类:
Menu类:
people类:
Record类:
Order类:
table类:
main类:
类图如下:
圈复杂度:
题目分析:
此题是菜单类,包含菜品类,菜谱类,点菜记录类和订单类,菜品类主要是对应菜谱上一道菜的信息。菜谱类主要是对应菜谱,包含饭店提供的所有菜的信息。点菜记录类主要是保存订单上的一道菜品记录,订单类主要是保存用户点的所有菜的信息。这道题对比上次的pta,加入了手机号和排序,加入了口味值,加入了川菜,晋菜,浙菜。代码需要传参的地方更多,很容易传参错误导致输出错误,代码不能得分,在得分上,得分点又被细化,导致不好拿到高分。
踩坑心得:
1,数据类型转换错误,string类和int类转换和输出问题。
2,代码需要传参的地方更多,很容易传参错误导致输出错误。
3,不同的四舍五入顺序可能会造成误差。
4,方法后没有带上(),导致报错,所以方法类函数后都要加上()。
5,“{ }”没有对应上,很多时候只记得打“{”,不记得在后面打“}”。
6,大小写注意,java语言对输入的语言的精确度和精准度要去很高,很多时候报错是因为方法首字母没有大写。
7,本题要考虑代点菜的情况,当前桌点的菜要加上被其他桌代点的菜综合计算口味度平均值。
8,输出结果时,同一个客户的所有table金额一定要累加。
9,辣度值超标会返回date。
期中考试题目集:
第一题:
7-1 测验1-圆类设计 分数 12 作者 段喜龙 单位 南昌航空大学创建一个圆形类(Circle),私有属性为圆的半径,从控制台输入圆的半径,输出圆的面积
输入格式:
输入圆的半径,取值范围为(0,+∞)
,输入数据非法,则程序输出Wrong Format
,注意:只考虑从控制台输入数值的情况
输出格式:
输出圆的面积(保留两位小数,可以使用String.format(“%.2f”,输出数值)控制精度)
代码如下:
踩坑心得:
1,着急了没加头文件。
第二题:
7-2 测验2-类结构设计 分数 18 作者 段喜龙 单位 南昌航空大学设计一个矩形类,其属性由矩形左上角坐标点(x1,y1)及右下角坐标点(x2,y2)组成,其中,坐标点属性包括该坐标点的X轴及Y轴的坐标值(实型数),求得该矩形的面积。类设计如下图:
输入格式:
分别输入两个坐标点的坐标值x1,y1,x2,y2。
输出格式:
输出该矩形的面积值(保留两位小数)。
代码如下:
第三题:
7-3 测验3-继承与多态 分数 30 作者 段喜龙 单位 南昌航空大学将测验1与测验2的类设计进行合并设计,抽象出Shape父类(抽象类),Circle及Rectangle作为子类,类图如下所示:
代码如下:
踩坑心得:
1,着急了没加括号。
2,对继承的方法的错误应用,导致被卡了好久。
三,主要困难:
1,java语言不熟练,很多语言功能不会使用。
2,Java对代码语言的精准度和准确度要求十分的高,不能随意修改大小写,很多时候也在这犯错误。
3,对类的概念没有充分的掌握,很多时候不了解在类下面应该包含什么功能,用什么方法。面对题目,不知道如何分类,没有头绪。
4,对继承的方法使用不熟练,对传参的方法也不太熟练,会用但是容易出错。
四,改进建议:
1,pta部分题目运行时间超时,要优化代码的算法,很多时候不是你的方法不行,而是有优化的地方没有优化,导致程序运行的时间加长导致超时,现在争取把每个小步骤都优化,以后的大作业程序才能不断的节省时间。
2,pta部分题目非零返回,自己的代码有问题才会导致的,要检查自己的程序逻辑。
3,对继承的方法使用不熟练,对传参的方法也不太熟练,会用但是容易出错,要多使用,防止以后出错。
4,对类的设计要更细节和具体,每个类包含的属性和方法,以及不同类之间的关系。
五,总结:
这两次的作业总体来说难度大,题目量虽然也不多,但是有些题目还是需要静下心来思考才能做好。期中考试的难度不算很高,前三题还是比较好作对的,第四题的接口我还没有掌握,没能拿下分。通过这数次的PTA作业,我也基本能够掌握java语言中类的作用。这段时间的作业,也让我发现了自己最大的问题,那就是思维比较固化,写的很多程序的思路大多都是按部就班的那种,所以我的思维能力还是很需要培养的。这几次的作业,也基本帮助我们搭建了一个最基本的java语言的框架,让我学会了java的基本语法和类的分类,掌握了面向对象的语言的基本思路,学会了部分菜单的设计,学会了类的调用和部分函数,学会了传参和继承。虽然我还有很多不足和错误,java的语法不够熟练,对类的概念没有充分的掌握,传参也容易出错。希望老师可以更多的讲一下部分有用的java方法,毕竟自己查资料学习的不够系统,通过老师的讲解可以更加深入,系统的学习。
标签:传参,输出,java,blog2,空格,英文,题目 From: https://www.cnblogs.com/wky1216/p/17512658.html