基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx

上传人:b****2 文档编号:4844900 上传时间:2023-05-04 格式:DOCX 页数:38 大小:450.41KB
下载 相关 举报
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第1页
第1页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第2页
第2页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第3页
第3页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第4页
第4页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第5页
第5页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第6页
第6页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第7页
第7页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第8页
第8页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第9页
第9页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第10页
第10页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第11页
第11页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第12页
第12页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第13页
第13页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第14页
第14页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第15页
第15页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第16页
第16页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第17页
第17页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第18页
第18页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第19页
第19页 / 共38页
基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx

《基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx(38页珍藏版)》请在冰点文库上搜索。

基于Android SQLite的手机通讯录管理器毕业设计文档格式.docx

GONGLING.DBF

1、员工信息表:

PERSONNEL.DBF

字段

字段名

类型

宽度

说明

1

员工号

字符型

3

数字

2

员工姓名

10

小于等于5个汉字

员工性别

“男”或“女”

4

岗位名称

14

小于等于7个汉字

5

工龄

数值型

1-99之间

6

工资等级

2、基础工资设置表:

COURSE.DBF

工资标准

1-9999之间

3、岗位工资设置表:

RANK.DBF

4、工龄工资设置表:

5、管理员注册表:

ADMINER.DBF

注册名

任意字符

口令

英文字母或数字

三、系统设计

(一)数据库概念设计

分析前面的系统功能要求,需要一个表来存储和管理员工信息,使系统能够接受员工原始的各项数据,以实现数据录入、查询或统计员工信息等功能。

员工是本系统的第一个实体。

为了能实现查询和统计部门内员工情况等功能,必须有一个表来存储和管理所有部门的信息。

部门是本系统的第二个实体。

工资是以员工工作情况来制定的。

需要建立一个表来记录各种工资、津贴、扣款的信息。

它主要为各种查询和统计功能提供工资数据。

工资是第3个实体。

据此可以绘出工资管理系统数据库的E-R图如下:

1

N

MM1

实体属性列表如下:

实体

属性

员工

工号

姓名

性别

年龄

籍贯

身份证号

婚姻状况

学历

部门名称

工种

工龄

职务等级

部门

部门负责人

部门人数

工资

工资年月

岗位工资

岗位补贴

出勤天数

加班工时

加班天数

加班类别

加班工资

病假扣款

事假扣款

其他扣款

应发工资

实发工资

(二)数据库逻辑设计

将数据库的概念模型转换为关系模型:

实体转换成的关系模式有:

员工(工号,姓名,性别,年龄,籍贯,身份证号,婚姻状况,学历,部门名称,工种,工龄,职务等级)

部门(部门编号,部门名称,部门负责人,部门人数)

获得(工号,姓名)

工资(工号,工资年月,岗位工资,岗位补贴,出勤天数,加班工时,加班工资,加班天数,加班类别,病假扣除,事假扣除,其它扣除,应发工资,实发工资)

因为,员工与工资是1:

N的关系,所以各关系模式为:

部门(部门名称,部门负责人,部门人数)

带下划线的属性为各关系模式的外码,字体为粗体的属性为各关系模式的主码。

关系规范式:

工资管理系统∈1NF每个属性均不可再分

(三)数据库与数据表设计——物理结构设计

在SQL数据库中需要建立3个数据表:

员工信息数据表、部门信息数据表和工资数据表。

1.数据库与数据表设计

①员工信息数据表定义

其中,“工号”是表的主键,惟一标识。

“部门名称”是外键。

“工号”将记录员工的编号,在员工信息表中增加这一列时,虽然增加了数据冗余,但可以在查询每个员工信息时,提高系统的性能。

因为员工信息表的记录数相对固定,相比之下,增加这个冗余的列对于整个系统来说是有利的。

通过它,系统将引用到工资信息。

此表取名为“员工”

②部门信息数据表定义

其中,部门名称是该表的主键,惟一标识一个部门。

此表取名为“部门”

③工资数据表定义

其中,“工号”作为该表的主键,唯一标识,保证客房信息表数据的参照完整性。

此表表取名为“工资”

根据上面三个数据表的设计,可执行下面的步骤创建数据表

