超市账单管理系统doc.docx

上传人:b****6 文档编号:7017798 上传时间:2023-01-16 格式:DOCX 页数:23 大小:388.19KB
下载 相关 举报
超市账单管理系统doc.docx_第1页
第1页 / 共23页
超市账单管理系统doc.docx_第2页
第2页 / 共23页
超市账单管理系统doc.docx_第3页
第3页 / 共23页
超市账单管理系统doc.docx_第4页
第4页 / 共23页
超市账单管理系统doc.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

超市账单管理系统doc.docx

《超市账单管理系统doc.docx》由会员分享,可在线阅读,更多相关《超市账单管理系统doc.docx(23页珍藏版)》请在冰豆网上搜索。

超市账单管理系统doc.docx

超市账单管理系统doc

3系统详细设计

3.1数据表结构设计

根据本项目的实际需求以及应用规模,我们只需要建立一个数据库,在该数据库中建立三个数据表。

(1)用户信息表consumer

(2)商品信息表product

(3)供应商信息表provider

对这3个数据表的字段名称、数据类型及属性具体说明如表3-1至表3-3所示:

表3-1用户信息表(consumer)

字段名(中文)

字段名(英文)

数据类型

长度

是否为空

用户编号

C_ID

Varchar2

20

No

用户名称

USERNAME

Varchar2

20

No

用户密码

PASSWORD

Varchar2

20

No

用户年龄

C_AGE

Number

20

No

用户性别

C_SEX

Varchar2

20

No

用户电话

C_PHONE

Varchar2

20

No

用户地址

C_ADDRESS

Varchar2

20

No

用户权限

C_AUTHORITY

Number

20

No

表3-2商品信息表(product)

字段名(中文)

字段名(英文)

数据类型

长度

是否为空

商品编号

PD_ID

Varchar2

20

No

商品名称

PD_NAME

Varchar2

20

No

商品数量

PD_NUMBER

Number

20

No

商品金额

AMOUNT

Number

20

No

商品描述

PD_DESCRIPTION

Varchar2

100

No

是否付款

PAYMENT

Varchar2

20

No

创建时间

CREATETIME

DATE

No

表3-3供应商信息表(provider)

字段名(中文)

字段名(英文)

数据类型

长度

是否为空

供应商编号

PV_ID

Varchar2

20

No

供应商名称

PV_NAME

Varchar2

20

No

联系人

LINKMAN

Varchar2

20

No

供应商号码

PV_PHONE

Varchar2

20

No

供应商描述

PV_DESCRIPTION

Varchar2

100

No

供应商地址

PV_ADDRESS

Varchar2

50

No

3.2主页面设计

本系统的所有界面采用Internet的设计方式,借鉴于网页的设计方法,本系统的界面

设计成如图3-1所示:

图3-1界面布局图

主界面包含三个主要区域,Part1为标题区,只显示系统标题;Part2为导航条区,显示全部的功能菜单;Part3为操作区域也是最大的区域,全部的数据录入,数据显示均在这里进行。

当点击Part2菜单中的按钮时,Part3中将显示不同的内容。

此功能通过iframe框架来实现,在三个区域包含不同的子页面。

3.3系统个子模块详细设计

本系统共有四个模块,分别为登录模块,用户管理模块,账单管理模块和供应商管理模块。

下面将分别对四个模块进行详细的介绍。

3.3.1登录模块

用户打开登录页面,在页面输入自己的用户名及密码,并且输入验证码,才能点击登录按钮,在提交表单之前,会在客户端对提交的表单进行非空验证,并会在下方显示出相应的提示。

前端验证通过后,系统会从数据库查询输入的用户名和对应的密码,当用户名存在并且密码正确时,登录成功,进入首页。

否则返回登陆页面,并显示“用户名或密码错误”的信息,用户需重新登录。

登陆界面如图3-2所示:

图3-2系统登录页面

主要代码见附录:

系统登录主代码。

当用户成功登陆后,页面上方会显示蓝色的登录用户的名称,并且会根据用户的权限显示相应的导航菜单,便于不同用户进行不同的操作。

管理员和普通用户登录成功进入的首页,如图3-3和3-4所示:

图3-3管理员登陆界面

图3-4普通用户登陆界面

3.3.2用户管理模块

点击左边导航栏中的“用户管理”,会进入用户管理界面。

用户可以在此界面根据需求对数据进行增、删、改、查等相关操作。

如图3-5所示:

图3-5用户管理界面

在这个界面中,用户可以通过在搜索框输入用户名,查找到所有符合条件的结果,如图3-6所示:

图3-6查找用户界面

主要代码见附录:

查找用户主代码。

用户也可以在用户界面点击“添加数据”按钮来进行数据的添加功能。

并且在添加的时候,会对特定项进行非空验证,并且会有相应的提示。

添加成功后,会更新数据库列表并进入用户首页。

如图3-7所示:

图3-7添加用户

主要代码见附录:

添加用户主代码。

