数据库课程设计 网上图书销售系统数据库课程设计报告.docx

上传人:b****1 文档编号:23205111 上传时间:2023-05-15 格式:DOCX 页数:33 大小:380.03KB
下载 相关 举报
数据库课程设计 网上图书销售系统数据库课程设计报告.docx_第1页
第1页 / 共33页
数据库课程设计 网上图书销售系统数据库课程设计报告.docx_第2页
第2页 / 共33页
数据库课程设计 网上图书销售系统数据库课程设计报告.docx_第3页
第3页 / 共33页
数据库课程设计 网上图书销售系统数据库课程设计报告.docx_第4页
第4页 / 共33页
数据库课程设计 网上图书销售系统数据库课程设计报告.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

数据库课程设计 网上图书销售系统数据库课程设计报告.docx

《数据库课程设计 网上图书销售系统数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计 网上图书销售系统数据库课程设计报告.docx(33页珍藏版)》请在冰豆网上搜索。

数据库课程设计 网上图书销售系统数据库课程设计报告.docx

数据库课程设计网上图书销售系统数据库课程设计报告

数据库系统原理及其应用教程

课程设计报告

题目名称:

网上图书销售系统

 

 

姓名:

学号:

 

2012年6月3日

 

摘要

随着计算机的普及书店规模的不断扩大,使图书销售管理成为书店管理中的一个重要课题。

通过图书销售管理系统可以解决书店管理中遇到的各种问题。

本系统分析了市场需求和实际需要,利用MyEclipse8.5连接SQL数据库的方式,主要实现了书店的网上图书销售管理,该系统具有处理图书录入、图书销售、图书查询、图书统计等功能。

 

1引言

传统的图书销售管理方法,都是通过人工统计和计算的管理方式进行的。

这样的管理方法不但费时费力,也容易产生计算上的错误和疏漏;计算机技术的全面普及,打破了书店管理的传统管理方法,提高了管理效率的同时,克服了传统管理方法中易产生的问题,使管理员能够有序的、全面的对图书销售和库存进行管理。

网上图书销售系统可以完成书店的日常管理,如图书录入、图书销售、图书查询、图书统计等功能,迅速准确地对已售图书和剩余库存进行统计和汇总工作,大大提高了书店的管理效率和准确性。

2需求分析

2.1功能需求

2.1.1待开发软件的功能需求

本系统是根据书店的实际需求而开发的,要求稳定、可靠的实现图书销售的自动化管理,通过本系统可以达到以下目标:

1.图书录入,包括图书的基本信息,如分类、进价、售价、作者等。

2.图书销售,包括图书的类型、书名、售价、销售日期。

3.图书销售,包括按图书类型、书名、作者、出版日期等进行处理。

4.查询图书,对指定的某本图书进行查询。

5.图书统计,对已售完剩余图书进行查询。

2.1.2待开发软件的功能

按照用户需求,要满足以上功能,我设计出了图书销售管理系统的系统功能图,如图2.1所示。

图2.1图书销售管理系统的系统功能图

综合系统要求,对图2.1所示的系统功能解释如下:

图书录入,包括图书的基本信息,如分类、进价、售价、作者等。

图书销售,包括图书的类型、书名、售价并实现对数据库的修改。

图书查询,对图书按书名进行查询。

图书统计,对指定的某本图书剩余库存量进行统计。

客户图书浏览,对剩余图书进行查询浏览。

通过以上分析,可以得到仓库管理系统的数据流图,如图2.2所示。

图2.2图书管理系统的数据流图

2.2数据库描述

本软件采用SQL数据库。

3概要设计

本系统是根据书店的实际需求而开发的,完全能够帮助书店实现高效、准确的图书销售自动化管理。

在分析阶段,我们已经提出了系统的结构和数据字典。

本节我们将对系统的使用环境作简要介绍,并对该系统作概要设计。

3.1系统运行环境

PC机

Windows操作系统

MyEclipse8.5

3.2系统功能模块设计

在前面系统功能分析的基础上,结合MyEclipse8.5程序编制的特点,得到如图3.1所示的系统功能模块图。

