23201630徐弘-第二次blog作业

news/2024/10/8 10:51:57

前言

本次大作业是前一次blog中前三次大作业的迭代,加一个新的两次迭代作业。

设计与分析

第四次大作业

第四次大作业比上一次作业增加了题目类型不同的迭代,通过增加选择题类和填空题类解决,两个都继承自题目信息类,所有信息(题目信息,试卷信息,答卷信息,学生信息 ,删除题目信息)不按顺序输入(乱序输入),所以依旧使用正则表达式判断,并用ArrayList和HashMap来进行储存。首先本次迭代增加了选择题和填空题,因为二者都是题目,所以继承题目类,同时选择题又分为多选和单选,依照输入信息所提供的答案数量进行区分,按照不同的答案,基于不同的分值,例如如果多选题答卷的答案与标准答案一致,则给全分,如果少选则给一半分,若错选则不给分。其次,填空题方面,本次题目给的约束为:答案与标准答案内容完全匹配给满分,包含一个错误字符或完全没有答案给0分,包含部分正确答案且不含错误字符给一半分,如果一半分值为小数,按截尾规则只保留整数部分。最后,在本次迭代中与上一次题目不同在于,本题考虑多个同学有多张不同试卷的答卷的情况。输出顺序优先级为学号、试卷号,按从小到大的顺序先按学号排序,再按试卷号。

第五次大作业

第五次大作业则是不同于前几次大作业,是一个新题目,电路模拟程序。第一次大作业还算简单,没有考虑电阻和并联,也不考虑短路,只需要考虑串联即可。而本次大作业需要设计好父子类的关系。 开关,分档调速器和连续调速器继承自控制设备类,吊扇、白炽灯和日光灯继承自受控设备类,分别用K,F,L,B,R,D来表示。本次大作业和前几次大作业相同,都需要用正则表达式来提取每行的信息,由于本次只考虑串联,我则用ArrayList将信息存储到数组中。

第六次大作业

第六次大作业相较于第一次迭代,则加入了串联电路和短路的情况,核心就是要设计一个类用来储存电路信息(并联电路类)其中除了第一次迭代的信息还包括了电阻和电流,便于计算。在分析信息与储存中,先运用储存String类的ArrayList数组将信息储存,再逐个遍历寻找对应的类(用getclass实现),而短路的情况要另外考虑(emm,怎么考虑呢?)。

踩坑与心得

第四次大作业

本次多学生多试卷的信息处理不到位,导致答案错误。如图:

清楚审题后,了解了正确排序方法后,问题解决。

第五次大作业

1、在设计类的时候,太过于杂乱,没有考虑好各个类之间的关系。

在理清楚每个类之间的关系(继承关系)之后,问题的到解决。
2、输出时,代码出现死循环,没有打印出任何信息

在找到问题修改后,解决,如图:

第六次大作业

1、添加了个串联电路类来表示干路电路,而干路电路既可以存储干路中的电器元件,又可以存储一组并联支路;(十分方便)而支路则储存在并联电路类中,可以单独计算自己的电阻。而干路电路知道并联电路中的各个电阻也就可以单独计算总电阻了。

改进建议

1、整体代码对信息的分析依旧像上几次大作业一样,运用startswith(),但需要识别的信息多了就显得冗杂麻烦,所以可以先将首字母与类名绑定(HashMap),然后以字符型存入数组,再依照首字母找到对应的类名,然后创建相关对象,相较于原先的方法要方便很多。
2.在设计类的时候,可以再清晰一点,例如可以创建电路类给串联电路类和并联电路类继承,提高代码的复用率,减少耦合度。

总结

1、在代码编写的过程中,我对正则表达式的运用愈加熟练
2、在设计类和方法的时候,依旧会摸不着头脑,比如在设计开关类时,我就忘记了他应该继承受控电器类。
3、在每次迭代后,代码的思路逐渐变得更难,很难理清楚头绪,这还是我需要提升的地方。
4、这几次大作业也使我对多态数组,动态绑定等概念的理解和运用更加深刻。
5、我学习到运用好不同的容器去储存信息会使代码逻辑更加清晰。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/42583.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

国内 Github 访问优化

修改 Hosts(推荐) 1、下载SwitchHosts 下载地址: https://github.com/oldj/SwitchHosts 2、配置参考 Hosts 类型: Remote Hosts 标题: 随意 URL: https://raw.hellogithub.com/hosts 自动刷新: 最好选 1 小时 这样每次 hosts 有更新都能及时进行更新,免去手动更新。 如下截…

[JLU]校园网上网攻略汇总与补充

献给吉林通知大学的学弟、学妹、学长、学姐还有陆爻齐的JLU网络配置攻略,预感到两个月后会用,故现在更新前言 如题,陆爻齐为了汇集一下觉得比较有用的 JLU 校园网相关的资源,同时对于一些比较重要但比较少被提及的地方做点补充而写本文。 如果陆爻齐再次重装系统,或许也用…

Spring Boot入坑-10-Git

简介一个开源的分布式版本控制系统基于Git协议的代码托管平台主要有Github和Gitlab,国内的也有比如Gitee比较多的企业使用Gitlab构建自己的代码托管平台其主要作用是,对代码或文档进行版本化记录与控制主要概念工作区:个人电脑中能看到的项目的目录暂存区:数据暂时存放的区…

简单工厂模式( Simple Factory Pattern )

简单工厂模式(Simple Factory Pattern),在工厂类中对象决定创建出哪一种产品类的实例。这些产品类都实现了相同的接口,或者继承了相同的父类。 结构图Factory(工厂角色):它是核心,负责实现创建所有实例的内部逻辑。在工厂类中,提供了一个静态方法,可以直接被外界直接调…

VLAN技术和VLAN间路由

VLAN技术和VLAN间路由 VLAN技术:交换机分割广播域的技术。 VLAN:Virtual LAN 虚拟局域网。 *这里把交换机的物理接口称为端口。 VLAN技术 一、VLAN概述: 1.VLAN本质:逻辑独立的IP子网 通过“路由”设备: 第三层交换机 进行通信 2.优点: 增加网络部署的灵活性(管理员可以…

Java JVM——10.对象实例化内存布局与访问定位

对象实例化对象创建方式★ new:最常见的方式、单例类中调用getInstance的静态类方法,XXXFactory的静态方法。★ Class的newInstance方法:在JDK9里面被标记为过时的方法,因为只能调用空参构造器。★ Constructor的newInstance(Xxx):反射的方式,可以调用空参的,或者带参的…

利用perf进行性能分析

对进程进行采集,采集后会在当前目录下生成一个perf.data文件 perf record -g -e cpu-clock --call-graph dwarf [-t 线程id] [-p 进程id]这里只针对cpu时间进行了采样,通过perf list命令还可以看到更多采样事件。简单分析 perf report除此之外还可以把perf.data转为火焰图,具…

win10笔记本网络连接不上,右下角网络设置出现红色叉叉,列表找不到wifi。怎么办?

win+r弹出控制台输入cmd回车,输入services.msc,回车。在弹出的【服务】窗口中拖动滑动按钮一直找,找到Wired AutoConfig以及WLAN AutoConfig以及WWLAN AutoConfig,对这三个分别依次点击启动此服务(如果已经是启动的了,那就点击重启动。),然后也右键--属性将启动类型改为…