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

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 <作业要求的链接>(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK10)
这个作业的目标 信息系统 数据库与SQL 人工智能与专家系统 人工神经网络 模拟与离散事件 排队系统 天气与地震模型 图形图像
作业正文 https://www.cnblogs.com/rockytyh/p/18580220
教材学习内容总结
信息系统
信息系统是指用于处理、存储和管理数据的计算机系统,旨在满足组织的信息需求。这些系统能够收集、处理、存储和传播信息,帮助组织做出更好的决策并提高效率。信息系统可以是简单的,如个人电脑上的文件管理系统,也可以是复杂的,如企业资源规划(ERP)系统,涉及多个业务功能和部门。

数据库与SQL
数据库是存储数据的结构化方式,它允许数据被有效地组织、管理和访问。数据库管理系统(DBMS)是一种软件,它负责维护数据库中的数据,确保数据的安全性、完整性和可用性。常见的DBMS包括MySQL、Oracle和SQL Server等。
SQL(Structured Query Language)是一种专门用于操作数据库的标准语言。它允许用户执行各种数据库操作,如查询数据、更新数据、插入数据和删除数据。SQL具有标准化版本,如SQL92和SQL99,大多数数据库系统都支持这些标准。

人工智能与专家系统
人工智能(Artificial Intelligence, AI)是计算机科学的一个分支,致力于研究、开发用于模拟、延伸和扩展人类智能的理论、方法、技术和应用系统。AI涵盖了许多领域,包括机器人、语言识别、图像识别、自然语言处理和专家系统等。
专家系统是一种基于知识库和推理引擎的AI系统,它能够利用存储的知识和推理能力来解决特定领域的问题。专家系统模仿人类专家的决策过程,可以提供类似专家水平的建议和解决方案。

人工神经网络
人工神经网络是一种模拟人脑神经元结构的计算模型,它用于实现机器学习和其他人工智能任务。这种网络由大量的节点(称为神经元)组成,这些节点通过连接(称为权重)相互作用。通过训练,人工神经网络可以从数据中学习并进行预测或分类任务。

模拟与离散事件
模拟是对现实世界现象的计算机模拟,它可以用于预测和分析复杂系统的性能。模拟可以帮助我们理解系统的动态行为,并在不实际操作系统的情况下测试不同的场景和策略。
离散事件模拟是一种特殊的模拟方法,它关注系统中发生的离散事件,如顾客到达、服务完成等。这种方法适用于那些状态变化不连续的系统,如排队系统和交通流模拟。

排队系统
排队系统是研究等待服务和排队现象的计算机模型,它用于优化服务流程和服务设施的设计。排队系统分析涉及到等待时间、服务时间、队列长度等因素,目的是减少客户的等待时间和提高服务效率。

天气与地震模型
天气模型和地震模型是用于预测和预警天气和地震现象的数学模型。这些模型基于物理定律和观测数据,通过复杂的计算来模拟大气运动和地壳活动。它们可以帮助气象学家和地震学家预测天气变化和地震发生的时间和地点,从而提前发出警告,减少灾害的影响。

