首页 > 编程语言 >学期:2024-2025-1 学号:20241303 《计算机基础与程序设计》第十一周学习总结

学期:2024-2025-1 学号:20241303 《计算机基础与程序设计》第十一周学习总结

时间:2024-12-07 16:53:47浏览次数:9  
标签:struct stu int number 2024 2025 Student 20241303 结构

作业信息

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 2024-2025-1计算机基础与程序设计第十一周作业
这个作业的目标 计算机科学概论(第七版)第15,16章 并完成云班课测试,《C语言程序设计》第10章并完成云班课测试
作业正文 ... 本博客链接

教材学习内容总结

1.以下是《计算机科学概论》第七版第15、16章的内容总结

第15章:数据库与信息管理

  • 数据库基础:数据库是有组织的电子数据集合。数据库管理系统(DBMS)用于创建、管理和操作数据库,常见的有MySQL、Oracle、Microsoft SQL Server等。
  • 数据模型:关系模型以行和列存储数据,表代表实体,通过键值关联;对象关系模型结合关系模型与对象导向方法,支持复杂数据类型;层次模型与网络模型是较旧的数据结构,分别以树形和网状方式组织数据。
  • SQL语言:基本操作包括SELECT(检索数据)、INSERT(添加新记录)、UPDATE(修改记录)、DELETE(删除记录)。还可通过WHERE子句、ORDER BY、GROUP BY等进行条件查询、数据过滤和排序,以及使用JOIN操作从多表中提取相关数据。
  • 数据库设计:规范化可消除数据冗余,保证一致性,通过将数据分解到多个表实现。主键用于唯一标识表中的记录,外键用于建立表之间的关系。
  • 事务管理与并发控制:事务具有ACID特性,即原子性、一致性、隔离性、持久性。并发控制技术如锁机制、时间戳等可防止数据冲突。
  • 数据安全性与隐私:数据备份与恢复可防止数据丢失。用户授权与身份验证确保只有授权用户可访问或修改数据,同时要遵循隐私保护法律法规,实现数据最小化原则。

第16章:计算机网络

  • 网络概述:计算机网络是通过通信链路连接的计算机系统,用于数据交换和资源共享。
  • 网络类型:局域网(LAN)局限于较小地理范围,速度快、成本低;广域网(WAN)覆盖广泛区域,由多个局域网组成,速度较慢,使用公共或租用线路;互联网是全球最大的计算机网络,实现全球信息共享。
  • 网络协议:TCP/IP协议栈是网络通信的基础。传输层的TCP负责可靠的数据传输和顺序控制,UDP则更注重效率;网络层的IP负责地址寻址与路由选择;应用层有HTTP、FTP、SMTP等协议支持各种实际应用程序。
  • 网络安全:网络面临病毒、恶意软件、DDoS攻击等威胁。相应的安全措施包括使用SSL/TLS协议加密数据传输、设置防火墙监控流量、采用入侵检测和预防系统(IDS/IPS)识别和响应网络攻击。
  • 网络应用:电子邮件通过SMTP、IMAP/POP3等协议实现点对点消息传递;网页浏览借助HTTP/HTTPS协议,浏览器负责解析和展示网页内容;文件传输可通过FTP和P2P技术快速共享文件 。

2.以下是关于C语言结构体内容的总结

结构体的定义

结构体是一种用户自定义的数据类型,它允许将不同类型的数据成员组合在一起,用来表示一个更复杂的实体。其定义的基本语法形式如下:

struct 结构体名 {
    数据类型 成员1;
    数据类型 成员2;
    // 可以有多个成员
    数据类型 成员n;
};

例如,定义一个表示学生信息的结构体:

struct Student {
    char name[20];
    int age;
    float score;
};

结构体变量的声明与初始化

  • 声明:在结构体定义完成后,可以声明该结构体类型的变量,有以下几种常见方式。
    • 先定义结构体类型,再声明变量:
struct Student stu1;
- 在定义结构体类型的同时声明变量:
struct Student {
    char name[20];
    int age;
    float score;
} stu2;
- 使用 `typedef` 关键字给结构体类型定义别名后声明变量,这样后续使用更简洁:
typedef struct Student {
    char name[20];
    int age;
    float score;
} Stu;
Stu stu3;
  • 初始化:可以在声明结构体变量时进行初始化,用花括号按成员顺序依次给出初始值,例如:
struct Student stu4 = {"Tom", 18, 85.5};

结构体成员的访问

通过结构体变量名使用 .(点运算符)来访问其成员,格式为“结构体变量名.成员名”。例如:

struct Student stu = {"Jerry", 20, 90.0};
printf("学生姓名:%s\n", stu.name);
stu.age++;

如果是通过指针来指向结构体变量,那就需要使用 ->(箭头运算符)来访问成员,例如:

struct Student stu = {"Alice", 19, 88.0};
struct Student *p = &stu;
printf("学生分数:%f\n", p->score);

结构体数组

可以定义结构体类型的数组,用来存储多个同类型的结构体变量。例如:

struct Student class[3] = {
    {"Bob", 18, 78.0},
    {"Lily", 17, 82.0},
    {"Mike", 19, 85.0}
};

访问结构体数组元素中的成员,同样使用 . 运算符,比如遍历结构体数组输出学生信息:

for (int i = 0; i < 3; i++) {
    printf("第 %d 个学生姓名:%s,年龄:%d,分数:%f\n", i + 1, class[i].name, class[i].age, class[i].score);
}

结构体作为函数参数

结构体可以作为函数的参数进行传递,有两种常见方式:

  • 值传递:将结构体变量的值复制一份传递给函数,函数内对参数的修改不会影响原结构体变量,这种方式在结构体较大时可能产生较大的开销。例如:
void printStudent(struct Student s) {
    printf("姓名:%s,年龄:%d,分数:%f\n", s.name, s.age, s.score);
}
  • 地址传递(指针传递):传递结构体变量的地址给函数,函数内可以通过指针修改原结构体变量的内容,效率相对更高,常用这种方式来处理结构体参数,例如:
void updateAge(struct Student *p, int newAge) {
    p->age = newAge;
}

结构体的嵌套

结构体中成员的数据类型也可以是另一个结构体,这就是结构体嵌套。例如定义一个包含日期结构体的学生结构体:

struct Date {
    int year;
    int month;
    int day;
};

struct StudentWithDate {
    char name[20];
    struct Date birthday;
    float score;
};

访问嵌套结构体中的成员时,需要使用多层 . 运算符,比如:

struct StudentWithDate stu = {"David", {2005, 3, 15}, 80.0};
printf("学生生日:%d年%d月%d日\n", stu.birthday.year, stu.birthday.month, stu.birthday.day);

基于AI的学习






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

问题1
在连续输入一串数字,并以-1为结束条件时

int number[10],i=0;      
while(number[i]!=-1)
{
   scanf("%d",&number[i]);
   i++;
}

上述代码并不会在遇到-1时结束,而是继续输入。
原因
在判断循坏条件时,并没有判断刚输入的number[i],而是在i++后,才进行判断,此时相当于在判断number[i+1],而该数字并没有输入任何值,相当于一个随机数,所以number[i+1]并不会一定等于-1
解决方案

int number[10],i=0;      
while(number[i-1]!=-1)
{
   scanf("%d",&number[i]);
   i++;
}

或者

int num,number[10],i=0;
while(1)
{
scanf("%d",&num);
if(num!=-1)
{
number[i]=num;
i++;
}
else
{
break;
}
}

上周考试错题总结

错误1
用字符指针作函数参数编程实现如下功能:在字符串中删除与某字符相同的字符。
输入格式要求:"%s"
输入提示信息:
"Input a string:"
"Input a character:"
输出格式要求:"Results:%s\n"
程序运行示例1如下:
Input a string:hello,world!
Input a character:o
Results:hell,wrld!
请按如下框架编程:

 #include <stdio.h>
 #include <string.h>
 #define N 100
 void  Squeeze(char *s, char c);
 int main()
 {
    char  str[20], ch;
    printf("Input a string:");
    gets(str);
    printf("Input a character:");
    ch = getchar();
 
    ......
 
    printf("Results:%s\n", str);
    return 0;
 }
 void  Squeeze(char *s, char c)
 {
    ......
 }

解决方法

理解情况
在删除相同字符时,借用了一个变量i来记录相同字符的位置

其他(感悟、思考等,可选)

需要继续努力

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第八周 1400/2000 1/2 20/20
第九周 1600/2000 1/4 18/38
第十周 1700/2000 1/7 22/60
第十一周 1900/3000 1/9 30/90

