设计两个类 Tdepartment TEmployee为TEmployee 增加属性 AGE由生日 算年龄 怎么写写公有函数 SumSalary 计算部门员工工资总和,利用对象 不访问数据库 怎么写写方法IncSalary 给指定与员工增加指定工资 怎么写写方法 LoadEmployees 加载所有与昂公到Employees 属性 怎么写DELPHI 的对象操作不熟练 请高手帮忙可以不 技术问题!!
解决方案 »
- 怎样使用DBedit控件向数据库插入数据?
- hys_427在不,好象分给错了,你进来一下,给你分```````````
- 如何读取xml的内容
- 如何获得最终的下载地址~着急,在线等待
- 初学,请大家帮忙。
- 如何使TDBCheckBox连接Access数据库的某表的一"是/否"字段,默认是“是”或“否”,不要让其默认为灰白状态?
- property Calculated: Boolean;??
- WEB数据库的问题?
- 请问誰有 INSTALLSHIELD 3.51 的序列号?
- 关于使用treeview 的一些问题
- 求助:delphi 7开发的程序,在英文服务器上运行不正常
- 为什么我的自定义组件(控件)用鼠标无法选中,只能在组件的边缘才能选中,附完整代码请高手们帮忙指点一下。
unit Unit2;interface
uses
Classes,SysUtils,DateUtils;
type
TDepartment =class //部门
private
FEmployeeList :TThreadLIst; //员工列表
public
function SumSalary:real; //工资总和
procedure LoadEmployees;
constructor Create;
destructor Destroy;override;
end; TEmployee =class //员工
private
FEmployeeID : string; //员工号
FEmployeeName : string; //员工名称
FBirthday : TDatetime; //生日
FPay : Real; //工资
function GetAge:integer;
public procedure IncSalary(Value :real); //增加工资
published
property EmployeeID : string read FEmployeeID write FEmployeeID; // 员工号属性
property EmployeeName : string read FEmployeeName write FEmployeeName; //员工姓名属性
property Birthday: TDatetime read FBirthday write FBirthday; // 生日属性
property Pay :real read FPay write FPay stored true; //工资属性
property Age : integer Read GetAge; //年龄属性
end;
implementation
constructor TDepartment.Create; //创建部门 资源
begin
FEmployeeList := TThreadList.Create;
inherited Create;
end;destructor TDepartment.Destroy; //释放部门资源
var
i:integer;
PerEmployee:TEmployee;
begin
try
with FEmployeeList.LockList do
begin
for i := count -1 downto 0 do
begin
PerEmployee := items[i];
PerEmployee.Free;
delete(i);
end;
end;
finally
FEmployeeList.UnlockList;
end;
end;function TDepartment.SumSalary:real; //计算工资总和
var
i:integer;
tmp:real;
PerEmployee:TEmployee;
begin
tmp:=0;
try
with FEmployeeList.LockList do
begin
for i :=0 to count -1 do
begin
PerEmployee := items[i];
tmp := tmp + PerEmployee.Pay;
end;
end;
finally
FEmployeeList.UnlockList;
end;
SumSalary:= tmp;
end;procedure TDepartment.LoadEmployees; //加载员工,可以根据数据库做查询加载
var
PerEmployee:TEmployee;
i:integer;
begin
begin
for i:=0 to 100 do
begin
PerEmployee:=TEmployee.Create ;
PerEmployee.EmployeeID := inttostr(i);
PerEmployee.EmployeeName := '姓名'+ inttostr(i);
PerEmployee.Birthday := now ;
PerEmployee.Pay := 10000;
try
FEmployeeList.LockList.Add(PerEmployee);
finally
FEmployeeList.UnlockList;
end;
end;
end;
end;function TEmployee.GetAge:integer; //获取年龄
begin
GetAge := YearsBetween(now, FBirthday);
end;procedure TEmployee.IncSalary(Value :real); //增加工资
begin
Pay := Pay + Value;
//或者 FPay := FPay + Value; 也行;
end;end.