JSP网络程序设计课程设计报告.docx
《JSP网络程序设计课程设计报告.docx》由会员分享,可在线阅读,更多相关《JSP网络程序设计课程设计报告.docx(27页珍藏版)》请在冰豆网上搜索。
JSP网络程序设计课程设计报告
项目组名称
曙光
班级
132401班
代码总行数
3000
项目名称
住房公积金管理系统
1.项目来源及目的
住房公积金是一种长期性住房储蓄,在职工工作期间,职工个人和所在单位均应按照职工个人工资和职工工资总额的一定比例逐月筹集,作为职工个人住房基金,专户储存、统一管理、专项使用,并且为以后职工住房贷款提供贷款资金。
所有党政机关、企事业单位的固定职工、劳动合同制职工以及三资企业等中方员工,均应交纳住房公积金。
公积金管理中心应用住房公积金管理系统对缴存单位及职工缴纳的公积金进行信息化管理。
2.项目内容
1.柜员的功能:
首先,柜员进行登录为员工开户,登陆成功之后,进行单位开户,如果单位开户成功进入个人开户,否则不能进行个人开户。
个人开户的方法是:
手工录入开户。
图2-1柜员用例图
2.管理员功能:
管理员只进行参数系统的维护功能
图2-2管理员用例图
3.类图
1.用户参数类图
图3-1用户参数类图
2.系统参数类图
图3-2系统参数类图
3.个人信息类图
图3-3个人信息类图
4.企业信息类图
图3-4企业信息类图
4.算法设计
1.系统参数表
图4-1系统参数表
表名
Tb001
表注释
系统参数表
列名
中文名
列类型
列注释
可否为空
默认值
SEQNAME
键值信息
CHARACTER(20)
可自定义序号键值信息(如UNITACCNUM、PERACCNUM)。
不可以
SEQ
当前序号
CHARACTER(20)
从1开始,每次取完递增
不可以
MAXSEQ
最大序号
INTEGER
不可以
999999999
DESC
描述
CHARACTER(40)
不可以
FREEUSE1
备用1
CHARACTER(20)
可以
索引名
索引类型
包含字段
TB001_PK_1
唯一索引
SEQNAME
2.单位信息表
图4-2单位信息表
表名
Tb002
表注释
系统参数表
列名
中文名
列类型
列注释
可否为空
默认值
UNITACCNUM
单位公积金账号
CHARACTER(12)
UNITACCNAME
单位名称
CHARACTER(100)
从1开始,每次取完递增
不可以
UNITADDR
单位地址
CHARACTER(60)
不可以
ORGCODE
组织机构代码
CHARACTER(20)
不可以
SALARYDATE
发薪日期
CHARACTER
(2)
可以
UNITPHONE
联系电话
CHARACTER(20)
不可以
UNITCHAR
单位类别
CHARACTER
(1)
1-企业
2-事业
3-机关
4-团体
5-其他
不可以
UNITKIND
企业类型
CHARACTER(3)
110-国有经济
120-集体经济
130-股份合作企业
140-联营企业
150-有限责任公司
160-股份有限公司
170-私营企业
190-其他企业
200-港、澳、台商投资企业
300-外商投资企业
900-其他
不可以
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-01
INSTCODE
公积金中心机构代码
CHARACTER(8)
不可以
默认为0110
OP
柜员
CHARACTER(4)
不可以
默认为
111111
CREATDATE
建立日期
DATE
不可以
REMARK
备注
CHARACTER(64)
可以
索引名
索引类型
包含字段
TB002_PK_1
唯一索引
UNITACCNUM
3.个人信息表
图4-3个人信息表
表名
Tb003
表注释
个人基本资料表
列名
中文名
列类型
列注释
可否为空
默认值
ACCNUM
个人公积金账号
CHARACTER(12)
0
不可以
UNITACCNUM
单位公积金账号
CHARACTER(12)
0
不可以
OPENDATE
开户日期
DATE
BALANCE
公积金余额
DECIMAL(16,2)
PERACCSTATE
个人账户状态
CHARACTER
(1)
0-正常
9-销户
BASENUMBER
缴存基数
DECIMAL(16,2)
UNITPROP
单位比例
DECIMAL(6,3)
INDIPROP
个人比例
DECIMAL(6,3)
LASTPAYDATE
最后汇缴月
DATE
1899-12-01
UNITMONPAYSUM
单位月应缴额
DECIMAL(16,2)
PERMONPAYSUM
个人月应缴额
YPAYAMT
本年汇补缴额
DECIMAL(16,2)
自然年度
YDRAWAMT
年提取额
DECIMAL(16,2)
自然年度
YINTERESTBAL
年度结息
DECIMAL(16,2)
INSTCODE
公积金中心机构代码
CHARACTER(8)
不可以
默认为0110
OP
柜员
CHARACTER(4)
不可以
默认为
111111
REMARK
备注
CHARACTER(64)
可以
索引名
索引类型
包含字段
TB003_PK_1
唯一索引
ACCNUM
TB003_PK_2
索引
UNITACCNUM
4.单位用户登陆活动图
柜员用户登录进入系统后可以进行的操作:
开户(包括员工开户和单位开户),员工开户管理(包括新增、修改、删除和查看员工开户信息等),单位开户(包括新增、修改、删除和查看单位开户信息等)。
图4-4柜员活动图—单位用户登录
5.个人用户管理模块活动图
个人登录进入系统后可以进行的操作:
个人信息查询和个人信息修改。
图4-5柜员活动图---个人管理模块
6.单位管理模块活动图
单位用户进入系统后可以进行的操作:
单位信息查询和单位信息修改操作。
图4-6柜员活动图---单位管理模块
7.管理员活动图
管理员用户登录进入系统后可以进行的操作:
系统参数的维护。
图4-7管理员活动图
5.项目运行界面
1.首页,登录页面。
(1)柜员用户登录进入系统后可以进行操作。
图5-1登录界面
(2)柜员在登录系统时会进行帐户、密码的校验,不能错误、为空。
图5-2登录校验界面
(3)登录成功后进入系统主界面。
图5-3登录成功界面
(4)登录帐户、密码过程中出现错误则进入错误页面。
图5-4登录出错界面
2.柜员登陆后的界面。
(1)柜员登录时系统管理入口如图5-5,在进入系统的时候,需要对柜员进行身份验证,验证信息输入错误时,不能进入系统,输入正确时,才能进入系统管理的主页面。
图5-5柜员操作界面
3.企业开户界面
(1)柜员通过登录进入管理界面,可以进行一系列的操作,图5-5是柜员对单位的开户操作,添加后进行保存即可。
图5-6企业开户界面
(2)企业开户成功录入系统数据库。
图5-7企业开户成功界面
(3)对企业信息进行查询与修改。
图5-8企业查询界面
4.个人开户界面
(1)柜员通过登入进入管理界面后,可进行一系列的操作,图5-9是柜员对个人的开户操作,添加后进行保存即可。
图5-9个人开户界面
(2)单位个人开户信息填写的主界面。
图5-10个人开户成功界面
(3)对单位个人信息进行查询与修改。
图5-11个人信息查询界面
(4)对单位个人信息进行查询成功后的界面。
图5-12个人信息查询成功界面
6.关键代码(要求在类的定义以及方法定义的前面给出相关描述信息)
6.1登录
{
AdminInfoadmin=newAdminInfo();
DataBaseManagerdb=newDataBaseManager();
Stringusername=request.getParameter("value_1");
Stringpassword=request.getParameter("value_2");
admin.setUsername(username);
admin.setPassword(password);
HttpSessionsession=request.getSession();
session.setAttribute("admin",admin);
Stringsql="select*fromtb_adminwhereusername='"+username+"'andpassword='"+password+"'";
ResultSetrs=db.doQuery(sql);
try{
if(rs.next()){
request.getRequestDispatcher("index.jsp").forward(request,response);
}
else
request.getRequestDispatcher("loginError.jsp").forward(request,response);
}catch(SQLExceptione){
e.printStackTrace();
}
6.2个人开户
{
response.setContentType("text/html");
PrintWriterout=response.getWriter();
HttpSessionsession=request.getSession(true);
StringbussCount=request.getParameter("BussCount");
StringbussName=request.getParameter("BussName");
doublebussPersent=Double.parseDouble(request.getParameter("BussPersent"));
doubleperPersent=Double.parseDouble(request.getParameter("PerPersent"));
StringPersonName=request.getParameter("PersonName");
StringpersonId=request.getParameter("PersonId");
doublemaney=Double.parseDouble(request.getParameter("Maney"));
PersonListlist=newPersonList();
list.setBussName(bussName);
list.setBussPersent(bussPersent);
list.setManey(maney);
list.setName(PersonName);
list.setNumber(personId);
list.setPerPersent(perPersent);
session.setAttribute("list",list);
DataBaseManagerdb=newDataBaseManager();
Stringsql="SELECT*FROMtb001WHERESEQNAME='Person'";
ResultSetrs=db.doQuery(sql);
intseq=0;
try{
while(rs.next()){
seq=Integer.parseInt(rs.getString("SEQ"));
seq=seq+1;
//out.print(seq);
}
}catch(NumberFormatExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
//System.out.println(seq);
Stringupdatesql="UPDATEtb001SETSEQ="+seq+"WHERESEQNAME='person'";
db.doUpdate(updatesql);
Stringinsertsql="INSERTINTOtb003(ACCNUM,UNITACCNUM,PERACCSTATE,BASENUMBER,UNITPROP,INDIPROP,UNITMONPAYSUM)VALUES('"+seq+"','"+bussCount+"','0','"+maney+"','"+bussPersent+"','"+perPersent+"','0')";
intn=db.doUpdate(insertsql);
out.println("isgreat");
if(n>0){
response.sendRedirect("PersonMakeSuccess.jsp");
}
else{
response.sendRedirect("index.jsp");
}
}
6.3个人信息查询
{
response.setContentType("text/html");
PrintWriterout=response.getWriter();
Stringa=request.getParameter("Count");
HttpSessionsession=request.getSession(true);
DataBaseManagerdb=newDataBaseManager();
Stringsql="SELECT*FROMtb003WHEREUNITACCNUM='"+a+"'";
ResultSetrs=db.doQuery(sql);
try{
while(rs.next())
{
out.println("
");for(intn=1;n<18;n++){
out.println("
"); out.println(""+rs.getString(n)); n=n+1; out.println(" |
");}
out.println("
");
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
6.4企业开户
{
response.setContentType("text/html");
PrintWriterout=response.getWriter();
HttpSessionsession=request.getSession(true);
StringBusinessName=request.getParameter("BusinessName");
StringBusinessAdress=request.getParameter("BusinessAdress");
StringNumber=request.getParameter("Number");
StringBusinessCategory=request.getParameter("BusinessCategory");
StringBusinessClass=request.getParameter("BusinessClass");
StringManeyDate=request.getParameter("ManeyDate");
StringTel=request.getParameter("Tel");
StringBusinessMan=request.getParameter("BusinessMan");
StringMantel=request.getParameter("Mantel");
doubleBusinessPersent=Double.parseDouble(request.getParameter("BusinessPersent"));
doublePersonPersent=Double.parseDouble(request.getParameter("PersonPersent"));
Stringbeizhu=request.getParameter("beizhu");
BusinessListbus=newBusinessList();
bus.setBusinessAdress(BusinessAdress);
bus.setBusinessName(BusinessName);
bus.setBeizhu(beizhu);
bus.setBusinessCategory(BusinessCategory);
bus.setBusinessClass(BusinessClass);
bus.setBusinessMan(BusinessMan);
bus.setBusinessPersent(""+BusinessPersent);
bus.setManeyDate(ManeyDate);
bus.setMantel(Mantel);
bus.setNumber(Number);
bus.setPersonPersent(""+PersonPersent);
bus.setTel(Tel);
session.setAttribute("bus",bus);
DataBaseManagerdb=newDataBaseManager();
Stringsql="SELECT*FROMtb001WHERESEQNAME='Business'";
ResultSetrs=db.doQuery(sql);
intseq=0;
try{
while(rs.next()){
seq=Integer.parseInt(rs.getString("SEQ"));
seq=seq+1;
//out.print(seq);
}
}catch(NumberFormatExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
//System.out.println(seq);
Stringupdatesql="UPDATEtb001SETSEQ="+seq+"WHERESEQNAME='Business'";
db.doUpdate(updatesql);
Stringinsertsql="INSERTINTOtb002(UNITACCNUM,UNITACCNAME,UNITADDR,ORGCODE,UNITCHAR,UNITKIND,SALARYDATE,UNITPHONE,UNITLINKMAN,UNITPROP,UNITAGENTPAPNO,PERPROP,REMARK)VALUES('"+seq+"','"+BusinessName+"','"+BusinessAdress+"','"+Number+"','"+BusinessCategory+"','"+BusinessClass+"','"+ManeyDate+"','"+Tel+"','"+BusinessMan+"','"+Mantel+"',"+BusinessPersent+","+PersonPersent+",'"+beizhu+"')";
intn=db.doUpdate(insertsql);
if(n>0){
response.sendRedirect("BusinessMakeSuccess.jsp");
}
else{
response.sendRedirect("index.jsp");
}
}
6.5企业信息查询
{
response.setContentType("text/html");
PrintWriterout=response.getWriter();
Stringa=request.