2024-2025-1 20241417 《计算机基础与程序设计》第八周学习总结

news/2024/11/17 11:52:44/文章来源:https://www.cnblogs.com/lry666666/p/18550385

作业信息

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 2024-2025-1计算机基础与程序设计第八周作业
这个作业的目标 功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、执行
作业正文 https://www.cnblogs.com/lry666666/p/18550385

教材学习内容总结

1.功能设计与面向对象设计
功能设计:侧重于确定系统需要实现的功能。它从用户需求出发,详细分析系统应具备的各项操作和行为。例如,设计一个图书馆管理系统时,功能设计会涵盖借书、还书、查询书籍信息、管理用户账户等功能的规划。这种设计方法更关注系统的流程和功能实现逻辑,往往以功能模块为单位进行组织。
面向对象设计:将系统看作是由一系列相互协作的对象组成。每个对象都有自己的属性(数据)和行为(方法)。在图书馆管理系统中,会有 “书籍” 对象(具有书名、作者、编号等属性和借出、归还等方法)、“用户” 对象(姓名、账号、借阅记录等属性和借书、还书等操作方法)等。面向对象设计强调对象之间的关系和交互,具有更好的可维护性、可扩展性和可复用性。
2.面向对象设计过程
问题域分析:深入理解需要解决的问题领域,识别其中的实体、概念和它们之间的关系。比如在设计电商系统时,要分析商品、订单、用户、商家等实体以及它们在购物流程中的关系。
识别对象和类:根据问题域分析的结果,找出系统中的对象,并将具有相同属性和行为的对象抽象为类。例如,多个不同商品可以抽象为 “商品类”。
确定对象的属性和行为:对于每个类,明确其属性(如商品类的价格、名称、库存等)和行为(如购买、添加到购物车等行为对应的方法)。
设计对象之间的关系:包括关联(如用户和订单之间的一对多关联,一个用户可以有多个订单)、聚合(如订单和订单项之间的聚合关系,订单由多个订单项组成)、继承(如会员用户类继承自普通用户类,具有更多特殊属性和方法)等。
创建对象模型:可以使用 UML(统一建模语言)等工具来创建类图、对象图等,直观地表示系统的面向对象设计结构。
优化设计:检查设计的合理性,如是否存在冗余、是否符合开闭原则(对扩展开放,对修改关闭)等,并进行必要的调整。
3.面向对象语言三要素
封装:将数据和操作数据的方法封装在一个类中,对外部隐藏对象的内部实现细节。只通过特定的接口(如公共方法)来访问和修改对象的属性。例如,在 Java 中,使用 private 关键字修饰成员变量,通过 public 的 getter 和 setter 方法来访问和修改这些变量。这样可以提高代码的安全性和可维护性,防止外部代码随意篡改对象的状态。
继承:允许创建新的类(子类)从现有的类(父类)继承属性和行为。子类可以重写父类的方法来实现特定的功能。比如,在 C++ 中,class Child : public Parent 就表示 Child 类继承自 Parent 类。继承可以实现代码的复用,提高软件开发效率,但过度使用可能导致类层次结构过于复杂。
多态:指不同的对象对同一消息(方法调用)有不同的响应方式。包括编译时多态(如函数重载,在 C++ 中,多个同名函数但参数不同)和运行时多态(通过虚函数实现,如在 Java 中,父类的引用可以指向子类的对象,根据对象的实际类型调用相应的重写方法)。多态增强了程序的灵活性和可扩展性。
4.汇编、编译、解释、执行
汇编:是一种将汇编语言源程序转换为机器语言目标程序的过程。汇编语言是一种低级编程语言,与机器硬件密切相关,它使用助记符来表示机器指令。例如,MOV AX, 10 在汇编中表示将数值 10 传送到 AX 寄存器。汇编程序通过对汇编源文件进行处理,生成可由计算机直接执行的机器码文件。
编译:将高级编程语言(如 C、C++、Java 等)编写的源程序一次性转换为目标机器可执行的机器语言程序(对于 Java 等,是字节码等中间形式)。编译过程包括词法分析(将源程序分解为单词符号)、语法分析(构建语法树)、语义分析(检查语义正确性)、代码生成等阶段。例如,使用 C 编译器(如 GCC)将.c 文件编译成可执行文件。编译后的程序执行效率通常较高,但修改源程序后需要重新编译。
解释:解释器直接读取并执行高级语言源程序,逐行或逐块地将源程序转换为机器指令并立即执行。例如,Python 程序就是通过解释器来执行的。解释型语言具有较好的跨平台性和灵活性,在开发过程中可以快速看到结果,但执行效率相对编译型程序可能较低,尤其是对于复杂程序。
执行:无论是编译后的程序还是解释执行的程序,最终都是在计算机的硬件环境中运行。对于编译型程序,操作系统将可执行文件加载到内存并分配资源后开始执行;对于解释型程序,解释器在执行过程中管理程序的运行状态和资源分配。执行过程涉及到 CPU 从内存中读取指令、执行指令、数据的读写等操作,同时可能还会涉及到操作系统的进程管理、内存管理等功能。

