ImageVerifierCode 换一换
格式:DOC , 页数:28 ,大小:113.04KB ,
资源ID:4060010      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4060010.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(物资管理系统.doc)为本站上传会员【丰****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

物资管理系统.doc

1、《JAVA程序设计》 课程设计报告 设计题目: 物资管理系统设计与实现 学院名称: 信息工程学院 专业班级: 姓 名: 学 号: 13122102 目录 目录 一 需求分析 2 二 概要设计 2 2。1 概要设计的原则 2 2.2 将用户需求模块化 3 2.3 确定系统最终模块 3 2。4 UML用例图 3 2.5 模块设计 4 三 详细设计 5 3.1 数据库设计 5 3.

2、2 模块及窗体设计 6 3。2。1 数据库模块设计 6 一 需求分析 本系统的主要目的就是对物资管理的快捷管理以及对数据信息的显示,存放的日期显示所有者等。 二 概要设计 概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。项目的成功取决于设计的好坏,而概要设计则是整个设计的关键部分.概要设计的主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规则约束,以达到各个模块之间可以相互交流的目的。概要设计关乎到系统的整体架构,因此想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。 2。1 概要设计的

3、原则 概要设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。概要设计要坚持以下几个原则。 (1)细分原则:软件系统都是由很多不同的模块组成,当设计一套软件时,要先将所有的功能分解。解决复杂问题的方法是将其分解成几个小问题,一个个来解决。 (2)提高代码重用性:在面向对象设计中,首先考虑的就是代码的重用,一个好的设计,将来在升级换代时不需要太大的改动,节省了人力物力。 (3)从上而下层层分析:概要设计要从整体出发,逐个剖析软件的功能,从上而下,先分析系统总的功能,然后一步步细分,直到最小的功能模块。 (4)一致性原则:概要设计要求所有功能模块在定义时使用统一的

4、规范。 (5)提高独立性,减少耦合:各个模块与模块之间尽量减少关联,否则修改一个地方就会引起其他多处的变动,不符合面向对象的原则。一般情况下,对类封装后,只允许对类进行扩展,而不能修改,而封装的类必须具有单一职责,既理论情况下不允许两个类共同完成一个功能. (6)模块的大小要尽量适中:不是结构算法越复杂的模块越好,模块的大小要根据实际工作目标和其他类的耦合紧密程度来决定。经验表明,一个模块的规模不应过大,模块的总行数应控制在10~100行的范围内,最好为30~60行,这样理解和阅读都较方便。过长的模块往往是分解不充分的表现,会增加阅读理解的难度;但小规模太多也会使模块之间联系变得复杂,增大

5、系统在模块调用时传递信息所花费的开销。 由于概要设计是整个设计的重中之重,牵一发而动全身,所以要努力做一个好的概要设计,才能在今后软件开发过程中不再反复。现在软件行业流行模式化驱动设计,将一些市场上比较成功的模式拿来用在自己的设计中。 2。2 将用户需求模块化 根据概要设计的原则来分析一下本项目的用户需求,并最终转化成用程序语言描述的模块。什么样的需求才是一个模块?模块应该具备如下3个特征。 (1)输入和输出:模块必须能被调用并且正确的返回调用,而且调用都是相对一个对象而言,这是模块独立性的一个体现. (2)处理功能:模块必须可以对调用的输入数据进行灵活的处理,并为输出准备好处理结果

6、 (3)程序代码:用来实现模块功能的源代码。 2.3 确定系统最终模块 概要设计中最重要的就是确定此项目包括哪些模块.根据上两节讲述的设计原则和模块特征,将用户需求转化为下面的模块。 **************************************************************************/ 2。4 UML用例图 1 用户登录信息管理 2 用户信息管理 2.5 模块设计 1) 物资信息的添加、修改、删除; 2) 物资信息的查询; 3) 用户的添加、查询、修改; 4) 数据存储数据库中; 三 详细设计 3.1 数据库设计

7、数据库名称:obj 表adm:存放登陆用户的用户名和密码 表wuliu: 管理员(adm) 字段名 类型 备注 Yid Varchar(30) 员工id Yname Nvarchar(50) 员工姓名 Ysex Nchar(1) 性别 '男’ 或者’女’ Yage int 年龄 〉0 Ym int 员工密码 物资信息表(wuliu) 物资的名称字段名 类型· 备注 OleiNvchar(20) Oname Nvchar(20) 物资的类别 Bid Varchar(30) 员工id

