本公司在上海金辰大厦12楼1204。前一阵大富翁站总是无法打开,所以一直到现在回复。
为了合理取用人材,现定下二个问题测试各位。择优录取专职或兼职程序员。
问题1:构建对象
情况介绍:要求编写一个模拟的工程项目的管理系统中用到的几个类。在此工程项目管理中采用了关系数据库来保存数据,而用面向对象的方法来设计的。因此用到了基于关系数据库数据的类的概念,使系统可以用面向对象软件工程方法来设计、分析及重用。
1. 有项目表,这是一个用Access建立的表(自己可以按下列说明建立一个)。
Project
索引 ID Int 项目索引,节点号
父节点 ParentID Int 项目的上级节点
项目名称 Name Str 255
标题类别 NameClass Int 针对枚举索引,详见后
项目类别 ProjectClass int 针对枚举索引,详见后
标注1 Lable1 Str 255
标注2 Lable2 Str 255
备注1 Memo1 Meno
建立时间 Found DateTime 项目加入的时间,自动记录时间
标题类别为枚举中的{组名,建设项目名,单项工程名,建设项目中的子组名}
项目类别为枚举中的{未知,类别1,类别2,类别3,类别4,其他}
本表采用的是树形数据表,设有Root,下有各树枝。
例如:
Root---组名----建设项目名1-----单项工程名
|---建设项目名2-----单项工程名1
|----单项工程名2
|----单项工程名3
|---建设项目名3----子组名1----单项工程名
|---单项工程名
|---单项工程名
|---单项工程名
|---子组名2----单项工程名
|---子组名3----单项工程名
特点为,根下有组,组下有建设项目,建设项目下可以有子组,也可以没有,建设项目下可以有1个单项工程或几个单项工程,不可以没有单项工程,子组下可以有1个单项工程或几个单项工程,不可以没有单项工程。
项目凭ParentID找到上一级,或检索库中ParentID为本节点ID值时找到下一级。
对象的继承关系如下:
项目
|
-------------------------------------
| | | |
建设项目组 建设项目 项目子组 单项工程
|
-------------------------
| | |
类别1项目 类别2项目 类别3项目
要求
1. 编写上述基于关系数据库的类。
2. 各类要有方法,Build(读取表,建立对象),Modi(更改标注及备注及项目类别),Dele(删除项目),Refresh(读取表,更新对象),建设项目对象能得到所属的单项工程对象或单项工程对象集,单项工程对象能找到所属的建设项目对象等必要的方法。
3. 建议在类中使用一DataSource属性,指向数据表。其他各属性则通过它读取数据。需要构建一个读写数据库数据字段的接口。
4. 要求有详细编程说明。
问题2:数据库操作
情况介绍:因为Access没有日志功能,因此,无法对数据库的操作进行记录。现要做一个具有对Access数据库的操作进行记录的数据表类,并且此类可以作为应用中的集合对象。具有集合对象的一些方法。
有两张Access表
1.操作人员表中有字段,
Operater
索引 ID Int
姓名 Name Str 63
口令 Password Str 15
部门 Department Str 255
分部门 SubDepartment Str 255
登记日 Regist DateTime
最后使用日 LastUse DateTime
标注 Label1 Str 255
备注 Memo1 Memo
2. 操作记录表中有字段,
OperateRecord
索引 ID Int
姓名 Operator Str 63
操作时间 OperatTime DateTime
?
?
?
?
标注 Label1 Str 255
备注 Memo1 Memo
要求
1.该类由一数据表部件派生,在OnChange,OnDelete等事件中加入相应的实现方法,记录操作,并有方法Undo,Redo,备份。且可以是一个可以安装到面板上的非可视部件,且对数据表的AddNew,Delete方法重定义。
2.对项目表的任何改进,全部要在操作记录中记录,要求能够对操作进行Undo与redo。在某一过去时刻备份的表的基础上通过操作记录表中的记录redo,能得到当前表。现时刻的表能Undo,得到过去某一时刻的表。这样要求能记录表中Old记录条,以便恢复。
3.操作人员类,操作记录类有相应的方法及事件处理。
4.要求有详细的设计说明,编程说明。
本次测试要求使用Delphi语言,在三周内完成。回复至e-mail:newnob@sina.com。