教材学习中的问题和解决过程(先问 AI)

  • 问题1:IP 地址和 MAC 地址在网络通信中的作用区别有些模糊,不太理解为什么要有这两种不同的地址。
  • 问题1解决方案:查阅资料得知,IP 地址是网络层地址,用于在不同网络之间进行逻辑寻址。它能让数据包在复杂的网络环境中找到目标网络。例如,在互联网上,IP 地址可以确定数据从源主机所在网络到目标主机所在网络的路径。
    MAC 地址是数据链路层地址,用于在同一局域网内的物理寻址。当数据包到达目标网络的局域网后,通过 MAC 地址来找到目标设备。在局域网内设备之间通信时,交换机就是根据 MAC 地址来转发数据帧的。
    为了加深理解,我通过搭建一个简单的包含路由器和交换机的网络实验环境进行实践。在实验中,观察数据在不同网络段和局域网内传输时,IP 地址和 MAC 地址的变化情况,从而更清晰地理解它们各自的作用。
  • 问题2:在学习网络拓扑结构时,对于星型拓扑和总线型拓扑的优缺点在实际应用场景中的体现不太清楚。
  • 问题2解决方案:资料显示,星型拓扑的优点是易于维护和管理,某个节点出现故障不会影响其他节点的正常通信(除了与故障节点直接相连的中心节点端口),中心节点可以是交换机等设备。例如在企业办公网络中,如果某台电脑故障,不会导致其他电脑之间不能通信。缺点是对中心节点的依赖性强,如果中心节点出现故障,整个网络可能瘫痪。
    总线型拓扑优点是结构简单、成本低,所需电缆长度短。但缺点明显,如同一时刻只能有一个节点发送数据(存在冲突问题),而且如果总线出现故障,整个网络就无法工作。在早期的一些小型局域网中,由于成本限制可能会使用,但随着网络规模和性能要求的提高,逐渐被其他拓扑结构替代。
    我模拟了这两种拓扑结构的小型网络,通过在不同节点模拟数据传输和故障情况,体会它们在实际场景中的表现,比如在总线型拓扑中观察到多个节点同时尝试传输数据时产生的冲突现象,从而更好地理解了它们的优缺点。

代码调试中的问题和解决过程

  • 问题1:忘记定义变量就直接使用
  • 问题1解决方案:在使用变量之前进行定义
  • 问题2:遗漏分号,编译器报错,有时候可能会在不该加分号的地方加分号,比如在if语句的条件后面
  • 问题2解决方案:对于分号缺失的情况,在正确的位置添加分号。对于分号多余的情况,仔细检查逻辑语句,删除多余的分号

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 0/2 18/38
第三周 500/1000 1/3 22/60
第四周 300/1300 1/4 30/90
第五周 300/1600 1/5 30/120
第六周 300/1900 1/6 30/150
第七周 300/2200 1/7 30/180
第八周 300/2500 1/8 30/210

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

# 学期2024-2025-1 学号(20241405) 《计算机基础与程序设计》第8周学习总结

