1、Windows XP 开发工具:Delphi 8 数据库管理系统:dbase IV 运行环境:Windows 98/ME/2000/XP7.3.4 系统实现过程分析 首先根据系统功能分析设计出数据库,包括各个数据表和数据表关系图的详细结构。 实现功能模块时,采用先模块化,后集成的方式。即对系统各个功能模块分别独立设计和调试,在创建系统主窗体时再将各个功能模块通过主窗体的菜单系统集成到一起,最后进行系统整体设计调试。 在访问数据库时,采用公用数据模块存放访问数据库需要的对象。该模块在各个功能模块中被直接调用,避免对数据库的反复连接,并可减少代码编写,从而提高系统开发效率。7.4 系统设计7.4.
2、1 系统模块设计 根据系统功能分析得到如图7-2所示的系统功能模块结构图。图7-2 系统功能模块结构图7.4.2 数据库设计 对于信息管理系统,数据基本上都是使用数据库进行管理。数据库设计是对保存管理系统数据的数据库结构进行设计,对整个系统的开发具有非常重要的作用。1. 数据字典 根据系统功能模块结构图以及典型高校工资管理系统的需求,分析得到如下数据字典:系统用户数据:包含的数据项有系统用户名、登录口令和用户级别代码。员工基本信息数据:包含的数据项有编号、姓名、性别、部门、职称、职务、入部门时间、是否专家、是否有住房、是否有独生未成年子女等。职称工资标准数据:包含的数据项有高级、副高、中级、初
3、级、工人等。职务工资标准数据:包含的数据项有正处、副处、正科、副科等。其它工资标准数据:包含的数据项有独补、专家津贴、房贴、一次性补发、其它补贴、扣房租、扣公积金、扣失业险、扣医疗险、扣垃圾费、扣其它等。工资表数据:包含的数据项有工资编号、员工编号、工资代码、工资名称、工资金额等。工资代码数据:包含的数据项有工资代码、工资名称、工资金额等。部门代码数据:包含的数据项有部门代码、部门名称。2. 数据库结构设计 根据系统需求,分析出实体关系图,如图7-3所示。图7-3 实体关系图 根据实体关系图和数据字典,设计出工资管理系统数据库中的各个数据表。根据系统用户使用要求得到系统用户数据表,根据工资、员
4、工、部门实体得到员工信息数据表、部门代码数据表、工资结算数据表,根据工资实体属性设计得到职称工资标准数据表、职务工资标准数据表、其它工资标准数据表。数据表名称与结构如下: 系统用户数据表:用于保存系统用户的账户信息,数据表命名为“user”,结构见表7-1。表7-1 “user”表结构列名数据类型长度索引说明YhmCharacter10是用户名Mm否密码QxNumber3权限 员工基本信息数据表:用于保存员工与工资管理有关的信息数据,数据表命名为“ygb”,结构见表7-2。表7-2 “ygb”表结构Bh编号Xm姓名Bmdm部门代码Zwdm职务代码Zcdm职称代码GzrqDate工作日期Bz10
5、0备注 职务工资标准数据表:用于保存各种职务对应的工资标准数据,数据表命名为“zwdm”,结构见表7-3。表7-3 “zwdm”表结构Zwmc职务名称Zwgz10.2职务工资 职称工资标准数据表:用于保存各种职称对应的工资标准数据,数据表命名为“zcdm”,结构见表7-4。表7-4 “zcdm”表结构Zcmc职称名称Zcgz职称工资 其它工资标准数据表:用于保存各种其它工资标准数据,数据表命名为“gzdm”,结构见表7-5。表7-5 “gzdm”表结构Gzdm工资代码Gzmc工资名称Gzje工资金额 工资结算数据表:用于保存工资结算数据,数据表命名为“gzb”,结构见表7-6。表7-6 “gz
6、b”表结构Gzbh6工资编号Ygbh员工编号 部门代码数据表:用于保存各个部门数据,数据表命名为“bmdm”,结构见表7-7。表7-7 “bmdm”表结构Bmmc部门名称7.5 系统实现7.5.1 建立数据库 本例数据库使用dbase IV。建立各数据表的有关内容请参阅相关书籍。7.5.2 程序设计1. 主窗体设计 在Delphi中,新建一个“VCL Forms Application”,将工程文件保存为“P7_1.bdsproj”。主窗体保存为main.pas,界面设计如图7-4所示(左),包含一个MainMenu组件,菜单设计见图7-4(右)。 图7-4 主窗体设计界面与主窗体菜单设计 窗
7、体组件属性设置见表7-8。表7-8 主窗体组件属性设置组件属性值Form1Name=Main_Form FormStyle=fsMDIForm Caption=新生报名管理系统MainMenu1 主窗体中定义两个全局变量yhm、qx,用于保存登录的用户名和权限代码,便于其它窗体使用。2. 用户登录窗体设计 在启动工资管理系统之前,显示登录对话框,要求用户输入用户名和密码,只有经过系统管理员授权的用户才能使用系统。 用户登录窗体保存为login.pas,界面设计如图7-5所示,包含两个LabeledEdit组件和两个Button组件。图7-5 用户登录窗体设计 窗体主要组件属性设置见表7-9。表
8、7-9 用户登录窗体主要组件属性Form2BorderStyle=bsSingle BorderIcons=biSystemMenuName=Login_Form Caption=用户登录窗口LabeledEdit1EditLabel.Caption=用户名 Name=yhm_LEditLabeledEdit2密码 PasswordChar=* Name=mm_LEditButton1Caption=确定Button2取消 用户登录窗体代码如下: public loginok:boolean; /定义公用变量,标识登录成功与否/ 确定按钮单击事件procedure Tlogin_Form.Bu
9、tton1Click(Sender: TObject);var yhm,mm,sqlstr:string;begin yhm:=Trim(yhm_LEdit.Text); mm:=Trim(mm_LEdit.Text); sqlstr:=select * from user where (yhm=+yhm+) and (mm=+mm+); if (Length(yhm)0) or (Length(mm)0) then begin with TQuery.Create(nil) do try Close; SQL.Clear; SQL.Add(sqlstr); Open; / 验证用户合法性 i
10、f RecordCount 0 then MainForm.yhm:=FieldByName(yhm).AsString; MainForm.qx:qx=True; end else=False; ShowMessage(请确认登录的用户名和密码是否正确!); yhm_LEdit.SelectAll; end; finally Free;请输入登录用户名和密码!end;3. 用户管理窗体设计 用户管理包括用户数据(包括编号、密码和权限)的添加、删除和浏览等操作。高级管理员可以管理系统中所以的用户数据,而普通用户则只能修改自己的密码。 用户管理窗体保存为usergl.pas,界面设计如图7-6所
11、示,包含一个GroupBox组件、两个LabeledEdit组件、一个Label组件、一个ComboBox组件、三个Button组件、一个PopupMenu组件、一个Query组件、一个DataSource组件和一个DBGrid组件。图7-6 用户管理窗体设计 窗体主要组件属性设置见表7-10。表7-10 用户管理窗体主要组件属性Form3FormStyle=fsMDIChild BorderStyle=bsSingle BorderIcons=biSystemMenuName=usergl_Form Caption=用户管理GroupBox1 Align=alRightLabeledEdit
12、1(GroupBox1)系统用户名LabeledEdit2(GroupBox1)登录密码Label1系统权限ComboBox1(GroupBox1)Name=qx_CBox Items=系统用户 普通用户Button1(GroupBox1)Name=cmdmodi Caption=修改Button2(GroupBox1)Name=cmdadd Caption=添加Button3(GroupBox1)Name=cmddel Caption=删除Query1DataSource1DataSet=Query1DBGrid1DataSource=DataSource1 Align=alClient 用
13、户管理窗体主要代码如下:type procedure newll; / 自定义过程实现数据刷新 add:uses main;procedure Tusergl_Form.newll; / 查询用户表 Query1.Close; Query1.SQL.Clear; Query1.SQL.Add(select * from user Query1.Open; / 根据用户存在与否,设置按钮的可用性 if Query1.RecordCount0 then cmdmodi.Enabled: cmddel.Enabled: cmdadd.Enabled:procedure Tusergl_Form.Fo
14、rmShow(Sender: newll;procedure Tusergl_Form.FormClose(Sender: TObject; var Action: TCloseAction); Action:=caFree; MainForm.N11.Enabled:procedure Tusergl_Form.FormCreate(Sender:/ 实现数据与文本框的绑定procedure Tusergl_Form.DBGrid1CellClick(Column: TColumn); yhm_LEdit.Text:=Query1.FieldByName( mm_LEdit.Text:mm
15、qx_CBox.ItemIndex:).AsInteger;/ 实现用户修改功能procedure Tusergl_Form.cmdmodiClick(Sender: id,yhm,qx,mm,sqlstr: / 数据合法性检查 if Length(yhm)1 then系统用户名不能为空 exit; if Length(mm)系统用户的密码不能为空 qx:=IntToStr(qx_CBox.ItemIndex); id:id / 执行检验用户名是否有重复的SQL语句) and (id+id+修改的系统用户名有重复,请重新输入! / 执行修改系统用户信息的SQL语句update user set
16、 yhm=,mm=+mm;=sqlstr+,qx=+qx+ where (id= ExecSQL;成功修改系统用户!/ 实现用户添加功能procedure Tusergl_Form.cmdaddClick(Sender: / 判断是否处于添加状态 if add then / 判断添加的用户名是否有重复添加的系统用户名有重复,请重新输入! /用户名无重复,添加用户记录insert into user (yhm,mm,qx) values (,成功添加系统用户! cmdadd.Caption:保存 yhm_LEdit.Clear; mm_LEdit.Clear;=0;/ 实现系统用户删除功能pro
17、cedure Tusergl_Form.cmddelClick(Sender:var id: if MessageDlg(确认要删除选中的系统用户吗?,mtConfirmation, mbYes, mbNo, 0) = mrYes then SQL.Add(delete from user where id=成功删除系统用户 except4. 修改密码窗体设计 用户登录后可以自己修改密码,这样既能保证系统的安全性,同时又减少了系统管理员的工作量。 修改密码窗体保存为password.pas,界面设计如图7-7所示,包含三个Label组件、三个Edit组件和两个Button组件。图7-7 修改密码窗体设计 窗体主要组件属性设置见表7-11
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1