1、图书销售管理系统数据库课程设计数据库原理及应用课程设计报告图书销售管理系统学校: 专业: 计算机科学与技术 班级: 10计算机(2)班 姓名: 学号: 课程设计任务书课题名称图书销售管理系统设计目的1.加深对数据库系统、程序设计语言的理论知识的理解和应用水平。2.通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。3.通过实际编程加深对基本原理的理解,提高实践能力;4.学习开发资料的收集与整理,学会撰写课程设计报告。实验环境1.微型电子计算机(PC);2.Windows XP操作系统,SQL Server2000任务要求1.利用课余
2、时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集与整理;2.在第16周末之前完成预设计,并请指导教师审查,通过后方可进行下一步工作;3.本课题主要实现图书入库信息管理、图书删除管理、图书添加管理、图书信息查询管理、图书销售信息管理等。4.结束后,及时提交设计报告(含纸质稿、电子稿),要求格式规范、内容完整、结论正确,正文字数不少于3000字。摘要:随着信息时代的到来,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,网络应用越来越普遍,而且走进了千家万户,网络销售应运而生,而图书销售就是其中之一。传统的图书销售仅仅局限于一小块地方且人力与物力过
3、多浪费,而网络图书销售则面向全中国,甚至全世界而且管理方便。网络图书销售具有面向范围广,价格优惠,种类齐全,购买方便等特点。本图书销售管理系统的开发语言是JAVA,开发环境是Visual Studio 2008,数据库采用SQL Server 2005。 1 需求分析1.1 系统目标设计出一个能够查询图书销售管理信息查询的平台。1.2 功能划分图书销售管理系统包括登录、图书入库、添加图书、删除图书、图书信息修改、图书信息查询、销售图书等功能。 2 概念设计本系统规划出的实体有:管理员实体、图书入库信息实体、图书添加信息实体、图书删除信息实体、图书信息查询实体、图书销售信息实体,它们之间的关系如
4、下图所示。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 图书入库信息表
5、列名数据类型长度描述booknamenvarchar50书名,不允许为空shoppingdatedatetime8购买日期,不允许为空qantityint8图书数量,不允许为空pricemoney8图书单价,不允许为空areanvarchar50图书入库区域,不允许为空表3.2 图书删除信息表列名数据类型长度描述booknamenvarchar50书名,不允许为空areanvarchar50图书入库区域,不允许为空quantityint8图书现存数量,不允许为空requantityint8图书剩余数量,不允许为空deldatedatetime8删除日期,不允许为空表3.3 管理员信息表列名数据
6、类型长度描述adminidnvarchar50管理员登录帐号,定义为主键adminpwdnvarchar50管理员登录密码,不允许为空表3.4 图书信息查询表列名数据类型长度描述booknamenvarchar50书名,不允许为空areanvarchar20图书区域,不允许为空bookpricemoney8图书单价,不允许为空bookquantityint8图书数量,不允许为空pressnvarchar50出版社,不允许为空publishdatenvarchar50出版日期,不允许为空authornvarchar50作者,不允许为空表3.5图书销售信息表列名数据类型长度描述booknamenv
7、archar50书名,不允许为空quantityint8现存数量,不允许为空pricemoney8图书价格,不允许为空areanvarchar20库存区域,不允许为空requantityint8剩余数量,不允许为空sellquantityint8销售数量,不允许为空selldatechar8销售日期,不允许为空4应用程序设计4.1应用程序流程图 图4.1应用程序流程图4.2 图书销售系统功能模块图 5 编程实现5.1 运行系统,显示系统登陆界面,如图5.1所示。图5.1 系统登陆5.2进入图书销售系统,显示主界面,如图5.2所示。图5.2 主界面5.3 进入图书入库系统,如图5.3所示。图5.
8、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 ActionListener JFrame Book_Sale_Window; Label LB_Print = new Label(请输入要销售的图书信息); JLabel JL_BookName = new JLabel(); T
9、extField 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()
10、; 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(); Str
11、ing 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,
12、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_Aut
13、or.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
14、); 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
15、_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(
16、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) B
17、ook_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(St
18、r_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 ;
19、 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.executeUp
20、date(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
21、) 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,库存不足,销售失败); else JOptionPane.showMessageDialog(Book_Sell_Manag
22、ement.this,请输入书名。); 版本信息: public class Verison extends JFrame implements ActionListener JFrame 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 = ne
23、w 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(制作人:); l
24、ab_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);/将所有组件添加到容器中 c
25、on.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(退
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1