作业信息 |这个作业属于哪个课程|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP| |这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08| |这个作业的目标|功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、…

python岭迹图绘制函数

一.岭迹图是什么?岭迹图(Ridge Trace Plot)是一种可视化工具,用于展示岭回归中正则化参数($\alpha$)对回归系数的影响。它能帮助我们理解特征的稳定性和正则化在控制模型复杂度中的作用。 二.什么时候需要看岭迹图?存在共线性特征时当特征间高度相关,普通最小二乘法(O…

探索训练人工智能模型的词汇大小与模型的维度

前一篇:《人工智能同样也会读死书----“过拟合”》 序言:你看,人工智能领域的专家都在做什么?他们其实只是在不断试错,因为并没有一种“万能药”——一种万能的算法可以一次性设计出任何人工智能大模型来实现客户的需求。所有的模型在设计和训练过程中都是——验证结构——…

北美竞赛-加拿大计算机竞赛CCC-收获滑铁卢

给定一个 RCRC 的方格矩阵。 矩阵左上角方格坐标为 (0,0)(0,0),右下角方格坐标为 (R−1,C−1)(R−1,C−1)。 每个方格中要么有南瓜,要么有干草。 南瓜分为大、中、小三种。 初始时,一个农民位于方格 (A,B)(A,B)。 他可以朝上下左右四个方向自由移动,但是他不能走出矩阵,也…

BUU CODE REVIEW 1 1

BUU CODE REVIEW 1 1 打开实例发现php代码,代码审计一波看到unserialize(),初步判断这题存在php反序列化 分析代码:需要GET传参传入pleaseget=1 需要POST传参传入pleasepost=2 需要POST传入md51和md52,使得md51的md5加密后的MD5值弱相等,参数值不相等 需要POST传入obj,用来…

25 个值得关注的检索增强生成 (RAG) 模型和框架

大型语言模型 (LLM) 如 GPT-4 彻底革新了自然语言处理 (NLP) 领域,在生成类人文本、回答问题和执行各种语言相关任务方面展现出卓越的能力。然而,这些模型也存在一些固有的局限性:知识截止:LLM 的训练数据通常截止于特定时间点,使其无法获取训练后发生的事件或信息。 静态…

IDEA不使用lombok,如何快速生成get和set方法

前言 大家好,我是小徐啊。我们在开发Java应用的时候,对于实体类,一般是entity或者pojo类,需要设置好属性的get和set方法。这是比较普通的操作。当然,现在已经有lombok这个插件和依赖来帮助我们不用写get和set方法了。不过,对于一些老系统,我还是习惯于手写get和set方法。…

爱玛单车队-冲刺日志第一天

会议记录:今天是整个冲刺计划最关键的一天,我们需要制定好整个计划并且安排好分工任务,为每个分工任务制定好负责人,来督促每个环节的任务。 本次冲刺确定了以下分工:成员姓名 职责曾庆徽 组长,分配协调组织林传昊 代码审查翁林靖 AI接回查找与测试毛震 软件测试(性能、…

达梦数据库数据类型的变更无效错误,如此解决妙啊

前言 大家好,我是小徐啊。之前在做国产化改造,用到了达梦数据库。其中的一项工作就是将旧数据库里面的数据和结构迁移到达梦数据库。达梦提供了迁移的的工具,大部分时间是挺好用的。 但是这里也有问题,比如我原来的数据库是postgresql,将它迁移到达梦数据库之后,在运行程…

域名选购操作指南

一、前言 在这个互联网时代, 域名已成为网站的数字身份证和品牌象征。它不仅是访问网站的便捷入口, 更一、前言 在这个互联网时代, 域名已成为网站的数字身份证和品牌象征。它不仅是访问网站的便捷入口, 更是树立网络品牌形象的重要资产。2024 年双十一期间, 我在腾讯云平台购置…

2024-2025-1 学号20241315《计算机基础与程序设计》第八周学习总结

作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 <作业要求的链接>https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08这个作业目标 功能设计与面向对象设计 面向对象设计过程 面向对象语言三要素 汇编、编译、解释、执行作业正文…