1)打开企业管理器,在本地服务器上创建新的数据库“工资管理库”

2)创建表员工、部门、工资

2.数据完整性设计

1)给每个表实施主键约束。

①主键约束、非空值约束

员工:

工号为主键,所以此项非空

部门:

部门名称为主键,所以此项非空

工资:

2)实施CHECK约束

●员工表中建立一个检查约束,即员工性别不是‘男’就是‘女’

CHECK(性别IN('

男'

'

女'

●工资表中建立一个对于出勤天数的检查约束,即出勤天数在0-20天之间

check(出勤天数>

=0and出勤天数<

=20)

3)外键约束

员工表中,工号、部门名称为外键。

FK_员工_工资FOREIGNKEY(工号)REFERENCES工资(工号)

FK_员工_部门FOREIGNKEY(部门名称)REFERENCES部门(名称)

通过此键建立3个表的联系

4)惟一约束

a)每个表的主键需定义为惟一性:

对于工资表,因为工号是主键,联系着员工表,所以建立唯一性

altertable工资addconstraintUQ_工号unique(工号)

b)对于员工表,员工的工号、身份证号、部门名称都是用于识别员工身份,所以建立唯一约束

altertable员工addconstraintUQ_工号unique(工号)

5)强制约束

对INSERT和UPDATE操作强制约束,表明以后对员工表中的工号、部门名称的添加和更新操作都会分别检查在工资表、部门表中是否存在与此相应的内容。

6)规则

1)为了检查员工表中输入的身份证号码是有效位数,可以创建一个规则绑定到该列;

在数据操作时进行检查。

规则的定义语句为:

(LEN((@身份证号)=15)OR(LEN(@身份证号)=18)

四、详细设计

(一)建数据库——工资管理库

IFEXISTS(SELECT*FROMsysdatabasesWHEREname='

工资管理库'

dropdatabase工资管理库

GO

CREATEDATABASE工资管理库

ONPRIMARY(

NAME=工资管理库,

FILENAME='

D:

\工资管理库_data.mdf'

SIZE=4MB,

MAXSIZE=6MB,

FILEGROWTH=2MB

LOGON(NAME='

工资管理库_log'

FILENAME='

\工资管理库.ldf'

SIZE=1MB,MAXSIZE=25MB,FILEGROWTH=10%)

(二)建表——员工信息表、部门信息表、工资信息表

●IFEXISTS(SELECT*FROMsysobjectsWHEREname='

员工'

DROPTABLE员工

GO

createtable员工(

工号VARCHAR(50)NOTNULLprimarykey,

姓名VARCHAR(50)NOTNULL,

性别CHAR

(2)DEFAULT'

)),

年龄CHAR(10)NOTNULL,

籍贯VARCHAR(50)NOTNULL,

身份证号VARCHAR(50)UNIQUENOTNULL,

婚姻情况VARCHAR(50),

学历VARCHAR(50),

部门名称VARCHAR(50)NOTNULL,

工种VARCHAR(50),

工龄VARCHAR(50)NOTNULL,

职务等级VARCHAR(50)

)GO

部门'

DROPTABLE部门

createtable部门(

部门名称VARCHAR(50)primarykeyNOTNULL,

部门负责人VARCHAR(50)NOTNULL,

部门人数VARCHAR(50)

工资'

DROPTABLE工资

CREATETABLE工资(

工号varchar(50)notnullprimarykey,

工资年月varchar(50)notnull,

岗位工资decimalnotnull,

岗位补贴decimal,

出勤天数decimalnotnull,

加班工时decimal,

加班工资decimal,

加班天数decimal,

加班类别varchar(50),

病假扣款decimal,

事假扣款decimal,

其他扣款decimal,

应发工资decimalnotnull,

实发工资decimalnotnull

(三)视图

(1)查询员工工资情况

建立一个视图,反映员工姓名及工资情况。

CREATEVIEW员工_工资

AS

SELECT员工.姓名,工资.*

FROM员工,工资

WHERE员工.工号=工资.工号

(四)存储过程

(1)指定员工工资情况的查询

定义一个名为stsffCost的存储过程,该存储过程以以工资年月(@staffgongzi)、出勤天数(@staffchuqin)、加班工资(@staffjiaban)、应发工资(@staffying)、实发工资(@staffshi)为输入参数返回指定员工工资信息的存储过程。

stsffCost代码如下:

CREATEPROCEDUREstaffCost

@staffgongzidecimal,

@staffchuqindecimal,

@staffjiabandecimal,

@staffyingdecimal,

@staffshidecimal

AS

SELECT*

FROM工资

WHERE工资年月=@staffgongziAND

出勤天数=@staffchuqinAND

加班工资=@staffjiabanAND

应发工资=@staffyingAND

实发工资=@staffshi

(2)指定范围的员工的信息查询。

以员工工号、部门编号为输入参数返回指定员工基本信息的存储过程,要求输入部分员工信息查询员工全部信息。

定义一个名为stsffInfo的存储过程,该存储过程以员工工号(@staffNum)、部门编号(@bmNum)作为输入参数,存储过程返回查询到的结果集。

satffInfo的定义代码如下:

CREATEPROCEDUREstaffInfo

@staffNumVARCHAR(50)='

%'

@bmNumVARCHAR(50)='

FROM员工,部门

WHERE员工.部门名称=部门.部门名称AND

((员工.工号LIKE@staffNumVARCHAR(50)+'

)AND

(部门编号LIKE@bmNumVARCHAR(50)+'

))

(3)统计指定年份各部门每个月份的工资总额。

以年份为输入参数,以总工资金额为输出参数,产生该年度12个月份的每部门工资统计的存储过程。

定义该存储过程名为bmMonhSum,输入参数为@ThisYear,实现代码如下:

CREATEPROCEDUREbmMonthSum

@ThisYearCHAR(10)

SELECTDATEPART(MM,工资年月)AS员工工资月份,SUM(实发工资)AS部门人数

FROM员工,工资,部门

WHERE员工.工号=工资.工号AND员工.部门名称=部门.部门名称ANDDATEPART(YYYY,工资年月)=@ThisYear

GROUPBYDATEPART(MM,工资年月)

(五)触发器

(1)关键操作,在工资表里添加一条新的记录,实发工资会自动更新新的数据。

定义这个触发器名称为insert_工资。

代码如下:

createtriggerinsert_工资on工资forinsert

as

declare@ichar(20)

declare@bbint

set@i=case

when@bb=0001then'

实发工资'

when@bb=0002then'

end

print@i

(2)员工新调入

进行员工新调入操作是在员工信息表中添加一条新的记录,可以为员工信息表设计一个Insert触发器,当员工信息表执行Insert操作后自动更改出部门信息表相应记录的数据。

定义这个触发器名称为staff_insert。

其代码如下:

CREATETRIGGERstaff_insertON员工

FORINSERT

ASIF(SELECTCOUNT(*)

FROM部门,inserted,工资

WHERE部门.部门人数=inserted.部门人数AND工资.工号=inserted.工号)=0

ROLLBACKTRANSACTION

(3)员工调出

进行员工调出操作是在员工信息表中删除该员工的记录,可以为员工信息表设计一个Delete触发器,当员工信息表执行Delete操作后,工资表、部门表中的记录也将全部删除。

定义这个触发器名称为staff_delete。

其实现代码如下:

CREATETRIGGERstaff_deleteON员工

FORDELETE

ASSELECTCOUNT(*)

FROM部门,工资,deleted

WHERE部门.部门人数=deleted.部门人数AND工资.工号=deleted.工号

(4)员工内部调动

为员工表设计一个名为staff_update的UPDATE触发器,当系统对员工表进行UPDATE操作后,将会自动触发它。

该触发器将相应记录的部门人数、部门名称、工资更新。

下面是client_update触发器的定义代码;

CREATETRIGGERstaff_updateON员工

FORUPDATE

FROMupdated,部门

WHERE部门.部门名称=updated.部门名称

(六)索引

为提高检索性能,为表创建符合索引,其索引项为工号、姓名。

CREATEINDEX工号_姓名_ind

ON员工(工号,姓名)

(七)运行和维护

1.关系图的建立

使用SQLServer2000的企业管理器创建工资管理系统关系图

工资管理系统的关系图

2.简单查询

1)员工基本信息情况

select*from员工;

2)员工考勤情况;

select出勤天数,工号

from工资;

3)员工每个工种基本工资的设定。

select工种,岗位工资,职务等级

from工资,员工

where工资.工号=员工.工号;

4)加班津贴管理,根据加班时间和类型给予不同的加班津贴;

