图书销售管理系统--数据库课程设计.doc_第1页
图书销售管理系统--数据库课程设计.doc_第2页
图书销售管理系统--数据库课程设计.doc_第3页
图书销售管理系统--数据库课程设计.doc_第4页
图书销售管理系统--数据库课程设计.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理及应用课程设计报告图书销售管理系统学校: 湖北工业大学 专业: 计算机科学与技术 班级: 10计算机(2)班 姓名: 张 露 学号: 1010311222 2012年6月课程设计任务书课题名称图书销售管理系统设计目的1. 加深对数据库系统、程序设计语言的理论知识的理解和应用水平。2. 通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。3. 通过实际编程加深对基本原理的理解,提高实践能力;4. 学习开发资料的收集与整理,学会撰写课程设计报告。实验环境1. 微型电子计算机(PC);2. Windows XP操作系统,SQL Server2000任务要求1. 利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集与整理;2. 在第16周末之前完成预设计,并请指导教师审查,通过后方可进行下一步工作;3. 本课题主要实现图书入库信息管理、图书删除管理、图书添加管理、图书信息查询管理、图书销售信息管理等。4. 结束后,及时提交设计报告(含纸质稿、电子稿),要求格式规范、内容完整、结论正确,正文字数不少于3000字。摘要:随着信息时代的到来,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,网络应用越来越普遍,而且走进了千家万户,网络销售应运而生,而图书销售就是其中之一。传统的图书销售仅仅局限于一小块地方且人力与物力过多浪费,而网络图书销售则面向全中国,甚至全世界而且管理方便。网络图书销售具有面向范围广,价格优惠,种类齐全,购买方便等特点。本图书销售管理系统的开发语言是JAVA,开发环境是Visual Studio 2008,数据库采用SQL Server 2005。 1 需求分析1.1 系统目标设计出一个能够查询图书销售管理信息查询的平台。1.2 功能划分图书销售管理系统包括登录、图书入库、添加图书、删除图书、图书信息修改、图书信息查询、销售图书等功能。 2 概念设计本系统规划出的实体有:管理员实体、图书入库信息实体、图书添加信息实体、图书删除信息实体、图书信息查询实体、图书销售信息实体,它们之间的关系如下图所示。2.1 图书销售管理系统概念设计。图 书图 书管理员图 书销售信息查询信息修改删除添加入库图 书图 书图 书图书销售系统E-R图2.2 各实体的E-R图 2.2.1 图书入库信息系统E-R图登录密码管 理 员图 书入库用户名图书价格入库区域入库时间入库数量2.2.2 图书删除系统E-R图管 理 员图 书删除用户名图书区域删除时间图书现存数量图书剩余数量登录密码2.2.3 图书信息查询系统E-R图管 理 员图 书查询用户名图书价格入库区域作者库存数量登录密码书名图书出版社2.2.4 图书销售系统E-R图管 理 员图 书销售用户名图书价格入库区域作者库存数量量登录密码书名图书出版社销售量分析:一个管理员可以购买多本图书,一本图书只能被一个管理员购买,所以是1:N的关系;一个管理员可以删除多本图书,一本图书只能被一个管理员删除,所以是1:N的关系;一个管理员可以查询多本图书信息,一本图书可以被多个管理员查询,所以是M:N的关系;一个管理员可以销售多本图书,一本图书只能被一个管理员销售,所以是1:N的关系。3. 数据库表结构设计表3.1 图书入库信息表列名数据类型长度描述booknamenvarchar50书名,不允许为空shoppingdatedatetime8购买日期,不允许为空qantityint8图书数量,不允许为空pricemoney8图书单价,不允许为空areanvarchar50图书入库区域,不允许为空表3.2 图书删除信息表列名数据类型长度描述booknamenvarchar50书名,不允许为空areanvarchar50图书入库区域,不允许为空quantityint8图书现存数量,不允许为空requantityint8图书剩余数量,不允许为空deldatedatetime8删除日期,不允许为空表3.3 管理员信息表列名数据类型长度描述adminidnvarchar50管理员登录帐号,定义为主键adminpwdnvarchar50管理员登录密码,不允许为空表3.4 图书信息查询表列名数据类型长度描述booknamenvarchar50书名,不允许为空areanvarchar20图书区域,不允许为空bookpricemoney8图书单价,不允许为空bookquantityint8图书数量,不允许为空pressnvarchar50出版社,不允许为空publishdatenvarchar50出版日期,不允许为空authornvarchar50作者,不允许为空表3.5图书销售信息表列名数据类型长度描述booknamenvarchar50书名,不允许为空quantityint8现存数量,不允许为空pricemoney8图书价格,不允许为空areanvarchar20库存区域,不允许为空requantityint8剩余数量,不允许为空sellquantityint8销售数量,不允许为空selldatechar8销售日期,不允许为空4 应用程序设计4.1应用程序流程图开始 输入账号密码N 正确?Y用户登录用户选择操作 Y 选择退出?N执行服务操作退出图4.1应用程序流程图4.2 图书销售系统功能模块图用户登录图书销售管理系统图书销售信息图书信息查询图书信息修改图书添加信息图书删除信息图书入库信息5 编程实现5.1 运行系统,显示系统登陆界面,如图5.1所示。图5.1 系统登陆5.2 进入图书销售系统,显示主界面,如图5.2所示。图5.2 主界面5.3 进入图书入库系统,如图5.3所示。图5.3 图书入库信息5.4 进入图书信息修改系统,如图5.4所示。图5.4 图书修改信息5.5 进入删除图书信息系统,如图5.5所示。图5.5 图书删除系统5.6 进入图书信息查询系统,如图所示。图5.7 图书查询系统5.7 进入图书销售系统,如图所示。源程序:图书销售:public class Book_Sale extends Frame implements ActionListenerJFrame Book_Sale_Window;Label LB_Print = new Label(请输入要销售的图书信息);JLabel JL_BookName = new JLabel();TextField TF_BookName = new TextField();JLabel JL_Autor = new JLabel();TextField TF_Autor = new TextField();JLabel JL_Pres = new JLabel();TextField TF_Pres = new TextField();JLabel JL_PublicationDate = new JLabel();TextField TF_PublicationDate = new TextField();JLabel JL_Pricing = new JLabel();TextField TF_Pricing = new TextField();JLabel JL_Book_Sell_Num = new JLabel();TextField TF_Book_Sell_Num = new TextField();Button Btn_ok = new Button(确 定);Button Btn_exit = new Button(返 回);String Str_BookName = new String(); String Str_Autor = new String(); String Str_Pres = new String();String Str_PublicationDate = new String();String Str_Pricing = new String();int Buy_Num,Store_Num; String Parameter_BookName = new String();/申请Parameter_BookName用来保存传递过来的BookName参数Book_Sale()Parameter_BookName = Str_BookName;/获取参数Book_Sale_Window = new JFrame(图书销售);Book_Sale_Window.setBounds(650,160,400,350);Book_Sale_Window.setLayout(null);Book_Sale_Window.add(LB_Print);LB_Print.setBounds(140,10,150,20);JL_BookName.setText(书 名:);JL_BookName.add(TF_BookName);JL_BookName.setBounds(30,30,100,40);TF_BookName.setBounds(100,7,220,25);JL_Autor.setText(作 者:);JL_Autor.add(TF_Autor);JL_Autor.setBounds(30,70,100,40);TF_Autor.setBounds(100,7,220,25);JL_Pres.setText(出 版 社:);JL_Pres.add(TF_Pres);JL_Pres.setBounds(30,110,100,40);TF_Pres.setBounds(100,7,220,25);JL_PublicationDate.setText(出 版 日 期:);JL_PublicationDate.add(TF_PublicationDate);JL_PublicationDate.setBounds(30,150,100,40);TF_PublicationDate.setBounds(100,7,220,25);JL_Pricing.setText(定 价:);JL_Pricing.add(TF_Pricing);JL_Pricing.setBounds(30,190,100,40);TF_Pricing.setBounds(100,7,220,25);JL_Book_Sell_Num.setText(销 售 数 量:);JL_Book_Sell_Num.add(TF_Book_Sell_Num);JL_Book_Sell_Num.setBounds(30,230,100,40);TF_Book_Sell_Num.setBounds(100,7,220,25);Book_Sale_Window.add(JL_BookName);Book_Sale_Window.add(JL_Autor);Book_Sale_Window.add(JL_Pres);Book_Sale_Window.add(JL_PublicationDate);Book_Sale_Window.add(JL_Pricing);Book_Sale_Window.add(JL_Book_Sell_Num);Book_Sale_Window.add(Btn_ok);Book_Sale_Window.add(Btn_exit);Btn_ok.setBounds(90,270,65,30);Btn_exit.setBounds(250,270,65,30);Btn_ok.addActionListener(this);Btn_exit.addActionListener(this);Book_Sale_Window.setVisible(true);public void actionPerformed(ActionEvent e)PreparedStatement pstmt=null;ResultSet rs= null;if(e.getSource()=Btn_exit)Book_Sale_Window.dispose();if(e.getSource()=Btn_ok)Str_BookName = TF_BookName.getText();Str_Autor = TF_Autor.getText();Str_Pres = TF_Pres.getText();Str_PublicationDate = TF_PublicationDate.getText();Str_Pricing = TF_Pricing.getText();Buy_Num = Integer.parseInt(TF_Book_Sell_Num.getText();if(Str_BookName.length()0)Connection con; Statement stmt; String query;String query_end;String dbClassName = com.microsoft.jdbc.sqlserver.SQLServerDriver;String myurl=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=Book;/连接数据库里的库 String user=sa; String password= people; query=UPDATE Books SET ;try Class.forName(dbClassName).newInstance(); con=DriverManager.getConnection(myurl,user,password); stmt = con.createStatement(); pstmt=con.prepareStatement(select * from Book where BookName=+ Parameter_BookName); rs=pstmt.executeQuery(); if(rs.next() Store_Num = rs.getInt(BookLeft); stmt.executeUpdate(query+BookName=+Str_BookName+ WHERE BookName=+Parameter_BookName+);query_end= WHERE BookName=+Str_BookName+;if(Str_Autor.length()0)stmt.executeUpdate(query+Autor=+Str_Autor+query_end);if(Str_Pres.length()0)stmt.executeUpdate(query+Pres=+Str_Pres+query_end);if(Str_PublicationDate.length()0)stmt.executeUpdate(query+PublicationDate=+Str_PublicationDate+query_end);if(Str_Pricing.length()0)stmt.executeUpdate(query+Pricing=+Str_Pricing+query_end);if(Buy_Num Store_Num)JOptionPane.showMessageDialog(Book_Sell_Management.this,库存不足,销售失败);elseJOptionPane.showMessageDialog(Book_Sell_Management.this,请输入书名。);版本信息:public class Verison extends JFrame implements ActionListenerJFrame Verison_Window;/定义版本信息组件Button btn_exit = new Button(返 回);Container con;JLabel lab_head;JLabel lab_name;JLabel lab_maker;JLabel lab_ma;JLabel lab_zhang;JLabel lab_bai;Verison()Verison_Window = new JFrame(关于);/初始化组件并进行设置Verison_Window.setBounds(450,220,330,220);con = Verison_Window.getContentPane();con.setLayout(null);lab_name = new JLabel(数据库原理及应用);lab_name.setBounds(115,0,110,30);lab_head = new JLabel(课程设计 - 图书销售管理系统);lab_head.setBounds(80,20,180,30);lab_maker = new JLabel(制作人:);lab_maker.setBounds(60,50,80,30);lab_ma = new JLabel(10计科2班 1010311209 马强);lab_ma.setBounds(80,70,180,30);lab_zhang = new JLabel(10计科2班 1010311222 张露);lab_zhang.setBounds(80,90,180,30);lab_bai = new JLabel(10计科2班 1010311223 白雪峰);lab_bai.setBounds(80,110,190,30);con.add(lab_head);/将所有组件添加到容器中con.add(lab_name); con.add(lab_maker);con.add(lab_ma);con.add(lab_zhang);con.add(lab_bai);con.add(btn_exit);btn_exit.setBounds(230,150,55,25);btn_exit.addActionListener(this); /对返回按钮设置监听Verison_Window.setVisible(true);public void actionPerformed(ActionEvent e)if(e.getSource() = btn_exit) Verison_Window.dispose(); 主窗口:public class Landed extends Frame implements ActionListener/*创建用户登陆窗口所需组件*/ JFrame Log_In_Window;/创建登陆窗口 Container con;/创建登录窗口容器 JLabel user;/创建容器JLabel pass;Button btn_enter = new Button(登 陆);/创建按钮组件Button btn_exit = new Button(退 出);TextField username = new TextField();/创建文字输入组件TextField password = new TextField();/*对窗口进行排列*/Landed() Log_In_Window = new JFrame(登录系统); Log_In_Window.setBounds(500,300,350,200); con = Log_In_Window.getContentPane();con.setLayout(null); /令登录窗口默认排列为空/*排列账号组件*/user=new JLabel(); user.setText(账 号:); user.setBounds(60, 30, 77, 25); user.add(username); username.setBounds(77,0, 140, 22);/*排列密码组件*/pass=new JLabel(); pass.setText(密 码:); pass.setBounds(60, 70, 70, 25); pass.add(password); password.setBounds(77,0, 140, 22);password.setEchoChar(*); /*组件添加至容器中*/con.add(user);con.add(pass);con.add(btn_enter);con.add(btn_exit);btn_enter.setBounds(80,120,60,25);/按钮显示坐标和大小btn_exit.setBounds(190,120,60,25);btn_exit.addActionListener(this); /对按钮添加监听btn_enter.addActionListener(this);Log_In_Window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/定义登录界面按钮作用Log_In_Window.setVisible(true); /显示登陆界面 /*按钮的监听*/ public void actionPerformed(ActionEvent e) if(e.getSource() = btn_exit) /退出按钮的操作System.exit(0);if(e.getSource() = btn_enter) /登陆按钮的操作String UserName = username.getText(); /获取用户名、密码文本框里的数据String PassWord = password.getText();if(Log_in_Check(UserName,PassWord) /通过Verification方法进行验证输入的用户名、密码是否正确JOptionPane.showMessageDialog(Book_Sell_Management.this,登 录 成 功);/正确则提示登录成功Log_In_Window.dispose();/关闭用户登陆界面new Management();/创建用户管理界面else JOptionPane.showMessageDialog(Book_Sell_Management.this,密 码 错 误);/否则提示密码错误/*检查用户密码*/public boolean Log_in_Check(Strin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论