物资管理系统.doc
《物资管理系统.doc》由会员分享,可在线阅读,更多相关《物资管理系统.doc(28页珍藏版)》请在咨信网上搜索。
1、JAVA程序设计课程设计报告设计题目: 物资管理系统设计与实现 学院名称: 信息工程学院 专业班级: 姓 名: 学 号: 13122102 目录目录一 需求分析2二 概要设计22。1 概要设计的原则22.2 将用户需求模块化32.3 确定系统最终模块32。4 UML用例图32.5 模块设计4三 详细设计53.1 数据库设计53.2 模块及窗体设计63。2。1 数据库模块设计6一 需求分析 本系统的主要目的就是对物资管理的快捷管理以及对数据信息的显示,存放的日期显示所有者等。二 概要设计概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。项目的成功取决于设计的好坏
2、,而概要设计则是整个设计的关键部分.概要设计的主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规则约束,以达到各个模块之间可以相互交流的目的。概要设计关乎到系统的整体架构,因此想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。2。1 概要设计的原则概要设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。概要设计要坚持以下几个原则。(1)细分原则:软件系统都是由很多不同的模块组成,当设计一套软件时,要先将所有的功能分解。解决复杂问题的方法是将其分解成几个小问题,一个个来解决。(2)提高代码重用性:在面向对象设计中,首
3、先考虑的就是代码的重用,一个好的设计,将来在升级换代时不需要太大的改动,节省了人力物力。(3)从上而下层层分析:概要设计要从整体出发,逐个剖析软件的功能,从上而下,先分析系统总的功能,然后一步步细分,直到最小的功能模块。(4)一致性原则:概要设计要求所有功能模块在定义时使用统一的规范。(5)提高独立性,减少耦合:各个模块与模块之间尽量减少关联,否则修改一个地方就会引起其他多处的变动,不符合面向对象的原则。一般情况下,对类封装后,只允许对类进行扩展,而不能修改,而封装的类必须具有单一职责,既理论情况下不允许两个类共同完成一个功能.(6)模块的大小要尽量适中:不是结构算法越复杂的模块越好,模块的大
4、小要根据实际工作目标和其他类的耦合紧密程度来决定。经验表明,一个模块的规模不应过大,模块的总行数应控制在10100行的范围内,最好为3060行,这样理解和阅读都较方便。过长的模块往往是分解不充分的表现,会增加阅读理解的难度;但小规模太多也会使模块之间联系变得复杂,增大系统在模块调用时传递信息所花费的开销。由于概要设计是整个设计的重中之重,牵一发而动全身,所以要努力做一个好的概要设计,才能在今后软件开发过程中不再反复。现在软件行业流行模式化驱动设计,将一些市场上比较成功的模式拿来用在自己的设计中。2。2 将用户需求模块化根据概要设计的原则来分析一下本项目的用户需求,并最终转化成用程序语言描述的模
5、块。什么样的需求才是一个模块?模块应该具备如下3个特征。(1)输入和输出:模块必须能被调用并且正确的返回调用,而且调用都是相对一个对象而言,这是模块独立性的一个体现.(2)处理功能:模块必须可以对调用的输入数据进行灵活的处理,并为输出准备好处理结果。(3)程序代码:用来实现模块功能的源代码。2.3 确定系统最终模块概要设计中最重要的就是确定此项目包括哪些模块.根据上两节讲述的设计原则和模块特征,将用户需求转化为下面的模块。*/2。4 UML用例图1 用户登录信息管理2 用户信息管理2.5 模块设计1) 物资信息的添加、修改、删除;2) 物资信息的查询;3) 用户的添加、查询、修改;4) 数据存
6、储数据库中;三 详细设计3.1 数据库设计数据库名称:obj表adm:存放登陆用户的用户名和密码表wuliu:管理员(adm)字段名类型备注YidVarchar(30)员工idYnameNvarchar(50)员工姓名YsexNchar(1)性别男 或者女Yageint年龄0Ymint员工密码物资信息表(wuliu)物资的名称字段名类型备注OleiNvchar(20)OnameNvchar(20)物资的类别BidVarchar(30)员工idDateVarchar(30)存放日期OidVarchar(30)物资的idOsVarchar(30)存放者3。2 模块及窗体设计3.2.1 数据库模块设
7、计将数据库的连接包装在一个connect类中,以便其他模块能够轻松调用,避免每次重写数据库连接代码。代码如下:public class connect private Connection connection;public connect() public Connection sql() String url = ”jdbc:sqlserver:/127.0。0。1:1433;DatabaseName=obj;String username = ma”;String password = ”123456”;/ Connection ct=null;/ 加载驱动程序以连接数据库try Cla
8、ss。forName(com。microsoft。sqlserver。jdbc。SQLServerDriver”);connection = DriverManager.getConnection(url, username, password);/ 捕获加载驱动程序异常catch (Exception e) System。err.println(装载 JDBC/ODBC 驱动程序失败.”);e.printStackTrace();System.exit(1); / terminate programreturn connection;public void closeAll(Connecti
9、on conn, Statement stat, ResultSet rs) if (rs != null) try rs.close(); catch (SQLException e) / TODO: handle exceptione.printStackTrace(); finally if (stat != null) try stat.close(); catch (SQLException e) / TODO: handle exceptione.printStackTrace(); finally if (conn != null) try conn。close(); catch
10、 (SQLException e) / TODO: handle exceptione.printStackTrace();3.2.2 数据的查询删除功能的封装在Mode和Stable类中代码如下:public class Mode private Connection connection; / 连接信息定义private Statement statement;private ResultSet resultSet;public SQLException zeng(String a)SQLException s = null;String query=a;try connect t = n
11、ew connect();connection=t。sql();statement=connection.createStatement();statement.executeUpdate(query);t.closeAll(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(
12、);try statement=connection.createStatement();statement。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。executeUpdate(query)
13、;t.closeAll(connection, statement, resultSet); catch (SQLException e) / TODO Autogenerated catch blocks=e;return s;Stable类的代码如下:public class Stable private Connection connection; / 连接信息定义private Statement statement;private ResultSet resultSet;private ResultSetMetaData rsMetaData;connect t = new conn
14、ect();public Stable() public Vector getable(String a) Vector re=new Vector();connection=t.sql();/封装起来的函数try / 执行SQL语句String query = a;statement = connection.createStatement();/创建一个 Statement 对象来将 SQL 语句发送到数据库resultSet = statement.executeQuery(query);/数据库表的结果集 返回resultset/ 在表格中显示查询结果re=displayResultS
15、et(resultSet);/*调用查找表的函数t.closeAll(connection, statement, resultSet); catch (SQLException sqlex) sqlex.printStackTrace();return re;private Vector displayResultSet(ResultSet rs) throws SQLException / 定位到达第一条记录 此时查询结果已经返回到了结果集中boolean moreRecords = rs.next();/ 如果没有记录,则提示一条消息Vector re=new Vector();Vect
16、or columnHeads = new Vector();/ 列 向量类 对象Vector rows = new Vector();/ 在数据库查询的时候是以一行一行查询,带在同一行是是以列查询的拼成一行。try / 获取字段的名称ResultSetMetaData rsmd = rs。getMetaData();/获取此 ResultSet 对象的列的编号、类型和属性。for (int i = 1; i = rsmd.getColumnCount(); +i)columnHeads.addElement(rsmd.getColumnName(i));/ 获取记录集do rows.addEl
17、ement(getNextRow(rs, rsmd);/ 调用函数 while (rs.next());re。addElement(rows);re.addElement(columnHeads);return re;/* catch (SQLException sqlex) sqlex.printStackTrace();return rows;private Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd)throws SQLException Vector currentRow = new Vector();/ 行for (i
18、nt i = 1; i = rsmd。getColumnCount(); +i)currentRow.addElement(rs。getString(i));/ 返回一条记录return currentRow;3。2。3 用户登录识别模块代码封装在类Land里,所用到的信息保存在表adm里下表是他的基本属性判断用户名和密码是否正确的成员方法代码:public class J1 extends JFrame JLabel J0 = new JLabel(”物流管理系统, JLabel.CENTER);JLabel J1 = new JLabel(”账户:);JTextField t1 = new
19、 JTextField(10);JLabel J2 = new JLabel(密码:);JPasswordField t2 = new JPasswordField(10);JButton JB0 = new JButton(”登陆);JButton JB1 = new JButton(重填);JPanel p = new JPanel4;JPanel top = new JPanel();/数据库变量private Connection connection;private Statement statement;private ResultSet resultSet;connect t =
20、 new connect();J1() connection=t。sql(); /封装函数/*/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 (int i = 0; i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 物资 管理 系统
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。