2024-2025-1 20241416 《计算机基础与程序设计》第十一周学习总结
这个作业属于哪个课程 | 2024-2025-1-计算机基础与程序设计 |
---|---|
这个作业要求在哪里 | https://www.cnblogs.com/rocedu/p/9577842.html#WEEK11 |
这个作业的目标 | 计算机网络 网络拓扑 云计算 网络安全 Web HTML,CSS,Javascript XML |
作业正文 | https://www.cnblogs.com/rockytyh/p/18593730 |
教材学习内容总结
《计算机科学概论》
一、计算机网络
计算机网络是由多个计算机设备通过通信线路相互连接形成的系统,以实现资源共享和信息传递。它的组成包括硬件(如路由器、交换机、网卡等)和软件(如网络操作系统、通信协议等),TCP/IP是互联网的基础协议,定义了数据如何在网络中传输,其功能有提供数据传输、资源共享、分布式处理等服务。计算机网络还可按照覆盖范围分为局域网(LAN)、城域网(MAN)、广域网(WAN)和互联网,从层次结构上有OSI七层模型(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)和TCP/IP四层模型(链路层、网络层、传输层、应用层),核心协议包括IP、TCP、UDP、ICMP、ARP、RARP、DNS等,还有如HTTP、FTP、SMTP、POP3、IMAP、DHCP等应用协议,数据在各层间存在封装和解封装过程。
二、网络拓扑
网络拓扑描述了网络中设备(节点)的物理或逻辑布局和连接方式。类型包括总线型、星型、环型、树型、网状型等。不同的拓扑结构影响网络的性能、可靠性和扩展性,例如星型拓扑中心节点连接所有节点,易于监控和管理;网状型节点之间有多条路径连接,可靠性高。
三、云计算
云计算是一种通过互联网提供计算资源(如服务器、存储、数据库、网络、软件等)的服务模式。类型包括公有云、私有云和混合云。具有弹性、可扩展性、成本效益、按需服务等优势,其服务模型有IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)。
四、网络安全
网络安全是指保护网络和数据不受未授权访问、破坏或泄露的实践。措施包括防火墙、入侵检测系统、加密技术、安全协议等,面临的威胁包括病毒、木马、蠕虫、拒绝服务攻击(DoS)等,在法规方面涉及数据保护法规,如GDPR(通用数据保护条例)。
五、Web
Web是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。
六、HTML
HTML即超文本标记语言,用于定义网页的结构和内容。HTML文本是由HTML命令组成的描述性文本,这些命令可以说明文字、图形、动画、声音、表格、链接等元素。
七、CSS
CSS是层叠样式表,用于设置网页的布局和样式,它不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化,常与HTML一起使用来构建网页的外观表现。
八、Javascript
Javascript是一种脚本编程语言,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。它用于实现网页的交互性,虽然它是作为开发Web页面的脚本语言而出名,但也被用到了很多非浏览器环境中,基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
九、XML
XML是可扩展标记语言,是一种标记语言,用于存储和传输数据。常用于配置文件、数据交换和文档发布,具有自描述性,支持数据和标记的分离的特点。
《c语言程序设计》
一、字符串的表示
在C语言中,字符串实际上是一个以空字符'\0'结尾的字符数组。例如char str[] = "hello";,这个数组中包含了'h'、'e'、'l'、'l'、'o'和'\0'这几个字符。
当定义字符数组来存储字符串时,需要确保数组的长度足够容纳字符串内容包括最后的空字符。
二、常见字符串操作函数
(一)字符串复制
strcpy函数
函数原型:strcpy(chardestination, constcharsource);。
功能:将字符串source拷贝到字符串destination中。例如:
char str1[10] = "TsinghuaOK"; char str2[] = "Computer"; cout<<strcpy(str1, str2)<<endl;,运行结果是Computer,第二个字符串将覆盖掉第一个字符串的所有内容。注意在定义数组时,字符数组destination(这里是str1)的字符串长度必须大于或等于字符串source(这里是str2)的字符串长度。所有字符串处理函数都包含在头文件string.h中。
strncpy函数
函数原型:strncpy(chardestination, constcharsource, intnumchars);。
功能:将字符串source中前numchars个字符拷贝到字符串destination中。例如:
char str1[10] = "Tsinghua"; char str2[10] = "Computer"; cout<<strncpy(str1, str2, 3)<<endl;,运行结果是Comnghua。注意字符串source中前numchars个字符将覆盖掉字符串destination中前numchars个字符。
(二)字符串连接
strcat函数
函数原型:strcat(chartarget, constcharsource);。
功能:将字符串source接到字符串target的后面。例如:
char str1[] = "Tsinghua"; char str2[] = "Computer";,运行结果是TsinghuaComputer。进行字符串连接后,字符串target(这里是str1)的结尾符将自动被去掉,在连接后的字符串末尾保留一个结尾符。
strncat函数
函数原型:strncat(chartarget, constcharsource, intnumchars);。
功能:将字符串source的前numchars个字符接到字符串target的后面。例如:
cout<<strncat(str1, str2, 3)<<endl;,运行结果是TsinghuaCom。
(三)字符串长度获取
strlen函数
函数原型:strlen(constcharstring);。
功能:统计字符串string中字符的个数。例如:
charstr[100]; cout<<"请输入一个字符串:"; cout<<"The length of the string is : "<<strlen(str)<<"个"<<endl;。
(四)字符串比较
strcmp函数
函数原型:intstrcmp(constcharfirststring, constcharsecondstring);。
功能:比较两个字符串的大小。例如:
charbuf1[] = "aaa"; int ptr = strcmp(buf2, buf1); if (ptr>0) cout<<"Buffer 2 is greater than buffer 1"<<endl;等情况。根据比较结果返回不同的值,如果firststring小于secondstring,返回值小于0;如果相等,返回值为0;如果firststring大于secondstring,返回值大于0。
strncmp函数
函数原型:strncmp(constcharfirststring, constcharsecondstring, intn);。
功能:比较指定长度n的两个字符串。
(五)字符串查找
strchr函数:在字符串中查找指定字符。
strstr函数:查找字符串。
strpbrk函数:以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素。
strcspn函数:以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移。
三、字符串与数值类型的转换
strtod函数
函数原型:strtod(p, ppend)。
功能:从字符串p中转换double类型数值,并将后续的字符串指针存储到ppend指向的char*类型存储。
atoi函数:将字符串转换到int整型。
atof函数:将字符串转换到double符点数。
四、字符检查函数
isalpha函数:检查是否为字母字符。
isupper函数:检查是否为大写字母字符。
islower函数:检查是否为小写字母字符。
isdigit函数:检查是否为数字。
isspace函数:检查是否为空格类型字符。
iscntrl函数:检查是否为控制字符。
ispunct函数:检查是否为标点符号。
isprint函数:检查是否是可打印字符。
教材学习中的问题和解决过程
问题1:几种网络拓扑的区别。
答案1:1. 星型拓扑(Star Topology)
特点:
各个节点都通过独立的线缆连接到中央节点(通常是集线器或交换机)。
如果一个节点出现问题,不会影响整个网络的运行。
易于管理和维护,故障排除相对简单。
优点:
易于安装和配置。
中央节点便于集中管理。
添加或删除节点较为方便。
缺点:
中央节点一旦故障,整个网络会瘫痪。
需要较多的线缆,成本较高。
2. 总线型拓扑(Bus Topology)
特点:
所有节点通过一条公共总线连接。
数据沿着总线逐个节点广播传送。
优点:
结构简单,安装方便。
成本较低,适合小型网络。
缺点:
总线一旦故障,整个网络会瘫痪。
随着节点增加,网络性能会下降。
故障排除较为困难。
3. 环型拓扑(Ring Topology)
特点:
数据在环路中沿着一个方向在各个节点间传输。
每个节点通过令牌传递数据,确保数据传输的有序性。
优点:
数据传输有序,避免冲突。
易于安装和重新配置。
缺点:
环路一旦中断,整个网络会受影响。
故障排除较为复杂。
令牌传递机制可能导致延迟。
4. 树型拓扑(Tree Topology)
特点:
采用分级结构,节点通过层次关系连接。
类似于星型拓扑的组合,但具有多级结构。
优点:
易于扩展和管理。
故障隔离较为简单。
缺点:
结构复杂,管理难度增加。
上层节点故障会影响下层节点。
5. 网状拓扑(Mesh Topology)
特点:
每个节点与其他多个节点直接连接。
提供高冗余性和可靠性。
优点:
高度冗余,容错能力强。
数据可以通过多条路径传输,提高网络效率。
缺点:
结构复杂,成本较高。
配置和管理难度大。
6. 点对点拓扑(Point-to-Point Topology)
特点:
两个节点之间直接连接。
结构最为简单。
优点:
连接速度快,可靠性高。
无需网络操作系统。
缺点:
只适用于短距离连接。
无法集中备份文件和文件夹。
安全性较低。
7. 混合拓扑(Hybrid Topology)
特点:
结合了两种或多种拓扑结构的优点。
根据具体需求灵活设计。
优点:
灵活性高,可以根据需求调整。
综合了多种拓扑的优点。
缺点:
设计和管理复杂。
成本较高。
问题2:字符串的优势与不足在哪里?
答案2:优势
内存效率:字符串驻留机制可以节省内存。通过共享相同的字符串对象,减少了重复字符串在内存中的存储,从而提高了内存的使用效率。
性能提升:由于字符串驻留机制的存在,当需要相同值的字符串时,可以直接从字符串池中获取,避免了频繁创建和销毁字符串对象的过程,从而提高了程序的执行效率。
简化操作:字符串的不可变性简化了多线程环境下的操作,因为不可变对象本质上是线程安全的。
便于管理:字符串驻留机制通过统一管理字符串对象,使得字符串的生命周期管理更加高效和可控。
不足
拼接效率低:在需要拼接字符串的情况下,使用传统的“+”操作符会导致创建大量的新字符串对象,从而影响性能。建议使用join方法来进行字符串拼接,因为它可以一次性分配足够的内存空间,避免了多次分配和复制的过程。
内存占用问题:虽然字符串驻留机制可以节省内存,但如果字符串池中积累了大量的字符串对象,可能会导致内存占用过高,从而影响程序的整体性能。
复杂度增加:对于某些特定场景,字符串驻留机制可能会增加程序的复杂度,特别是在需要处理大量不同字符串的情况下。