前述
- 记录本人软考中级软件设计师的一些学习记录与错题记录,主要是主观题
- 之前看过CSAPP,OSETP,DBMS,C++设计和一部分SE,花了大概两周刷了近5年的题,简单看了设计模式与软件设计师教程,最后上午成绩:59.00,下午成绩:67.00
- 设计模式参考,软件工程可以参考,或者是我SE系列的博客QWQ
选择
- 某计算机系统中互斥资源R的可用数为8,系统中有3个进程P1、P2和P3竞争R,且每个进程都需要i个R,该系统可能会发生死锁的最小i值为( )。
- 某航空公司拟开发一个机票预订系统, 旅客预订机票时使用信用卡付款。付款通过信用卡公司的信用卡管理系统提供的接口实现。若采用数据流图建立需求模型,则信用卡管理系统是( )。
- 某操作系统文件管理采用索引节点法。每个文件的索引节点有8个地址项,每个地址项大小为4字节,其中5个地址项为直接地址索引,2个地址项是一级间接地址索引,1个地址项是二级间接地址索引,磁盘索引块和磁盘数据块大小均为1KB。若要访问文件的逻辑块号分别为1和518,则系统应分别采用( )。
- 概要设计的内容可以包含系统构架、模块划分、系统接口、数据设计4个主要方面的内容
- 工作量估算模型 COCOMO II的层次结构中,估算选择不包括( )
- 在程序执行过程中,Cache与主存的地址映射是由( )完成的。
- 内存按字节编址。若用存储容量为32Kx8bit的存储器芯片构成地址从AOOOOH到DFFFFH的内存,则至少需要( )片芯片
- 配置管理是软件开发过程的重要内容,贯穿软件开发的整个过程。其内容包括:软件配置标识、变更管理、版本控制、系统建立、配置审核和配置状态报告
- 根据我国商标法,下列商品中必须使用注册商标的是()
- 在进行软件开发时,采用无主程序员的开发小组,成员之间相互平等;而主程序员负责制的开发小组,由一个主程序员和若干成员组成,成员之间没有沟通。在一个由8名开发人员构成的小组中,无主程序员组和主程序员组的沟通路径分别是( )。
数据流图题
数据库名称
XX信息表 , XX 信息储存
补全数据及起点和终点
结构化语言
1
2
3
4
5
6
7
8
9
10
11
12
|
缺陷检测{
WHILE(接收图像)
DO{
检测所收到的所有图像;
IF(出现一张图像检测不合格)
THEN{
返回产品不合格;
不合格产品检测结果=产品星号+不合格类型;
}
ENDIF
} ENDDO
}
|
问题4
https://blog.csdn.net/u010164936/article/details/45789475
ER图题
- 【需求分析】
- 【联系】
- 【关系模式】
- 【关系】
- 【关系类型】
- 【概念模式设计】
ER图1:*关系
补充属性用画圆的
缺失的联系:员工与部门的隶属关系,联系类型:*:1类型
问题2
可以填多个!!!!!
问题3
问题4
- 在职员关系模式中,假设每个职员有多名家庭成员,那么职员关系模式存在什么问题?应如何解决?
1
2
3
|
在职员关系中,如果每个职员有多名家庭成员,会重复记录多条职员信息及对应家庭成员,为了区分各条记录,职员关系的主键需要设定为(职员号,家庭成员姓名),会产生数据冗余、插入异常、更新异常、删除异常等问题。
处理方式:
对职员关系模式进行拆分,职员1(职员号、姓名、岗位、所属业务部编号,电话);职员2(职员号,家庭成员姓名,关系)。
|
员工号-> 岗位,岗位->基本工资
用例图题
18上半年做的很烂
问题3
购买书籍用例描述:
参与者顾客
主要事件流:
1、顾客登录系统;
2、顾客浏览书籍信息;
3、系统检查某种书籍的库存量是否为0;
4、顾客选择所需购买的书籍及购买数量;
5、系统检查库存量是否足够;
6、系统显示验证验证界面;
7、顾客验证;
8、系统自动生成订单;
备选事件流:
3a. 若库存量为0则无法查询到该书籍信息,退回到2;
5a. 若购买数量超过库存量,则提示库存不足,并退回到4;
7a. 若验证错误,则提示验证错误,并退回到6;
8a. 若顾客需要可以选择打印订单。
类图
注意!!!!:C1 ,C2与C3是泛化关系
算法题
https://blog.csdn.net/xiaornshuo/article/details/117532044
1
2
3
4
5
|
1:r<=N
2:j=i+r-1
3:temp<m[i][j]
4:s[i][j],j->s[i][j],j
动态规划,O(N^3),O(N^2)
|
1
2
3
4
5
6
|
1:d[0][j]=0
2:str1[i-1]==str2[j-1]
3:d[i-1][j-1]+1
4:d[len1][len2]
动态规划,O(nm)
4
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <stdio.h>
void shellsort(int data[ ], int n){
int *delta,k,i,t,dk,j;
k=n;
delta=(int *)malloc(sizeof(int)*(n/2));
if(i=0)
do{
( 1:k=k/2 ) ;
delta[i++]=k;
}while ( 2:i<n/2 ->k>1 ) ;
i=0;
while((dk=delta[i])>0){
for(k=delta[i];k<n;++k)
if( ( 3:data[k]<data[k-dt]) ) {
t=data[k];
for(j=k-dk;j>=0&&t<data[j];j-=dk){
data[j+dk]=data[j];
}/*for*/
( 4:data[j+dk]=t ) ;
}/*if*/
++i;
}/*while*/
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
//2:回溯
//3:2 ( 2 4 1 3)与( 3 1 4 2)
#include
#define n 4
int queen[n+1];
void Show() {
/* 输出所有皇后摆放方案 */
int i;
printf("(");
for (i=1;i<=n;i++) {
printf(" %d",queen[i]);
}
printf(")\n");
}
int Place(int j) {
/* 检查当前列能否放置皇后,不能放返回0,能放返回1 */
int i;
for (i=1;i< j;i++){
if( (1:queen[i]==queen[j]) ) ‖ abs(queen[i]-queen[j]) == (j-i)) {
return 0;
}
}
return (2:1) ;
}
void Nqueen(int j) {
int i;
for (i=1;i<=n;i++) {
queen[j] = i;
if( (3:Place(j)->Place(j)&&j<=n) ) {
if(j == n) {
/* 如果所有皇后都摆放好,则输出当前摆放方案 */
Show();
} else {
/* 否则继续摆放下一个皇后 */
(4:Nqueen(++j)) ;
}
}
}
}
int main() {
Nqueen (1) ;
return 0;
}
|
-
19下背包问题
1
2
3
4
5
6
|
1:c[i][j]
2:i>0&&j>=w[i]
3:Calculate_Max_Value(v,w,i-1,j-w[i])+w[i]
4:c[i][j]=temp
动态规划,自顶向下
40
|
-
18下
1
2
3
4
5
6
7
8
9
10
11
|
ACGCAACAGU
-CGCAACAG-
ACGC-ACAGU
------------
1:max=C[i][j-1
]
2:t=i
3:isMatch(B[t],B[j])
4:C[1][n]
动态规划,O(N^3)
2
|
1
2
3
4
5
|
1:i<=n
2:i<=j
3:(temp>=(r[j-i]+p[i]))?temp:(r[j-i]+p[i])
4:r[j]=temp
动态规划,O(N^N)->O(2^N),O(N^2)
|
JAVA
1
2
3
4
5
|
1:public abstract void draw()
2:Piece
3:Piece
4:piece.draw()
5:piece.draw()
|
(1):void buy(double money ,WebService service)
(2):WebServiceMediator
(3):abstract void buyService(double money)
(4):this.mediator.buy(money,this) ->mediator.buy(money,this)
(5):this.mediator.buy(money,this) ->mediator.buy(money,this)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
import java.util.*;
interface BrakeBehavior {
public (1:void stop());
/* 其余代码省略 */
};
class LongWheelBrake implements BrakeBehavior {
public void stop()
{
System.out.println( "模拟长轮胎刹车痕迹! " );
}
/* 其余代码省略 */
};
class ShortWheelBrake implements BrakeBehavior {
public void stop()
{
System.out.println( "模拟短轮胎刹车痕迹! " );
}
/* 其余代码省略 */
};
abstract class Car {
protected (2:BrakeBehavior) wheel;
public void brake()
{
(3:wheel.stop());
}
/* 其余代码省略 */
} ;
class ShortWheelCar extends Car {
public ShortWheelCar( BrakeBehavior behavior )
{
(4:wheel=behavior);
}
/* 其余代码省略 */
};
class StrategyTest {
public static void main( String[] args )
{
BrakeBehavior brake = new ShortWheelBrake();
ShortWheelCar car1 = new ShortWheelCar( brake );
car1.(5:brake());
}
}
|
1
2
3
4
5
|
1:void update()
2:Observer
3:obs.update()
4:Subject
5:Attach(this)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
1:double travel(int miles ,FrequentFlyer context)->abstract double travel(int miles ,FrequentFlyer context)
2:context.setState(new CSilver())
3:context.setState(new CGold())
4:context.setState(new CSilver())
5:context.setState(new CBasic())
---------------------------------------
abstract class CState{
public int flyMiles;
//抽象类的抽象方法不用函数体
public abstract double travel();
}
class CGold extends CState{
public double travel(){
System.out.println("traveling");
return 0.0;
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
1:Product getResult()
2:void buildPartA()
3:product.setPartA
4:product.setPartB
5:builder.getResult()
-------------------------
//接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
//接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字。
//接口中的方法都是公有的。
接口的继承,接口允许多继承!!
public interface Hockey extends Sports, Event
public interface Sports
{
public void setHomeTeam(String name);
public void setVisitingTeam(String name);
}
public interface Event{
......
}
|
https://wangxiao.xisaiwang.com/tiku2/exam506986474.html
https://blog.csdn.net/WHT869706733/article/details/124136146
https://blog.csdn.net/qq_41471057/article/details/109388180