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

news/2024/11/17 21:43:33/文章来源:https://www.cnblogs.com/xiaoyuanyuan999/p/18551158

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

作业信息

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

教材学习内容总结

计算机科学概论第七章内容总结
《计算机科学概论》第八章主要内容总结
以下是一份关于《计算机程序科学概论》第八章学习总结:
《计算机程序科学概论》第八章学习总结
一、功能设计与面向对象设计
功能设计侧重于将系统分解为一系列的功能模块,每个模块执行特定的任务,通过数据的传递和处理来实现系统的整体功能。这种设计方法强调功能的独立性和模块之间的接口清晰性。
而面向对象设计则是以对象为核心,将数据和对数据的操作封装在一起形成类。对象之间通过消息传递相互协作来完成系统功能。它更符合人类认知世界的方式,具有更好的可维护性、可扩展性和代码复用性。例如,在一个图形绘制系统中,功能设计可能会划分出图形绘制模块、颜色管理模块等;而面向对象设计则会创建图形类、颜色类等,图形对象具有绘制自身的方法,颜色对象可以被图形对象引用以确定绘制颜色。
二、面向对象设计过程
问题分析:深入理解问题域,确定系统需要处理的对象、对象的属性以及对象之间的关系。例如开发一个图书馆管理系统,需要分析出图书、读者、管理员等对象,以及它们各自的属性如图书的书名、作者、馆藏位置,读者的姓名、借阅记录等,还有它们之间的借阅、管理等关系。
类的设计:根据问题分析结果,设计出相关的类,定义类的属性和方法。以图书类为例,属性可能包括书号、书名、出版社等,方法可能有借书、还书等操作对应的方法(可能会涉及到与其他类如读者类的交互)。
类的层次结构设计:确定类之间的继承关系,以实现代码复用和功能扩展。比如在图形类的继承体系中,可能有基础图形类,然后派生出圆形类、矩形类等,子类继承父类的通用属性和方法,并可以添加自身特有的属性和方法。
对象交互设计:规划对象之间如何通过消息传递进行协作。在图书馆管理系统中,读者对象向图书管理员对象发送借书请求消息,图书管理员对象再与图书对象交互完成借书操作,并更新相关信息。
三、面向对象语言三要素
封装:将数据和操作数据的方法包装在一个单元(类)中,隐藏内部实现细节,只对外提供公共的接口。例如在一个银行账户类中,账户余额数据被封装在类内部,外部只能通过存款、取款等公共方法来操作余额,这样保证了数据的安全性和完整性,防止外部随意修改数据。
继承:允许创建一个新类(子类)从现有类(父类)继承属性和方法,子类可以扩展或修改父类的行为。如前面提到的图形类继承体系,子类矩形类继承了基础图形类的坐标属性和绘制方法,并可以增加计算面积等自身特有的方法。
多态:同一操作作用于不同的对象可以有不同的行为表现。比如在一个动物类体系中,动物都有发出声音的方法,但不同种类的动物(如猫类、狗类)发出声音的具体实现不同,当调用动物对象的发声方法时,会根据对象的实际类型执行相应的发声行为,增强了代码的灵活性和可扩展性。
四、汇编、编译、解释、执行
汇编:汇编语言是一种低级编程语言,与机器语言密切相关。汇编过程是将汇编语言源程序转换为机器语言目标程序的过程。汇编语言使用助记符来表示机器指令,如用 “MOV” 表示数据传送指令等。汇编程序需要将这些助记符指令转换为对应的二进制机器指令,使得计算机能够直接理解和执行。例如,对于简单的计算任务,汇编语言可能需要详细地操作寄存器来完成数据的存储、运算和结果的存储。
编译:编译是将高级编程语言(如 C、C++、Java 等)编写的源程序一次性转换为目标机器的机器语言程序(可执行文件)的过程。编译器会对源程序进行词法分析、语法分析、语义分析、代码优化等一系列复杂的操作。例如,对于一个 C 语言程序,编译器会检查程序中的变量声明是否正确、语句语法是否符合规范等,然后生成对应的机器代码文件。这个可执行文件可以在特定的操作系统和硬件平台上直接运行,运行速度相对较快,但编译过程可能比较耗时,且如果源程序有修改,通常需要重新编译整个程序。
解释:解释执行是另一种高级语言执行方式,解释器逐行读取源程序代码并立即执行相应的操作,不需要像编译那样生成完整的目标程序。例如 Python 语言,解释器会在运行时依次处理每一行代码,遇到变量赋值就执行赋值操作,遇到函数调用就执行函数体。这种方式的优点是灵活性高,便于调试,因为可以随时修改代码并立即看到效果;缺点是执行效率相对较低,因为每次运行都需要重新解释代码。
执行:无论是编译后的可执行文件还是解释执行的程序,最终都是在计算机硬件上运行,计算机的中央处理器(CPU)按照指令序列依次执行操作,从内存中读取数据,进行计算处理,并将结果存储回内存或输出到外部设备。不同的执行方式在执行效率、资源占用、开发调试便利性等方面存在差异,在实际应用中需要根据具体需求选择合适的编程语言和执行机制。
通过对本章内容的学习,深入理解了功能设计与面向对象设计的特点与差异,掌握了面向对象设计的基本过程和面向对象语言的关键要素,同时明晰了汇编、编译、解释等不同程序处理方式的原理与优劣,为进一步深入学习计算机程序设计与开发奠定了坚实的基础。

