面向对象程序设计-作业

面向对象程序设计-作业

本文是一份Java实验作业集合,涵盖从h03到h60的多个编程任务,内容涉及Java核心知识点综合应用。作业包括数据结构操作(如杨辉三角生成、字符串去重)、异常处理机制、集合框架应用(HashMap、TreeMap等)、文件读写操作、多线程编程、网络通信实现等。每个任务均提供详细代码实现和思路解析,如使用Map统计词频、利用反射动态创建对象、实现多线程服务器等。作业难度递进,从基础算法到复杂系统设计,全面锻炼Java编程能力,适合作为Java学习实践参考。

OpenGaussLab5

本实验旨在通过实践理解openGauss数据库的并发控制与锁机制原理及实现。因华为云服务器欠费,改用本地PostgreSQL进行操作。实验主要内容包括:查看表锁信息,并复现Share锁、Access Share锁、Row Exclusive锁和Access Exclusive锁。通过不同会话下的操作验证各锁特性,如Share锁阻塞INSERT、Access Share锁阻塞ALTER、Row Exclusive锁阻塞CREATE INDEX、Access Exclusive锁阻塞SELECT等,展示了不同锁对并发操作的影响。实验最终完成锁复现,但因欠费,锁获取与释放信息的代码添加部分未完成。

OpenGaussLab5
OpenGaussLab4

OpenGaussLab4

本文主要围绕B+树索引展开实验研究,因华为云服务器欠费,改用本地PostgreSQL替代openGauss数据库。实验通过分析索引结构与原理,实践CREATE INDEX语句构建索引,探究索引构建流程、与查询执行计划的关联及系统开销。通过对比小表(100行)与大表(10万行)的查询性能,验证了索引在数据量较大时显著提升查询效率(17倍提速),并分析了索引的空间开销。实验还涉及索引相关系统表(pg_class、pg_index等)的查看,但因服务器问题,索引构建过程代码分析部分未完成。

OpenGaussLab2

本次实验因华为云服务器欠费,改用本地PostgreSQL替代openGauss数据库,实践高级数据管理功能。实验旨在掌握视图、索引、存储过程、触发器、事务管理及权限管理等核心对象的使用方法。通过具体操作,包括创建多类视图(含WITH CHECK选项和物化视图)、测试索引对查询性能的提升、编写带参数/异常处理的存储过程、设计触发器实现数据审计、验证事务原子性等,深入验证了数据库相关原理。实验虽环境变更,但完整覆盖了openGauss高级功能实践,实现了对数据库对象应用与原理的掌握。

OpenGaussLab2
数电实验三  自动贩售机的设计和实现

数电实验三 自动贩售机的设计和实现

本实验基于SystemVerilog设计报纸自动贩售机,旨在掌握有限状态机设计方法及三段式建模技术。实验在Windows/Ubuntu系统、Vivado 2018.2及远程FPGA云平台完成。设计核心为有限状态机,支持5分与1角投币,实现15分报纸售卖功能,包含合法投币组合判断、已付款/找零显示(4位七段数码管)、成功后LED亮10秒等。系统由计时器模块(使能时钟生成、边沿检测、10s计数)、状态机核心(定义IDLE、PAID5等状态,实现投币逻辑与输出控制)、二进制转BCD IP模块及7段数码管动态扫描模块(1KHz扫描)构成。通过单元测试与顶层仿真验证各模块功能,实现投币、计费、显示及状态转换的完整逻辑。

算法练习题

本文为“一&二章 基础算法”的内容总结,涵盖多个基础算法题目及解法。包括机器人模拟(通过遍历移动指令计算坐标位移)、页码统计(统计数字0-9在页码中的出现次数)、字符串操作(如查找子串位置)、高精度加法(处理超长整数相加,需逐位计算并处理进位)、汉诺塔问题(计算移动步数为2^n-1)、最多水容器(双指针法求最大盛水面积)、选择排序(实现数组升序排序)以及字符串合并(按规则插入字符生成新字符串)。各题目均提供输入输出示例及核心代码思路,涉及字符串处理、数学计算、排序模拟等基础算法应用。

算法 
算法练习题
奇怪的C++作业

奇怪的C++作业

本文主要包含两个任务:任务1实现了一个自定义双向链表模板类my_list,包含节点基类node_base和派生类node,通过迭代器(node_iterator和node_const_iterator)实现STL算法兼容,并支持插入、删除、拷贝构造等基本操作。任务2开发了一个俄罗斯方块游戏,Block模块定义方块属性并实现移动、旋转、绘制功能,Game模块处理游戏逻辑,包括界面绘制、行消除、分数计算等,使用Easyx图形库实现可视化界面。

C++ 

数电实验一 多数表决器的设计与实现

本次实验旨在掌握基于Vivado的数字逻辑电路设计流程,熟练使用SystemVerilog HDL的行为建模与结构建模方法,并通过远程FPGA硬件云平台完成功能验证。实验环境为Windows/Ubuntu系统、Vivado 2018.2及远程FPGA平台。核心内容包括:基于74LS138(3-8译码器)和74LS139(2-4译码器)集成电路模块,通过结构化建模设计五人多数表决器电路;同时采用行为建模直接实现表决器功能。实验流程涵盖代码编写、行为仿真、综合实现、比特流生成及远程硬件验证,最终成功实现表决逻辑。总结指出结构化建模设计存在一定难度,行为建模相对基础,需进一步提升工具操作熟练度。

数电实验一 多数表决器的设计与实现
面向对象程序设计-lab2

面向对象程序设计-lab2

本次实验旨在熟悉Eclipse开发环境及Java中Set、Map等集合的使用。核心内容为分析超市购物小票数据(字符串格式,分号分隔购物明细,逗号分隔商品),找出最常同时购买的两个商品。实现思路:先按分号分割购物明细,对每条明细用逗号分割商品并通过Set去重;再通过双重循环生成所有不重复商品对,按字典顺序排列后存入Map统计出现频率;最后遍历Map找出频率最高的商品对。实验中运用了compareTo函数排序、getOrDefault函数简化计数等细节,综合考察了Map与Set的协同使用能力,提升了代码可读性与精准性。

面向对象程序设计-lab1

本次实验旨在通过游戏角色系统设计实现面向对象编程的核心概念理解与练习。实验需设计包含重型坦克、轻型坦克、兵工厂、兵营、步枪兵、火箭兵、军犬等角色的游戏系统,各角色具备初始生命值与攻击力,实现相互攻击、生命值削减、士兵存活/死亡数量统计等功能。程序采用面向对象方法,定义Game基类,通过继承构建Tank、Soldier等子类,利用枚举类管理对象类型,封装攻击逻辑与状态判断(如isDestroyed()、getHealth())。测试结果表明,系统成功实现角色交互与数据统计功能,验证了面向对象继承、封装、多态的实践应用,同时强调了代码设计中对象关系梳理与细节处理的重要性。

面向对象程序设计-lab1