最新要闻
- 目前负债1000万的都进来大家都是因为什么_现在生活状态如何|环球即时
- 焦点速递!阿里云被曝裁员:整体优化比例约7%
- 天天热资讯!Win11 2024新预览版25370发布:性能提升更好用了
- 一加和友商都在搞“旗舰普及” 有何区别?李杰回应 世界观天下
- 世界快资讯:领先AMD!Intel FPGA首发支持PCIe 5.0和CXL 2.0:性能、带宽大幅提升
- 月销量将再创纪录!理想5月第三周狂卖0.71万辆:真遥遥领先
- 一兆韦德:经营受疫情影响 已完成新一轮融资
- 今日关注:5.8元/月 WPS新版超级会员618大促预售:升不升会员简直两个软件
- 硅谷富豪为长寿拿儿子当血童:换血“永葆青春” 每日快报
- 任天堂“最失败”主机!官方宣布Wii U维修服务即将终止
- 特斯拉Model Y路边起火完全烧毁 保险公司赔付一台新车
- 150W快充!真我GT Neo5 16GB+1TB新版发布:3099元_前沿热点
- 世界热头条丨国元证券研究所组织开展科技主题基金经理调研
- 环球热议:海兴电力: 截至目前,公司在海外市场已布局6大生产基地
- 馅料大于75% 三只松鼠黄金肉松饼7.9元/斤新低
- 看热讯:《王者荣耀》新英雄曝光:蓝发美人鱼
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
PTA1~3次作业总结_lxh
7-1代码:
代码逻辑很简单,选择语句轻松完成,旨在用代码实现数学计算。
最后一题稍微有些难度,需要考虑的方面很多。题目如下:
(资料图)
代码如下:
设计的方向主要是根据数学上三角形形状的判断以及代码上数据的处理规则。
2、第二次作业:
这次作业出现了菜单计价程序,也就是最难的题目,而且是一系列的,一次比一次难度大。
题目如下:
7-1 菜单计价程序-1分数30作者蔡轲单位南昌航空大学某饭店提供4种菜,每种菜品的基础价格如下:西红柿炒蛋 15清炒土豆丝 12麻婆豆腐 12油淋生菜 9
设计点菜计价程序,根据输入的订单,计算并输出总价格。订单由一条或多条点菜记录组成,每条记录一行,最后以"end"结束每条点菜记录包含:菜名、份额两个信息。份额可选项包括:1、2、3,分别代表小、中、大份)
不同份额菜价的计算方法:小份菜的价格=菜品的基础价格。中份菜的价格=菜品的基础价格1.5。小份菜的价格=菜品的基础价格2。如果计算出现小数,按四舍五入的规则进行处理。
参考以下类的模板进行设计:菜品类:对应菜谱上一道菜的信息。Dish{String name;//菜品名称int unit_price; //单价int getPrice(int portion)//计算菜品价格的方法,输入参数是点菜的份额(输入数据只能是1/2/3,代表小/中/大份)}
菜谱类:对应菜谱,包含饭店提供的所有菜的信息。Menu{Dish[] dishs ;//菜品数组,保存所有菜品信息Dish searthDish(String dishName)//根据菜名在菜谱中查找菜品信息,返回Dish对象。}
点菜记录类:保存订单上的一道菜品记录Record{Dish d;//菜品int portion;//份额(1/2/3代表小/中/大份)int getPrice()//计价,计算本条记录的价格}
订单类:保存用户点的所有菜的信息。Order{Record[] records;//保存订单上每一道的记录int getTotalPrice()//计算订单的总价Record addARecord(String dishName,int portion)//添加一条菜品信息到订单中。}
输入格式:
每条点菜记录的格式:菜名+空格(英文)+份额注:份额可输入(1/2/3), 1代表小份,2代表中份,3代表大份。最后一条记录以“end”结束。
输出格式:
订单上所有菜品的总价(整数数值),每份菜如果订单中包含不能识别的菜名,则在总价之前输出“** does not exist”,**是不能识别的菜名
代码如下:
import java.util.*;public class Main{ public static void main(String[] args) { Scanner input_xiaohui = new Scanner(System.in); Dish[] dishes = { new Dish("西红柿炒蛋", 15), new Dish("清炒土豆丝", 12), new Dish("麻婆豆腐", 12), new Dish("油淋生菜", 9), }; Menu menu = new Menu(dishes); Order order = new Order(); while(true) { String line_xiaohui = input_xiaohui.nextLine(); if(line_xiaohui.equals("end")) break; String[]parts_xiaohui = line_xiaohui.split(" "); String dishName = parts_xiaohui[0]; int portion = Integer.parseInt(parts_xiaohui[1]); order.addARecord(dishName,portion,menu); } System.out.println(order.getTotalPrice()); }}class Dish{ String name_xiaohui; int unit_price_xiaohui; Dish(String name,int price) { this.name_xiaohui = name; this.unit_price_xiaohui = price; } int getPrice_xiaohui(int portion) { float bl_xiaohui[]={1,1.5f,2}; return (int) Math.round(unit_price_xiaohui*bl_xiaohui[portion-1]); }}class Menu{ Dish[] dishes; Menu (Dish[] dishes) { this.dishes=dishes; } Dish searchDish_hui(String dishName) { for(Dish dish:dishes) { if(dish.name_xiaohui.equals(dishName)) return dish; } return null; }}class Record{ Dish dish; int portion; Record(Dish dish,int portion) { this.dish = dish; this.portion = portion; } int getPrice_xiaohui() { return dish.getPrice_xiaohui(portion); }}class Order{ List
idea类图分析如下:
- SourceMonitor生成报表:
Metrics Details For File "Main.java"--------------------------------------------------------------------------------------------
Parameter Value========= =====Project Directory C:\Users\Doctor E\IdeaProjects\Test\src\菜单1\Project Name PTA作业Checkpoint Name BaselineFile Name Main.javaLines 81Statements 49Percent Branch Statements 10.2Method Call Statements 7Percent Lines with Comments 19.8Classes and Interfaces 5Methods per Class 1.20Average Statements per Method 6.33Line Number of Most Complex Method 39Name of Most Complex Method Order.addARecord()Maximum Complexity 3Line Number of Deepest Block 43Maximum Block Depth 3Average Block Depth 1.47Average Complexity 1.80
--------------------------------------------------------------------------------------------Most Complex Methods in 3 Class(es): Complexity, Statements, Max Depth, Calls
Dish.Dish() 1, 2, 2, 0Dish.getPrice() 1, 2, 2, 1Main.main() 2, 9, 3, 3Order.addARecord() 3, 7, 3, 2Order.getTotalPrice() 2, 5, 3, 0
--------------------------------------------------------------------------------------------Block Depth Statements
0 91 152 183 74 05 06 07 08 09+ 0
这是菜单类的第一大题,该题涉及到了类与类之间的属性方法的相互调用,该题我一共创建了五个类:主类、菜品类、菜谱类、点菜记录类、订单类;在菜品类中有菜名属性name和菜品单价unit_price和getPrice方法该方法中需传参,将菜品的份额portion传入该方法中,在该方法中用switch语句实现对每一道菜计算价格,在菜单类我创建了菜品数组用来保存所有菜品信息,并在该菜单类中的Dish searthDish(String dishName)方法中对菜单中的菜品信息(菜名、单价)做了初始化操作并且设置了比对功能,如果顾客所点的菜与菜单中的菜不匹配则print该菜does not exist,若匹配成功则返回顾客所点菜的菜名。在点菜记录类中我也创建了菜品类Dish的对象和份额portion属性,该订单中的getPrice()方法与Dish类重名,可是两者内容是不同的,Record类中的getPrice方法是用来计价计算本条记录的价格。订单类中创建了点菜记录类Record的对象,并创建了getTotalPrice()方法用来计算点菜记录的总价,也创建了addARecord(String dishName,int portion)的方法用来实现不同顾客不同点菜记录的需求。在创建好这些必须类的内容后,我们再开始主类内容,该题输入主要是菜名和份额,也就是输入字符型和整形数据,最后输出菜的总价或某某菜不存在,所以创建字符变量a接收输入的字符型数据,整形变量b来接收输入菜名的份额,并创建order类与Menu类对象分别为c和n,只要变量a接收的数据不是end,b变量接收份额,并且c变量也继续接收储存新的点菜记录,这之后还要运用Menu对象n中的方法searthDish(String dishName)与点菜记录Record比对,存在则输出总价,若有不存在的菜名,则输出dishname+does not exist和总价。
7-4:小明走格子
代码如下:
import java.io.*;import java.util.*;public class Main {public static void main(String args[]) throws IOException{StreamTokenizer re = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));re.nextToken(); int R_xiaohui = (int)re.nval;int m_xiaohui[] = new int[10010]; int n_xiaohui[] = new int[100]; int i,j,max_xiaohui = 0; for(i=0;i 这道题目是一道经典的算法题,考到的知识点是动态规划,只需要懂一些这方面的算法即可轻松解题。 3、第三次作业: 除了菜单计价程序,其他的都拿了满分,说明确实菜单程序比较难,逻辑复杂,类与类之间的关系复杂。 该题又是在前面两题的基础上进行改进升级的,该题增加了点单时间及对应时间打折或判断是否是营业时间,增加了桌号,以及代点代付功能。 对于代点代付功能其本质还是点的那一桌付钱记录的,所以只需要在record类中添加table属性来判断点餐桌号就行,到时候通过这个桌号知道是代点的还是为自己点的 对于增加的点单时间及对应时间打折或判断是否是营业时间和桌号,我为此增加了Time类来处理时间,Table类来处理桌号问题,Table类中添加Time类属性来记录点菜时间及相关处理,增加Order类属性来记录该桌的点菜记录 其中用了of方法记录时间getime方法存入数据 目前来看功能好像是完成了,但main类也要做出相应的改变,然后发现此时再将menu类中的i设为静态变量会出问题了,于是我将menu类代码做了如下调整 将i的下标调到table类中的ordernum 相应的main类代码更改如下 至此该三次作业完毕。 三、踩坑心得: 为什么把运行超时放在第一个说呢,当我的代码在eclipse上输入样例全都可以过时, 我两眼放光的把代码再复制到pta中去过测试点——恭喜你得了1分,原因是运行超时(震怒。然鹅虽然“运行超时”这个测试点很让人揪心,但实际上,我也通过这个学会了很多新东西。那么,来看看运行超时教会我什么吧。 ①第二次作业7-4小明走格子 通过学习字符流输入(BufferedReader),提升输入速度,从而减小运行时间 ②第三次作业7-3去掉重复的数据 在写代码时,最重要的是规划,如果一个for循环就可以解决的问题,不必用更多的for循环而导致运行超时。 ③第三次作业7-1菜单计价程序-3 records[],menu[],初始化定义的大小过大(1000多),我猜是因为这个导致运行超时,经过查资料发现,动态数组arraylist可以不用一开始固定数组大小,可以用其add方法增项。用arraylist后就可以过测试点了。 2.非零返回与空指针异常 ①java报错空指针异常:如果一个对象本身为空,我们使用对象本身的时候不会出现异常,因为他是有值的,值就是null。可如果我们进一步项直接使用对象内的成员进行操作,按系统就会报空指针异常,因为对象是空的,他不存在成员,那么直接去访问这个车管员,当然会出错。所以在写方法时不要遗漏return null。 ②非零返回:我大部分的非零返回原因都是程序的语法在PTA执行的过程中抛出了异常,导致程序没能运行到return,就导致了非零返回。把代码从头到尾看一遍,仔细阅读会发现,在调 用某些类的方法的时候,如果这些方法可能会返回null,应该在调用时判断返回值是否为空,再进行下面的操作,这样说可能不够清晰,下面来看代码示例。 这是在Order类里的删除一条订单信息的方法,这里调用了records[]属性,如果在循环中不加if(records[i]!=null)的判断条件的话,会报非零返回的错,原因是records数组中的项都是通过add方法加进来的,当不满足某个条件时,add方法会返回null,如果满足所有条件,add会返回已经添加到records里的项。也就是说如果在该段删除方法中不加这条判断是否为空的话,如果records[[i]是null,那么在逻辑上是有漏洞的,没法向下进行到return,从而报非零返回的错。 四、主要困难以及改进建议: 在解题过程中我会由于对知识点的不熟悉导致无从下手,得反复翻看Java书本内容才能上手,尤其是7-1 菜单计价程序-1、7-2 菜单计价程序-2、菜单计价程序-3,在类与类之间属性与方法之间的相互调用会让我弄不清,例如: class Menu{ Dish[] dishs = new Dish(); //菜品数组,保存所有菜品信息 int t = 0;//统计录入的菜的数量 Dish searthDish(String dishName){//根据菜名在菜谱中查找菜品信息,返回Dish对象。int flag = 0;int i;for(i=t-1;i>=0;i--){if(dishName.equals(dishs[i].name)==true){flag = 1;break;}}if(flag==1)return dishs[i];else{return null;}}Dish addDish(String dishName,int unit_price){//添加一道菜品信息//int j=0; Dish dish1 =new Dish();dish1.name = dishName;dish1.unit_price = unit_price;t++;return dish1;}} 在Menu类中还有Dish类的对象,并且该菜品对象还是用数组来表示更让我头疼,我认为还是我对Java本质面向对象性了解的不深入,无法灵活地理清楚各个类之间的关系,每个类中属性、方法存在的意义。 改进建议:我们可以直接在Menu类中创建Dish[] dishs = new Dish[10];再int i=0;这样每个菜dish中的属性方法都储存于Dish[10]数组中,用i++来录入 五、总结: 收获: ①学会了数组和String的很多方法,例如split,charat,length,equls等。 ②写出了比较有意思的方法,如isNum(判断字符串是否全为数字)。 ③学习了动态数组arraylist的使用和其方法(如sort,set get,add等方法)。 ④学会了输入流来缩短运行时长。 ⑤了解认识了Calendar类和Date类。 仍需改进: 因为有过使用Calendar失败的经历,所以更需要去深刻了解该类的使用去改进代码的不足。 还要就是应该多查些资料看些比较优秀的java代码,从而对自己的面向对象思维进行合理建构。 课业改进意见: 对于后两次作业,比较困难的点其实是我太菜了,要是想把这种对于我来讲比较难的题目在短短一周(还要完成其他课业)的情况下之下做完,实在是太太太太痛苦啦,有一种刚出生就让我说八国语言的压迫感(bushi。改进建议是希望老师不要出题出的难度跨度太大。
关键词:
好家伙,先说一下我的需求,我要组件间传值1 eventBus前端兄弟组件传值eventbus无法使用不报错也不触发,就
世界热消息:我的第一个项目(十三) :组件间传值的一些方案(vuex,eventbus,localStorage)
PTA1~3次作业总结_lxh
百事通!MetaMask 钱包使用 - Solidity开发教程连载
世界热消息:我的第一个项目(十三) :组件间传值的一些方案(vuex,eventbus,localStorage)
每日资讯:商品日报(5月23日):尿素跌超4%领跌商品市场 菜粕创近三个月新高
目前负债1000万的都进来大家都是因为什么_现在生活状态如何|环球即时
焦点速递!阿里云被曝裁员:整体优化比例约7%
天天热资讯!Win11 2024新预览版25370发布:性能提升更好用了
一加和友商都在搞“旗舰普及” 有何区别?李杰回应 世界观天下
世界快资讯:领先AMD!Intel FPGA首发支持PCIe 5.0和CXL 2.0:性能、带宽大幅提升
月销量将再创纪录!理想5月第三周狂卖0.71万辆:真遥遥领先
RocketMQ 在小米的多场景灾备实践案例 每日消息
Algorithm_01--C#递归算法
一兆韦德:经营受疫情影响 已完成新一轮融资
今日关注:5.8元/月 WPS新版超级会员618大促预售:升不升会员简直两个软件
硅谷富豪为长寿拿儿子当血童:换血“永葆青春” 每日快报
任天堂“最失败”主机!官方宣布Wii U维修服务即将终止
特斯拉Model Y路边起火完全烧毁 保险公司赔付一台新车
150W快充!真我GT Neo5 16GB+1TB新版发布:3099元_前沿热点
世界热头条丨国元证券研究所组织开展科技主题基金经理调研
环球热议:海兴电力:
截至目前,公司在海外市场已布局6大生产基地
馅料大于75% 三只松鼠黄金肉松饼7.9元/斤新低
看热讯:《王者荣耀》新英雄曝光:蓝发美人鱼
小米自拍之王来了!产品经理晒自拍对比照:差距高下立判|当前观点
女儿膝下有硬盘 膝盖绑150根SSD走私 因步态有异被查获-当前关注
中国拿下76%造船份额 韩国三大船企之一的大宇退出历史舞台
gps北斗卫星同步时钟(子母钟系统)助力莘莘学子高考精准计时_环球观天下
世界速讯:Ubuntu 18.04 (Bionic) 简单快速的安装mongodb
原生js如何请求接口 今日报
数字转换_全球播报
震惊!二狗子的火锅店被隔壁老王 DDoS 攻击了
杭州热电再度触及涨停|焦点速递
次旗舰RTX 4080移动版独显性能如何?实测揭晓答案_世界快报
比iPhone 14更薄!网友评价小米Civi 3:外观太牛了 工业设计之巅
当前要闻:和AI网聊10分钟被骗430万惊呆全网 官方:AI诈骗成功率接近100%
海拔8300米!我国科研人员成功维护升级世界最高自动气象站:已传回数据_环球观速讯
强电与弱电的区别,你了解吗?
易基因:全基因组DNA甲基化分析揭示DNMT1在斑马鱼模型听觉系统发育中的作用 | 胚胎发育|今日播报
聊聊ElasticeSearch并发写的乐观锁机制 天天快讯
世界热点评!臭名昭著的“Hello,World!”
全球今日讯!没听妈妈话学了物理他拿了诺奖 丁肇中:坚持自己的兴趣和理想
【天天新视野】Intel超级APU:黄了!
越南打工人不加班 一天只干5小时:逼急中国老板 傻子一样
世界微动态丨广州高温费发放标准2023 广州高温补贴几月开始发放?
人工智能将如何改变敏捷项目管理?|当前最新
2步轻松实现ASP.NET Core托管服务执行定时任务_天天资讯
互联网从业人员的知识图谱-天天观速讯
高空坠物致人死亡 36名住户赔偿!专家称非常危险:一定要避免
浙江一公司上4休3收到上千份简历:目前仅有三名员工、盈利只够工资 全球热闻
刀片电池走向全球 多国力邀比亚迪建厂!官方回应
《小美人鱼》IGN 7分:不完全成功 海洋生物太丑!
就在地球上 科学家培育出一个“黑洞”:结果有了惊人发现 环球观天下
环球讯息:你会相信人工智能医生吗
carplay放歌没声音怎么回事_当前头条
MSE 自治服务帮你快速定位解决 Dubbo 重复订阅导致 RPC 服务注册失败问题
springcloud~gateway网关
[css]总结-如何实现水平垂直都居中对齐?
闫衍:经济复苏由结构分化走向全面修复 全年经济增速有望达到5.7%
全球快播:登陆iOS后:安卓版ChatGPT即将上线
家长投诉网红店打卡博主穿着暴露 离学校近影响孩子心理:网友吵翻-热文
世界热讯:华为完成14nm以上EDA替代 更强的国产EDA来了:部分已支持5nm
魅族618开启!魅族20限时直降200元:2999元起 3年超长质保_世界要闻
自拍神器!小米Civi 3前置双主摄:32MP美人镜+32MP超广角|世界速看料
新动态:我国深海装备技术水平持续提升 为南海沉船遗址考古研究提供科技支撑
今日播报!数据驱动的军港革新:智慧可视化助力军事决策
子母钟系统(网络时钟系统)助力高考精准计时工作建设
天天微速讯:云计算遇上电动车,跑出新模式的数智化转型
天天观察:能力惊人!GPT-4通过注册会计师和内审师考试
“小而美”国民爆款车!五菱宝骏悦也售价曝光:或8.38万元起 当前播报
比亚迪研发公司更名方程豹汽车销售公司:王传福卸任董事长
环球观天下!5倍于ChaGPT Intel推出Aurora genAI大模型:1万亿参数
微信5个“隐藏”超强功能 你知道几个? 新资讯
怎么验证苹果手机是不是正品
css 中class包含某元素的选择器-速读
JS中的undefined 与 null_天天热门
世界微头条丨CoaXPress 协议的CRC及其具体实现
【全球独家】【一步步开发AI运动小程序】五、帧图像人体识别
中企承建的安哥拉最大水电站开启大坝主体施工 当前热议
12306教你买便宜的火车票 最高可省近200元
Redmi K60宣布最高降价500元:2299元起!-全球热讯
16GB内存+1TB存储仅2899元!Redmi K60 1TB顶配版图赏
618价格战提前开打 宏碁27寸2K 170Hz显示器到手999(Fast IPS面板)|环球观速讯
全球热讯:OPPO Reno10系列核芯公布:骁龙8+旗舰平台 配长寿续航
微信昵称怎么设置空白_微信昵称设置特殊符号_全球观天下
周口搅拌泵选购要注意什么 购买搅拌泵时要注意什么
上线近10年你听过吗?短视频制作神器逗拍宣布停止运营
雨量破历史极值!深圳凌晨突遇暴雨:电闪雷鸣 网友被吵醒
宠物猫被邻居高空扔下活活摔死 网友气愤行为可耻:为何虐猫 每日聚焦
本周五上!《小美人鱼》国内票房预售凉凉 15万都没到:口碑解禁 小黑美人鱼完美
国内人均工作时间48.7小时!专家称大家不是反对加班而是不给加班费
天天热推荐:欧盟外长会未就新一轮对俄制裁达成共识
学系统集成项目管理工程师(中项)系列24b_信息系统集成专业技术知识(下)
【读财报】一季度公募基金销售保有量透视:招行、蚂蚁基金领跑,银行系份额领先但占比下降 全球焦点
5月版号下发!86款国产游戏获批:腾讯、网易在列 天天快资讯
每日短讯:为了不再做噩梦 我试着给它编了个“好结局” 竟然真管用
葡萄牙一块大石头居然会“生孩子”?真相大白_当前信息
618让利16亿!小米12S Pro闪降900元:3199元买骁龙8+徕卡旗舰|微头条
20万的纯电SUV 彻底“杀疯了” 天天热点
当前速递!最高直降400元!小米13系列官方首次降价:3699元起
每日动态!茂硕电源:截至2023年5月19日,公司股东人数约3万多户
开源.NetCore通用工具库Xmtool使用连载 - 发送邮件篇