基于CS框架的网上书店管理系统.docx

上传人:b****2 文档编号:724287 上传时间:2023-04-29 格式:DOCX 页数:21 大小:703.46KB
下载 相关 举报
基于CS框架的网上书店管理系统.docx_第1页
第1页 / 共21页
基于CS框架的网上书店管理系统.docx_第2页
第2页 / 共21页
基于CS框架的网上书店管理系统.docx_第3页
第3页 / 共21页
基于CS框架的网上书店管理系统.docx_第4页
第4页 / 共21页
基于CS框架的网上书店管理系统.docx_第5页
第5页 / 共21页
基于CS框架的网上书店管理系统.docx_第6页
第6页 / 共21页
基于CS框架的网上书店管理系统.docx_第7页
第7页 / 共21页
基于CS框架的网上书店管理系统.docx_第8页
第8页 / 共21页
基于CS框架的网上书店管理系统.docx_第9页
第9页 / 共21页
基于CS框架的网上书店管理系统.docx_第10页
第10页 / 共21页
基于CS框架的网上书店管理系统.docx_第11页
第11页 / 共21页
基于CS框架的网上书店管理系统.docx_第12页
第12页 / 共21页
基于CS框架的网上书店管理系统.docx_第13页
第13页 / 共21页
基于CS框架的网上书店管理系统.docx_第14页
第14页 / 共21页
基于CS框架的网上书店管理系统.docx_第15页
第15页 / 共21页
基于CS框架的网上书店管理系统.docx_第16页
第16页 / 共21页
基于CS框架的网上书店管理系统.docx_第17页
第17页 / 共21页
基于CS框架的网上书店管理系统.docx_第18页
第18页 / 共21页
基于CS框架的网上书店管理系统.docx_第19页
第19页 / 共21页
基于CS框架的网上书店管理系统.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于CS框架的网上书店管理系统.docx

《基于CS框架的网上书店管理系统.docx》由会员分享,可在线阅读,更多相关《基于CS框架的网上书店管理系统.docx(21页珍藏版)》请在冰点文库上搜索。

基于CS框架的网上书店管理系统.docx

基于CS框架的网上书店管理系统

基于C/S框架的网上书店管理系统

引 论

随着互联网的迅速发展,当下电子商务被广大的互联网用户所接受,网上书店系统作为其中的一部分也有了快速的发展。

网上购物也日益流行,贯穿着我们的日常生活,网上书店也自然成为我们网上消费的一部分。

1系统开发概况

本系统基于C/S框架的设计技术中的java语言开发,首先介绍一些关于网页设计的基本知识。

1.1课题的研究背景与意义

随着21世纪的到来,一个全新的信息时代已经展现在我们面前,计算机的先进技术和互联网技术迅猛发展,网络信息化已经成为全球性的大趋势,为人们提供了许多的信息资源和服务资源。

通过网络,全球范围内的人们既可以互通信息,交流思想,又可以获取方方面面的知识、经验和信息。

网上书店作为开放的资源为人们提供了所需的大量信息,而且还可以及时更新,是用户之间互相交流,互相学习的一个互动平台,具有一定的社会价值。

该系统为大家提供了查找书籍资源平台,任何安装过此软件的用户都可以在此获取有用的资源,此外通过该系统的编写可以对我们所学知识进行的检测、巩固和提高。

同时能是我们更加的了解当代网上购物的一些流程。

亲自体验网购的一些乐趣。

1.2论文的主要工作

(1)搜集和查阅大量国内外的有关文献和资料,网上书店系统采用基于J2SE的MVC结构。

使系统更具有良好的可扩展性、可维护性及平台无关性。

(2)结合本人的实际水平,设计出基于J2SE的网上书店系统架构。

个模块的可操作性,根据已

有的经验和技能,不断的对系统架构和使用技术做出改进。

(3)编写程序实现系统每个模块,数据库选用Oracle来存储数据。

(4)最后进行反复调试,在导师的指导下进行程序修改和调试,直到系统运行稳定。

(5)撰写论文。

2需求分析

软件需求分析是把软件设计时期建立的软件可行性分析求精和细化,分析种种可能的解法,并分配给各个软件元素。

需求分析是软件定义阶段中的最后一步,也是很重要的一步。

确定系统必须完成哪些工作,对目标系统提出完整、准确、清晰、具体的要求。

