软考_软件设计师

news2024/9/19 11:00:42

算法:

1、直接插入排序
详解:https://blog.csdn.net/qq_44616044/article/details/115708056

void insertSort(int data[],int n){
	int i,j,temp;
	for(i=1;i<n;i++){
		if(data[i]<data[i-1]){
			temp = data[i];
			data[i] = data[i-1];
			for(j=i-1;j>=0&&data[j]>temp;j--){
				data[j+1]=data[j];
			}
			data[j+1] = temp;
		}
	}
}

2、冒泡排序(每一趟排序能确定一个元素的最终位置)
详解:https://blog.csdn.net/Iseno_V/article/details/92212124

void bubbleSort(int arr[],int len){
	int i,j,temp;
	for(i=0;i<len-1;i++){
		for(j=0;j<len-1-i;j++){
			if(arr[j]>arr[j+1]){
				temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
}

3、简单选择排序
详解:https://blog.csdn.net/lemonchi/article/details/81364424

void selectSort(int data[],int n){
	for(int i=0;i<n-1;i++){
		int minIndex = i;
		for (int j=i+1;j<n;j++){
			if(data[j]<data[minIndex]){
				minIndex = j;
			}
		}
		if(minIndex!=i){
			int temp = data[i];
			data[i] = data[minIndex];
			data[minIndex] = temp;
		}
	}
}

4、希尔排序

void shellSort(int data[],int n){
	int *delta,k,i,t,dk,j;
	k = n;
	delta = (int*)malloc(sizeof(int)*(n/2));
	i=0;
	do{
		k = k/2;
		delta[i++] = k;
	}while(k>1);
	i=0;
	while((dk=delta[i]>0){
		for(k=delta[i];k<n;++k){
			if(data[k]<data[k-dk]){
				t = data[k];
				for(j =k-dk;j>=0&&t<data[j];j-=dk){
					data[j+dk] = data[j];
				}
				data[j+dk]=t;
			}
		}
		++i;
		}
	}

5、快速排序
详解:https://blog.csdn.net/alzzw/article/details/97970371

void quickSort(int a[],int l,int r){
	if(l>=r) return ;
	int i=1;j=r;pivot=a[l];
	while(i<j){
		while(i<j&&a[j]>=pivot)j--;
		a[i]=a[j];
		while(i<j&&a[i]<=pivot)i++;
		a[j]=a[i];
	}
	a[i]=pivot;
	quickSort(a,l,i-1);
	quickSort(a,i+1,r);
}

排序算法比较

排序算法比较

面向对象

设计模式意图

1、创建型类
工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类;

2、创建型对象
抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类;
生成器:当一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;
原型:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象;
单例:保证一个类仅有一个实例,并提供一个访问它的全局访问点;

3、结构型类/对象
适配器:将一个类的接口转换成客户希望的另一个接口;使得原本由于接口不兼容而不能一起工作的那些类可以一起工作;

4、结构型对象
桥接:将抽象部分与其实现部分分离,使他们可以独立地变化;
组合:将对象组合成树形结构以表示“部分-整体”的层次结构。使得用户对单个对象和组合对象的使用具有一致性;
装饰器:动态地给一个对象添加一些额外的职责;
外观:为子系统的一组接口提供一个一致的界面;
享元:运用共享技术有效地支持大量细粒度对象;
代理:为其他对象提供一种代理以控制对这个对象的访问;

5、行为型类
解释器:给定一个语言,定义他的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子;
模板方法:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的特定步骤;

6、行为型对象
责任链:使多个对象都有机会处理请求 ,从而避免请求的发送者和接受者之间的耦合关系;
命令:将一个请求封装成一个对象,从而使得可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作;
迭代器:提供一种方法顺序访问一个聚合对象的各个元素,且不需要暴露该对象的内部表示;
中介者:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示的相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互;
备忘录:在不破坏封装性的前提下捕获一个对象的内部状态,并在对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态;
观察者:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新;
状态:允许一个对象在其内部状态改变时改变他的行为。对象看起来似乎修改了他的类。
策略:定义一系列的算法,把他们一个个封装起来,并且使他们可以相互替换。此模式使得算法可以独立于使用他们的客户而变化;
访问者:表示一个作用于某对象结构中的各元素的操作。它允许在不改变各元素的类的前提下定义作用于这些元素的新操作。

面向对象基础

面向对象分析的活动 :认定对象、组织对象、描述对象间的相互作用、确定对象的操作、定义对象的内部信息。
面向对象设计的活动:识别类及对象、定义属性、定义服务、识别关系、识别包。
面向对象设计的原则
单一责任:就一个类而言,应该仅有一个引起它变化的原因
开放封闭:对扩展开放,对修改封闭
里氏替换:子类必须能够替换掉他们的基类型
依赖倒置:抽象不应该依赖于细节,细节应该依赖于抽象
接口分离:接口属于客户。依赖于抽象,不依赖于具体
共同封闭:包中所有类对于同一性质的变化应该是共同封闭的
共同重用:一个包中的所有类应该是共同重用的

软件过程模型

瀑布模型:线性顺序、文档驱动、适合软件需求很明确的项目;优点:容易理解,管理成本低;缺点:集成和测试堆到最后。
增量模型:强调每一个增量均发布一个可操作的产品,可以初始快速构建核心产品。优点:具备瀑布模型所有优点,第一个可交付版本的成本和时间很少,小系统风险不大;缺点:增量不稳定,管理发生的成本、进度和配置的复杂性可能会超出组织的能力。
原型模型:适合于用户需求不清、需求经常发生变化的情况;不适合大规模、复杂的软件;
螺旋模型:将瀑布模型和演化模型结合起来,加入风险分析,适用于庞大、复杂且 具有高风险的系统;支持用户需求的动态变化;开发人员需具有风险知识和经验;过多的迭代次数会增加开发成本,延迟提交时间。
喷泉模型:以对象作为驱动,使开发过程具有迭代性和无间隙性(开发活动无明显边界),在迭代过程中不断的完善系统,允许各开发活动交叉、迭代地进行。优点:提高开发效率、节省开发时间。缺点:需要大量开发人员、不利于项目管理、需要严格管理文档。

敏捷方法

极限编程:四大价值观(沟通、简单性、反馈、勇气)12个最佳实践(计划游戏、小型发布【系统的设计要能够尽可能早地交付】、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成【可以按日甚至按小时为客户提供可运行的版本】、每周工作40个小时、现场客和编码标准)
水晶法:认为每一个不同的项目都需要一套不同的策略、约定和方法论;
并列争求法:使用迭代的方法,把每30天的一个迭代称为一个“冲刺”
敏捷统一过程:在大型上连续、在小型上迭代,采用经典的UP阶段性活动,能够使团队为软件项目构想成一个全面的工作流。

软件测试

软件测试目的:发现错误;
对应关系
系统测试——需求分析
集成测试——总体设计
单元测试——详细设计
McCabe环路复杂度:有向弧数-节点数+2/ 闭合区间+1
可维护性评价指标:可理解性、可测试性、可修改性
软件维护的几个方面
正确性维护:改正错误
适应性维护:适应信息技术变化和管理需求变化
完善性维护:扩充功能、改善性能
预防性维护:适应未来软硬件环境的变化,主动增加预防性的新的功能
计算公式:
可靠性(MTTF/(1+MTTF),MTTF为平均无故障时间)、可用性(MTBF/(1+MTBF),MTBF为失效间隔时间)、可维护性(1/(1+MTTR),MTTR为平均修复时间)
COCOMO估算模型
基本COCOMO模型:静态单变量模型,用于将整个软件系统进行估算
中级COCOMO模型:静态多变量模型,将软件系统模型分为系统和部件两个层次
详细COCOMO模型:将软件系统模型分为系统、子系统和模块3个层次

程序设计语言_编译过程

词法分析
输入:源程序
输出:记号流
作用:分析构成程序的字符以及由字符按照构造规则构成的符号是否符合程序语言的规定
语法分析
输入:记号流
输出:语法树/分析树
作用:对各条语句的结构进行合法性分析,分析程序中的句子结构是否正确
语义分析
输入:语法树/分析树
作用:类型分析和检查,只能发现所有静态语义错误
中间代码生成
常见的中间代码:后缀式、三地址码、三元式、四元式、树
与具体的机器无关,可以将不同的高级程序语言编译成一种中间代码,中间代码可以跨平台、有利于进行与机器无关的优化处理和提高编译程序的可移植性
代码优化
目标代码生成:
与具体的机器密切相关,寄存器的分配工作在这个阶段

C语言:预处理、编译、汇编、链接

有限自动机:词法分析的一个工具,能正确地识别正规集
确定的有限自动机(DFA):对每一个状态来说识别字符后转移地状态是唯一的
不确定的有限自动机(NFA):对每一个状态来说识别字符后转移的状态是不确定的

计算机网络

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
TCP:可靠的、面向连接的、差错校验和重传、流量控制(采用可变大小的滑动窗口协议)、拥塞控制、端口寻址、三次握手;
UDP:不可靠 、无连接、端口寻址、可以保证应用程序进程间的通信、开销较小
SMTP:Email系统基于客户端/服务器模式,服务器采用SMTP发生邮件,POP3接收邮件
ARP地址解析协议:IP地址转物理地址(MAC),以广播方式发送请求,单播传送响应
RARP反地址解析协议:物理地址(MAC)转IP地址,以广播方式发送请求,单播传送响应

DHCP
功能:集中管理、分配IP地址、使网络环境中的主机动态获得IP地址、网关地址、DNS服务器地址等信息,并能提升地址的使用率;
DHCP客户端可以从DHCP服务器获得本机IP地址、DNS服务器地址、DHCP服务器地址和默认网关地址;
Windows无效地址:169.254.X.X
Linux无效地址:0.0.0.0
DHCP信息租用失败时自动给客户机分配的IP地址:169.254.X.X

URL:协议名://主机名.域名.域名后缀.目录名.网页文件名
DNS域名查询的次序:本地hosts文件,本地DNS缓存,本地DNS服务器,根域名服务器
主域名服务器接收到域名请求后查询顺序:本地缓存、本地hosts文件、本地数据库,转发域名服务器

HTTP一次请求过程顺序
在浏览器中输入URL
浏览器向DNS服务器发出域名解析请求并获得结果
根据目的IP地址和端口号,与服务器建立TCP连接
浏览器向服务器发送数据请求
服务器将网页数据发送给浏览器
通信完成,断开TCP连接
浏览器解析收到的数据并显示

CMD命令
ipconfig/release:DHCP客户端手动释放IP地址
ipconfig/flushdns:清除本地DNS缓存内容
ipconfig/displaydns:显示本地DNS内容
ipconfig/registerdns:DNS客户端手动向服务器进行注册
ipconfig:显示所有网络适配器的IP地址,子网掩码和缺省网关值
ipconfig/all:显示所有网络适配器的完整TCP/IP配置信息,包括DHCP服务器是否已启动
ping:检查网络是否连通
netstat:显示网络相关信息
msconfig:windows配置的应用程序

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OPPO Find N3,解码“新商务场景”

2023行至尾声&#xff0c;这一年消费电子市场的整体表现&#xff0c;很难被评价为乐观。智能手机等大宗产品的需求疲软&#xff0c;技术越来越同质化&#xff0c;产品越来越成熟&#xff0c;出货量下行。国际数据公司&#xff08;IDC&#xff09;手机季度跟踪报告显示&#xff…

App测试基本流程以及注意事项

1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间&#xff0c;一般测试时间为两三周&#xff08;即15个工作日&#xff09;&#xff0c;根据项目情况以及版本质量可适当缩短或延长测试时间。 1.3测试资源 测试任务开始前&#xff0c;检查…

弱覆盖栅格图层制作

栅格边界生成及图层制作 栅格边界polygon生成 提取的弱覆盖栅格数据中包含了栅格中心经度和栅格中心维度&#xff0c;我们根据栅格中心经纬度生成对应的栅格边界POLYGON&#xff08;20米*40米&#xff09; 计算公式&#xff1a;polygon(栅格中心经度-0.00017 栅格中心纬度0.00…

大数据之LibrA数据库系统告警处理(ALM-12004 OLdap资源异常)

告警解释 当Manager中的Ldap资源异常时&#xff0c;系统产生此告警。 当Manager中的Ldap资源恢复&#xff0c;且告警处理完成时&#xff0c;告警恢复。 告警属性 告警参数 对系统的影响 Ldap资源异常&#xff0c;Manager和组件WebUI认证服务不可用&#xff0c;无法对Web上层…

Syntax Error: TypeError: this.getOptions is not a function的解决(Vue)

报错信息&#xff1a; TypeError: this.getOptions is not a function 这个是在运行项目是遇到的问题 这个报错是类型错误&#xff0c;this.getOptions 不是一个函数 。这个错误一般就是less-loader库里的错误。 主要是less-loader版本太高&#xff0c;不兼容this.getOptions…

WPF自定义控件库之Window窗口

在WPF开发中&#xff0c;默认控件的样式常常无法满足实际的应用需求&#xff0c;我们通常都会采用引入第三方控件库的方式来美化UI&#xff0c;使得应用软件的设计风格更加统一。常用的WPF的UI控件库主要有以下几种&#xff0c;如&#xff1a;Modern UI for WPF&#xff0c;Mat…

IDEA配置类、方法注释模板

一、打开 IDEA 的 Settings&#xff0c;点击 Editor–>File and Code Templates&#xff0c;点击右边 File 选项卡下面的 Class&#xff0c;在其中添加图中红框内的内容&#xff1a; /** * author li-kun * date ${YEAR}年${MONTH}月${DAY}日 ${TIME} */当你创建一个新的类…

考试成绩这样分发

老师们&#xff0c;还在为每次繁琐的成绩查询而头痛&#xff1f;今天我就要给大家带来一个超级实用的教程&#xff0c;让你轻松解决这个问题&#xff01; 我来介绍一下这个神秘的“成绩查询页面”。别以为它很复杂&#xff0c;其实它就是一个简单的网页&#xff0c;上面会有每个…

深入探索 C++ 多态 ① - 虚函数调用链路

前言 最近翻阅侯捷先生的两本书&#xff1a;&#xff08;翻译&#xff09;《深度探索 C 对象模型》 和 《C 虚拟与多态》&#xff0c;获益良多。 要理解多态的工作原理&#xff0c;得理解这几个知识点的关系&#xff1a;虚函数、虚函数表、虚函数指针、以及对象的 内存布局。…

【骑行贝丘渔场】一场与海的邂逅,一段难忘的旅程

在这个渐凉的秋日&#xff0c;我们校长骑行队一行人骑着自行车&#xff0c;从大观公园门口出发&#xff0c;开始了一段别开生面的海滩之旅。沿途穿越草海隧道湿地公园、迎海路、海埂公园西门&#xff08;第二集合点&#xff09;、宝丰湿地公园、斗南湿地公园、蓝光城&#xff0…

代理模式代理模式

目录 1、使用场景 2、静态代理 3、动态代理 JDK动态代理 CGlib 动态代理实现 1、使用场景 使用代理模式主要有两个目的&#xff1a;一是保护目标对象&#xff0c;二是增强目标对象。 2、静态代理 NO.1 抽象接口&#xff1a;定义视频播放器接口Player public interface P…

大数据之路-日志采集

数据采集作为大数据体系中的第一环节&#xff0c;对如何全面、高性能、规范完成海量数据的采集&#xff0c;并将其传输到大数据平台。 1.浏览器的页面日志采集 1.1 页面浏览日志采集流程 页面浏览日志是最基础的互联网日志&#xff0c;其中页面浏览量&#xff08;PageView&am…

短期经济波动:均衡国民收入决定理论(一)

宏观经济学讲义 10 短期经济波动&#xff1a;均衡国民收入决定理论(一) 文章目录 10 短期经济波动&#xff1a;均衡国民收入决定理论(一)[toc]1 均衡国民收入决定1.1 均衡国民收入决定的不同理论1.2 两部门经济&#xff1a;有效需求原理和框架1.2.1 模型假设1.2.2 模型推导1.2…

【零基础抓包】Fiddler超详细教学(一)

​Fiddler 1、什么是 Fiddler? Fiddler 是一个 HTTP 协议调试代理工具&#xff0c;它能够记录并检查所有你的电脑和互联网之间的 HTTP 通讯。Fiddler 提供了电脑端、移动端的抓包、包括 http 协议和 https 协议都可以捕获到报文并进行分析&#xff1b;可以设置断点调试、截取…

期中成绩发布一对一查询

亲爱的老师们&#xff01;我知道您在期中考试后忙碌而又紧张&#xff0c;不仅要准备试卷分析&#xff0c;还要面对学生和家长的询问。现在&#xff0c;我为您带来了一款一对一成绩查询系统&#xff0c;让您的工作变得更简单、更高效&#xff01; 什么是成绩查询系统&#xff1f…

一个小妙招从Prompt菜鸟秒变专家!加州大学提出PromptAgent,帮你高效使用ChatGPT!

夕小瑶科技说 原创 作者 | 谢年年、王二狗 有了ChatGPT、GPT4之后&#xff0c;我们的工作学习效率得到大大提升&#xff08;特别在凑字数方面୧(๑•̀◡•́๑)૭&#xff09;。 作为一个工具&#xff0c;有人觉得好用&#xff0c;自然也有人觉得难用。 要把大模型用得6&am…

518抽奖软件,为什么说比别的抽奖软件更美观精美?

518抽奖软件简介 518抽奖软件&#xff0c;518我要发&#xff0c;超好用的年会抽奖软件&#xff0c;简约设计风格。 包含文字号码抽奖、照片抽奖两种模式&#xff0c;支持姓名抽奖、号码抽奖、数字抽奖、照片抽奖。(www.518cj.net) 精致美观功能 字体平滑无锯齿图片放大后清晰…

SCADA在污水和供水系统解决方案

1. 引言 随着城市化的不断发展&#xff0c;污水和供水系统的管理变得越来越重要。为了提高运营效率和监控系统状态&#xff0c;许多污水处理厂开始使用SCADA系统。 SCADA系统具有实时数据采集、监控和控制功能&#xff0c;可以帮助污水处理厂运营人员实时了解系统的运行情况&…

Google Play优化之如何增强应用的吸引力

视觉元素&#xff0c;在增强应用在Google Play上的吸引力方面发挥着巨大作用。应用程序的图标、屏幕截图和宣传视频&#xff0c;构成了应用程序商店优化过程的关键部分。 1、图标是用户遇到的第一个视觉元素。 精心设计的图标可以有效地代表应用程序的用途&#xff0c;可以显著…

LeetCode | 26. 删除有序数组中的重复项

LeetCode | 26. 删除有序数组中的重复项 OJ链接 这里的非递增是什么意思&#xff1f; 就是反过来的&#xff0c;递减&#xff0c;不能说是乱序~~也就是后一个比前一个小也就是和非递减等价&#xff0c;后一个比前一个大~~ 所以非递增和非严格递增是不一样的~~ 这里本质上的…