南昌航空大学-软件学院-22206112-胡怡翔-Blog1

pta题目集1~3总结Blog

 

一.前言

   大一下学期开始,我们开始接触java这门语言,Java具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的形式和感觉,但它要比C++语言更易于使用,而且在编程时彻底采用了一种以对象为导向的方式。

   Pta作业已经写了三次,除了第一次题目难度比较平缓,后面两次难度激增,我也只有第一次全部写完pta的所有题目,后面两次没有写完。总体来说,前三次pta的主要知识点还是在认识java的语言,学会使用类,以及用面向对象的思维方式。第一次pta作业主要是让我们学习部分java语言,毕竟之前都是c语言,课设也是c语言+ege,对完全没有接触过java语言的我们还是很有挑战的。后面两次pta作业虽然题量不多,但是难度很大,两次作业都有菜单的设计,有很多类的调用,十分复杂,还需要使用很多函数,对我们来说确实十分困难。

二.设计与分析:

第2次题目集的第一题:

7-1 菜单计价程序-1
分数 30
作者 蔡轲
单位 南昌航空大学
某饭店提供4种菜,每种菜品的基础价格如下:
西红柿炒蛋 15
清炒土豆丝 12
麻婆豆腐 12
油淋生菜 9
设计点菜计价程序,根据输入的订单,计算并输出总价格。
订单由一条或多条点菜记录组成,每条记录一行,最后以"end"结束
每条点菜记录包含:菜名、份额两个信息。
份额可选项包括:1、2、3,分别代表小、中、大份)
不同份额菜价的计算方法:
小份菜的价格=菜品的基础价格。
中份菜的价格=菜品的基础价格1.5。
小份菜的价格=菜品的基础价格2。
如果计算出现小数,按四舍五入的规则进行处理。

代码如下:

 

 

 

题目分析:

   此题是菜单类,包含菜品类,菜谱类,点菜记录类和订单类,菜品类主要是对应菜谱上一道菜的信息。菜谱类主要是对应菜谱,包含饭店提供的所有菜的信息。点菜记录类主要是保存订单上的一道菜品记录。订单类主要是保存用户点的所有菜的信息。一开始看到这个题目的时候,我是被吓了一跳的,因为这道题的文字量特别的大,但是我下意识就觉得这是一道很复杂的题目,但是在读懂了题目之后就会发现题目并没有自己想的那么难,解决这道题最重要的一点就是要学会对字符串的处理,并且在题目中也给出了很多提示,进行一些简单的运算,这道题很快就可以解决了。

踩坑心得:

1,数据类型转换错误,string类和int类转换和输出问题,用csdn的四舍五入方法代码没有解决,后来选择用进一法解决了。

2,方法后没有带上(),导致报错,所以方法类函数后都要加上();

3,大小写注意,java语言对输入的语言的精确度和精准度要去很高,很多时候报错是因为方法首字母没有大写,

4,{}没有对应上,很多时候只记得打{,不记得在后面打};

 

第2次题目集的第二题:

7-2 菜单计价程序-2

分数 40

作者 蔡轲

单位 南昌航空大学

设计点菜计价程序,根据输入的信息,计算并输出总价格。

输入内容按先后顺序包括两部分:菜单、订单,最后以"end"结束。

菜单由一条或多条菜品记录组成,每条记录一行

每条菜品记录包含:菜名、基础价格 两个信息。
订单分:点菜记录和删除信息。每一类信息都可包含一条或多条记录,每条记录一行。
点菜记录包含:序号、菜名、份额、份数。
份额可选项包括:1、2、3,分别代表小、中、大份。

删除记录格式:序号 delete

标识删除对应序号的那条点菜记录。

不同份额菜价的计算方法:
小份菜的价格=菜品的基础价格。
中份菜的价格=菜品的基础价格1.5。
小份菜的价格=菜品的基础价格2。
如果计算出现小数,按四舍五入的规则进行处理。

 

代码如下:

Dish类:

 

 

Menu类:

 

 

Record类:

 

 

 

Order类:

 

题目分析:

   此题是菜单类,包含菜品类,菜谱类,点菜记录类和订单类,菜品类主要是对应菜谱上一道菜的信息。菜谱类主要是对应菜谱,包含饭店提供的所有菜的信息。点菜记录类主要是保存订单上的一道菜品记录,订单类主要是保存用户点的所有菜的信息。这题我用了面向对象的设计,和7-1实现了同样的功能,7-1是面向程序的语言,没有用类的设计,整个程序都在一个main类下进行,虽然可以实现,而且比7-2的方法简单,但是多类的设计在未来的大作业中会体现出自己的独特的优越性,简化代码设计,方便后期修改,使得代码的语言更容易被别人看懂;

类图如下:

 

 

 

 