基于AI的学习

AI:

编译到底是什么?它只是把代码从一种形式转变成另一种形式吗?

我:

编译不只是简单的形式转换。它是将高级编程语言编写的源代码转换为计算机能直接执行的机器代码或字节码的过程,这个过程包括词法分析、语法分析等多个复杂步骤。

AI

那词法分析在编译中是如何具体工作的呢?

词法分析是编译的第一步。它会将输入的源程序字符流按照词法规则分割成一个个单词,比如关键字、标识符、常量、运算符等,就像把一句话拆分成一个个有意义的词语一样。

AI

语法分析和词法分析有什么紧密联系呢?

语法分析基于词法分析的结果。词法分析得到单词后,语法分析依据语法规则来分析这些单词组成的序列是否符合该语言的语法结构,构建出语法树,以此检查程序结构的正确性。

AI

语义分析在编译中的作用是什么呢?

语义分析是检查源程序是否有语义错误。它会分析语法树中各表达式、语句的语义,比如类型是否匹配、变量是否先声明后使用等,确保程序在逻辑上是正确的。

AI

编译中的代码优化是如何实现的呢?

代码优化有多种方式。比如可以通过对中间代码或目标代码进行改进,减少不必要的计算、合并相同的表达式、提高寄存器的使用效率等,以此提高程序的运行效率。

AI

不同的高级编程语言编译过程有很大差异吗?

不同高级编程语言在编译过程有相似的阶段,但也有差异。比如语法和语义规则不同,导致词法、语法、语义分析的具体细节不同。有些语言可能还有独特的优化策略或编译特性。

AI

编译和解释有什么本质区别呢?

编译是一次性将源代码转换为目标代码,后续可以多次直接运行目标代码。而解释是逐行翻译并执行源代码,每次运行都需要重新解释,编译后的程序运行速度通常比解释执行的快。

AI

编译过程中出现错误如何处理呢?

编译过程中如果在词法分析阶段出错,会提示词法错误相关信息,比如非法字符。语法分析出错则指出语法结构不符合规则的位置。语义分析出错会提示类型不匹配等语义问题。错误处理机制会尽可能准确地指出问题所在,方便程序员修改。

AI

编译技术在现代软件开发中有哪些新的发展趋势呢?

现在编译技术有几个趋势。一方面,更注重跨平台编译,方便开发在不同操作系统上运行的软件。还有就是针对特定硬件的优化编译,比如为了充分利用 GPU 的性能进行特殊编译。另外,即时编译(JIT)技术在一些领域也得到了更广泛的应用,能在运行时动态优化代码。

总结

通过这一系列的问题与回答,我们对编译有了更深入的理解。编译是一个复杂的过程,包括词法分析、语法分析、语义分析、代码优化等多个阶段。不同编程语言的编译过程有异同,和解释执行有本质区别。编译过程中的错误处理能帮助发现程序问题。而且编译技术在现代有新的发展趋势,如跨平台、针对特定硬件优化和即时编译等,这些都对现代软件开发有着重要意义。

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

  • 问题1:调用数组数据不正确

  • 问题1解决方案: do
    {
    printf("input score,if over,input -1\n");
    scanf("%d",&score[num]);
    num++;
    }while(score[num-1]!=-1);*****

  • 问题2:数组声明与调用规则不清楚

  • 问题2解决方案:
    int Num(int score[]);声明
    num=Num(score);
    ave=Ave(num,score);调用

  • ...

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

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

相关文章

# [团队项目Scrum冲刺-day7]

每天举行站立式会议昨天已完成的任务成员 任务徐嘉炜 优化登录界面交互逻辑陈祥意 对各个测试模块测试林楦 优化整体UI界面陈大锴 优化注册界面交互逻辑蔡家显 检查测试记录陈祖民 优化登录UI肖商 反馈前一天测试结果今日计划完成的任务成员 任务林楦 优化前端页面显示陈祖民 优…

