设计模式期末考试题(C# 设计模式习题)

本文目录
C# 设计模式习题
public class FavorChangedEventArgs
{
public FavorChangedEventArgs(int favor)
{
Favor = favor;
}
public int Favor
{
get;
private set;
}
}
public delegate void FavorChangedEventHandler(object sender, FavorChangedEventArgs e);
public interface IPet
{
event FavorChangedEventHandler FavorChanged;
string Name
{
get;
}
int Favor
{
get;
}
void Feed();
void Play();
void Scold();
void Whip();
}
public interface IOperator
{
int Feed();
int Play();
int Scold();
int Whip();
}
public abstract class Pet : IPet
{
private const int DefaultFavor = 50;
public event FavorChangedEventHandler FavorChanged;
private int _favor = DefaultFavor;
private IOperator _oper;
public Pet(string name, IOperator oper)
{
if (name == null)
throw new ArgumentNullException("name");
if (name == string.Empty)
throw new ArgumentException("name");
if (oper == null)
throw new ArgumentNullException("oper");
Name = name;
_oper = oper;
}
public string Name
{
get;
private set;
}
public int Favor
{
get { return _favor; }
}
public void Feed()
{
AddFavor(_oper.Feed());
}
public void Play()
{
AddFavor(_oper.Play());
}
public void Scold()
{
AddFavor(_oper.Scold());
}
public void Whip()
{
AddFavor(_oper.Whip());
}
protected void AddFavor(int value)
{
var oldFavor = _favor;
_favor = Math.Max(0, _favor + value);
if (oldFavor 《 100 && _favor 》= 100)
DispatchFavorChanged();
else if (oldFavor 《 90 && _favor 》= 90)
DispatchFavorChanged();
else if (oldFavor 《 70 && _favor 》= 70)
DispatchFavorChanged();
else if (oldFavor 》 0 && _favor 《= 0)
DispatchFavorChanged();
else if (oldFavor 》 10 && _favor 《= 10)
DispatchFavorChanged();
else if (oldFavor 》 30 && _favor 《= 30)
DispatchFavorChanged();
}
private void DispatchFavorChanged()
{
var e = new FavorChangedEventArgs(_favor);
RaiseFavorChangedEvent(e);
}
private void RaiseFavorChangedEvent(FavorChangedEventArgs e)
{
if (FavorChanged != null)
FavorChanged(this, e);
}
}
public class Dog : Pet
{
public Dog(string name, IOperator oper)
: base(name, oper)
{ }
}
public class Cat : Pet
{
public Cat(string name, IOperator oper)
: base(name, oper)
{ }
}
public static class PetFactory
{
public static IPet Create(string type, string name, IOperator oper)
{
switch (type)
{
case "dog":
return new Dog(name, oper);
case "cat":
return new Cat(name, oper);
default:
throw new InvalidOperationException("Unknown type");
}
}
}
软件设计师下午题得题型有什么
下午考实践题。一般的题型是:
数据库题。主要涉及e-r图,实体,关系等。主要考察对e-r图的理解,和如何设计表结构。
设计模式题:主要涉及uml,重点是用例图、类图、状态图、时序图。但是也不好说。主要是对项目的分析。
算法题:c语言体型。主要涉及算法复杂度、补充程序和明白是什么算法。
编程题:主要是考察面向对象。要求是c++或java任选其一。感觉这个题,只要有面向对象的基础,都能做出来
卷子是6道题,但是最后的编程题是2选1(c++或java)。所以是5道
具体你可以去希赛网看看。
《数据库系统概论》第四版 期末考试题
一、单项选择题(本大题共10小题,共30分)
1.数据库中,数据的物理独立性是指( )。
A.数据库与数据库管理系统的相互独立
B.用户程序与DBMS的相互独立
C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的
D.应用程序与数据库中的数据的逻辑结构相互独立
2. 从E-R模型关系向关系转换时,一个M:N联系转换为关系模式时,该关系模式的关键字是
A.M端实体的关键字 B.N端实体的关键字 ( )
C.M端实体关键字与N端实体关键字组合 D.重新选取其他属性
3.保护数据库,防止未经授权的或不合法的使用造成的资料泄漏、更改破坏。这是指数据的( )
A.安全性 B.完整性 C.并发控制 D.恢复
4. 关系模式中的各级模式之间的关系为( )。
A.3NF 2NF 1NF B.3NF 1NF 2NF
C.1NF 2NF 3NF D.2NF 1NF 3NF
5. 五种基本关系代数运算是 ( )
A.∪,-,×,π和σ B.∪,-,∞,π和σ
C.∪,∩,×,π和σ D.∪,∩,∞,π和σ
6. 在数据库设计中,将ER图转换成关系数据模型的过程属于 ( )
A.需求分析阶段 B.逻辑设计阶段 C.概念设计阶段 D.物理设计阶段
7. SQL中,下列涉及空值的操作,不正确的是 ( )
A. AGE IS NULL B. AGE IS NOT NULL C. AGE = NULL D. NOT (AGE IS NULL)
8.关系数据库规范化是为解决关系数据库中( )问题而引入的。
A.插入、删除和数据冗余 B.提高查询速度
C.减少数据操作的复杂性 D.保证数据的安全性和完整性
9.下图所示的E-R图转换成关系模型,可以转换为( )关系模式。
A.1个 B.2个 C.3个 D.4个
n m
10. 如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作( )不能执行。
职工表 部门表
A.从职工表中删除行(‘025’,‘王芳’,‘03’,720)
B.将行(‘005’,‘乔兴’,‘04’,750)插入到职工表中
C.将职工号为‘001’工资改为700
D.将职工号为‘038’部门号改为‘03’
二、填空题(本大题共5小题,每空1分,共10分)
1.对于非规范化的模式,结过使属性域变为简单域转变为1NF,将1NF经过消除非主属性对码的_______________转变为2NF,将2NF经过消除非主属性对码的_______________转变为3NF。
2.在关系A(S,SN,D)和B(D,CN,NM)中,A的主键是S,B的主键是D,则D在S中称为___________。
3.数据模型由_________________、_________________和_________________三部分组成的。
4.数据库体系结构按照_______________、_______________和_______________三层结构进行组织。
5.E-R图向关系模型转化要解决的问题是如何将实体和实体之间的联系转换成关系模式,如何确定这些关系模式的_________________。
三、计算题(本大题共5小题,每小题2分,共10分)
设有如下图所示的关系R,S和T,计算:
⑴ R1=R∪S R S T
⑵ R2=R-S
⑶ R3=R T
⑷ R4=R T
(5) R5=
四、设计题(本大题共5小题,每小题4分,共20分)
设教学数据库中有三个基本表:
学生表S(SNO,SNAME,SEX,AGE,DEPT)
课程表C(CNO,CNAME,TEACHER)
学生选课表SC(SNO,CNO,GRADE)
其中:SNO为学号,SNAME为姓名,SEX为性别,AGE为年龄,DEPT为系别,CNO为课程CNAME为课程名,TEACHER 任课老师,GRADE为成绩。
试写出下列操作的SQL语句:
1检索学生姓名及其所选修课程号和成绩。
2 检索选修课程“C2”的学生中的最高成绩。
3检索所有比“王华”年龄大的学生姓名、年龄和性别。
4 检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
5 把Wu老师的女同学选课成绩增加5%
五、综合题(本大题共2小题,每小题15分,共30分)
1.假设某商业集团数据库中有一关系模式R如下:R (商店编号,商品编号,数量,部门编号,负责人)
如果规定:
(1) 每个商店的每种商品只在一个部门销售;
(2) 每个商店的每个部门只有一个负责人;
(3) 每个商店的每种商品只有一个库存数量。
试回答下列问题:
(1) 根据上述规定,写出关系模式R的基本函数依赖;
(2) 找出关系模式R的候选码;
(3) 试问关系模式R最高已经达到第几范式?为什么?
(4) 如果R不属于3NF,请将R分解成3NF模式集。
2.假定一个部门的数据库包括以下的信息:
职工的信息:职工号、姓名、住址和所在部门。
部门的信息:部门所有职工、经理和销售的产品。
产品的信息:产品名、制造商、价格、型号及产品内部编号。
制造商的信息:制造商名称、地址、生产的产品名和价格。
完成如下设计:
(1)设计该计算机管理系统的E-R图;
(2)写出关系模式集,并用下划线和波浪线标识出每个模式的主码和外码。
(3)在上述数据库中,写出主码和外码的总数这两个数字。
笔试题面向对象
笔试题(面向对象)
现如今,我们最熟悉的就是试题了,试题是命题者根据一定的考核需要编写出来的。你所了解的试题是什么样的呢?下面是我为大家收集的笔试题(面向对象),仅供参考,希望能够帮助到大家。
笔试题(面向对象)1
操作系统
1请解释下列10个shell命令的用途
top、ps、mv、find、df、ca
;
本文相关文章:
效果图设计师(29岁了,没家庭还合适做3dmax效果图设计师吗)
2026年5月16日 05:32
php网站毕业设计题目(毕业设计用PHP做网站,做什么课题的比较好,推荐几个课题,非常感谢)
2026年5月16日 01:10
首页设计方案中卡片式设计的优点(UI设计中卡片的使用场景设计)
2026年5月15日 23:01
更多文章:
安卓app应用市场有哪些?开发的软件如何在安卓市场上架(上架安卓应用市场需要什么)
2026年4月13日 21:06
建筑网站设计公司推荐(建筑设计师交流网站都有哪些推荐有知道的吗)
2026年5月9日 07:08
如何为小型企业选择合适的网站建设类型:网站建设常识有哪些类型
2026年5月29日 20:57
office做网站的软件(office软件什么是设计网页的)
2026年5月6日 18:15
软件开发公司组织架构(好程序员Python技术之五分钟了解Django框架设计)
2026年5月11日 12:06


