图形图像
图形图像是研究计算机生成和处理图形图像的技术,它广泛应用于计算机辅助设计、动画制作、游戏开发等领域。图形图像处理涉及图像的创建、编辑、压缩、传输和显示等多个方面,目标是提高图像的质量和用户体验。
《c语言程序设计》第9章
一、结构体相关内容
结构体变量存储
结构体变量所占字节数可通过sizeof运算符求出,形式为sizeof(变量名或者是类型标识符)。结构体中的成员能够单独使用,其作用和地位如同普通变量,并且成员名可与程序中的变量名相同,但二者不代表同一对象。
若成员又是一个结构体变量,只能对最低级的成员进行赋值、存取以及计算操作。成员变量可以像普通变量一样进行运算,能引用成员的地址,也能引用结构体变量的地址。
结构体数组初始化
结构体数组初始化有一定限制,只能对全局的或静态存储类别的数组初始化,例如struct student stu = { {...}, {...}, {...} };的形式。
指向结构体变量的指针
定义形式如struct结构名变量名1,变量名2,……,变量名n,指针变量名1,指针变量名2,……,指针变量名n;,并且可以通过struct结构名指针变量名1 = &变量名1;进行初始化。
指针变量引用方式多样,如(*p).成员名、p - n(得到p指向的结构体变量中的成员n的值)、p - n++、++p - n等操作方式。
二、结构体在函数中的应用
结构体作为函数参数
C语言允许结构变量成员、结构变量本身作为函数参数,也允许结构指针做函数参数。结构体变量作函数参数采用值传递方式,函数中形参结构变量成员值改变对实参结构变量无影响,在函数定义时需对其类型进行相应说明,例如int get_month(x) struct month x;这种形式。
结构体类型的函数
一般定义形式为struct结构类型名函数名(形式参数列表),函数名前的类型说明符用于说明函数返回值的类型。
结构体指针型函数
当函数返回值是结构体变量的首地址时,为结构体指针型函数。调用该函数时,接收返回值的变量应是指向与该函数具有相同结构体类型的结构体指针变量。
三、结构嵌套
当一个结构成员是另一个结构体的成员变量时,这种数据组织称为结构嵌套。可以通过成员运算符“.”(如s1[1].h.posts1[1].birthday.year )或者指针运算符“ - ”来访问嵌套结构体中的成员。
四、共用体相关
共用体的特性
共用体使几个不同变量共占同一段内存。在使用时有诸多限制,例如只能引用共用体变量中的成员,不能引用共用体变量本身。
每一瞬时只有一个成员起作用,起作用的成员是最后一次存放的成员,共用体变量的地址和它的各成员的地址都是同一地址。
不能对共用体变量名赋值,不能企图引用变量名来得到成员的值,也不能在定义共用体变量时对它初始化。
不能把共用体变量作为函数参数,也不能使函数带回共用体变量,但可使用指向共用体变量的指针。并且共用体类型可以出现在结构体类型定义中,也可以定义共用体数组,结构体也可以出现在共用体类型定义中,数组也可以作为共用体的成员。
五、枚举类型
枚举元素的性质
枚举元素为常量,不是变量,所以不能对它们赋值。枚举常量有值,默认情况下按顺序依次取值(如enum weekday{sun,mon,tue,…,sat}中,sun、mon、tue…sat的值依次为0、1、2…6),也可在定义时改变枚举元素的值(如enum weekday{sun = 7,mon = 1,tue,…})。
教材学习中的问题和解决过程
问题1:人工智能的利与弊?
答案1:人工智能既具有提高生产力、减少错误、提供智能服务等利点,也存在许多不确定性因素,可能威胁就业、导致社会问题并被滥用。因此,人工智能的发展需要权衡这些利弊,加强管理和避免负面影响,才能发挥其最大的社会和经济效益。

问题2:在C语言中,指针的使用为何既强大又危险,我们如何在利用其强大功能的同时避免潜在的危险?
答案2:指针是C语言中一个非常强大的特性,它允许程序员直接操作内存地址,这为程序提供了极高的灵活性和效率。然而,这种接近硬件层面的控制也带来了一些风险。以下是指针为何强大和危险的原因,以及如何安全使用指针的一些建议:指针的强大之处:1. 直接访问内存:指针可以直接访问和操作内存中的数据,这使得程序可以高效地处理大量数据。2. 动态内存分配:通过指针,程序可以在运行时动态分配和释放内存,这对于处理不确定大小的数据集非常有用。3. 数组和字符串的处理:指针简化了数组和字符串的处理,使得这些数据结构的操作更加灵活。4. 函数的高级特性:指针使得函数能够接受数组、动态分配的内存和其他复杂数据结构作为参数,甚至能够返回这些类型的数据。指针的危险之处:1. 野指针:如果指针未被正确初始化,它可能指向任意内存地址,导致不可预测的行为。2. 内存泄漏:如果分配的内存没有被正确释放,或者释放了不应该释放的内存,都可能导致内存泄漏。3. 指针越界:指针可能访问数组或其他数据结构之外的内存,这可能导致数据损坏或程序崩溃。4. 并发问题:在多线程环境中,指针的使用可能导致竞态条件,如果多个线程同时访问和修改同一内存区域。安全使用指针的建议:1. 初始化指针:在声明指针后,确保它们被初始化为NULL或指向有效的内存地址。2. 使用动态内存管理函数:使用 malloc 、 calloc 、 realloc 和 free 来分配和释放内存,并检查 malloc 和 calloc 的返回值以确保内存分配成功。3. 避免越界访问:在访问数组或数据结构时,确保不会超出其边界。4. 使用现代C语言特性:C11引入了匿名结构体和联合体,以及对齐的分配函数,这些都可以帮助管理内存和指针。5. 代码审查和测试:通过代码审查和自动化测试来发现和修复指针使用中的错误。6. 使用智能指针:在支持的环境下,考虑使用智能指针(如C++中的 std::unique_ptr 和 std::shared_ptr )来自动管理内存。通过这些方法,可以在享受指针带来的便利的同时,减少因不当使用指针而引发的风险。

posted @   田瑜浩  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示