2.1系统的功能与分析

网上书店系统功能需求主要有:

用户端功能:

用户查询、个人信息管理、购买书籍、收藏夹、地址管理、修改个人信息。

管理员端功能:

对书籍进行增删改查的操作、查询用户的信息、修改自己的密码、可以查到本商店的所有定单,并且可以通过点击“发货”按钮进行发货,只有当买家确认收货之后,管理员才可以删除该订单。

买家和卖家之间可以通过聊天按钮进行聊天。

登录模块:

用户输入帐号和密码进行验证登录。

忘记密码:

如果用户忘记密码。

可以通过输入正确的用户名、电话和邮箱验证码找回密码。

注册模块:

用户或管理员输入正确的注册信息才可以注册,输入有误提示。

用户主界面模块:

用户查询:

用户可以查询书籍(支持模糊查询、和按类型按书名查询)。

个人信息管理:

用户可以完善个人信息,更换图像,修改密码等。

购买书籍:

用户输入正确的购买数量、收货信息可以进行购买。

订单:

购买后会生成一张订单。

购物车:

用户可以将商品加入购物车,可以通过购物车购买书籍,删除商品。

收藏夹:

用户可以商品收藏,可以对收藏夹进行增删改查。

地址管理:

用户可以提示设置一些地址,当购买书籍时可以直接点击按钮添加地址。

管理员界面模块:

管理员可以对对书籍进行增删改查的操作。

管理员可以查询用户的信息(但密码等敏感信息不能查询)。

管理员可以修改自己的密码。

管理员可以查到本商店的所有定单,并且可以进行发货,也可以删除该订单。

聊天:

买家和卖家之间可以通过聊天按钮进行聊天。

退出:

用户和管理员都可以进行直接退出系统或者是重新登录。

2.2系统设计环境

本系统开发采用C/S(客户端/服务器)模式,使用Java语言开发。

本系统服务器端运行在Windows环境下,数据库系统采用Oracle设计制作。

用户可以使用MicrosoftInternetExplorer7.0或Firefox浏览页面。

2.3系统功能模块图

图2-3前台功能模块图

图2-3-1后台功能模块图

3系统流程图及数据流图

数据库的设计是本系统的核心部分,本系统的全部开发都是围绕着数据库开发。

数据库设计的好坏直接关系到本系统的性能高低。

以及后来的一些维护工作。

3.1系统流程图

图3-1系统流程图

3.2数据流图

图3-2数据流图

4数据库设计

在数据库设计阶段,我们可以设计用户界面和系统中各个组成部分的功能和接口。

4.1管理员用户表设计

表4-1管理员用户表

字段名称

数据类型

备注

描述

adminId

Number

管理员编号

主键

adminName

Varchar2

用户名

不为空

password

Varchar2

密码

不为空

管理员用户表主要是管理员信息表数据,此表中设计管理员编号和管理员名及管理员密码。

4.2用户表设计

表4-2用户表

字段名称

数据类型

备注

描述

userName

Varchar2

用户名

主键

password

Varchar2

用户密码

不为空

phone

Varchar2

电话

age

number

用户年龄

email

Varchar2

用户邮箱

用户表主要是用户的信息数据,此表中涉及到用户名和用户的密码和用户电话,年龄,和邮箱地址。

可供用户登录时及购买图书等一些场合下使用。

4.3信息表设计

表4-3购物车表

字段名称

数据类型

备注

描述

id

Number

购物车编号

主键

userName

Varchar2

用户名

不为空

ISBN

Varchar2

图书编号

外键

Num

number

图书的数量

不为空

用户可以将自己选中的商品加入到购物车,当然也可以将这个购物车中的商品删除。

购物车表所需数据购物车id,用户名字段,图书编号,和购买图书数量。

类似于实体店的购物车便于用户存放图书购买图书。

表4-3-1订单表

字段名称

数据类型

备注

描述

ordereId

Number

订单号

主键

ISBN

Varchar2

图书编号

不为空

price

Varchar2

图书价格

num

number

购买数量

不为空

total

number

总价

username

Varchar2

用户名

不为空

Receiver

Varchar2

收件姓名

不为空

address

Varchar2

地址

不为空

postcode

Varchar2

邮编

time

date

订单时间

phone

Varchar2

电话

不为空

bookName

Varchar2

书名

不为空

