JAVA数据库课程设计编程词典系统Word版.doc

上传人:rrsccc 文档编号:9032677 上传时间:2021-01-30 格式:DOC 页数:25 大小:784.50KB
返回 下载 相关 举报
JAVA数据库课程设计编程词典系统Word版.doc_第1页
第1页 / 共25页
JAVA数据库课程设计编程词典系统Word版.doc_第2页
第2页 / 共25页
JAVA数据库课程设计编程词典系统Word版.doc_第3页
第3页 / 共25页
JAVA数据库课程设计编程词典系统Word版.doc_第4页
第4页 / 共25页
JAVA数据库课程设计编程词典系统Word版.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《JAVA数据库课程设计编程词典系统Word版.doc》由会员分享,可在线阅读,更多相关《JAVA数据库课程设计编程词典系统Word版.doc(25页珍藏版)》请在三一文库上搜索。

1、传播优秀Word版文档 ,希望对您有帮助,可双击去除! 数据库课程设计系 、 部: 计算机与信息科学系 学 生1: 学 生2: 专 业: 计算机科学与技术 班 级: 完成时间: 2011年12月29日 数据库设计题目:编程词典用户管理系统数据库设计阶段相关的E-R图客户编号身份验证电子信箱客户姓名QQ号码性别客户信息表出生日期手机地址传真邮编电话 客户信息表tb-Buyer的E-R图流水号词典信息表单价词典编号词典名称 词典信息表tb-Dictionary的E-R图 销售编号品种数客户编号销售主要信息表经手人总数量操作员总金额销售日期客户名称 销售主要信息表tb-MainSell的E-R图流水

2、号销售编号金额销售明细信息表数量客户编号词典编号单价 销售明细信息表tb-DetailSell的E-R图流水号操作员(或经手人)操作员信息表权限级别密码 操作员信息表tb-Operater的E-R图数据流图:关系模式:客户信息表tb-Buyer(buyerid,identityCard,buyer,sex,birthday,address,postalcode,telephone,fax,handest,QQ,email)词典信息表tb-Dictionary(id,cdId,cdName,price)销售主要信息表tb-MainSell(sellId,category,totalNumber,

3、totelMoney,buyer,sellDate,operater,dealWithMan,buyerId)销售明细信息表tb-DetailSell(id,sellId,buyerId,cdId,price,amount,totalMoney)操作员信息表tb-Operater(id,username,password,grade)数据库的物理结构设计与数据字典在 D 盘目录下创建编程管理数据库: CREATE DATABASE db_ProgramDictionary ON PRIMARY (NAME=tushu data, filename=D:tushu.mdf, size=5MB,

4、Maxsize=25MB, FILEGROWTH=10%) LOG ON (NAME=tushu_log, filename=D:tushu.ldf, size=5MB, Maxsize=10MB, filegrowth=1MB)客户信息表tb-Buyer字段名数据类型长度是否允许空值是否主键或约束说明buyeridInt4不允许主键,自动编号客户编号identityCardVarchar18不允许无约束身份证明buyerVarchar20不允许无约束客户名称sexVarchar10允许无约束性别birthdaydatetime8允许无约束出生日期addressVarchar200允许无约束地

5、址postalcodeVarchar10允许无约束邮编telephoneVarchar20允许无约束电话faxVarchar20允许无约束传真handestVarchar30允许无约束手机QQVarchar20允许无约束QQ号码emailVarchar50允许无约束电子信箱词典信息表tb-Dictionary字段名数据类型长度是否允许空值是否主键或约束说明idInt4不允许主键,自动编号流水号cdIdVarchar20不允许无约束词典编号cdNameVarchar20不允许无约束词典名称pricefloat8不允许无约束单价销售主要信息表tb-MainSell(sellId,category,

6、totalNumber,totelMoney,buyer,sellDate,operater,dealWithMan,buyerId)字段名数据类型长度是否允许空值是否主键或约束说明sellIdVarchar20不允许主键,自动编号销售编号categoryInt4允许无约束品种数totalNumberInt4允许无约束总数量totelMoneyfloat8允许无约束总金额buyerVarchar20允许无约束客户名称sellDatedatetime8允许无约束销售日期operaterVarchar20允许无约束操作员dealWithManVarchar20允许无约束经手人buyerIdInt4