踩坑心得:

1,数据类型转换错误,string类和int类转换和输出问题;

2,数据调用出错,方法错误,无法调用;

3,方法后没有带上(),导致报错,所以方法类函数后都要加上();

4,“{ }”没有对应上,很多时候只记得打“{”,不记得在后面打“}”;

5,大小写注意,java语言对输入的语言的精确度和精准度要去很高,很多时候报错是因为方法首字母没有大写,

 

第3次题目集的第一题:

7-1 菜单计价程序-3

分数 30

作者 蔡轲

单位 南昌航空大学

设计点菜计价程序,根据输入的信息,计算并输出总价格。

输入内容按先后顺序包括两部分:菜单、订单,最后以"end"结束。

菜单由一条或多条菜品记录组成,每条记录一行

每条菜品记录包含:菜名、基础价格 两个信息。

订单分:桌号标识、点菜记录和删除信息、代点菜信息。每一类信息都可包含一条或多条记录,每条记录一行或多行。

桌号标识独占一行,包含两个信息:桌号、时间。

桌号以下的所有记录都是本桌的记录,直至下一个桌号标识。

点菜记录包含:序号、菜名、份额、份数。份额可选项包括:1、2、3,分别代表小、中、大份。

不同份额菜价的计算方法:小份菜的价格=菜品的基础价格。中份菜的价格=菜品的基础价格1.5。小份菜的价格=菜品的基础价格2。如果计算出现小数,按四舍五入的规则进行处理。

删除记录格式:序号 delete

标识删除对应序号的那条点菜记录。

如果序号不对,输出"delete error"

 

代码如下:

Dish类如下:

 

Menu类如下:

 

Record类如下:

 

Order类如下:

 

Table类如下:

 

 

 

 

Main类如下:

 

 

 

 

 

 

题目分析:

   此题是菜单类,包含菜品类,菜谱类,点菜记录类和订单类,菜品类主要是对应菜谱上一道菜的信息。菜谱类主要是对应菜谱,包含饭店提供的所有菜的信息。点菜记录类主要是保存订单上的一道菜品记录,订单类主要是保存用户点的所有菜的信息。本题目还包含了时间和点菜系统;在题目集2的7-2的代码上修改,加入了table类和时间的函数,让代码更加丰满,功能更加齐全,第三次训练集又是在第二次训练集的基础上增加了难度,需要我们有更强的逻辑思维能力,并且要有更多的java语言知识的储备。

类图如下:

 

 

 

踩坑心得:

1,类的调用出现问题,很多时候方法错误,导致调用失败,

2,方法后没有带上(),导致报错,所以方法类函数后都要加上();

3,{}没有对应上,很多时候只记得打{,不记得在后面打};

4,返回值类型没有转换,string类转换int类型;

5,运行时间超时,要优化代码的算法;

6,非零返回,多半是自己的代码有问题,java不需要返回,自己的代码出现问题时才会显示非零返回:

三,主要困难:

1,java语言不熟练,很多语言功能不会使用,毕竟是第一次接触java,之前的课设都是用c语言和ege写的,对java我完全是一窍不通,使用很多方法都不会用。

2,Java对代码语言的精准度和准确度要求十分的高,不能随意修改大小写,很多时候也在这犯错误。

3,对类的概念没有充分的掌握,很多时候不了解在类下面应该包含什么功能,用什么方法。面对题目,不知道如何分类,没有头绪。

四,改进建议:

1,pta部分题目运行时间超时,要优化代码的算法,很多时候不是你的方法不行,而是有优化的地方没有优化,导致程序运行的时间加长导致超时,现在争取把每个小步骤都优化,以后的大作业程序才能不断的节省时间。

2,Pta部分题目非零返回,自己的代码有问题才会导致的,要检查自己的程序逻辑。

五,总结:

   这三次的作业总体来说难度大,题目量虽然也不多,但是有些题目还是需要静下心来思考才能做好。通过这三次的PTA作业,我也基本能够掌握java语言中类的作用。这段时间的作业,也让我发现了自己最大的问题,那就是思维比较固化,写的很多程序的思路大多都是按部就班的那种,,所以我的思维能力还是很需要培养的。这三次的作业,也基本帮助我们搭建了一个最基本的java语言的框架,让我学会了java的基本语法和类的分类,掌握了面向对象的语言的基本思路,学会了部分菜单的设计,学会了类的调用和部分函数。虽然我还有很多不足和错误,java的语法不够熟练,对类的概念没有充分的掌握,希望老师可以更多的讲一下部分有用的java方法,毕竟自己查资料学习的不够系统,通过老师的讲解可以更加深入,系统的学习。

posted @ 2023-04-01 21:08  辶力云车可  阅读(65)  评论(0)    收藏  举报