Num

number

图书的数量

不为空

用户的订单表涉及到订单的id和图书编号、图书的价格和用户名购买图书的数量以及订单的时间、用户姓名、用户的地址、用户电话等一些相关信息。

此表主要功能是让用户下订单后购买图书的凭证。

用户成功下单后可以依据订单号搜索订单信息。

表4-3-2地址表

字段名称

数据类型

备注

描述

addressId

Number

地址编号

主键

receiver

Varchar2

收货人

不为空

Addressinfo

Varchar2

地址

Phone

Varchar2

电话

Username

Varchar2

用户名

不为空

用户的地址表涉及到用户名和购买图书的地址,同时涉及到地址的编号,收货人,电话,和地址的邮编以便于用户能成功购买到图书。

是商家能否成功发货的关键。

表4-3-3收藏夹表

字段名称

数据类型

备注

描述

id

Number

收藏编号

主键

userName

Varchar2

用户名

不为空

ISBN

Varchar2

图书编号

不为空

用户的收藏夹表涉及到收藏编号,收藏人姓名,收藏图书的编号可供用户收藏自己心仪的图书。

5详细设计

5.1界面设计

5.1.1登录界面

图5-1用户登录入口界面

5.1.2用户主界面

图5-2用户登录的主界面

用户登录后的主界面是用户进入系统后的主界面便于用户管理自己的信息、查看图书、收藏图书、购买图书、联系客服等操作。

5.1.3图书详情界面

图5-3图书详情界面

图书界面能使用户最清晰的查看图书、收藏图书、购买图书等一些相关的操作。

它涉及到图书的最详细的介绍。

便于用户能更具体的了解图书信息。

5.1.4购物车界面

图5-4购物车界面

购物车界面是用户点击加入购物车之后的界面,用户可以联系客服了解更多的图书信息还可以购买、删除图书、同时也可以返回到其他页面对图书不做任何操作。

5.1.5管理员发货界面

图5-5管理员发货界面

管理员发货界面主要涉及到管理员对购买图书的用户的一个响应。

模拟实体店中的老板销售图书的功能。

只有管理员成功发货后,购买者才能收到心仪的图书。

成功完成一笔交易。

5.2主要功能代码

5.2.1登录代码段

核心代码如下:

publicvoidactionPerformed(ActionEvente){

//用户注册

if(e.getSource()==b2)

{

if(rb.isSelected())

{

UserRegistr=newUserRegist();

r.addCom();

}elseif(rb2.isSelected())

{

AdminRegistr=newAdminRegist();

r.addCom();

}else

{

inttype=JOptionPane.ERROR_MESSAGE;

JOptionPane.showMessageDialog(this,"请您选择用户或者管理员注册","错误提示",type);

}

}

if(e.getSource()==b3)

{

this.dispose();

newUserFindPwd();

}

//用户登录

if(e.getSource()==b1)

{

if(t2.getText().equalsIgnoreCase(CreateImageCode.img))

{

if(rb1.isSelected())

{

UserDaouserDao=newUserDao();

Usersusers=userDao.findByUserName((String)jcb

.getEditor().getItem());

if(users!

=null)

{//判断有没有此用户

if(pf.getText().equals(users.getPwd()))

{

//判断密码是否正确

//System.out.println("密码正确标记符");

UserWinuw;

try

{

username=(String)jcb.getEditor().getItem();

Stringpwd=users.getPwd();

if(jc.isSelected())

{//选择记住密码

if(!

userVector.contains(username))

{

//对还没进行记住密码操作的名字直接添加到文件中

bw=newBufferedWriter(newFileWriter(

"d:

/userpwd.txt",true));//true添加不覆盖

bw.write(username+","+pwd);

bw.newLine();

bw.close();

}

if(userVector.contains(username))

{

//对已经选择记住密码的名字不再添加到文件中

Stringss="";

for(inti=0;i

{

if(!

userVector.get(i).equals(

username))

{

ss=ss+userVector.get(i)

+","

+pwdVector.get(i)

+"\r\n";

}

}

ss=ss+username+","+pwd+"\r\n";

bw=newBufferedWriter(newFileWriter(

"d:

/userpwd.txt"));

bw.write(ss);

bw.close();

}

}else

{//否则不记住密码

if(!

userVector.contains(username))

{

bw=newBufferedWriter(newFileWriter(

"d:

/userpwd.txt",true));

bw.write(username+","+"");

bw.newLine();

bw.close();

}

if(userVector.contains(username))

{

Stringss="";

for(inti=0;i

{

if(!

userVector.get(i).equals(username))

{

ss=ss+userVector.get(i)

+","

+pwdVector.get(i)

+"\r\n";

}

}

ss=ss+username+","+""+"\r\n";

bw=newBufferedWriter(newFileWriter(

"d:

/userpwd.txt"));

bw.write(ss);

bw.close();

 

}

}

uw=newUserWin();

uw.addCom();

}catch(IOExceptione1)

{

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}

this.dispose();

}else

{

inttype=JOptionPane.ERROR_MESSAGE;

JOptionPane.showMessageDialog(this,"密码错误","错误提示",

type);

ImageIconicon=newImageIcon(img.ToImages());

l4.setIcon(icon);

t2.setText("");

}

}else

{

inttype=JOptionPane.ERROR_MESSAGE;

JOptionPane.showMessageDialog(this,"该用户不存在或角色选择错误","提示错误信息",

type);

ImageIconicon=newImageIcon(img.ToImages());

l4.setIcon(icon);

t2.setText("");

}

}elseif(rb2.isSelected())

{

//管理员登录

AdminDaoadminDao=newAdminDao();

Adminadmin=adminDao.findByAdminName((String)jcb

.getEditor().getItem());

if(admin!

=null){//判断有没有这个管理员

if(pf.getText().equals(admin.getPwd())){//判断密码是否正确

AdminWinaw;

adminname=(String)jcb.getEditor().getItem();

aw=newAdminWin();

this.dispose();

}else{

inttype=JOptionPane.ERROR_MESSAGE;

JOptionPane.showMessageDialog(this,"密码错误","提示错误信息",

type);

ImageIconicon=newImageIcon(img.ToImages());

l4.setIcon(icon);

t2.setText("");

}

}else{

inttype=JOptionPane.ERROR_MESSAGE;

JOptionPane.showMessageDialog(this,"该用户不存在或者是角色选择错误","提示错误",

type);

ImageIconicon=newImageIcon(img.ToImages());

l4.setIcon(icon);

t2.setText("");

}

}else{

inttype=JOptionPane.ERROR_MESSAGE;

JOptionPane.showMessageDialog(this,"请您选择用户或者管理员登录","提示错误",

type);

ImageIconicon=newImageIcon(img.ToImages());

l4.setIcon(icon);

t2.setText("");

}

}else{

inttype=JOptionPane.ERROR_MESSAGE;

JOptionPane.showMessageDialog(this,"验证码不正确","提示错误",type);

ImageIconicon=newImageIcon(img.ToImages());

l4.setIcon(icon);

t2.setText("");

}

}

if(e.getSource()==b4)

{

ImageIconicon=newImageIcon(img.ToImages());

l4.setIcon(icon);

t2.setText("");

}

}

5.2.2添加购物车代码段

publicvoidactionPerformed(ActionEvente)

{

//TODOAuto-generatedmethodstub

//购买按钮触发的事件

if(e.getSource()==jb1)

{

try

{

introw=table.getSelectedRow();

Stringisbn=(String)table.getValueAt(row,1);

//通过图书id查出相应图书

Bookb=bookDao.findBookByIsbn(isbn);

BuybookPanelbuybookPanel=newBuybookPanel();

try

{

buybookPanel.getPanel(b);

jp=buybookPanel;

UserWin.f.remove(UserWin.p1);

UserWin.p1=jp;

UserWin.f.add(UserWin.p1);

}

catch(IOExceptione1)

{

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}

}

catch(Exceptione2)

{//处理异常

inttype=JOptionPane.ERROR_MESSAGE;

JOptionPane.showMessageDialog(jp,"请选择购买的书籍","确定",type);

}

}

6系统测试

6.1黑盒测试

黑盒测试也称为功能测试,它是通过测试来检测每一个功能是否都能正常的使用。

在测试中,把程序看做一个不能打开的黑盒子,同时在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只是检查程序功能是否依照需求规格说明书的规定能否正常使用,程序是否能顺利地接收输入数据而产生正确的输出信息。

黑盒测试着眼于程序外部结构,不考虑内部

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

当前位置:首页 > 小学教育 > 语文

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

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