7、允许无约束客户编号销售明细信息表tb-DetailSell(id,sellId,buyerId,cdId,price,amount,totalMoney)字段名数据类型长度是否允许空值是否主键或约束说明idInt4不允许主键,自动编号流水号sellIdVarchar20允许外键销售编号buyerIdInt4允许无约束客户编号cdIdVarchar20允许无约束词典编号pricefloat8允许无约束单价amountInt4允许无约束数量totalMoneyfloat8允许无约束金额操作员信息表tb-Operater(id,username,password,grade)字段名数据类型长度是否允

8、许空值是否主键或约束说明idInt4不允许主键,自动编号流水号usernamevarchar20不允许无约束操作员passwordvarchar20不允许无约束密码gradevarchar10不允许无约束权限级别需求分析系统登录系统登录功能可以保障信息的安全,防止他人非法进入系统,要求只有合格用户输入正确的用户名和密码,才能进入系统进行操作,否则不能进入系统。添加词典信息合法用户通过正确的用户名和密码进入系统后,可以通过“基本信息管理”菜单中的“添加词典信息”菜单项或单击工具栏上的“添加词典信息”按钮,打开“添加词典信息”对话框添加词典信息。添加客户信息合法用户进入系统后,可以添加编程词典客户

9、的基本信息,目的是方便对词典客户的管理和该客户所购买编程词典信息的管理,当需要销售词典时需要用到客户信息。词典销售用于完成词典的销售操作,并且在销售时可以批量添加多条销售信息,也就是针对一个用户可以在一个界面中销售多种词典,并且每添加一种编程词典信息,系统会自动计算相关数据,销售成功后会将销售信息分别保存在销售主表和销售明细表中。查询统计用于完成词典销售信息的查询和相关数据的统计,用户通过该功能可以按客户名称,词典名称,销售日期等多种方式进行查询,并将查询结果以表格的形式显示出来,同时会对相关数据进行统计,如合计数量和合计金额。修改销售信息用于完成词典销售后的修改操作,并且在修改销售信息是,可

10、以在一个界面中修改多种销售信息,并且每修改一种编程词典的销售信息,系统会自动计算相关数据,销售成功后会将销售信息分别保存在销售主表和销售明细中。添加用户管理级别的用户通过正确的用户名和密码进入系统后,可以通过该功能添加新的用户,并为其指定密码,一旦新用户添加成功,以后该用户就可以通过正确的密码进入系统从而可以对系统进行操作。修改密码为了保护密码的安全,在使用一段时间后,用户可以通过该功能修改密码,为了避免其他人任意修改密码,要求用户必须输入正确的原密码,然后才可以修改密码,否则不允许其修改密码。功能结构图 编程词典用户管理功能结构图 系统登录编程词典用户管理系统主窗体添加用户添加词典销售信息添

