《员工薪资系统课程设计41066.docx》由会员分享,可在线阅读,更多相关《员工薪资系统课程设计41066.docx(86页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、员工薪资管理系统课程设计学院:班级:学号:姓名:余黎黎晨李雪雪敏敬翰翰林颜学学宏指导教师:李竹林林目录一:绪论1.1设计计目的1.2设计计内容 1.33开发背背景 1.4开发发环境 1.5组内内成员及及分工二:需求分分析2.1题目目分析 2.2功能能分析 2.3数据据流图 2.4数据据字典 2.5系统统功能三:系统分分析与设设计 3.1概念念结构设设计 3.2逻辑辑结构设设计 3.3 物物理结构构设计四:数据库库实施及及运行 4.11建基本本表 4.33功能实实现 4.44完整代代码五:设计心心得及体体会一:绪论1.1设计计目的员工薪资系系统的主主要目的的是通过过操作计计算机代代替手工工劳动,
2、能能够在该该系统内内完成员员工的信信息录入入,查询询,删除除等操作作,方便便公司的的高效化化,规范范化管理理,有利利于员工工更好更更方便了了解自己己的薪资资信息。系统开发的的总体任任务就是是实现员员工薪资资管理的的系统化化、规范范化和自自动化。1.2设计计内容题目:员员工薪资资管理 1) 背景资料a) 某单位现有有10000名员员工,其其中有管管理人员员、财务务人员、技技术人员员和销售售人员。b) 该单位下设设4个科室室,即经经理室、财财务科、技技术科和和销售科科。c) 工资由基本本工资、福福利补贴贴和奖励励工资构构成,失失业保险险和住房房公积金金在工资资中扣除除。d) 每个员工的的基本资资料
3、有姓姓名、性性别、年年龄、单单位和职职业(如如经理、工工程师、销销售员等等)。e) 每月个人的的最高工工资不超超过30000元元。工资资按月发发放,实实际发放放的工资资金额为为工资减减去扣除除。2) 设计要求:a) 进行需求分分析,编编写数据据字典。b) 设计E-RR图。c) 实现按照科科室录入入个人的的基本资资料、工工资和扣扣除金额额的数据据。d) 计算个人的的实际发发放工资资。e) 按科室、职职业分类类统计人人数和工工资金额额。f) 实现分类查查询。g) 能够删除辞辞职人员员的数据据。h) 开发工具不不限。1.3开发发背景当今社会,随随着企业业人数的的不断增增加,企企业员工工薪资的的管理工
4、工作也越越来越复复杂,资资金是企企业生存存的核心心部分,而而资金流流动也是是关键环环节,随随着计算算机的普普及,计计算机管管理系统统已经原原来越来来越广泛泛的应用用于各个个中小型型企业中中,用计计算机取取代手工工对企业业管理的的操作也也是势在在必行的的,并且且人为操操作容易易造成信信息错误误,纸质质材料不不易保存存,可能能会导致致企业运运转出现现滞缓现现象,影影响企业业发展。为为了更好好的、更更方便地地管理企企业中各各个成员员的工资资发放情情况,我我们必须须要有一一个完善善的、合合理的、便便捷的员员工薪资资管理系系统来管管理公司司员工工工资的发发放情况况。该员工薪资资管理系系统主要要用于中中小
5、型企企业员工工的工资资发放管管理,此此系统的的建立和和使用有有利于员员工更好好的了解解自己的的薪资信信息,提提高公司司员工薪薪资发放放工作的的效率,大大大减少少纸质管管理对工工作带来来的失误误。1.4开发发环境开发平台:SQLL SServver220055开发工具:Ecllipsse JDBBC开发语言:SQLL语言 JJAVAA语言1.5组内内成员及及分工李雪敏:系系统框架架撰写报报告颜学宏:代代码编写写数据库库的连接接与运行行余黎晨:概概念结构构设计代代码调试试敬翰林:逻逻辑结构构设计需需求分析析二:需求分分析2.1题目目分析该题目要求求设计一一个员工工薪资系系统,实实现员工工信息的的有
6、序化化,规范范化,并并能进行行员工信信息录入入,查询询,修改改,删除除等操作作,能实实现分类类查询,2.2功能能分析该员工薪资资系统能能够实现现的功能能如下:员工信息的的管理,包包括姓名名,性别别,年龄龄,职业业,员工工号,部部门编号号基本信信息的录录入,查查询,删删除,修修改等操操作部门信息的的管理,包包括部门门编号和和部门名名称,查查询每个个部门的的业绩和和员工薪薪资情况况薪资信息的的管理,包包括员工工号,部部门编号号,基本本工资,福福利补贴贴,奖励励工资,失失业保险险,住房房公积金金,实发发薪资等等信息,统统计出员员工的基基本工资资,福利利补贴,奖奖励工资资,扣除除失业保保险,住住房公积
7、积金后所所得的工工2.3数据据流图注册员工员工基本信息查询员工员工工资记录员工薪资信息形成查询部门经理薪资信息管理部门工资记录统计分析财务统计人员2.4数据据字典数据字典在在数据库库设计中中占有很很重要的的地位,数数据字典典是各类类数据描描述的集集合,它它是进行行详细的的数据收收集和数数据分析析后所获获得的主主要成果果。根据据数据流流图对员员工薪资资管理数数据库数数据字典典的设计计如下所所示:2.41数数据结构构名:员员工含义说明:员工信信息组成:姓名名,性别别,年龄龄,职业业,员工工号数据项名数据类型长度可否为空含义说明员工号char10no员工编号员工姓名char10 no姓名员工年龄ch
8、ar 10 no年龄部门名称char 10 no所属部门员工职业char 10 no担任职务2.42数数据结构构名:部部门含义说明:部门信信息组成:部门门编号,部部门名称称数据项名数据类型长度可否为空含义说明部门编号char4no科室类别部门名称char10no科室名称2.43数数据结构构名:工工资含义说明:员工薪薪资信息息组成:员工工号,部部门编号号,基本本工资,福福利补贴贴,奖励励工资,扣扣罚工资资,失业业保险,住住房公积积金,实实发薪资资数据项名数据类型长度可否为空含义说明员工号char8no员工编号员工工资char4no所的工资奖励工资moneyy8no基本工资员工薪资moneyy8y
9、es福利和补贴贴工资 2.5系统统功能该员工薪资资系统的的功能如如下:三:系统分分析与设设计3.1概念念结构设设计 ER图设设计员工实体关系系图性别姓名职业员工员工号年龄部门编号部门实体关系系图部门编号部门部门名称工资实体关系系图员工号实发薪资住房公积金福利补贴基本工资部门编号工资奖励工资失业保险总的ERR图3.2概念念结构设设计 E-RR图表示示的概念念模型是是用户数数据要求求的形式式化,它它不为任任何一个个DBMMS所支支持,而而逻辑结结构设计计的任务务就是把把概念模模型结构构转换成成某个具具体的DDBMSS所支持持的数据据模型,员工薪资管理E-R图转换为关系模式为:员工(姓名名,性别别,
10、年龄龄,职业业,员工工号,部部门编号号)部门(部门门编号,部部门名称称)薪资(员工工号,员员工工资资,福利利补贴,奖奖励工资资,失业业保险,住住房公积积金,实实发薪资资)四:数据库库实施与与运行4.1建基基本表员工信息表表部门信息表表工资信息表表4.3功能能实现 4.31系系统界面面展示:4.32员员工信息息查询功功能按工号查询询:按姓名查询询:4.33员员工工资资查询功功能:4.34修修改员工工工资功功能:4.35添添加员工工功能: 4.336修改改员工信信息功能能:4.37删删除员工工信息功功能:4.4完整整代码展展示 4.441源程程序代码码/类DBBConnnecct用于于数据库库的连
11、接接/导入ssql包包imporrt jjavaa.sqql.*;/创建数数据库连连接类DDBCoonneectpubliic cclasss DDBCoonneect/静态方方法提高高数据库库的连接接效率publiic sstattic Connnecctioon ggetCConnn() thrrowss Exxcepptioon/加载JJDBCC驱动Classs.foorNaame(suun.jjdbcc.oddbc.JdbbcOddbcDDrivver);/以系统统默认用用户身份份,连接接数据库库StuudenntMaanaggerreturrn DDrivverMManaagerr.
12、geetCoonneectiion(jddbc:odbbc:TTestt,dmjj,7533);4.42主主框架代代码:/系统主主框架类类/导入系系统的包包imporrt jjavaa.awwt.*;imporrt jjavaa.awwt.eevennt.*;imporrt jjavaax.sswinng.*;/创建主主框架类类MaiinFrrameepubliic cclasss MMainnFraame exttendds JJFraame impplemmentts AActiionLListteneer/创建内内容面板板JPaneel cconttenttPanne;/创建菜菜单栏组组
13、件的对对象JMenuuBarr jMMenuuBarr1=nnew JMeenuBBar();/菜单单条JMenuu jMMenuu0=nnew JMeenu(退出出系统);/菜单单JMenuuIteem jjMennuIttem00=neew JJMennuIttem(退出出);/子子菜单JMenuu jMMenuu1=nnew JMeenu(员工工管理);JMenuuIteem jjMennuIttem11=neew JJMennuIttem(添加加员工);JMenuuIteem jjMennuIttem22=neew JJMennuIttem(修改改员工);JMenuuIteem jjM
14、ennuIttem33=neew JJMennuIttem(删除除员工);JMenuu jMMenuu2=nnew JMeenu(工资资管理);JMenuuIteem jjMennuIttem44=neew JJMennuIttem(添加加工资);JMenuuIteem jjMennuIttem55=neew JJMennuIttem(修改改工资);JMenuuIteem jjMennuIttem88=neew JJMennuIttem(工资资查询);JMenuu jMMenuu3=nnew JMeenu(员工工查询);JMenuuIteem jjMennuIttem66=neew JJMen
15、nuIttem(按工工号查询询);JMenuuIteem jjMennuIttem77=neew JJMennuIttem(按姓姓名查询询);JMenuuIteem jjMennuIttem99=neew JJMennuIttem(互动动);/创建标标签,用用于显示示信息JLabeel jjLabbel11=neew JJLabbel(欢迎迎使用员员工薪资资管理系系统);/创建构构造方法法publiic MMainnFraame()try/关闭框框架窗口口时的默默认事件件方法setDeefauultCClosseOpperaatioon(EEXITT_ONN_CLLOSEE);/调用初初始化方
16、方法jbIniit();catchh(Exxcepptioon eexceeptiion)excepptioon.pprinntSttackkTraace();/界面初初始化方方法privaate voiid jjbInnit() tthroows Exccepttionn/创建内内容面板板conteentPPanee =(JPaanell) ggetCConttenttPanne();/设置内内容面板板的布局局为空conteentPPanee.seetLaayouut(nnulll);/主框架架的大小小setSiize(neww Diimennsioon(4400,3600);/主框架架的标
17、题题setTiitlee( 员工薪薪资管理理系统);/添加事事件监听听器jMenuuIteem0.adddActtionnLisstenner(thiis);jMenuuIteem1.adddActtionnLisstenner(thiis);jMenuuIteem2.adddActtionnLisstenner(thiis);jMenuuIteem3.adddActtionnLisstenner(thiis);jMenuuIteem4.adddActtionnLisstenner(thiis);jMenuuIteem5.adddActtionnLisstenner(thiis);jMenuu
18、Iteem6.adddActtionnLisstenner(thiis);jMenuuIteem7.adddActtionnLisstenner(thiis);jMenuuIteem8.adddActtionnLisstenner(thiis);jMenuuIteem9.adddActtionnLisstenner(thiis);/添加菜菜单条到到主框架架setJMMenuuBarr(jMMenuuBarr1);/添加菜菜单到菜菜单条jMenuuBarr1.aadd(jMeenu00);jMenuuBarr1.aadd(jMeenu11);jMenuuBarr1.aadd(jMeenu22);
19、jMenuuBarr1.aadd(jMeenu33);/添加菜菜单项到到菜单jMenuu0.aadd(jMeenuIItemm0);jMenuu1.aadd(jMeenuIItemm1);jMenuu1.aadd(jMeenuIItemm2);jMenuu1.aadd(jMeenuIItemm3);jMenuu2.aadd(jMeenuIItemm4);jMenuu2.aadd(jMeenuIItemm5);jMenuu2.aadd(jMeenuIItemm8);jMenuu3.aadd(jMeenuIItemm6);jMenuu3.aadd(jMeenuIItemm7);/添加标标签到主主框
20、架内内容面板板conteentPPanee.addd(jjLabbel11);/设置标标签组件件的大小小和字体体jLabeel1.settFonnt(nnew javva.aawt.Fonnt(黑体,Fonnt.BBOLDD,200);jLabeel1.settBouundss(neew RRecttanggle(65,70,2755,555);/菜单项项事件对对应的处处理方法法publiic vvoidd acctioonPeerfoormeed(AActiionEEvennt aactiionEEvennt)/点击“系系统”菜菜单下的的“退出出”菜单单项if(acctioonEvventt
21、.geetSoourcce()=jjMennuIttem00)Systeem.eexitt(0);/点击“员员工管理理”菜单单下的“添添加员工工”菜单单项if(acctioonEvventt.geetSoourcce()=jjMennuIttem11)/创建“添添加员工工”面板板对象AddEmmplooyeee AdddEmmp=nnew AdddEmpployyee();/移除主主框架上上原有的的内容this.remmovee(thhis.gettConntenntPaane();/加载“添添加职工工”面板板的对象象到主框框架this.settConntenntPaane(AdddEmpp)
22、;/令界面面可见this.settVissiblle(ttruee);/点击“员员工管理理”菜单单下的“修修改员工工”菜单单项if(acctioonEvventt.geetSoourcce()=jjMennuIttem22)/创建“修修改员工工”面板板对象ModiffyEmmplooyeee MoodiffyEmmp=nnew ModdifyyEmpployyee();this.remmovee(thhis.gettConntenntPaane();/加载“修修改员工工”面板板的对象象到主框框架this.settConntenntPaane(ModdifyyEmpp);this.settVis
23、siblle(ttruee);/点击“员员工管理理”菜单单下的“删删除员工工”菜单单项if(acctioonEvventt.geetSoourcce()=jjMennuIttem33)/创建“删删除员工工”面板板对象DeletteEmmplooyeee DeeletteEmmp=nnew DelleteeEmpployyee();this.remmovee(thhis.gettConntenntPaane();/加载“删删除员工工”面板板的对象象到主框框架this.settConntenntPaane(DelleteeEmpp);this.settVissiblle(ttruee);/点击“工
24、工资管理理”菜单单下的“添添加工资资”菜单单项if(acctioonEvventt.geetSoourcce()=jjMennuIttem44)/创建工工资添加加的面板板对象AddSaalarry AAddSSal=neww AdddSaalarry();this.remmovee(thhis.gettConntenntPaane();/加载工工资添加加面板的的对象到到主框架架this.settConntenntPaane(AdddSall);this.settVissiblle(ttruee);/点击“工工资管理理”菜单单下的“修修改工资资”菜单单项if(acctioonEvventt.ge
25、etSoourcce()=jjMennuIttem55)/创建工工资修改改的面板板对象ModiffySaalarry MModiifySSal=neww MoodiffySaalarry();this.remmovee(thhis.gettConntenntPaane();/加载工工资修改改面板的的对象到到主框架架this.settConntenntPaane(ModdifyySall);this.settVissiblle(ttruee);/点击“工工资管理理”菜单单下的“工工资查询询”菜单单项if(acctioonEvventt.geetSoourcce()=jjMennuIttem88)
26、/创建工工资修改改的面板板对象SalarryInnquiire SallaryyInqq=neew SSalaaryIInquuiree();this.remmovee(thhis.gettConntenntPaane();/加载工工资修改改面板的的对象到到主框架架this.settConntenntPaane(SallaryyInqq);this.settVissiblle(ttruee);/点击“员员工查询询”菜单单下的“按按工号查查询”菜菜单项if(acctioonEvventt.geetSoourcce()=jjMennuIttem66)/创建“按按工号查查询”面面板对象象Inquii
27、reOOnGHH OnnGH=neww InnquiireOOnGHH();/移除主主框架上上原有的的内容this.remmovee(thhis.gettConntenntPaane();this.settConntenntPaane(OnGGH);this.settVissiblle(ttruee);4.43主主函数MMainn代码:/系统的的主程序序类Maain/导入包包imporrt jjavaa.awwt.*;imporrt jjavaax.sswinng.*;/创建主主系统类类classs Maainpubliic sstattic voiid mmainn (SStriing aa
28、rgss)/创建主主界面,调调用MaainFFramme()构造函函数和方方法MainFFramme fframme=nnew MaiinFrramee();/获取屏屏幕尺寸寸Dimennsioon sscreeenSSizee=Tooolkkit.gettDeffaulltTooolkkit().ggetSScreeenSSizee();/获取主主界面的的窗体尺尺寸Dimennsioon fframmeSiize =frramee.geetSiize();/令主界界面窗体体居中if(frrameeSizze.hheigghtscrreennSizze.hheigght)frameeSizze
29、.hheigght=scrreennSizze.hheigght;if(frrameeSizze.wwidtthsscreeenSSizee.wiidthh)frameeSizze.wwidtth=sscreeenSSizee.wiidthh;framee.seetLoocattionn(sscreeenSSizee.wiidthh-frrameeSizze.wwidtth)/2,(scrreennSizze.hheigght-fraameSSizee.heeighht)/2);/令主界界面显示示framee.seetViisibble(truue);4.44员员工信息息查询代代码按工号查询询
30、代码/导入系系统的类类包imporrt jjavaa.awwt.*;im/按员工工号查询询面板类类InqquirreOnnGHport javva.ssql.*;imporrt jjavaax.sswinng.*;imporrt jjavaa.awwt.eevennt.*;/创建“按按员工号号查询”类类publiic cclasss IInquuireeOnGGH eexteendss JPPaneel iimpllemeentss AcctioonLiisteenerr/声明连连接数据据库对象象Conneectiion conn;/声明SSQL语语句对象象Stateemennt sst;/创
31、建组组件对象象:标签签、文本本行、单单选JLabeel jjLabbel11=neew JJLabbel(请输输入员工工号:);JTexttFieeld jTeextFFielld1=neww JTTexttFieeld();JButtton jBuuttoon1=neww JBButtton(查找找);JTexttAreea jjTexxtArrea11=neew JJTexxtArrea();/构造方方法publiic IInquuireeOnGGH()try/调用初初始化方方法jbIniit();catchh(Exxcepptioon eexceeptiion)excepptioon.p
32、prinntSttackkTraace();/面板初初始化方方法privaate voiid jjbInnit() tthroows Exccepttionn/连接数数据库con=DDBCoonneect.gettConnn();st=coon.ccreaateSStattemeent();/框架的的布局this.settLayyoutt(nuull);/设置各各组件的的大小jLabeel1.settFonnt(nnew javva.aawt.Fonnt(黑体,Fonnt.BBOLDD,166);jLabeel1.settBouundss(neew RRecttanggle(46,4,2222
33、,32);jTexttFieeld11.seetBooundds(nnew Recctannglee(477,377,2447,331);jButtton11.seetBooundds(nnew Recctannglee(477,866,2447,330);jTexttAreea1.settBouundss(neew RRecttanggle(24,1300,3005,1109);/添加按按钮动作作事件jButtton11.adddAcctioonLiisteenerr(thhis);/添加组组件到面面板this.addd(jLLabeel1);this.addd(jTTexttFieeld1
34、1);this.addd(jTTexttAreea1);this.addd(jBButtton11);/点击按按钮事件件publiic vvoidd acctioonPeerfoormeed(AActiionEEvennt ee)/获取输输入的员员工号Strinng EEmplloyeeeIDD=jTTexttFieeld11.geetTeext();/清空文文本区原原有的内内容jTexttAreea1.settTexxt();try/利用sst对象象执行SSQL语语句,返返回结果果集对象象ResulltSeet rrs=sst.eexeccuteeQueery(seelecct * frro
35、m Empployyee wheere 员工号号=+EmmplooyeeeID+);/处理结结果集if(rss.neext()jTexttAreea1.settTexxt(员工号号:+rs.gettStrringg(员员工号)+n+员员工姓名名:+rs.gettStrringg(员员工姓名名)+nn+员工性性别:+rss.geetSttrinng(员工性性别)+n+员工工年龄:+rrs.ggetSStriing(员工工年龄)+n+部部门名称称:+rs.gettStrringg(部部门名称称)+nn+员工职职业:+rss.geetSttrinng(员工职职业)+n);elseJOptiionPP
36、anee.shhowMMesssageeDiaalogg(thhis,没有有这个员员工号的的员工!);catchh(Exxcepptioon eex)/利用消消息对话话框提示示查询失失败JOptiionPPanee.shhowMMesssageeDiaalogg(thhis,员工工查询失失败!);按姓名查询询/按员员工姓名名查询面板类类InqquirreOnnNamme/导入系系统的类类包imporrt jjavaa.awwt.*;imporrt jjavaa.sqql.*;imporrt jjavaax.sswinng.*;imporrt jjavaa.awwt.eevennt.*;/创建“
37、按按员工姓姓名查询询”类publiic cclasss IInquuireeOnNNamee exxtennds JPaanell immpleemennts ActtionnLisstenner/声明连连接数据据库对象象Conneectiion conn;/声明SSQL语语句对象象Stateemennt sst;/创建组组件对象象:标签签、文本本行、单单选JLabeel jjLabbel11=neew JJLabbel(请输输入员工工姓名:);JTexttFieeld jTeextFFielld1=neww JTTexttFieeld();JButtton jBuuttoon1=neww J
38、BButtton(查找找);JTexttAreea jjTexxtArrea11=neew JJTexxtArrea();/构造方方法publiic IInquuireeOnNNamee()try/调用初初始化方方法jbIniit();catchh(Exxcepptioon eexceeptiion)excepptioon.pprinntSttackkTraace();/面板初初始化方方法privaate voiid jjbInnit() tthroows Exccepttionn/连接数数据库con=DDBCoonneect.gettConnn();st=coon.ccreaateSStat
39、temeent();/框架的的布局this.settLayyoutt(nuull);/设置各各组件的的大小jLabeel1.settFonnt(nnew javva.aawt.Fonnt(黑体,Fonnt.BBOLDD,166);jLabeel1.settBouundss(neew RRecttanggle(46,4,2222,32);jTexttFieeld11.seetBooundds(nnew Recctannglee(477,377,2447,331);jButtton11.seetBooundds(nnew Recctannglee(477,866,2447,330);jTexttA
40、reea1.settBouundss(neew RRecttanggle(24,1300,3005,1109);/添加按按钮动作作事件jButtton11.adddAcctioonLiisteenerr(thhis);/添加组组件到面面板this.addd(jLLabeel1);this.addd(jTTexttFieeld11);this.addd(jTTexttAreea1);this.addd(jBButtton11);/点击按按钮事件件publiic vvoidd acctioonPeerfoormeed(AActiionEEvennt ee)/获取输输入的员员工的姓姓名Strinng
41、 EEmplloyeeeNaame=jTeextFFielld1.gettTexxt();/清空文文本区原原有的内内容jTexttAreea1.settTexxt();try/利用sst对象象执行SSQL语语句,返返回结果果集对象象ResulltSeet rrs=sst.eexeccuteeQueery(seelecct * frrom Empployyee wheere 员工姓姓名=+EEmplloyeeeNaame+);/处理结结果集if(rss.neext()jTexttAreea1.settTexxt(员工号号:+rs.gettStrringg(员员工号)+n+员员工姓名名:+rs.g
42、ettStrringg(员员工姓名名)+nn+员工性性别:+rss.geetSttrinng(员工性性别)+n+员工工年龄:+rrs.ggetSStriing(员工工年龄)+n+部部门名称称:+rs.gettStrringg(部部门名称称)+nn+员工职职业:+rss.geetSttrinng(员工职职业)+n);elseJOptiionPPanee.shhowMMesssageeDiaalogg(thhis,没有有这个员员工号的的员工!);catchh(Exxcepptioon eex)/利用消消息对话话框提示示查询失失败JOptiionPPanee.shhowMMesssageeDiaalogg(thhis,员工工查询失失败!);