学期(2022-2023) 学号(20221403) 《计算机基础与程序设计》第八周学习总结

作业信息

这个作业属于哪个课程 <班级的链接>(如2022-2023-1-计算机基础与程序设计
这个作业要求在哪里 <作业要求的链接>(如2022-2023-1计算机基础与程序设计第八周作业
这个作业的目标 功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、执行
作业正文 … 本博客链接

教材学习内容总结

  1. 功能设计与面向对象设计的区别
  • 功能设计是按照产品定位的初步要求,在对用户需求及现有产品进行功能调查分析的基础上,对所定位产品应具备的目标功能系统进行概念性构建的创造活动。
  • 面向对象设计采用与结构化设计不一样的视角,他是将世界抽象成一系列具有一定职责的自由数据个体,个体之间相互协作,共同完成高级的行为.
  1. 面向对象设计过程
  • 先根据需求找出对象
  • 抽象每一个对象为类
  • 找出各对象之间的关系,使用组合、继承、分类、扩展等描述这些关系
  • 找出每个对象实体要做的事,写对象方法
  • 找出每个类在不需要有对象实体的情况下要做的事,写类方法
  1. 面向对象语言三要素
  • 封装、继承、多态
  • 封装把数据和动作集中在一起,使数据和动作的逻辑属性与他们的实现细节分离。(实现信息隐蔽的语言特性)
  • 继承是指类获取其他类的属性(数据字段和方法)的机制。被继承类叫超类,继承后的类叫派生类子类
  • 多态是语言在运行时确定给定调用将执行哪些可能的方法的能力。
  1. 汇编与编译
  • 汇编语言是一种低级编程语言算法简单,通常用汇编器将汇编语言指令翻译成机器码,最终执行的是汇编器输出的机器码。
  • 编译程序把高级编程语言(如Java、C#)编写的程序转换为可执行的机器语言。其具体过程是先把高级语言编写的程序转换为汇编指令(assembly instruction),然后再转换为可执行的机器语言。
  1. 解释
  • 解释与编译类似,书上提到第二代高级语言分为两种,一种是要编译的,一种是要解释的。
  • 解释语言时要用到解释器,解释器是一种程序,用于翻译和执行语句序列。(可看作模拟器或虚拟机)(而汇编器或编译器叫翻译器
  • 翻译器只用适合的机器语言生成等价的程序,这个程序再单独运行,但速度要快。
    模拟器直接执行输入的程序,但速度要慢。
  1. 执行
  • 执行是机器理解并运行其所得的机器代码

上周考试错题总结

Which level provides a view that deals with the underlying data structure used to manage the data?
A. Implementation level
B. Logical level
C. Array level
D. Linked level
E. Application level
正确答案: A ; 我的作答: B

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

在做输入一个正整数,要求以相反的顺序输出该数。用递归方法实现。这道题时出现了问题。

  1. 在刚开始看这道题时没有思路,如何用递归法将一个数进行逆序并输出。
  • 经过在CSDN网站上借鉴学习,了解到可以通过将该数进行对10求余得到最后一个数并输出,并将该数更替为原来的数除10并再次对新数进行递归。依次重复就能得到从最后一个数逐个向前输出到第一个数,得到该数的逆序。
  • 参考文章(递归版)输入一个正整数n,输出其反序数
  1. 问题:
  • 我在第一次写好代码并运行时出现下述情况:
  • 在函数中加上了if(n>0)语句后再次运行才能成功:
  • 问题是我两次输入的n都是大于零的,为什么会出现两种不一样的运行结果?
  • 以下分别是两次运行的代码:

1.

点击查看代码
#include<stdio.h>
void NI(int n)
{
    printf("%d",n%10);
    NI(n/10);

}
int main(void)
{
    int n;
    printf("Enter number:");
    scanf("%d",&n);
    NI(n);
    printf("\n");
}

2.

点击查看代码
#include<stdio.h>
void NI(int n);
int main()
{
    int n;
    printf("Enter number:");
    scanf("%d",&n);
    NI(n);
    printf("\n");
}
void NI(int n)
{
    if(n>0)
    {
        printf("%d",n%10);
        NI(n/10);
    }

}
  • 解决过程:通过询问同学,老师,了解了递归函数需要有结束条件,在该函数中若不加(n>0)则在输出最后一个数后将一直输出0成为死循环导致运行失败。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第八周 300/1800 1/15 30/90

原文地址:http://www.cnblogs.com/zxh0826/p/16817214.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性