针对应用技术科目(下午题),以下按题型列出高频考点,每条都标注了常考的具体形式和答题要点,方便直接背诵熟悉。
一、数据流图(DFD)—— 15分必拿题
1. 四大元素识别
- 外部实体:题干中的“用户”“管理员”“客户”“银行系统”等角色词,是系统边界之外的人或系统。
- 数据存储:题干中的“XX文件”“XX表”“XX库”“XX清单”等,命名以名词加“表/文件”后缀。
- 加工:用“动词+名词”命名(如“检查成绩表”“审定合格者”),不能只有输入没有输出。
- 数据流:用名词短语命名(如“工资数据”),不能用加工名(如“计算工资”)来命名数据流。
2. 数据平衡三原则(必考判断)
- 父图与子图平衡:子图的输入输出必须与父图中对应加工的输入输出完全一致。子图多出来的数据流,说明父图缺了。
- 加工自身平衡:每个加工必须有输入有输出。只有入没有出是“数据黑洞”,只有出没有入是“数据奇迹”。
- 顶层图与0层图平衡:顶层图的输入输出数量,0层图必须一一对应。
3. 补充数据流的步骤
- 先对比顶层图和0层图,圈出不匹配的地方。
- 再逐句阅读题干说明,标注实体和数据流去向。
- 检查加工与存储的交互:读数据时从存储出线,写数据时向存储入线。
4. 三条铁律(绝对违规)
- 数据存储之间不能直连,必须经过加工。
- 外部实体之间不能直连,必须经过加工。
- 加工不能只有入或只有出。
二、数据库设计 —— 15分必拿题
1. E-R图补全
- 联系类型判断:根据题干描述判断是1:1、1:n还是m:n。注意“一位客户可以预订多个客房,一间客房在不同时间也可被多人预订”→ 客户与客房之间是多对多。
- 联系属性补充:如果联系本身有属性(如“订单”有“订单内容”“日期”),要标在联系上。
2. E-R图转关系模式(必考规则)
- 1:1:将一方主键放入另一方作外键,或单独建表。
- 1:n:n端的主键放入1端作外键,或单独建表。
- m:n:必须单独建一张关系表,主键为双方主键的组合,联系自身的属性也放入该表。
3. 关系模式填空(主键/外键判定)
- 找主键:从题干描述中找“唯一标识”的属性(如“员工号”“客房号”“身份证号”)。
- 找外键:如果关系A中记录了关系B的主键,该属性就是外键。
- 常考填空:(a)处填“供货商编号”或“团购点编号”等外键,(b)处填“客户电话”等参与联系的主键。
4. 范式判断(送分题)
- 1NF:属性不可再分。
- 2NF:消除非主属性对码的部分函数依赖。
- 3NF:消除非主属性对码的传递函数依赖。
三、UML建模 —— 15分必拿题
1. 类图(重中之重)
- 关系判定:
- 泛化(继承):空心三角实线,表示“is-a”,如 Customer 继承 Person。
- 聚合:空心菱形,表示“has-a”但整体与部分可分离。
- 组合:实心菱形,表示“has-a”且部分随整体销毁。
- 依赖:虚线箭头,一个类的变化影响另一个类。
- 多重度标注:1对1填“1”,1对多填“1..”或“0..”。注意“0”表示可以没有(如刚开业时没有订单)。
2. 用例图
- 包含(include):基础用例一定会执行被包含用例。
- 扩展(extend):基础用例可能执行扩展用例(有条件)。
- 泛化:参与者之间或用例之间的继承关系。
3. 时序图
- 关注对象之间的消息传递顺序,补全缺失的消息名称或对象生命线。
- 消息按时间顺序从上到下排列。
四、C语言算法设计 —— 15分必拿题
1. 四大算法策略识别(看题干)
- 分治法:将问题分解为子问题,递归求解后合并(如二分查找、归并排序)。
- 动态规划:题干中出现递归式(状态转移方程),用查表方式避免重复计算,通常自底向上。
- 贪心法:每一步都选当前最优,不考虑全局,通常用于背包问题、活动安排。
- 回溯法:递归+剪枝,常用于排列组合、八皇后、任务分配。代码中有“试错→递归→撤销”的模式。
2. 代码填空技巧
- 第一个空通常是递归出口或初始化条件(如
k == N、m < k)。 - 循环边界:观察递归式中的参数范围,通常与子问题规模相关。
- 递归调用:填
k+1或k-1等推进参数。 - 回溯操作:通常是将标志位恢复(如
worker[i] = 0、task[k] = 0)。 - 注意:比较时不要漏掉等号(
>=不能写成>),==不能写成=。
3. 常考算法类型
- 二分查找、快速排序、归并排序
- 最长公共子序列、背包问题、最短路径(Dijkstra/Floyd)
- 分治法日程安排(递归填充矩阵)
五、设计模式选答题(C++/Java)—— 15分选做
1. 高频模式(背5-6种即可)
- 创建型:单例(私有构造+静态实例)、工厂方法(延迟到子类创建)。
- 结构型:适配器(转换接口)、装饰器(动态加职责)。
- 行为型:观察者(注册+通知)、策略(封装可互换算法)、模板方法(父类定骨架,子类实现步骤)。
2. 代码填空技巧(不要通读全部代码)
- 看类名和方法名判断模式:类名含“Singleton”→找私有构造;含“Observer”→找
register和notify。 - 关注抽象类/接口的定义,填空通常涉及子类对父类方法的具体实现。
- 策略模式填空:通常是具体策略类的方法实现,以及上下文类中持有策略对象的成员变量。
3. 答题策略
- 选择自己最擅长的语言(Java或C++),考前集中练习真题的代码填空。
- 设计模式题能拿一半分就足以通过考试。