在用户管理首页,点击用户名称会跳转到用户详情页面,可以查看用户更加详细的信息。

如图3-8所示:

图3-8用户详情

主要代码见附录:

查看用户详情主代码。

在用户详情页面中,用户可以根据需求修改用户的信息,也可以删除此用户。

修改信息会对所填表单进行非空判断,点击“提交”按钮时,会更新数据库并显示到页面。

如图3-9所示:

图3-9修改用户信息

主要代码见附录:

修改用户主代码。

3.3.3账单管理模块

点击左边导航栏中的“账单管理”,会进入账单管理界面。

用户可以在此界面根据不同需求对数据进行增、删、改、查等相关操作。

如图3-10所示:

图3-10账单管理界面

在这个界面,用户可以通过搜索框输入商品名称,查找到符合条件的结果,如图3-11所示:

图3-11查找账单界面

主要代码见附录:

查找账单主代码。

用户也可以在账单界面点击“添加数据”按钮来进行数据的添加功能。

并且在添加的时候,会对特定项进行非空验证,并且会有相应的提示。

添加成功后,会更新数据库列表并返回账单首页。

如图3-12所示:

图3-12添加账单

主要代码见附录:

添加账单主代码。

在账单管理首页,点击商品名称会跳转到账单详情页面,可以查看账单更加详细的信息。

如图3-13所示:

图3-13账单详情

主要代码见附录:

查看账单详情主代码。

在账单详情页面中,用户可以根据需求修改账单的信息,也可以删除此账单。

修改信息会对所填表单进行非空验证,点击“提交”按钮时,会更新数据库并显示到页面。

如图3-14所示:

图3-14修改账单信息

主要代码见附录:

修改账单主代码。

3.3.4供应商管理

点击左边导航栏中的“供应商管理”,会进入供应商管理界面。

用户可以在此界面根据不同需求对数据进行增、删、改、查等相关操作。

如图3-15所示:

图3-15供应商管理界面

在这个界面,用户可以通过搜索框输入供应商名称,查找到符合条件的结果,如图3-16所示:

图3-16查找供应商

主要代码见附录:

查找供应商主代码。

用户也可以在供应商界面点击“添加数据”按钮来进行数据的添加功能。

并且在添加的时候,会对特定项进行非空验证,并且会有相应的提示。

添加成功后,会更新数据库列表并返回供应商首页。

如图3-17所示:

图3-17添加供应商

主要代码见附录:

添加供应商主代码。

在供应商管理首页,点击供应商名称会跳转到供应商详情页面,可以查看供应商更加详细的信息。

如图3-18所示:

图3-18供应商详情

主要代码见附录:

查看供应商详情主代码。

在供应商详情页面中,用户可以根据需求修改供应商的信息,也可以删除此供应商。

修改信息会对所填表单进行非空判断,点击“提交”按钮时,会更新数据库并显示到页面。

如图3-19所示:

图3-19修改供应商信息

4系统的特点与不足

4.1系统的特点

1开发简单

本系统是基于javaweb开发的系统,使用MVC模式实现,主要用JavaBean、Jsp和Servlet技术充当MVC模式中的模型层、视图层和控制层,依靠Servlet技术接收Jsp传来的参数,根据不同情况调用不同的JavaBean处理用户请求,跳转到相应的Jsp页面将结果展现给用户。

整个系统结构清晰,结构简单,便于开发。

2便于维护和升级

本系统使用JDBC技术连接数据库,可以连接不同数据库,可移植性好;同时,整个系统的代码按照功能进行了详细的分层,结构明确,有条有理,方便开发人员对系统功能的扩展、升级和维护。

3使用方便

本系统使用B/S架构实现,因此在使用时无需安装其他客户端软件,在浏览器上就可以完成登录和其他操作。

同时,用户界面是采用Internet的设计方式,界面简单、整洁,导航清晰,用户很快就可以掌握使用方法。

4系统安全、稳定

本系统的软件建立在性能稳定的Windows操作平台上的,系统在开发以及调试的时候,每一个阶段都经过严格把关,每一个流程都进过严格的测试,确保系统的安全性和稳定性。

4.2系统的不足

1功能不太完善

由于时间仓促,并且没有什么经验,所以系统开发的时候考虑的不是很周全,系统实现的功能过于简单,只是简单的实现了用户、账单和商品的增、删、改、查。

没有更复杂的操作。

而且项目中就简单的创建了三个表,而且表与表之间没有什么关联,这在实际应用中

附录

系统登录主代码

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

//处理乱码

response.setContentType("text/html;charset=UTF-8");

request.setCharacterEncoding("UTF-8");

PrintWriterout=response.getWriter();

//接受参数

StringstrUsername=request.getParameter("username");

StringstrPassword=request.getParameter("password");

//调用Service层得到用户,判断权限

ConsumerServiceconsumerService=newConsumerServiceImpl();

Consumeritem=consumerService.getUserByUsername(strUsername);

HttpSessionsession=request.getSession();

session.setAttribute("user",item);

//调用service层进行登录验证