图3.1图书销售管理系统功能模块图

各模块功能分配如下:

(1)用户登陆功能:

管理员登陆模块(M1)。

(2)图书录入功能:

图书录入模块(M2)。

(3)图书销售功能:

图书销售模块(M3)。

(4)图书查询功能:

图书查询模块(M4)。

(5)图书统计功能:

图书统计模块(M5)。

(6)客户图书浏览功能:

客户图书浏览模块(M6)。

3.3系统处理流程

(1)系统启动,进入身份验证。

(2)初始化系统,导入数据库。

(3)录入图书信息。

(4)图书销售。

(5)查询图书信息。

(6)统计图书信息。

(7)返回登陆界面

(8)顾客身份登录

(9)浏览图书信息

(10)退出系统。

3.4接口设计

3.4.1外部接口

(1)用户界面

采用图形用户界面,包含菜单、按钮、对话框等元素。

(2)软件接口

软件运行于MyEclipse8.5平台上。

(3)硬件接口

运行于PC机上。

3.4.2内部接口

(1)用户登陆模块(M1):

由相应事件驱动消息激活,完成用户登陆功能,之后进入消息循环状态。

(2)图书销售模块(M3):

由相应事件驱动消息激活,完成图书销售功能,之后进入消息循环状态。

(3)图书查询模块(M4):

由相应事件驱动消息激活,完成销售统计功能,之后进入消息循环状态。

(4)图书统计模块(M5):

由相应事件驱动消息激活,完成查询库存功能,之后进入消息循环状态。

(5)顾客图书浏览模块(M6):

由相应事件驱动消息激活,完成售完图书查询功能,之后进入消息循环状态。

4详细设计

该系统采用MyEclipse8.5中的MFC连接SQL数据库的方式,使用图形用户界面,主要实现图书录入、图书销售等功能。

下面具体对各模块进行介绍。

4.1登录模块及主界面

在登录界面(如图4.1所示)中输入用户名和密码,登录成功后进入主界面。

登陆框流程图如图4.2所示,系统主界面如图4.3所示,单击某个按钮就能弹出某个功能的界面。

图4.1系统登录界面

图4.2登录模块流程图

4.2图书录入模块

4.2.1实现目标

图4.4图书录入对话框

图4.5流程图

4.2.2设计步骤

(1)将书店管理中心的“购入”按钮与新书注册界面通过监听器进行连接,通过“购入”按钮响应注册功能。

(2)设计好注册界面后,将界面上的操作与SQL上数据库进行连接,通过SQL语言向表中插入信息而不影响其他变化。

4.2.3代码分析

(1)添加代码如下:

classGRextendsJFrameimplementsActionListener