select加班工时,加班天数,加班类别,加班工资

from工资

WHERE加班工资>

5)按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;

select工种,职务等级,岗位工资,出勤天数,实发工资

from员工,工资

WHERE员工.工号=工资.工号

;

6)员工津贴信息情况,反映员工的加班时间,加班类别、加班天数、津贴情况等;

select员工.工号,员工.姓名,加班工时,加班天数,加班类别,加班工资

WHERE员工.工号=工资.工号;

3.复杂查询

1)员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12;

Select姓名,avg(应发工资+岗位补贴+加班工资)

where工资.工号=员工.工号

groupby姓名

2)企业内财务部的工资情况查询:

select员工.工号,姓名,职务等级,实发工资

from工资,员工

where工资.工号=员工.工号AND部门名称='

财务部'

3)企业工资报表。

能够查询单个员工的工资情况

select工号,工资年月,岗位工资,病假扣款,事假扣款,应发工资,实发工资

WHERE工资.工号=员工.工号AND姓名LIKE‘闵%;

4)每个部门的工资情况,按月的工资统计

Select部门名称,avg(实发工资)

where工资.工号=员工.工号

groupby部门名称

5)员工月工资情况:

年,月,职工号,姓名,部门名,基本工资,病假扣款,事假扣款,应发工资,实发工资。

select工资年月,员工.工号,姓名,部门名称,岗位工资,病假扣款,事假扣款,应发工资,实发工资

4.数据库的用户与权限管理

(1)数据库的用户管理

工资管理库的用户:

Dbo用户属性:

数据库登陆文件夹:

Sa登陆属性

建立新用户:

用户名stu,密码1234(登录名login1)

CREATELOGINlogin1WITHPASSWORD='

1234'

USEMaster;

CREATEUSERstuFROlogin1;

GO

(2)用户的权限管理

a)系统权限管理

b)对象权限管理

设置权限

将员工表的录入、查询权限授予给了用户人事部部长

GRANTINSERT,SELECTON员工

TOpublic

WITHGRANTOPTION

5.数据库的备份

对工资管理库进行备份

SQLsever代理启动

单击备份右键,进行数据库备份

6.数据的导入与导出

(1)数据的导出服务

进入Excel查看

(2)数据的导入服务

五、课程设计总结

经过一周的时间,在同学和老师的帮助下,基本完成本次课程设计,基本达到了工资管理系统的要求。

这次数据库课程设计给我的最大的印象是:

流程是一切的根本;

架构是重要的,想像的还要重要;

实践比一切空谈和理论更能学到东西。

从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。

在设计过程中一定要慎重,仔细。

来不得半点马虎。

需求分析是整个课程设计的中心,考虑要全面,分析彻底。

才会为后来的设计打下良好的基础。

否则,前功尽弃,甚至不能完成任务。

做实例过程中要注意与说明书中数据项数据类型,数据长度等的一致,命令中心输入任何命令都要谨记一条原则,那就是严格按照格式来,不能像平时在纸上作业。

在本系统的设计与实现的过程中主要讲述了企业人事管理信息系统的系统设计部分,包括功能模块设计、数据库结构设计等。

系统设计为整个程序构建了骨架,各个功能模块实现各个细节部分。

系统的详细设计根据系统分析阶段的结论将系统具体化,并完成了各个模块的添加、修改、删除与查询的功能,直到最后形成一个完整的可行性的管理系统。

最后,再次感谢老师的耐心指导和同学的帮助,没有你们的无私教导和帮助,就没有今天的工资管理系统的实现,衷心感谢你们!

六、参考文献

[1] 

****加数据库:

****出版社,20****;

七、附录

部分源代码

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:

     日 期:

     

指导教师签名:

     

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2