HBase的常用命令

一、general类 1、查看集群的状态 status2、查看数据库版本 version3、显示当前用户和组 whoami4、查看操作表的命令 table_help5、退出hbase exit或者ctrl+c 二、DDL相关 注:DDL是用于定义和管理数据库中的结构的命令,例如创建,删除,修改表等操作 1、创建表 注:创建表的时…

用户故事与敏捷开发

什么是用户故事 用户故事(User Story)是用来对软件或用户有价值功能的简短描述,是对需求的一种描述。它清晰简洁的传达了用户想要的功能。 它从用户角度出发,用来描述用户的需求,用来表达用户需求的方式之一。 它从用户角度出发,解释了用户所期望得到的结果。用户故事清楚…

团队项目冲刺--day6

每天举行站立式会议成员 任务##昨天已完成的工作成员 任务徐嘉炜 开发音频API交互逻辑陈祥意 测试网络API林楦 开发注册UI界面陈大锴 开发系统界面交互逻辑蔡家显 汇总整体测试记录陈祖民##今天计划完成的工作 界面细节完善,如歌曲封面动画,歌曲播放,页面背景随封面渐变,歌…

11.17 鲜花

a pa ta ? zaong ma ze mi da. (byd 没有输入法绷不住了)11.17 鲜花(RMQ专题) 哈哈,回家看到朴彩英这个歌绷不住了。 不是吧,姐?推歌-박채영《아파트》 채영이가 좋아하는 랜덤 게임 랜덤 게임 Game start 아파트 아파트 아파트 아파트 아파트 아파트 Uh, uh huh uh huh …

团队作业4——项目冲刺-7

目录 每日例会 1.1 例会照片 1.2 成员工作情况 2.燃尽图 3.代码签入 4.最新模块 4.1 代码截图 4.2 运行截图 5.每日总结 每日例会 1.1 例会照片1.2 成员工作情况成员 昨日已完成工作 今天计划完成的工作 工作中遇到的困难杨殷(组长) 完善管理员界面增删改查功能 完善整个系统…

jmeter接口测试之SSH Command

原文地址:https://download.csdn.net/blog/column/8863406/106334136 需要提前安装好的工具:按照好jmeter插件:ssh protocol support 、 sshmon samler Collector 然而在实际测试中,不能确定我们的的机器能够正常连接。这里就要用到 while 循环设置重连,如下添加 while …

团队项目冲刺第七天

课程 2024软件工程作业要求 团队作业4——项目冲刺作业目标 团队项目冲刺第七天团队会议合照燃尽图计划表格成员 已完成 下一步洪吉潮 话题发布与展示功能开发开发话题详情页面的前端展示刘家辉 话题发布与展示功能开发实现话题在主题圈和校园圈的展示逻辑柳浩 前后端对接,进行…

堆栈图

一、 1、找到画堆栈图从401168开始画,ctrl+g出来一个弹窗,在弹窗上输入要找到哪一行输入0x401168,他会直接跳转 2、在那一行f2下断点点开始运行让cpu运行到该行停止(画堆栈图要关注栈底EBP,栈顶ESP两个寄存器) (1)调用前(2)push2:栈顶减4,2被压入,为压栈push2之后…

基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现五

基于SSM整合maven开发的一款宠物收养领养管理系统附带源码指导运行视频,该项目前端模板是借鉴别人的,自己写的后台代码,该系统分为前台和后台,前台功能有:登录注册、领养中心、活动中心等。后台管理员功能有:用户管理、宠物管理、活动管理、领养管理、志愿者管理等。该项…

团队冲刺第六天

课程 2024软件工程作业要求 团队作业4——项目冲刺作业目标 团队项目冲刺第x天团队会议合照燃尽图计划表格成员 已完成 下一步洪吉潮 话题发布与展示功能开发设计话题发布界面,支持文字和图片上传 话题发布与展示功能开发开发话题详情页面的前端展示刘家辉话题发布与展示功能开…

团队作业——项目冲刺4

目录 每日例会 1.1 例会照片 1.2 成员工作情况 2.燃尽图 3.代码签入 4.最新模块 4.1 代码截图 4.2 运行截图 5.每日总结 每日例会 1.1 例会照片1.2 成员工作情况成员 昨日已完成工作 今天计划完成的工作 工作中遇到的困难杨殷(组长) 实现学生功能逻辑代码 完善学生功能界面(…