版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络程序设计课程设计报告PAGE1-项目组名称sw班级代码总行数2310项目名称住房公积金管理系统1.项目来源及目的住房公积金为\o"中国"中国内地的一种用于住房的社会福利。它属于\o"员工福利"职工基本福利“五险一金”中的“一金”,是指\o"国家机关"国家机关、\o"国有企业"国有企业、\o"城镇集体企业(页面不存在)"城镇集体企业、\o"外商投资企业"外商投资企业、\o"城镇私营企业(页面不存在)"城镇私营企业及其他\o"城镇企业(页面不存在)"城镇企业、\o"事业单位"事业单位、\o"民办非企业单位(页面不存在)"民办非企业单位、\o"社会团体"社会团体(以下统称单位)及其在职职工缴存的长期住房储金;用于职工购买、建造、翻建、大修以及装修自住住房。缴存分为两部分,即职工个人缴存部分和所在单位缴存部分,两部分数额相等,均汇入个人帐户;缴存之后全部归属于职工个人所有,并设有个人住房公积金专门\o"资金帐户(页面不存在)"个人帐户。个人缴存比例不低于职工本人上一年度月平均\o"工资"工资的5%。缴存公积金的职工可以向公积金中心申请公积金贷款,公积金贷款利率较商业贷款利率低。但职工在缴存公积金期间,非《公积金管理条例》中所明示的原因外,不得提取公积金。为了加强对住房公积金的管理,维护住房公积金所有者的合法权益,促进城镇住房建设,提高城镇居民的居住水平,制定本条例。同时也是国务院为了加强对住房公积金的管理,维护住房公积金所有者的合法权益,促进城镇住房建设,提高城镇居民的居住水平而制定的条例,适用于中华人民共和国境内住房公积金的缴存、提取、使用、管理和监督。2.项目内容图2.1住房公积金用例图3类图3.1住房公积金数据逻辑bean设计类图图3.1住房公积金数据逻辑类图3.2住房公积金管理系统数据表设计表一表示的是数据库系统表,在本张表当中有5个字段,分别是键值信息字段表示主键值信息数据类型为char型,第二个字段名是seq表示当前序列号用于表示单位账户或者个人账户的字段,第三个字段表示的最大序号的字段表示的是单位账户最大不能超过这个值,第四和第五个字段分别表示对数据的描述字符类型是char型。表一系统信息表列名中文名列类型列注释可否为空默认值SEQNAME键值信息CHARACTER(20)可自定义序号键值信息,按此产生序号。不可以SEQ当前序号INTEGER从1开始,每次取完递增不可以MAXSEQ最大序号INTEGER不可以9999999DESC描述CHARACTER(40)不可以FREEUSE1备用1CHARACTER(20)可以表3-1住房公积金系统参数表表二表示的单位信息表,在这张表当中有23个字段分别表示如下。单位公积金账户:自动生成,取系统参数表中键为【UNITACCNUM】对应记录的【当前序号】,帐号长度12位字符,不足12位前面补0。公积金余额:等于单位下所有个人的【公积金余额】之和,开户时默认为0。缴存基数:等于单位下所有个人的【缴存基数】之和,开户时默认为0。单位比例:页面录入。个人比例:页面录入。单位月应缴额:等于单位下所有非销户个人的【单位月应缴额】之和,开户时默认为0。个人月应缴额:等于单位下所有非销户个人的【个人月应缴额】之和,开户时默认为0。单位人数:等于单位下所有非销户个人的人数,开户时默认为0。最后汇缴月:开户时默认为1899-12-01,待汇缴时改为实际汇缴年月,格式为:汇缴年份-月份-01。如:最后汇缴月实际为2010年10月,则该字段存储【2010-10-01】。公积金中心机构代码:默认为0110。柜员:默认为111111。建立日期:开户时插入当前系统日期,格式为yyyy-mm-dd。表二单位账户信息表列名中文名列类型列注释可否为空默认值UNITACCNUM单位公积金账号CHARACTER(12)UNITACCNAME单位名称CHARACTER(100)不可以UNITADDR单位地址CHARACTER(60)不可以ORGCODE组织机构代码CHARACTER(20)不可以UNITCHAR单位类别CHARACTER(1)1-企业
2-事业
3-机关
4-团体
5-其他不可以UNITKIND企业类型CHARACTER(3)110-国有经济
120-集体经济
130-股份合作企业
140-联营企业
150-有限责任公司
160-股份有限公司
170-私营企业
190-其他企业
200-港、澳、台商投资企业
300-外商投资企业
900-其他不可以SALARYDATE发薪日期CHARACTER(2)可以UNITPHONE联系电话CHARACTER(20)不可以UNITLINKMAN单位联系人CHARACTER(24)不可以UNITAGENTPAPNO经办人身份证号码CHARACTER(20)可以ACCSTATE账户状态CHARACTER(1)0-正常9-销户不可以BALANCE公积金余额DECIMAL(16,2)不可以BASENUMBER缴存基数DECIMAL(16,2)不可以UNITPROP单位比例DECIMAL(6,3)不可以PERPROP个人比例DECIMAL(6,3)不可以UNITPAYSUM单位月应缴额DECIMAL(16,2)不可以PERPAYSUM个人月应缴额DECIMAL(16,2)不可以PERSNUM单位人数INTEGER非销户人数不可以LASTPAYDATE最后汇缴月DATE不可以1899-12-01INSTCODE机构代码CHARACTER(8)不可以默认为0110OP柜员CHARACTER(4)不可以默认为111111CREATDATE建立日期DATE不可以REMARK备注CHARACTER(64)可以表3-2住房公积金单位信息表个人公积金帐号:自动生成,取系统参数表中键值为【PERACCNUM】对应记录的【当前序号】,帐号长度12位字符,不足12位前面补0。单位公积金帐号:页面录入。开户日期:个人开户时的系统日期。公积金余额:开户时为0,当进行汇缴或提取等资金类业务时修改此余额及其单位的公积金余额。个人账户状态:开户时默认为0。缴存基数:页面录入。单位比例:取单位信息的单位比例,在0.05-0.12范围之内,否则报错。个人比例:取单位信息的个人比例,在0.05-0.12范围之内,否则报错。最后汇缴月:开户时默认为1899-12-01,待汇缴时改为实际汇缴年月,格式为:汇缴年份-月份-01。如:最后汇缴月实际为2010年10月,则该字段存储【2010-10-01】。表三个人开户信息表列名中文名列类型列注释可否为空默认值ACCNUM个人公积金账号CHARACTER(12)0不可以UNITACCNUM单位公积金账号CHARACTER(12)0不可以OPENDATE开户日期DATEBALANCE公积金余额DECIMAL(16,2)PERACCSTATE个人账户状态CHARACTER(1)BASENUMBER缴存基数DECIMAL(16,2)UNITPROP单位比例DECIMAL(6,3)INDIPROP个人比例DECIMAL(6,3)LASTPAYDATE最后汇缴月DATE1899-12-01UNITMONPAYSUM单位月应缴额DECIMAL(16,2)PERMONPAYSUM个人月应缴额YPAYAMT本年汇补缴额DECIMAL(16,2)自然年度YDRAWAMT年提取额DECIMAL(16,2)自然年度YINTERESTBAL年度结息DECIMAL(16,2)INSTCODE机构代码CHARACTER(8)不可以默认为0110OP柜员CHARACTER(4)不可以默认为111111REMARK备注CHARACTER(64)可以表3-3住房发奖金个人信息4算法设计4.1住房公积金管理系统活动图图4.1住房公积金活动图5.项目运行界面6.关键代码(要求在类的定义以及方法定义的前面给出相关描述信息)6.1添加单位信息的关键代码。 publicintadd(TB002tb,Connectioncon)throwsException{ Stringsql="insertintotb002values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,tb.getUNITACCNUM()); pstmt.setString(2,tb.getUNITACCNAME()); pstmt.setString(3,tb.getUNITADDR()); pstmt.setString(4,tb.getORGCODE()); pstmt.setString(5,tb.getUNITCHAR()); pstmt.setString(6,tb.getUNITKIND()); pstmt.setString(7,tb.getSALARYDATE()); pstmt.setString(8,tb.getUNITPHONE()); pstmt.setString(9,tb.getUNITLINKMAN()); pstmt.setString(10,tb.getUNITAGENTPAPNO()); pstmt.setString(11,tb.getACCSTATE()); pstmt.setBigDecimal(12,tb.getBALANCE()); pstmt.setBigDecimal(13,tb.getBASENUMBER()); pstmt.setBigDecimal(14,tb.getUNITPROP()); pstmt.setBigDecimal(15,tb.getPERPROP()); pstmt.setBigDecimal(16,tb.getUNITPAYSUM()); pstmt.setBigDecimal(17,tb.getPERPAYSUM()); pstmt.setLong(18,tb.getPERSNUM()); pstmt.setDate(19,tb.getLASTPAYDATE()); pstmt.setString(20,tb.getINSTCODE()); pstmt.setString(21,tb.getOP()); pstmt.setDate(22,tb.getCREATDATE()); pstmt.setString(23,tb.getREMARK()); returnpstmt.executeUpdate(); }6.2查询单位总记录数的关键代码。 publicintUnitCount(Connectioncon)throwsException{ Stringsql="selectcount(*)astotalfromtb002"; PreparedStatementpstmt=con.prepareStatement(sql); ResultSetrs=pstmt.executeQuery(); if(rs.next()){ returnrs.getInt("total"); }else{ return0; } }6.3查询单位指定条数的关键代码。 publicResultSetunitList(Connectioncon,PageBeanpageBean)throwsException{ StringBuffersb=newStringBuffer("select*fromtb002"); if(pageBean!=null){ sb.append("limit"+pageBean.getStart()+","+pageBean.getRows()); } PreparedStatementpstmt=con.prepareStatement(sb.toString()); returnpstmt.executeQuery(); }6.4按单位名称模糊匹配查询的关键代码。 publicResultSetUnitSearchByName(Connectioncon,StringUNITACCNAME)throwsException{ StringBuffersql=newStringBuffer("select*fromtb002"); if(StringUtil.isNotEmpty(UNITACCNAME)){ sql.append("andUNITACCNAMElike'%"+UNITACCNAME+"%'"); } PreparedStatementpstmt=con.prepareStatement(sql.toString().replaceFirst("and","where")); returnpstmt.executeQuery(); }}6.5个人开户的关键代码。 publicintadd(Connectioncon,TB003tb)throwsException{ Stringsql="insertintotb003values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,tb.getACCNUM()); pstmt.setString(2,tb.getUNITACCNUM()); pstmt.setDate(3,tb.getOPENDATE()); pstmt.setBigDecimal(4,tb.getBALANCE()); pstmt.setString(5,tb.getPERACCSTATE()); pstmt.setBigDecimal(6,tb.getBASENUMBER()); pstmt.setBigDecimal(7,tb.getUNITPROP()); pstmt.setBigDecimal(8,tb.getINDIPROP()); pstmt.setDate(9,tb.getLASTPAYDATE()); pstmt.setBigDecimal(10,tb.getUNITMONPAYSUM()); pstmt.setBigDecimal(11,tb.getPERMONPAYSUM()); pstmt.setBigDecimal(12,tb.getYPAYAMT()); pstmt.setBigDecimal(13,tb.getYDRAWAMT()); pstmt.setBigDecimal(14,tb.getYINTERESTBAL()); pstmt.setString(15,tb.getINSTCODE()); pstmt.setString(16,tb.getOP()); pstmt.setString(17,tb.getREMARK()); pstmt.setString(18,tb.getUNITNAME()); pstmt.setString(19,tb.getIDCARD()); pstmt.setString(20,tb.getPERSONNAME()); returnpstmt.executeUpdate(); }6.6个人开户的所有信息显示关键代码。 publicintUnitCount(Connectioncon)throwsException{ Stringsql="selectcount(*)astotalfromtb003"; PreparedStatementpstmt=con.prepareStatement(sql); ResultSetrs=pstmt.executeQuery(); if(rs.next()){ returnrs.getInt("total"); }else{ return0; } }6.7查询个人信息条数的关键代码。 publicintUnitCount(Connectioncon)throwsException{ Stringsql="selectcount(*)astotalfromtb003"; PreparedStatementpstmt=con.prepareStatement(sql); ResultSetrs=pstmt.executeQuery(); if(rs.next()){ returnrs.getInt("total"); }else{ return0; } }6.8查询个人公积金账号的关键代码。 publicResultSetcount(Connectioncon)throwsException{ Stringsql="select*fromtb004orderbyPERACCNUMDESClimit1"; PreparedStatementpstmt=con.prepareStatement(sql); returnpstmt.executeQuery(); }6.9增加账号到表中的关键代码。 publicintadd(Connectioncon,StringPERACCNUM)throwsException{ Stringsql="insertintotb004(PERACCNUM)values(?)"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,PERACCNUM); returnpstmt.executeUpdate(); }6.10按照个人账号实现模糊匹配的关键代码。 publicResultSetPersonSearchById(Connectioncon,StringACCNUM)throwsException{ StringBuffersql=newStringBuffer("select*fromtb003"); if(StringUtil.isNotEmpty(ACCNUM)){ sql.append("andACCNUMlike'%"+ACCNUM+"%'"); } PreparedStatementpstmt=con.prepareStatement(sql.toString().replaceFirst("and","where")); returnpstmt.executeQuery(); }6.11按单位账户查询信息关键代码。 publicResultSetexecuteQuery(Connectioncon)throwsException{ PreparedStatementpstmt=con.prepareStatement("selectUNITACCNUMfromtb002"); returnpstmt.executeQuery(); }6.12处理页面中文乱码的关键代码。publicclassEncondingFilterimplementsFilter{ privateStringtargetEncoding="gb2312"; privateFilterConfigfilterConfig; publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1, FilterChainchain)throwsIOException,ServletException{ //System.out.println("filterrun."); HttpServletRequestrequest=(HttpServletRequest)arg0; HttpServletResponseresponse=(HttpServletResponse)arg1; request.setCharacterEncoding(targetEncoding);//把请求用指定的方式编码 response.setCharacterEncoding(targetEncoding); chain.doFilter(arg0,arg1); } publicvoidinit(FilterConfigconfig)throwsServletException{ this.filterConfig=config; this.targetEncoding=config.getInitParameter("encoding"); } publicvoiddestroy(){ this.filterConfig=null; } publicvoidsetFilterConfig(finalFilterConfigfilterConfig){ this.filterConfig=filterConfig; }}6.13数据库连接的关键代码。publicclassDbutil{ privateStringdbutil="jdbc:mysql://localhost:3306/db_HX"; privateStringdbusername="root"; privateStringpassword=""; privateStringjddbcName="com.mysql.jdbc.Driver"; publicConnectiongetCon()throwsException{ Class.forName(jddbcName); Connectioncon=DriverManager.getConnection(dbutil,dbusername,password); returncon; } publicvoidcloseCon(Connectioncon)throwsException{ if(con!=null){ con.close(); } } publicstaticvoidmain(String[]args){ Dbutildbutil=newDbutil(); try{ dbutil.getCon(); System.out.println("数据库连接成功!"); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); System.out.println("数据库连接失败!!"); } }}6.14个人开户的信息天剑关键代码。request.setCharacterEncoding("utf-8"); StringACCNUM;//个人公积金帐号; try{ con=dbutil.getCon(); ResultSetrs=psersonDao.count(con); if(rs.next()){ tb4.setUNITACCNUM(rs.getString(1)); tb4.setPERACCNUM(rs.getString(2)); } }catch(Exceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } if(tb4.getPERACCNUM()==null){ ACCNUM="000000000001"; }else{ intuNITACCNUM=Integer.valueOf(tb4.getPERACCNUM())+1; DecimalFormatdf=newDecimalFormat("000000000000"); ACCNUM=df.format(uNITACCNUM); } StringUNITACCNUM=request.getParameter("UNITACCNUM");//单位公积金帐号; // System.out.println(UNITACCNUM); DateOPENDATE=Date.valueOf(request.getParameter("OPENDATE"));//开户日期; StringyPAYAMT=request.getParameter("YPAYAMT");//本年汇缴额; StringUNITNAME=request.getParameter("UNITNAME"); StringIDCARD=request.getParameter("IDCARD"); StringPERSONNAME=request.getParameter("PERSONNAME"); BigDecimalYPAYAMT=newBigDecimal(yPAYAMT); BigDecimalYDRAWAMT=newBigDecimal(request.getParameter("YDRAWAMT"));//年提取额; BigDecimalYINTERESTBAL=newBigDecimal(request.getParameter("YINTERESTBAL"));//年度结息; StringPERACCSTATE=request.getParameter("PERACCSTATE");//账户状态; BigDecimalBALANCE=newBigDecimal(request.getParameter("BALANCE"));//公积金金额; BigDecimalBASENUMBER=newBigDecimal(request.getParameter("BASENUMBER"));//缴存基数; BigDecimalUNITPROP=newBigDecimal(request.getParameter("UNITPROP"));//单位比例; BigDecimalINDIPROP=newBigDecimal(request.getParameter("INDIPROP"));//个人比例; BigDecimalUNITMONPAYSUM=newBigDecimal(request.getParameter("UNITMONPAYSUM"));//单位月应缴额; BigDecimalPERMONPAYSUM=newBigDecimal(request.getParameter("PERMONPAYSUM"));//个人月应缴额; DateLASTPAYDATE=Date.valueOf(request.getParameter("LASTPAYDATE"));//最后汇缴月; StringINSTCODE=request.getParameter("INSTCODE");//公积金中心机构代码; StringOP=request.getParameter("OP");//柜员 StringREMARK=request.getParameter("REMARK");//备注 TB003tb3=newTB003(ACCNUM,UNITACCNUM,OPENDATE,BALANCE, PERACCSTATE,BASENUMBER,UNITPROP,INDIPROP,LASTPAYDATE, UNITMONPAYSUM,PERMONPAYSUM,YPAYAMT,YDRAWAMT,YINTERESTBAL, INSTCODE,OP,REMARK,UNITNAME,IDCARD,PERSONNAME); Toolt=newTool(); PrintWriterout=response.getWriter(); try{ //con=dbutil.getCon(); inttb004=psersonDao.add(con,ACCNUM);//添加返回的数据 if(psersonDao.add(con,tb3)>0){ t.printAlert(out,"添加成功","PersonList"); }else{ t.printAlertAndGoBack(out,"添加失败"); } }catch(Exceptione){ //TODO:handleexception e.printStackTrace(); }finally{ try{ dbutil.closeCon(con); con.close(); }catch(Exceptione){ e.printStackTrace(); }7.心得体会及建议即短暂又紧张的实训结束了,从这次实训当中我学到了很多东西,最重要的是提高了我的实际动手能力而不是纸上谈兵。让每个学生都有了很大的提高以及自我的超越,这种超越不仅是动手能力上的超越而且还是心理上的超越,同时我们要相信自己可以超越自己,自己可以打败自己。在这实训的二个多礼拜当中,但是我从中学到了很多东西,因为只有在自己实际操作的时候你才会发现很多问题,因为只有在上机实际操作时,你才
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 发电机企业管理方案
- 2026年中考英语填空题库及答案详解
- 工程承包合同模板
- 2026义务教育语文新课标课程标准题库附含答案
- 2026年吉林白山中小学教师招聘考试卷附答案
- 2026年保密考试简答题真题卷
- 2026年安徽铜陵市中小学教师招聘考试试卷含答案
- 高中英语北师大版 (2019)必修 第二册Lesson 2 Professional Rescue Team教案及反思
- 第四节 光的干涉教学设计高中物理粤教版2019选择性必修 第一册-粤教版2019
- 贵州省惠水民族中学高中地理《环境保护》第7-8课时教学设计 新人教版选修6
- 费斯汀格法则原文
- 2023中国无菌透明质酸白皮书
- 2023年山东春考语文真题
- 授权:如何激发全员领导力
- 《大学英语英语六级》教学大纲
- 典范英语8-17Doughnut Dilemma原文+翻译
- GB/T 14353.1-2010铜矿石、铅矿石和锌矿石化学分析方法第1部分:铜量测定
- 六年级英语下册Unit9TheYear2050课件
- 人教版《图形的放大与缩小》完美版课件3
- 燃料电池原理及应用课件-002
- 《医学遗传学》教学大纲(本科)
评论
0/150
提交评论