人事工资管理信息系统设计毕业设计论文.doc_第1页
人事工资管理信息系统设计毕业设计论文.doc_第2页
人事工资管理信息系统设计毕业设计论文.doc_第3页
人事工资管理信息系统设计毕业设计论文.doc_第4页
人事工资管理信息系统设计毕业设计论文.doc_第5页
已阅读5页,还剩128页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

delphi课程设计目 录第一章 系统需求分析3第一节 问题的提出3第二节 负责开发模块3第三节 系统功能分析3一、基本信息管理3二、考勤信息管理3三、奖惩信息管理4四、员工履历管理4五、职称信息管理4六、员工工资管理4七、系统功能模块4第四节 系统功能模块设计5第五节 系统的流程分析5第二章 数据库应用程序开发概述6第一节 创建数据库6第二节 逻辑数据库设计7第三节 数据表操作类的设计10第三章 人事工资管理信息系统的系统设计与实现14第一节 系统实现技术14一、选择borland delphi 7做为开发工具14二、选择microsoft server 2000作为服务器端数据库软件14第二节 系统运行软件环境15第三节 模块的设计与实现15一、创建启动画面15二、创建登录窗体16三、连接数据库设置19四、创建系统主界面21五、基本信息管理模块24六、考勤信息管理模块30七、奖惩信息管理模块35八、员工履历管理模块40九、职称信息管理模块45十、员工工资管理模块50十一、系统功能模块58第四章 结论63第一章 系统需求分析第一节 问题的提出随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事工资的管理势在必行。对于大中型企业来说,利用计算机支持企业高效率完成劳动人事管理的日常事务,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件;而工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事工资资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。 不同的企业具有不同的人事、工资管理制度,这就决定了不同的企业需要不同的人事工资管理系统。第二节 系统功能分析本系统主要包括员工基本信息管理、考勤信息管理、奖惩信息管理、员工履历管理、职称信息管理、员工工资管理等模块,另外还包括进行系统管理的一些辅助模块,其具体各模块功能如下:一、基本信息管理员工的基本信息包括员工的编号、员工姓名、员工所在部门、性别、毕业学校、专业、职称、政治面貌、工作时间和联系方式等。员工基本信息管理就是对这些基本信息进行维护和管理,主要实现的功能有: 1、员工基本信息录入2、员工基本信息修改和删除3、员工基本信息查询二、考勤信息管理员工的考勤信息包括员工出勤天数、迟到次数、早退次数、加班时间和出差天数等,这些信息将作为计算员工工资的部分依据。员工考勤信息管理主要包括以下功能: 1、考勤信息录入与维护 2、员工考勤信息查询三、奖惩信息管理员工奖惩信息主要记录对员工的奖励和惩罚信息,奖励和惩罚信息与奖金挂钩,以激励或约束员工。员工奖惩记录管理主要包括以下两项功能:1、奖惩信息录入与维护2、员工奖惩信息查询四、员工履历管理员工履历管理主要是记录员工的工作履历请况,根据工作履历情况可以记录员工的工龄信息,并且可以作为评定员工职称的依据。员工工作履及管理主要实现的功能有:1、履历信息与维护2、员工履历信息查询五、职称信息管理员工职称信息记录员工的职称评定信息,因为员工的职称高低与工资有直接的关系,所以员工职称信息记录的结果将直接影响员工的工资水平。职称评定管理的主要功能有:1、职称信息录入与维护2、员工职称信息查询六、员工工资管理工资管理是企业人事工资管理的一项重要内容,本系统中的其他管理内容都是与员工的工资管理相关联的,如考勤管理、奖惩记录管理、工作履历管理和职称评定管理,员工工资是根据这些管理记录的信息进行计算的。员工工资管理主要包括以下功能:1、 工资信息录入与维护,员工工资在录入时有些项目内容是固化在程序中的,有些是根据其他管理信息获取的,最后根据这些信息按照一定的方法算出员工工资2、 员工工资查询七、系统功能模块系统维护和账户管理是数据库应用程序必不可少的一块。只有安全性提到了一定的高度,数据库应用程序的其他功能模块的实现才有意义。1、 用户权限控制无疑是安全中最重要的环节;2、 其次简单实用的数据备份也是系统功能模块的重要组成部分。第三节 系统功能模块设计根据上节的描述,我们把该系统分成以下主要几个模块,系统功能模块图如下图1.1所示:一、 基本信息管理二、 考勤信息管理三、 奖惩信息管理四、 员工履历管理五、 职称信息管理六、 员工工资管理 人事工资管理信息系统员工基本信息录入员工基本信息维护员工基本信息查询考勤信息录入与维护员工考勤信息查询奖惩信息录入与维护员工奖惩信息查询履历信息录入与维护员工履历信息查询职称评定录入与维护职称评定信息查询工资信息录入与维护员工工资信息查询工资信息报表与打印用户帐号管理系统数据备份基本信息管理考勤信息管理奖惩记录管理员工履历管理职称信息管理工资信息管理系统管理 图1.1 系统功能模块图第四节 系统的流程分析 系统流程就是用户进入人事管理信息系统后的工作过程。由于本系统对不同的用户帐号设置了不同的操作权限,因此不同用户的操作流程有所不一样。本系统的操作流程主要分为用户登录操作和业务操作两部分。用户登录操作,用户登录操作主要是对用户的帐号(包括用户名和密码)进行身份验证。通过验证的进入系统操作界面,未通过的给出错误提示。业务操作根据帐号的权限允许或限制用户的行为。整个系统的流程如图1.2所示启动程序用户登录用户权限 员工基本信息查询 考勤信息查询 奖惩信息查询 履历信息查询 职称信息查询 工资信息查询 修改自己用户密码 进行所有信息的查询、保存和维护操作 管理所有用户帐号 系统数据备份 重新登入 验证失败 普通用户 系统管理员第二章 数据库应用程序开发概述第一节 创建数据库数据库既可以通过sql语句在查询分析器里创建,也可以在企业管理起的控制台中直接创建,这里主要介绍如何在企业管理器的控制台中创建数据库。本系统创建的数据库名为personnel_sys,单击开始/程序/microsoft sql server /企业管理器,为所使用电脑sql server进行注册,在控制台根目录下,右击数据库/新建数据库/常规:数据库名称设为 personnel_sys/在数据文件和事务日记 内设置相应的位置、初始大小、文件增长方式等属性。最后单击确定,即可完成数据库的创建工作。第二节 逻辑数据库设计 根据系统设计的要求对数据库进行逻辑结构设计,下面分别对这些表的结构进行具体介绍。1.员工基本信息表base_data,主要用来存放企业中每个员工的基本信息,结构如表1.1所示 表1.1 表base_data的结构编号字段名称数据类型说明1worker_idvarchar(15)员工编号,关键字 2archivers_idvarchar(10) 档案编号3worker_namevarchar(8)员工姓名4department_namevarchar(15)部门名称5sexvarchar(2 )性别6birthdaydatetime 出生日期7native_placevarchar(25)籍贯8school_agevarchar(4)学历9majorvarchar(15)专业10graduate_schvarchar(10)毕业学校11politic_statusvarchar(5)政治面貌12work_timedatetime 参加工作日期13come_timedatetime 入本单位日期14link_phonevarchar(14)联系电话15addressvarchar(21)住址16photoimage个人照片17remarkvarchar(255)备注 2.考勤信息记录表check_info,主要用来记录员工的考勤情况,通过对考勤情况的记录,就可以查看员工的工作表现,为后面的工资发放提供参考,具体结构如表1.2所示表1.2 表check_info的结构编号字段名称数据类型说明1worker_idvarchar(15)员工编号,关键字2worker_namevarchar(8)员工姓名3monthsvarchar(10)月份编号,关键字4month_daysint本月天数5holidaysint公休假天数6real_work_daysint应出勤天数7work_daysint出勤天数8business_daysint出差天数9absent_daysint缺勤天数10leave_timesint请假次数11late_timesint迟到次数12leave_early_timesint早退次数13holiday_overtimeint节假日加班时间14other_overtimeint其他加班时间15remarkvarchar(255)备注3.工资信息表wage_info,主要是记录员工每月所发放的工资信息情况,包括工资的各项内容及相应的数据,具体结构如表1.3所示 表1.3 表wage_info的就结构编号字段名称数据类型说明1record_idbigint记录编号,关键字2worker_idvarchar(15)员工编号3worker_namevarchar(8)员工姓名4base_wagefloat基本工资5allowance1float巩固补贴6allowance2float出差补贴7rewardfloat奖金8overtime_moneyfloat加班费9deduct_checkfloat扣考核10aged_moneyfloat养老保险11medical_moneyfloat医疗保险12compo_moneyfloat工伤保险13unemploy_moneyfloat失业保险14housing_moneyfloat住房公积金15income_taxfloat所得税16real_wagefloat实发工资17give_datevarchar(6)发放月份 4.奖惩记录表reward_pun,主要是用来记录员工的一些奖惩信息,该表的数据有时也与工资信息发生关联,具体结构如表1.4所示 表1.4 表reward_pun的结构编号字段名称数据类型说明1record_idbigint记录编号,关键字2worker_idvarchar(15)员工编号3worker_name varchar(8)员工姓名4record_date datetime 奖惩日期5record_typevarchar(2)奖惩类型6record_contentvarchar(30)奖惩内容7record_reasonvarchar(30)奖惩原因8allow_unitvarchar(20)批准单位9remarkvarchar(255)备注 5.职称评定信息表pro_title,主要是记录员工的职称级别信息,根据不同的级别就可以订出不同级别的工资水平,具体结构如表1.5所示 表1.5 表 pro_title的结构编号字段名称数据类型说明1worker_idvarchar(15)员工编号,关键字2worker_name varchar(8)员工姓名3assess_datedatetime评定日期4assess_unitvarchar(20)评定单位5assess_titlevarchar(8)评定职称6remarkvarchar(255)备注6.工作履历表work_age,反映企业员工的工作经历和工作时间,从工作履历表总可以看出员工的工龄情况,具体结构如表1.6所示表1.6 表work_age的结构编号字段名称数据类型说明1record_idbigint记录编号,关键字2worker_id varchar(15)员工编号3worker_name varchar(8)员工姓名4begin_datedatetime起始日期5over_datedatetime结束日期6unit_name varchar(20)单位名称7work_timefloat本单位工作时间8dutyvarchar(10)担任职务9level1varchar(4)级别10remarkvarchar(255)备注 7.用户帐号表user_table,主要是分配不同的用户帐号信息,对不同用户帐号赋予不同的权限,可以从一定程度上保障系统的安全。用户帐号表的具体结构如表1.7所示。表1.7 表user_table的结构编号字段名称数据类型说明1user_namevarchar(30)用户名,关键字2user_pwdvarchar(30)用户密码3power_levelvarchar(12)权限级别 第三节 数据表操作类的设计 在实例中,对数据库的连接和操作都被封装成类,类名以“t”开头,对每张数据表的操作都可以封装到对应类的方法和过程中,在使用类时要先实例化,使用完后要将实例释放,调用类中方法和过程时只需要向方法和过程传递参数就可以实现调用,下面类出类中方法和过程的名称 1.tbasedata类 tbasedata类主要封装了对base_data表的各种操作,类中定义的方法和过程如表1.9所示。表1.9 tbasedata类封装的方法和过程方法或过程名 具体说明 function checkrec(id:string):boolean;根据员工编号判断记录是否存在function getarcid(workid:string):string;根据员工编号返回员工的档案编号function getworkername(workid:string):string;根据员工编号返回员工名称function getdepartname(workid:string):string;根据员工编号返回员工所在部门名称function getsex(workid:string):string;根据员工编号赶回员工性别function getbirth(workid:string):string;根据员工编号赶回员工出生日期function getnativeplace(workid:string):string;根据员工编号赶回员工籍贯function getschage(workid:string):string;根据员工编号赶回员工学历function getmajor(workid:string):string;根据员工编号赶回员工所学专业function getgrasch(workid:string):string;根据员工编号赶回员工毕业学校function getpolista(workid:string):string;根据员工编号赶回员工政治面貌function getworktime(workid:string):string;根据员工编号赶回员工参加工作时间function getcometime(workid:string):string;根据员工编号赶回员工如本单位时间function getlinkphone(workid:string):string;根据员工编号赶回员工联系电话function getaddress(workid:string):string;根据员工编号赶回员工住址信息function getremark(workid:string):string;根据员工编号赶回员工备注信息function getphone(workid:string):tstream;根据员工编号赶回图片信息的数据流 function allrec(sql:string):olevariant通过传递sql语句返回查询记录procedure photoupdate(id:stirng;path1:string);修改指定员工编号的照片信息procedure workid(id:stirng;path1:string);根据员工编号和图片路径插入一条记录procedure recinsert(insertsql:stirng);通过传递sql语句执行插入操作过程procedure recupdate(updatesql:stirng);通过传递sql语句执行修改操作过程procedure recdel(id:stirng);通过传递sql语句执行删除操作过程procedure findrec(id:stirng);根据员工编号执行查询操作过程2.tworkage类tworkage类封装了对work_age表的各种操作,类中定义的方法和过程如表1.10所示表1.10 tworkage类封装的方法和过程方法或过程名 具体说明 function workagerec(id,workunit:string):boolean;根据员工编号和工作单位查询记录是否存在function workagerec1(findsql:string):boolean;通过传递sql语句查询记录是否存在function getrecid(reid:string):string;根据记录号返回记录号function getworkername(reid:string):string;根据记录号返回员工名称function getbegindate(reid:string):string;根据记录号返回起始日期function getoverdate(reid:string):string;根据记录号返回结束日期function getworktime(reid:string):string;根据记录号返回工作时间function getduty(reid:string):string;根据记录号返回员工担任的职务function getlevel1(reid:string):string;根据记录号返回员工级别function getremark(reid:string):string;根据记录号返回员工备注信息function getsumwortime(id:string):integer;根据记录号返回员工工龄function workagerecs(sql:string):olevariant;通过传递sql语句返回查询记录procedure recinsert(insertsql:string); 通过传递sql 语句执行插入操作procedure recupdate(updatesql:string); 通过传递sql语句执行修改操作procedure recdel(reid:string); 通过传递记录号执行删除操作3.twageinfo类twageinfo类封装了对wage_info表的各种操作,类中定义的方法和过程如表1.11所示。方法或过程名具体说明function wageinforec(id,givedata:string):boolean:根据员工编号和月份查询记录是否存在function wageinforec(findsql:string):boolean;通过传递sql语句查询记录是否已经存在function getrecid(id,givedata:sting):sting;根据员工编号和月份返回记录号function getworkname(id,givedata:sting):sting;根据员工编号和月份返回员工姓名function getbase wage(id,givedata:string):string;根据员工编号和月份返回基本工资信息function getallowance1(id,givedata:string):string;根据员工编号和月份返回公共补贴信息function getallowance2(id,givedata:string):string;根据员工编号和月份返回出差补贴信息function getreward(id,givedata:string):string;根据员工编号和月份返回奖金信息funcrion getovertimemoney(id,givedata:string):string;根据员工编号和月份返回加班费function getdeductcheck(id,givedata:string):string;根据员工编号和月份返回扣除的考核费用function getagedmoney(id,givedata:string):string;根据员工编号和月份返回养老保险费function getmedicalmomey(id,givedata:string):string;根据员工编号和月份返回医疗保险费function getcompomoney(id,givedata:string):string;根据员工编号和月份返回工伤保险费function getunemploymoney(id,givedata:string):string;根据员工编号和月份返回失保险费业function gethousemoney(id,givedata:string):string;根据员工编号和月份返回住房公积金function getincometax(id,givedata:string):string;根据员工编号和月份返回所得税function getrealwage(id,givedata:string):string;根据员工编号和月份返回实发工资procedure wagesrecs(sql:string):olevariant;通过传递sql语句返回工资信息记录procedure recinsert(insertsql:string);通过传递sql语句返回插入操作过程procedure recupdate(updatesql:string);通过传递sql语句返回修改操作过程procedure recdel(id,givedata:string);根据员工编号和月份执行删除操作表1.11 twageinfo类封装的方法和过程4.trewardpun类封装了对reward_pun表的各种操作,类中定义的方法和过程如表1.12所示。表1.12 trewardpun类封装的方法和过程方法或过程名具体说明function rewardpunrec(reid:string):boolean ;根据记录号查询记录是否存在function rewardpunrec1(sql:string):boolean ;通过传递sql语句查询记录是否存在function getrecid(reid:string):string;通过记录号返回记录号function getwokename(reid:string):string;通过记录号返回员工名称function getreccont(reid:string):string;通过记录号返回奖惩内容function getrecreason(reid:string):string;通过记录号返回奖惩原因function getallowunit(reid:string):string;通过记录号返回批准单位function getremark(reid:string):string;通过记录号返回备注信息function getrewardcount(month1,month2:string):integer;根据年份和月份返回奖励记录条数function getpuncount(month1,month2:string):integer;根据年份和月份返回惩罚记录条数function rewardpunrecs(sql:string):olevariant;通过传递sql语句返回记录查询procedure recinsert(insertsql:string);通过传递sql语句执行插入操作procedure recupdate(updatesql:string);通过传递sql语句执行修改操作procedure recdel(reid:string);根据记录号执行删除操作5、tprotitle类封装了对pro_title表的各种操作,类的定义的方法和过程如表1.13所示。表1.13 tprotitle类封装的方法和过程方法或过程名具体说明function protitlerec(id:string):boolean;根据员工编号查询职称记录是否存在function protitlerec1(findsql:string):boolean;通过查询sql语句查询记录是否存在function getworkername(id:string):string;根据员工编号返回员工姓名function getassessdate(id:string):string;根据员工编号返回评定日期function getassessunit(id:string):string;根据员工编号返回评定单位function getassesstitle(id:string):string;根据员工编号返回评定职称function getremark(id:string):string;根据员工编号返回备注信息function protitlerecs(sql:string):olevariant;通过传递sql语句返回查询记录procedure recinsert(insertsql:string);通过传递sql语句执行插入操作procedure recupdate(updatesql:string);通过传递sql语句执行修改操作procedure recdel(id:string);根据员工编号执行删除操作6、tcheckinfo类封装了对check_info表的各种操作,类中定义的方法和过程如表1.14所示 表1.14 tcheckinfo类封装的方法和过程方法或过程名具体说明function checkinforec(id,momth:string):boolean;根据员工编号和月份查询记录是否存在function getworkername(id,momth:string):string;根据员工编号和月份返回员工姓名function getmonthdays(id,momth:string):string;根据员工编号和月份返回当月天数function getholidays(id,momth:string):string;根据员工编号和月份返回公休假天数function getreworkdays(id,momth:string):string;根据员工编号和月份返回应出勤天数function getworkdays(id,momth:string):string;根据员工编号和月份返回出勤天数function getbusinessdays(id,momth:string):string;根据员工编号和月份返回出差天数function getabsentdays(id,momth:string):string;根据员工编号和月份返回缺勤天数function getleavetimes(id,momth:string):string;根据员工编号和月份返回请假次数function getlatetimes(id,momth:string):string;根据员工编号和月份返回迟到次数function getleaeartimes(id,momth:string):string;根据员工编号和月份返回早退次数function getholiovertimes(id,momth:string):string;根据员工编号和月份返回节假日加班时间function getotherovertimes(id,momth:string):string;根据员工编号和月份返回返回其他加班时间function getremark(id,momth:string):string;根据员工编号和月份返回备注信息function checkinforecs(sql:string):olevariant;通过传递sql语句返回查询记录procedure recinsert(insertsql:string);通过传递sql语句执行插入操作procedure recupdate(updatesql:string);通过传递sql语句执行修改操作procedure recdel(id,month:string);根据员工编号和月份编号执行删除操作7.tusertable类tusertable类封装了对user_table表的各种操作,类中定义的方法和过程名称如表1.15所示 表1.15 tusertable类封装的方法和过程方法或过程名具体说明function getuserpwd(username:string):string;根据用户名返回用户密码信息function getuserlevel(username:string):string;根据用户名返回用户级别信息function checkuser(username:string):boolean;根据用户名返回查询账号记录是否存在procedure userinsert(insertsql:string);通过传递sql语句执行插入操作procedure userupdate(updatesql:string);通过传递sql语句执行修改操作procedure userdelete(deletesql:string);根据传递sql语句执行删除操作procedure creattable(sql:string);通过脚本sql语句创建用户数据表第三章 人事工资管理信息系统的系统设计与实现第一节 系统实现技术一、选择borland delphi 7做为开发工具delphi是著名的borland(现在已和inprise合并)公司开发的可视化软件开发工具。“真正的程序员用c,聪明的程序员用delphi”,这句话是对delphi最经典、最实在的描述。delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。和vc相比,delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和vb相比,delphi则功能更强大、更实用。可以说delphi同时兼备了vc功能强大和vb简单易学的特点。它一直是程序员至爱的编程工具。delphi具有以下的特性:基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与windows编程紧密结合,强大而成熟的组件技术。但最重要的还是object pascal语言,它才是一切的根本。 object pascal语言是在pascal语言的基础上发展起来的,简单易学。delphi提供了各种开发工具,包括集成环境、图像编辑(image editor),以及各种开发数据库的应用程序,如desktopdatabase expert等。除此之外,还允许用户挂接其它的应用程序开发工具,如borland公司的资源编辑器(resourse workshop)。在delphi众多的优势当中,它在数据库方面的特长显得尤为突出:适应于多种数据库结构,从客户机服务机模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件。二、选择microsoft server 2000作为服务器端数据库软件1 microsoft sql server2000简介sql server 2000是microsoft公司推出的sql server数据库管理系统,该版本继承了sql server 7.0版木的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行microsoft windows 98的膝上型电脑到运行microsoft windows 2000的大型多处理器的服务器等多种平台使用 由于sql server与windows界而风格完全一致,且有许多向导(wizard)帮助,因此易于安装和学习,有一关sql server的资料、培训随处可得,所以容易上手。并且由于今天windows操作系统占领着主导地的位,选择sql server一定会在兼容性方面取得一些优势。另外,sql server 2000除了具有扩展性,可靠性以外,还具有可以迅速开发新的因特网系统的功能。尤其是它可以直接存储xml数据,可以将搜索结果以xml格式输出等特点,有利于构建了异构系统的互操作性,奠定了而向互联网的企业应用和服务的基石。因此我们选用microsoft sql server2000来创建数据库。创建数据库的步骤:1.确定新建数据库的目的。2.确定该数据库中需要的表。3.确定表中需要的字段。4.明确有唯一值得字段。5.确定表之间的关系。6.优化设计。7.输入数据并新建其他数据库对象。在设计并且建立数据库后,我们还需要进行一些优化工作。根据计算机的配置和工作环境,可以做一些时来提高microsoft sql server2000或数据库的性能。实际上有很多的方法可以提高sql server2000的系统性能。我们可以在实践过程中不断的发现和总结。2结构化查询语言(sql)简介sql是英文structure query language的缩写,意思为结构化查询语言。sql语言的主要功能就是同各种数据库建立联系,进行沟通。按照ansi(美国国家标准协会)的规定,sql被作为关系型数据库管理系统的标准语言。sql语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系姓数据库管理系统,如oracle, sybase, microsoft sql server,access等都采用了sql语言标准。虽然很多数据库都对sql语句进行了在开发和扩展,但是包括select, update, delete, create,以及drop在内的标准的sql命令仍然可以被用来完成几乎所有的数据库操作。第二节 系统运行软件环境工具软件:borland delphi 7面向对象的开发工具;microsoft sql server 2000关系数据库软件测试环境: windows xp professional sp2,windows 2000 professional sp4;windows server 2003 sp2;在以上操作系统上通过测试 第三节 模块的设计与实现一、创建启动画面 启动画面是应用程序的附加部分,体现应用程序的门面。应用程序初始化的时候,用户可从中获取基本信息。但启动画面不宜做的太大,以免喧宾夺主。作为企业用户使用的软件,我们小组采用了蓝色基调的厚重感较强的背景,附以简单的文字信息,能够给用户一个稳重可信的感觉。附图如下: 相关代码: 1. 窗体创建事件代码procedure tmovefrm.formcreate(sender: tobject);begin time_lb.caption:=timetostr(now); date_lb.caption:=formatdatetime(yyyy年mm月dd日 ,now);end;2.在项目文件代码主程序初始化(application.initialize;)后添加如下代码: movefrm:=tmovefrm.create(application); movefrm.show; movefrm.update; sleep(2008); movefrm.hide; movefrm.free;二、创建登录窗体启动画面消失后,将弹出登录窗体。登录窗体是唯一能进入主窗口的入口。同时我们对登录窗体重新设计,加入了“记住上次登录成功时的用户名和密码”功能,方便了软件使用者,体现了“一切从客户角度出发”的软件开发原则。新建登录窗体loginfrm,登录窗体的设计布局如下图算法流程和具体代码如下:1. 窗体建立事件发生时从当前目录的setup.ini的option小节中读取中保存的用户名、密码和登录开关状态。如果setup.ini中的autologon等于1,则将用户名和密码自动填到相应编辑框,并将窗体中的“记住用户名和密码”标记为选中状态否则将用户名和密码框清空,并将“记住用户名和密码”标记为取消状态。代码如下:procedure tloginfrm.formcreate(sender: tobject);begin usertable:=tusertable.create; setupfile:=tinifile.create(extractfiledir(application.exename)+setup.ini); checkbox1.checked:=setupfile.readbool(option,autologon,false); if checkbox1.checked=true then begin user_ed.text:=setupfile.readstring(option,lastusername,); pwd_ed.text:=setupfile.readstring(option,mark,); end else b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论