{

JPanelp,p1,p2;

JLabelsl,sm,zz,jj,sj,rq;

Choicechoice;

JTextFieldt1,t2,t3,t4,t5;

JButtonb1,b2;

publicGR(Stringstr)

{

super(str);

p=newJPanel();

p1=newJPanel();

p2=newJPanel();

sl=newJLabel("书类:

");

sm=newJLabel("书名:

");

zz=newJLabel("作者:

");

jj=newJLabel("进价:

");

sj=newJLabel("售价:

");

rq=newJLabel("出版日期:

");

choice=newChoice();

choice.add("文学");

choice.add("艺术");

choice.add("自然科学");

choice.add("社会科学");

choice.add("其它");

t1=newJTextField(10);

t2=newJTextField(10);

t3=newJTextField(5);

t4=newJTextField(5);

t5=newJTextField(10);

b1=newJButton("确定");

b2=newJButton("返回");

p.add(sl);

p.add(choice);

p.add(sm);

p.add(t1);

p.add(zz);

p.add(t2);

p1.add(jj);

p1.add(t3);

p1.add(sj);

p1.add(t4);

p2.add(rq);

p2.add(t5);

p2.add(b1);b1.addActionListener(this);

p2.add(b2);b2.addActionListener(this);

p.setLayout(newGridLayout(0,2));

p1.setLayout(newFlowLayout());

p2.setLayout(newGridLayout(0,2));

add(p,"North");

add(p1,"Center");

add(p2,"South");

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==b1)

{

Connectioncon;

Stringsql;

Statementstmt;

Stringurl="jdbc:

microsoft:

sqlserver:

//localhost:

1433;DatabaseName=test";

try{

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

}catch(java.lang.ClassNotFoundExceptione1){

e1.printStackTrace();

}

try{

con=DriverManager.getConnection(url,"xyx","19900929");

stmt=con.createStatement();

sql="INSERTINTO总表库(书名,作者,进价,售价,出版日期,类型)VALUES('"+t1.getText()+"','"+t2.getText()+"','"+t3.getText()+"','"+t4.getText()+"','"+t5.getText()+"','"+choice.getSelectedItem()+"')";

intflag=stmt.executeUpdate(sql);

if(flag>0)

{

JOptionPane.showMessageDialog(this,"恭喜你!

添加成功!

");

}

stmt.close();

con.close();

}catch(SQLExceptione2){

e2.printStackTrace();

}

}

if(e.getSource()==b2)

{

this.dispose();

GLYgly=newGLY("书店管理中心");

gly.setSize(450,400);

gly.setVisible(true);

}

}

}

4.3图书销售模块

4.3.1实现目标

实现图书销售功能,流程图如图4.7所示。

图4.6图书销售对话框

图4.7流程图

4.3.2实现步骤

1)将书店管理中心的“售出”按钮与图书售出界面通过监听器进行连接,通过“售出”按钮响应售出功能。

(2)设计好销售界面后,将界面上的操作与SQL上数据库进行连接,通过SQL语言从表中删除信息而不影响其他变化。

表4.2图书销售添加Dialog资源属性设置

4.3.3代码分析

(1)为“销售”按钮添加代码,实现图书销售功能,代码如下:

classSCextendsJFrameimplementsActionListener

{

JPanelp;

JLabelsl,sm,sj;

Choicechoice;

JTextFieldt1,t2;

JButtonb1,b2;

publicSC(Stringstr)

{

super(str);

p=newJPanel();

p.setLayout(newGridLayout(0,2,5,5));

sl=newJLabel("书类:

");

sm=newJLabel("书名:

");

sj=newJLabel("售价:

");

choice=newChoice();

choice.add("文学");

choice.add("艺术");

choice.add("自然科学");

choice.add("社会科学");

choice.add("其它");

t1=newJTextField(10);

t2=newJTextField(10);

b1=newJButton("确定");

b2=newJButton("返回");

p.add(sl);

p.add(choice);

p.add(sm);

p.add(t1);

p.add(sj);

p.add(t2);

p.add(b1);b1.addActionListener(this);

p.add(b2);b2.addActionListener(this);

add(p);

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==b1){

Stringurl="jdbc:

microsoft:

sqlserver:

//localhost:

1433;DatabaseName=test";

Connectioncon;

Stringsql;

Statementstmt;

try{

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

}catch(java.lang.ClassNotFoundExceptione1){

e1.printStackTrace();

}

try{

con=DriverManager.getConnection(url,"xyx","19900929");

stmt=con.createStatement();

sql="DELETEFROM总表库WHERE(书名='"+t1.getText()+"')";

intflag=stmt.executeUpdate(sql);

if(flag>0)

{

JOptionPane.showMessageDialog(this,"恭喜你!

售出成功!

");

}

stmt.close();

con.close();

}catch(SQLExceptione2){

e2.printStackTrace();

}

}

if(e.getSource()==b2){

this.dispose();

GLYgly=newGLY("书店管理中心");

gly.setSize(450,400);

gly.setVisible(true);

}

}

}

4.4图书查询模块

4.4.1实现目标

实现对已销售的图书进行统计的功能,销售统计对话框如图4.8所示。

图4.8销售统计对话框

4.4.2设计步骤

1)将书店管理中心的“查询”按钮与查询图书界面通过监听器进行连接,通过“查询”按钮响应查询功能。

(2)设计好图书查询界面后,将界面上的操作与SQL上数据库进行连接,通过SQL语言从表中查询信息而不影响其他变化。

4.4.3代码分析

代码如下:

classCXextendsJFrameimplementsActionListener

{

JPanelp;

JLabelsm;

publicstaticJTextFieldtt;

JButtonb1,b2;

publicCX(Stringstr)

{

super(str);

p=newJPanel();

p.setLayout(newFlowLayout(FlowLayout.CENTER,10,20));

sm=newJLabel("书名");

tt=newJTextField(10);

b1=newJButton("确定");

b2=newJButton("返回");

p.add(sm);

p.add(tt);

p.add(b1);b1.addActionListener(this);

p.add(b2);b2.addActionListener(this);

add(p);

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==b1)

{

this.dispose();

CXTSts=newCXTS("查询结果");

ts.setSize(500,300);

ts.setVisible(true);

}

if(e.getSource()==b2)

{

this.dispose();

GLYgly=newGLY("图书店管理中心");

gly.setSize(450,400);

gly.setVisible(true);

}

}

}

classCXTSextendsJFrameimplementsActionListener

{

JPanelp;

JButtonb1;

MyTableModel18mt;

JTablet;

JScrollPanes;

publicCXTS(Stringstr){

super(str);

setLayout(newBorderLayout());

mt=newMyTableModel18();

t=newJTable(mt);

s=newJScrollPane(t);

p=newJPanel();

p.setLayout(newFlowLayout(FlowLayout.CENTER,110,10));

b1=newJButton("返回上级");

b1.addActionListener(this);

p.add(b1);

add(p,"South");

add(s,"Center");

}

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==b1){

this.dispose();

GLYgly=newGLY("书店管理中心");

gly.setSize(450,400);

gly.setVisible(true);

}

}

}

classMyTableModel18extendsAbstractTableModel{

Stringsm,zz,sj,rq,lx;

finalString[]columnNames={"书名","作者","售价","出版日期","类型"};

Object[][]data=newObject[100][5];

publicMyTableModel18(){

intm=0;

Stringurl="jdbc:

microsoft:

sqlserver:

//localhost:

1433;DatabaseName=test";

Connectioncon;

Stringsql;

Statementstmt;

try{

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

}catch(java.lang.ClassNotFoundExceptione){

}

try{

con=DriverManager.getConnection(url,"xyx","19900929");

stmt=con.createStatement();

sql="SELECT*FROM总表库WHERE书名='"+CX.tt.getText()+"'";

ResultSetrs=stmt.executeQuery(sql);

while(rs.next()){

sm=rs.getString

(1);

zz=rs.getString

(2);

sj=rs.getString(3);

rq=rs.getString(4);

lx=rs.getString(5);

data[m][0]=sm;data[m][1]=zz;data[m][2]=sj;data[m][3]=rq;data[m++][4]=lx;

}

stmt.close();

con.close();

}catch(SQLExceptione){

}

}

publicintgetColumnCount(){

returncolumnNames.length;

}

publicintgetRowCount(){

returndata.length;

}

publicStringgetColumnName(intcol){

returncolumnNames[col];

}

publicObjectgetValueAt(introw,intcol){

returndata[row][col];

}

publicvoidsetValueAt(Objectvalue,introw,intcol){

System.out.println("Newvalueofdata:

");

intnumRows=getRowCount();

intnumCols=getColumnCount();

for(inti=0;i

System.out.print("row"+i+":

");

for(intj=0;j

System.out.print(""+data[i][j]);

}System.out.println();

}System.out.println("----------------------");

}

}

4.5图书统计模块

4.5.1实现目标

实现对已销售的图书进行统计的功能,销售统计对话框如图4.9所示。

图4.9查询库存对话框

4.5.2设计步骤

1)将书店管理中心的“统计”按钮与图书统计界面通过监听器进行连接,通过“统计”按钮响应图书浏览功能。

(2)设计好图书查询界面后,将界面上的操作与SQL上数据库进行连接,通过SQL语言从表中查找统计信息而不影响其他变化。

4.5.3代码分析

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

当前位置:首页 > 解决方案 > 学习计划

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

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