标签:struct,stu,int,number,2024,2025,Student,20241303,结构
From: https://www.cnblogs.com/dl2006/p/18592393

相关文章

  • 2025年AI游戏行业的14大趋势:引领未来娱乐的新纪元
    随着技术的飞速发展,2025年的AI游戏行业正站在一个转折点上。这一年不仅标志着AI3D、代理和游戏的“元年”,还预示着一系列深刻影响游戏设计、开发以及用户体验的趋势。以下是经过优化整理的2025年AI游戏行业的14大趋势,旨在为读者提供深入洞察。一、新一代皮克斯的崛起利用AI......
  • 20241207赛后总结
    非常失败的一场。从结果上来说,没有考过狂博文,也没有考进前三。rk4极具嘲讽而且控分也没控好,40rmb没了。先说A题,反映出考试中的一个问题:难度划分明显的考试一定要把简单题的分拿稳,不能一味的去冲难题。过了样例就放了,其实赛时就感觉要出锅,但是最后10分钟才尝试改,还是没改出来。......
  • 20222311 2024-2025-1 《网络与系统攻防技术》实验八实验报告
    1.学习内容Web前端:负责开发用户所看到的内容。前端语言:HTML、JavaScript(JS):与Java没有关系,与JSP两回事,CSS。Web前端框架:Vue.js(中国人尤雨溪)、Bootstrap(Twitter)、Layui(极简单)、Element-UI(基于Vue.js2.0,饿了么)、Angular(Google)……Web后端:主要使用各种库,API,Web服务等技术搭建后端......
  • 2024-2025-1 20241314 《计算机基础与程序设计》第十一周学习总结
    2024-2025-120241314《计算机基础与程序设计》第十一周学习总结作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第十一周作业这个作业的目标计算机网络......
  • 蓝桥杯 2024 省赛 C++ B组 R 格式 (JAVA面向对象 高精度 纯api题解)
    解题思路:由于数位较大这里采用高精度,又因为高精度写起来比较麻烦所以这里直接采用JAVAapi中的高精度浮点数类型和高精度整数类型,应为高精度浮点数类型四舍五入较为麻烦所以这里改为手动四舍五入importjava.math.BigDecimal;importjava.math.BigInteger;importjava.util......
  • 详细介绍 NVIDIA GeForce RTX 系列,各显卡配置参数(长期更新 - 2024.12)
    NVIDIAGeForceRTX系列是NVIDIA面向消费级市场的高性能GPU产品线,注重提供高性能的图形处理能力和游戏特性。主要面向游戏玩家和普通用户,同时也被广泛用于深度学习推理和训练等计算密集型任务。主要GPU产品有:50Series、40Series、30Series、20Series、10Seri......
  • 鸿蒙技术分享:鸿蒙应用元服务上架审核拒审问题(持续更新@20241121)
    ......
  • 【每日一题】20241207
    【每日一题】若\(0<\alpha<\frac{\pi}{2}\),\(-\frac{\pi}{2}<\beta<0\),\(\cos(\frac{\pi}{4}+\alpha)=\frac{1}{3}\),\(\cos(\frac{\pi}{4}-\frac{\beta}{2})=\frac{\sqrt{3}}{3}\),则\(\cos(\alpha+\frac{\beta}{2})=\)A.\(\......
  • Mitel MiCollab 企业协作平台 任意文件读取漏洞复现(CVE-2024-41713)
    0x01产品简介MitelMiCollab是加拿大Mitel(敏迪)公司推出的一款企业级协作平台,旨在为企业提供统一、高效、安全的通信与协作解决方案。通过该平台,员工可以在任何时间、任何地点,使用任何设备,实现即时通信、语音通话、视频会议、文件共享等功能,从而提升工作效率和团队协作能力。......
  • [码码哈哈]2024-12月最新JDK8、11、17、21国内免登录快速下载
    现有LTS版本截至2024年,JDK的LTS版本包括:JDK8(发布于2014年3月):这是一个非常流行的LTS版本,很多老旧系统仍在使用。JDK11(发布于2018年9月):引入了一些新特性和改进,并成为许多企业的首选。JDK17(发布于2021年9月):提供了对Java语言和平台的一系列增强和改......