Booleanresult=consumerService.login(strUsername,strPassword);

if(result){//登录成功

response.sendRedirect("/project/page/index.jsp");

}else{

Stringreason="用户名或密码错误";

session.setAttribute("reason",reason);

response.sendRedirect("/project/page/login.jsp");

}

}

查找用户主代码

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

//处理乱码

response.setContentType("text/html;charset=UTF-8");

request.setCharacterEncoding("UTF-8");

//接受参数(主要用于根据用户名查找列表,username是从查找页面传过来的)

StringstrUsername=request.getParameter("userName");

//分页

PageBeanpb=newPageBean();

StringstrCurrentPage=request.getParameter("currentPage");

if(strCurrentPage!

=null&&!

"".equals(strCurrentPage)){

pb.setCurrentPage(Integer.parseInt(strCurrentPage));

}

StringstrPageSize=request.getParameter("pageSize");

if(strPageSize!

=null&&!

"".equals(strPageSize)){

pb.setPageSize(Integer.parseInt(strPageSize));

}

//调用Service层,获得所有用户列表

ConsumerServiceconsumerService=newConsumerServiceImpl();

Listlist=

consumerService.getAllUsersByPage(pb,strUsername);

request.setAttribute("list",list);

request.setAttribute("pb",pb);

request.getRequestDispatcher("/page/userIndex.jsp").forward(request,response);

}

添加用户主代码

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

//处理乱码

response.setContentType("text/html;charset=UTF-8");

request.setCharacterEncoding("UTF-8");

//接受页面的参数

StringstrId=request.getParameter("userId");

StringstrName=request.getParameter("username");

StringstrPass=request.getParameter("password");

StringstrAge=request.getParameter("age");

StringstrSex=request.getParameter("sex");

StringstrPhone=request.getParameter("phone");

StringstrAddress=request.getParameter("address");

StringstrAuthority=request.getParameter("authority");

//封装到用户对象

Consumeruser=newConsumer();

user.setC_id(Integer.parseInt(strId));

user.setUsername(strName);

user.setPassword(strPass);

user.setC_age(Integer.parseInt(strAge));

user.setC_sex(strSex);

user.setC_phone(strPhone);

user.setC_address(strAddress);

user.setC_authority(Integer.parseInt(strAuthority));

//调用Service层进行添加

ConsumerServiceconsumerService=newConsumerServiceImpl();

intresult=consumerService.addUser(user);

PrintWriterout=response.getWriter();

if(result>0){//添加成功

out.println("");

out.close();

}else{

out.println("");

out.close();

}

}

查看用户详情主代码

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

//处理乱码

response.setContentType("text/html;charset=UTF-8");

request.setCharacterEncoding("UTF-8");

//接受参数

StringstrId=request.getParameter("id");

intid=Integer.parseInt(strId);

//根据id获得对象

ConsumerServiceconsumerService=newConsumerServiceImpl();

Consumeruser=consumerService.getUserById(id);

request.setAttribute("user",user);

request.getRequestDispatcher("/page/userDetail.jsp").forward(request,response);

}

修改用户主代码

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

//处理乱码

response.setContentType("text/html;charset=UTF-8");

request.setCharacterEncoding("UTF-8");

//接受参数

StringstrId=request.getParameter("id");

StringstrUsername=request.getParameter("username");

StringstrPassword=request.getParameter("password");

StringstrSex=request.getParameter("sex");

StringstrAge=request.getParameter("age");

StringstrPhone=request.getParameter("phone");

StringstrAddress=request.getParameter("address");

StringstrAuthority=request.getParameter("authority");

intid=Integer.parseInt(strId);

intage=Integer.parseInt(strAge);

intauthority=Integer.parseInt(strAuthority);

//根据id获得该对象,进行封装

ConsumerServiceconsumerService=newConsumerServiceImpl();

Consumeruser=newConsumer();

user.setC_id(id);

user.setUsername(strUsername);

user.setPassword(strPassword);

user.setC_sex(strSex);

//user.setC_age(age);

user.setC_phone(strPhone);

user.setC_authority(authority);

user.setC_address(strAddress);

//调用方法,保存修改

intresult=consumerService.updateUser(user);

PrintWriterout=response.getWriter();

if(result>0){//成功

out.println("");

out.close();

}else{//失败

out.println("");

out.close();

}

}

查找账单主代码

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

//处理乱码

response.setContentType("text/html;charset=UTF-8");

request.setCharacterEncoding("UTF-8");

//接受参数(用于根据商品名称查询)

StringstrName=request.getParameter("pd_Name");

//分页

PageBeanpb=newPageBean();

StringstrCurrentPage=request.getParameter("currentPage");

if(strCurrentPage!

=null&&!

"".equals(strCurrentPage)){

pb.setCurrentPage(Integer.parseInt(strCurrentPage));

}

StringstrPageSize=request.getParameter("pageSize");

if(strPageSize!

=null&&!

"".equals(strPageSize)){

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

当前位置:首页 > 教学研究 > 教学计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1