11、加客户信息添加保存词典信息修改密码修改词典销售信息查询统计词典销售信息 登录流程图: N用户名密码是否正确 Y修改密码添加用户 添加词典信息添加用户信息添加销售信息查询统计修改销售信息结束代码,注解与测试用例为JTable表格设置单元格编辑器 TableColumn cdNameColumn=tb_detailSell.getColumnModel().getColumn(0); / 创建单元格编辑器 DefaultCellEditor cdNameEditor=new DefaultCellEditor(getCmb_tableCellEdit(); cdNameEditor.setClic

12、kCountToStart(2); / 单击两次鼠标启动编辑器 cdNameColumn.setCellEditor(cdNameEditor); / 设置表格列对象的编辑器进行多个数据表的同步操作 Connection conn=null; / 声明数据库连接 / 声明PreparedStatement对象 PreparedStatement psMain = null; PreparedStatement psDetail = null; try conn = DAO.getConn(); / 获得数据库连接 conn.setAutoCommit(false); String sqlMai

13、n = insert into tb_MainSell (totalMoney) values(?); / 创建PreparedStatement对象,并传递SQL语句 psMain = conn.prepareStatement(sqlMain); psMain.setString(1, sellMain.getSellId(); / 为参数赋值 psMain.setFloat(1, 8000.0F); psMain.executeUpdate(); String sqlDetail = insert into tb_DetailSell (totalMoney) values(?); ps

14、Detail = conn.prepareStatement(sqlDetail); psDetail.setFloat(1, 8000.0F); psDetail.executeUpdate(); psDetail.addBatch(); mit(); JOptionPane.showMessageDialog(null, 添加成功。); catch(Exception ex) try conn.rollback(); catch (SQLException e) e.printStackTrace(); JOptionPane.showMessageDialog(null, 添加失败。);

15、 ex.printStackTrace(); return false; finally try if (conn!=null) conn.close(); catch (SQLException e) e.printStackTrace(); 批量添加或更新数据表 Connection conn=null; / 声明数据库连接 / 声明PreparedStatement对象 PreparedStatement psDetail = null; try conn = DAO.getConn(); / 获得数据库连接 conn.setAutoCommit(false); String sql=i

16、nsert into tb_DetailSell(amount) values(?)Intnum=20,30,40,50,60For(int i=0;inum,Length;i+)Int sl=numipsDetail.setInt(1,sl);psDetail.executeUpdate();psDetail.addBatch(); mit(); JOptionPane.showMessageDialog(null, 批量添加成功。); return true; catch(Exception ex) try conn.rollback(); catch (SQLException e) e

17、.printStackTrace(); JOptionPane.showMessageDialog(null, 批量添加失败。); ex.printStackTrace(); return false; finally try if (conn!=null) conn.close(); catch (SQLException e) e.printStackTrace(); 公工类设计公共类DAOpackage com.zzk.dao;import java.sql.*;import javax.swing.JOptionPane;public class DAO private static

18、DAO dao = new DAO(); / 声明DAO类的静态实例 /* * 构造方法,加载数据库驱动 */ public DAO() try Class.forName(net.sourceforge.jtds.jdbc.Driver); / 加载数据库驱动 catch (ClassNotFoundException e) JOptionPane.showMessageDialog(null, 数据库驱动加载失败,请将JTDS驱动配置到构建路径中。n + e.getMessage(); /* * 获得数据库连接的方法 * * return Connection */ public stat

19、ic Connection getConn() try Connection conn = null; / 定义数据库连接 String url = jdbc:jtds:sqlserver:/localhost:1433/db_ProgramDictionary; / 数据库db_ProgramDictionary的URL String username = sa; / 数据库的用户名 String password = 123; / 数据库密码 conn = DriverManager.getConnection(url, username, password); / 建立连接 return

20、 conn; / 返回连接 catch (Exception e) JOptionPane.showMessageDialog(null, 数据库连接失败。n请检查是否安装了SP4补丁,n以及数据库用户名和密码是否正确。 + e.getMessage(); return null; 公共类SaveUserStateToolpackage com.zzk.tool;public class SaveUserStateTool private static String username; / 操作员名 private static String password; / 操作员密码 private

21、 static String grade; / 操作员级别 / 获得操作员名的getter方法 public static String getUsername() return username; / 为操作员名赋值的setter方法 public static void setUsername(String username) SaveUserStateTool.username = username; / 获得操作员密码的getter方法 public static String getPassword() return password; / 为操作员密码赋值的setter方法 pub

22、lic static void setPassword(String password) SaveUserStateTool.password = password; / 获得操作员级别的getter方法 public static String getGrade() return grade; / 为操作员级别赋值的setter方法 public static void setGrade(String grade) SaveUserStateTool.grade = grade; 系统登录窗体创建登录窗体的背景面板类LoginBackPanelpackage com.zzk.back.pan

23、el;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import javax.swing.JPanel;public class LoginBackPanel extends JPanel private static final long serialVersionUID = 1L; private Image image; / 定义图像对象 public LoginBackPanel(Image image) super(); / 调用超类的构造方法 this.image = image;

24、 / 为图像对象赋值 initialize(); /* * 重写paintComponent方法 */ protected void paintComponent(Graphics g) super.paintComponent(g); / 调用父类的方法 Graphics2D g2 = (Graphics2D) g; / 创建Graphics2D对象 if (image != null) int width = getWidth(); / 获得面板的宽度 int height = getHeight(); / 获得面板的高度 / 绘制图像 g2.drawImage(image, 0, 0,

25、width, height, this); private void initialize() this.setSize(300, 200); 设计系统登录窗体 /* * This method initializes btn_ok * * return javax.swing.JButton */ private JButton getBtn_ok() if (btn_ok = null) btn_ok = new JButton(); btn_ok.setBounds(new Rectangle(34, 118, 101, 28); btn_ok.setIcon(new ImageIcon

26、(getClass().getResource(/icon/登录.png); btn_ok.setText(登 录); btn_ok.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) User user = new User(); / 创建User类的实例 user.setName(tf_user.getText().trim(); / 获得输入的用户名 user.setPwd(new String(pf_pwd.getP

27、assword(); / 获得输入的密码 if (UserDao.okUser(user) / 调用UserDao类的方法验证用户名和密码 MainFrame thisClass = new MainFrame(); / 创建主窗体类的实例 / 设置主窗体的自动关闭方式 thisClass.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); Toolkit tookit = thisClass.getToolkit(); / 获得Toolkit对象 Dimension dm = tookit.getScreenSize(); / 通过To

28、olkit对象获得屏幕的大小 / 主窗体在屏幕上居中 thisClass.setLocation( (dm.width - thisClass.getWidth() / 2, (dm.height - thisClass.getHeight() / 2); thisClass.setVisible(true); / 显示主窗体 dispose(); / 销毁登录窗体 ); return btn_ok; 编程词典用户管理系统主窗体创建主窗体的背景面板MainBackPanelpackage com.zzk.back.panel;import java.awt.Graphics;import ja

29、va.awt.Graphics2D;import java.awt.Image;import javax.swing.JPanel;public class MainBackPanel extends JPanel private static final long serialVersionUID = 1L; private Image image; / 定义图像对象 public MainBackPanel(Image image) super(); / 调用超类的构造方法 this.image = image; / 为图像对象赋值 initialize(); /* * 重写paintCo

30、mponent方法 */ protected void paintComponent(Graphics g) super.paintComponent(g); / 调用父类的方法 Graphics2D g2 = (Graphics2D) g; / 创建Graphics2D对象 if (image != null) int width = getWidth(); / 获得面板的宽度 int height = getHeight(); / 获得面板的高度 / 绘制图像 g2.drawImage(image, 0, 0, width, height, this); private void init

31、ialize() this.setSize(300, 200); 通过菜单项或工具栏按钮的事件打开操作窗口 btn_addDictionary.setText(添加编程词典信息); btn_addDictionary.setIcon(new ImageIcon(getClass().getResource(/icon/添加词典信息.png); btn_addDictionary.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent

32、e) AddDictionaryFrame thisClass = new AddDictionaryFrame(null); Toolkit tookit = thisClass.getToolkit(); Dimension dm = tookit.getScreenSize();thisClass.setLocation(dm.width-thisClass.getWidth()/2,(dm.height-thisClass.getHeight()/2); thisClass.setVisible(true); );添加词典信息窗体设计添加词典信息窗体保存词典信息 btn_save.ad

33、dActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) String id = tf_id.getText(); String name = tf_name.getText(); float price = 0.0f; try price = Float.parseFloat(tf_price.getText().trim(); catch(Exception ex) JOptionPane.showMessageDialog(null, 单价必须输入数值。); return; Dictionary dictionary = new Dictionary(); dictionary.setId(id); dictionary.setName(name); dictionary.setPrice(price); if (Dic

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1