8、Date Varchar(30) 存放日期 Oid Varchar(30) 物资的id Os Varchar(30) 存放者 3。2 模块及窗体设计 3.2.1 数据库模块设计 将数据库的连接包装在一个connect类中,以便其他模块能够轻松调用,避免每次重写数据库连接代码。 代码如下: public class connect { private Connection connection; public connect() { } public Connection sql() { String url = ”jdbc:sqlse

9、rver://127.0。0。1:1433;DatabaseName=obj"; String username = "ma”; String password = ”123456”; // Connection ct=null; // 加载驱动程序以连接数据库 try { Class。forName("com。microsoft。sqlserver。jdbc。SQLServerDriver”); connection = DriverManager.getConnection(url, username, password); } /

10、/ 捕获加载驱动程序异常 catch (Exception e) { System。err.println("装载 JDBC/ODBC 驱动程序失败.”); e.printStackTrace(); System.exit(1); // terminate program } return connection; } public void closeAll(Connection conn, Statement stat, ResultSet rs) { if (rs != null) { try { rs.close(

11、 } catch (SQLException e) { // TODO: handle exception e.printStackTrace(); } finally { if (stat != null) { try { stat.close(); } catch (SQLException e) { // TODO: handle exception e.printStackTrace(); } finally { if (conn != null

12、 { try { conn。close(); } catch (SQLException e) { // TODO: handle exception e.printStackTrace(); } } } } } } } } 3.2.2 数据的查询删除功能的封装在Mode和Stable类中 代码如下: public class Mode { private Connection connection; // 连接信息定义

13、private Statement statement; private ResultSet resultSet; public SQLException zeng(String a){ SQLException s = null; String query=a; try { connect t = new connect(); connection=t。sql(); statement=connection.createStatement(); statement.executeUpdate(query); t.closeA

14、ll(connection, statement, resultSet); } catch (SQLException e) { s=e; } return s; } public SQLException change(String a){ SQLException s = null; String query=a; connect t = new connect(); connection=t.sql(); try { statement=connection.createStatement(); sta

15、tement。executeUpdate(query); } catch (SQLException e) { s=e; } return s; } public SQLException dele(String a){ SQLException s=null; String query=a; connect t = new connect(); connection=t.sql(); try { statement=connection.createStatement(); statement。executeU

16、pdate(query); t.closeAll(connection, statement, resultSet); } catch (SQLException e) { // TODO Auto—generated catch block s=e; } return s; } } Stable类的代码如下: public class Stable { private Connection connection; // 连接信息定义 private Statement statement; private ResultSet r

17、esultSet; private ResultSetMetaData rsMetaData; connect t = new connect(); public Stable() { } public Vector getable(String a) { Vector re=new Vector(); connection= t.sql();//封装起来的函数 try { // 执行SQL语句 String query = a; statement = connection.createStatement();//创建一个 S

18、tatement 对象来将 SQL 语句发送到数据库 resultSet = statement.executeQuery(query);//数据库表的结果集 返回resultset // 在表格中显示查询结果 re=displayResultSet(resultSet);//****************调用查找表的函数 t.closeAll(connection, statement, resultSet); } catch (SQLException sqlex) { sqlex.printStackTrace(); } re

19、turn re; } private Vector displayResultSet(ResultSet rs) throws SQLException { // 定位到达第一条记录 此时查询结果已经返回到了结果集中 boolean moreRecords = rs.next(); // 如果没有记录,则提示一条消息 Vector re=new Vector(); Vector columnHeads = new Vector();// 列 向量类 对象 Vector rows = new Vector(); // 在数据库查询的时候是

20、以一行一行查询,带在同一行是是以列查询的拼成一行。 try { // 获取字段的名称 ResultSetMetaData rsmd = rs。getMetaData();//获取此 ResultSet 对象的列的编号、类型和属性。 for (int i = 1; i 〈= rsmd.getColumnCount(); ++i) columnHeads.addElement(rsmd.getColumnName(i)); // 获取记录集 do { rows.addElement(getNextRow(rs, rsmd));//

21、调用函数 } while (rs.next()); re。addElement(rows); re.addElement(columnHeads); return re; //**************************************** } catch (SQLException sqlex) { sqlex.printStackTrace(); } return rows; } private Vector getNextRow(ResultSet rs, ResultSetMetaData rsm

22、d) throws SQLException { Vector currentRow = new Vector();// 行 for (int i = 1; i 〈= rsmd。getColumnCount(); ++i) currentRow.addElement(rs。getString(i)); // 返回一条记录 return currentRow; } } 3。2。3 用户登录识别模块 代码封装在类Land里,所用到的信息保存在表adm里 下表是他的基本属性 判断用户名和密码是否正确的成员方法代码: public class J

23、1 extends JFrame { JLabel J0 = new JLabel(”物流管理系统", JLabel.CENTER); JLabel J1 = new JLabel(”账户:"); JTextField t1 = new JTextField(10); JLabel J2 = new JLabel("密码:"); JPasswordField t2 = new JPasswordField(10); JButton JB0 = new JButton(”登陆"); JButton JB1 = new JButton("重填"); JPanel p

24、[] = new JPanel[4]; JPanel top = new JPanel(); //数据库变量 private Connection connection; private Statement statement; private ResultSet resultSet; connect t = new connect(); J1() { connection= t。sql(); //封装函数 //************************************************************************

25、***************** // new connect();//连接数据库 this。setTitle(”物流管理系统”); this.setSize(500, 400); this。setLocationRelativeTo(null);// 设置窗口启动位置 this。setVisible(true); this。setLayout(new GridLayout(6, 1));// 网格布局 Container con = this。getContentPane(); // 返回一个conterPanel的对象 for (in

26、t i = 0; i < 4; i++) { p[i] = new JPanel(); con。add(p[i]); } J0。setFont(new Font("宋体”,Font.BOLD,20)); p[0].add(J0); J0。setBounds(15, 15, 50, 20); p[1].add(J1); J1。setBounds(15, 20, 50, 20); p[1]。add(t1); t1.setBounds(80, 20, 120, 20); p[2].add(J2); J2.setBounds(

27、15, 30, 50, 20); p[2]。add(t2); t2.setBounds(80, 30, 120, 20); p[3].add(JB0); JB0。setBounds(20, 40, 80, 20); p[3]。add(JB1); JB1.setBounds(140, 40, 80, 20); // 事件监听 JB0.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) {

28、// TODO Auto-generated method stub //获取文本框的数据 String a=t1。getText(); @SuppressWarnings("deprecation") String b=t2.getText(); getDate(a,b); } }); JB1。addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO

29、 Auto-generated method stub t1.setText(""); t2.setText(”"); } }); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(1); } }); } private void getDate(String a,String b) { try { // 执行SQL语句 String query

30、 = ”select *from adm where Yname='"+a+”' and Ypassword=”+b;//拼接查询语句 statement = connection.createStatement(); resultSet = statement。executeQuery(query); // System。out。print(query);测试拼接语 ResultSet rs = resultSet;//返回相应的对象 boolean moreRecords = rs。next(); //查询标志 // 如果没有记录,则提示一条

31、消息 if (!moreRecords) { JOptionPane。showMessageDialog(this, ”没有该账户”); setTitle("登陆错误”); return; }else{ new zhu(); } t。closeAll(connection, statement, resultSet); } catch (SQLException sqlex) { sqlex.printStackTrace(); JOptionPane.showMessageDialog(this,

32、 ”没有该账户"); setTitle(”登陆错误"); return; } } public static void main(String args[]) { new J1(); } } 3。2。4用户信息管理模块 (1)用户增加 用户名将自动从表adm里检索出来,供用户选择 以下是它的基本属性 package cn。GUI; public class adminsert extends JFrame { private JLabel biaoti; private JLabel Oid; private JLabel Cu

33、nfang; private JLabel leibie; private JLabel mingcheng; private JTextField TOid; private JTextField TCunfang; private JTextField Tleibie; private JTextField Tmingcheng; private JButton add; private JButton cho; private Container con; adminsert() { // TODO Auto-generated constr

34、uctor stub this.setSize(500, 400); this.setLocationRelativeTo(null); this。setVisible(true); this.setLayout(new GridLayout(7, 1)); biaoti = new JLabel("添加用户信息", JLabel.CENTER); biaoti.setFont(new Font(”宋体", Font.BOLD, 20)); //YuanGongId = new JLabel("员工id:"); Cunfang = new JLa

35、bel("姓名: ”); leibie = new JLabel("性别: ”); mingcheng = new JLabel(”年龄: "); Oid = new JLabel("密码: "); //TYuanGongId = new JTextField(10); TCunfang = new JTextField(10); Tleibie = new JTextField(10); Tmingcheng = new JTextField(10); TOid = new JTextField(10); add = new JButto

36、n("添加"); cho = new JButton("重填”); con = this.getContentPane(); JPanel p[] = new JPanel[6]; for (int i = 0; i < 6; i++) { p[i] = new JPanel(); con。add(p[i]); setVisible(true); } p[0]。add(biaoti); //p[1]。add(YuanGongId); //p[1]。add(TYuanGongId); p[1].add(Cunfang)

37、 p[1]。add(TCunfang); p[2].add(leibie); p[2].add(Tleibie); p[3]。add(mingcheng); p[3]。add(Tmingcheng); p[4]。add(Oid); p[4]。add(TOid); p[5].add(add); p[5]。add(cho); BHandler h = new BHandler(); // 添加事件监听 add.addActionListener(h); cho。addActionListener(h); this.ad

38、dWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(1); } }); } public static void main(String args[]) { //new adminsert(); } public class BHandler implements ActionListener { public void actionPerformed(ActionEvent e) { if (

39、e.getSource() == add) { //insert into adm(Yid,Yname,Ysex,Yage,Ypassword) values(3,'cl’,’d’,33,123) String query = ”insert into adm (Yname,Ysex,Yage,Ypassword) values(” + "’" + TCunfang。getText() + "','" + Tleibie。getText() + ”',” + Tmingcheng。get

40、Text() + ”," + TOid。getText() + ")”; SQLException s=null; System。out。print(query); try { Mode m = new Mode(); System.out.print(query); s=m。zeng(query); System。out.print(s); JOptionPane.showMessageDialog(con, "增加成功!”); } catch (Exception s1) {

41、 JOptionPane。showMessageDialog(con, "增加失败!"); s1。printStackTrace(); } } if(e。getSource()==cho){ TCunfang。setText(””); Tleibie。setText(””); Tmingcheng。setText(""); TOid.setText(”"); } } } } (2)用户信息查询和删除 基本属性如下 package cn.GUI; public class dele

42、teadm extends JFrame { private JTextArea text; private JTextArea text1; private JTextArea text2; private JTable table; private JComboBox list; private JComboBox list1; private JLabel lable; private JLabel lable1; private JLabel lable2; private JButton sub; private JButton ch;

43、 private Container con; private String names[] = { ”员工号", ”姓名","查看所有用户" }; // 下拉链表 private Connection connection; // 连接信息定义 private Statement statement; connect t = new connect(); deleteadm () { this.setSize(500, 400); this.setLocationRelativeTo(null); this.setVisible(true); t

44、his。setLayout(new BorderLayout()); Container con = this。getContentPane(); lable = new JLabel("选择:"); lable1 = new JLabel("选择:"); lable2 = new JLabel("员工号:"); text = new JTextArea("”, 1, 7); text1 = new JTextArea(””, 1, 7); text2 = new JTextArea("”, 1, 7); sub = new JButton("查

45、询"); ch = new JButton("删除”); list = new JComboBox(names); list1 = new JComboBox(names); list。setMaximumRowCount(3); list1。setMaximumRowCount(3); list。setSelectedIndex(0); list1。setSelectedIndex(0); // 标签 JPanel south = new JPanel();// 下面的面板 JPanel TopPanel = new JPanel(

46、); JPanel north = new JPanel(); north。setBounds(getBounds()); north。add(lable); north.add(list); north.add(text);// 把按钮添加到 SePanel north。add(sub); south。add(lable2); south.add(text2); south.add(ch); table = new JTable();// 表格 con。add(north, BorderLayout。NORTH); co

47、n.add(table, BorderLayout。CENTER); con.add(south, BorderLayout.SOUTH); // 事件监听 BHandler h = new BHandler(); sub。addActionListener(h); ch。addActionListener(h); } public static void main(String args[]) { new deleteadm(); } private void getTable(String test) { // 获取表的这一部分封装

48、在了一个类中 Vector getV = new Vector(); Vector rows = new Vector(); Vector columnHeads = new Vector(); Stable s = new Stable(); getV = s。getable(test); // 调用类里的函数 rows = (Vector) getV.get(0); columnHeads = (Vector) getV.get(1); // 可以拆封 // 在表格中显示查询结果 table = new JTable(rows,

49、columnHeads); // 传入两个对象 public 相当与一个泛型数组 // JTable(TableModel dm, // TableColumnModel cm) JScrollPane scroller = new JScrollPane(table);// 可滚动的面板 Container c = getContentPane();// 容器 c。remove(1); c。add(scroller, BorderLayout.CENTER); // 刷新Table c.validate(); // *

50、*************************************** } public class BHandler implements ActionListener { public void actionPerformed(ActionEvent e) { if (e。getSource() == sub) { repaint(); map like = new map(); String str = like.ad()。get(list.getSelectedItem())。toString(); String a

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服