1、Java进销存管理信 电 学 院课程设计说明书(2013/2014学年第 2 学期)课程名称 : JAVA程序设计 题 目 : 进销存管理软件 专业班级 : 学生姓名 : 学 号: 指导教师 : 设计周数 : 设计成绩 : 2014年 7月 9日课程设计说明书进销存管理软件1、软件简介进销存管理软件是为了解决仓库进货、出货混乱,数据量较大问题而设计的一款数据处理软件。它主要面向仓库管理人员,小型公司。运用这款软件,可以提高工作效率,减少数据丢失,处理失误。二、程序框架程序整体分成两部分,分别是前台Java程序和后台数据库前台Java程序JTableJComboBox后台数据库:wh_AddGo
2、odsListwh_SubGoodsListwh_SortListwh_GoodsListwh_LinkmanListwh_UnitList数据SQL语句1.后台数据库部分wh_AddGoodsList 和 wh_SubGoodsList包含如下字段字段名称字段类型约束默认值addListId/subListIdint 主键identityisDisplaybitTRUEsoftint外键goodsint外键addTimedatetime(getdate()Increment/decrementint unitint外键linkmanint外键tipntextwh_SortList包含如下字段
3、字段名称字段类型约束默认值sortListIdint 主键identityisDisplaybitTRUEeverySortnchar(10)wh_GoodsList字段名称字段类型约束默认值goodsListIdint主键identityisDisplaybitTRUEeveryGoodsnchar(10)belongSortint外键wh_LinkmanList字段名称字段类型约束默认值linkmanListIdint 主键identityisDisplaybitTRUEeveryLinkmannchar(10)wh_UnitList字段名称字段类型约束默认值unitListIdint 主
4、键identityisDisplaybitTRUEeveryUnitnchar(10)SQL Sever2005中数据呈现:2.前台Java程序部分工程src下包含如下几个包com.hebeu.warehouse.dao com.hebeu.warehouse.Lisenercom.hebeu.warehouse.maincom.hebeu.warehouse.modelcom.hebeu.warehouse.uicom.hebeu.warehouse.util下面对以上几个包及其包含的class一一介绍com.hebeu.warehouse.dao 包中包含一个Dao类,这个类主要负责数据库
5、的管理操作,从数据库中获取数据。其中有如下方法:public static void execSQL(String sql) public static VectorVector getLinkedSubGoodsVector() public static VectorVector getLinkedAddGoodsVector() public static VectorVector setDateForm(VectorVector all) public static VectorVector getDisplayVectorFromAll( VectorVector v) public
6、 static VectorVector getLinkmanVector() return getVector(getResultSet(SELECT * FROM wh_LinkmanList); public static VectorVector getUnitVector() return getVector(getResultSet(SELECT * FROM wh_UnitList); public static VectorVector getSortVector() return getVector(getResultSet(SELECT * FROM wh_SortList
7、); public static VectorVector getGoodsVector() return getVector(getResultSet(SELECT * FROM wh_GoodsList); public static VectorVector getAllSubGoodsVector() return getVector(getResultSet(SELECT * FROM wh_SubGoodsList); public static VectorVector getAllAddGoodsVector() return getVector(getResultSet(SE
8、LECT * FROM wh_AddGoodsList); public static ResultSet getResultSet(String sql) public static VectorVector getVector(ResultSet rs) com.hebeu.warehouse.Lisener里包含NumberKeyListener类,主要是用来为了给TextField添加监听事件只能输入数字,代码如下:public class NumberKeyListener implements KeyListener Override public void keyTyped(Ke
9、yEvent e) / TODO Auto-generated method stub int keyChar = e.getKeyChar(); if(keyChar=KeyEvent.VK_0&keyChar=KeyEvent.VK_9) else e.consume(); Override public void keyPressed(KeyEvent e) / TODO Auto-generated method stub Override public void keyReleased(KeyEvent e) / TODO Auto-generated method stub com
10、.hebeu.warehouse.main里包含程序的入口类,代码如下:public class WareHouse /* * param args */ public static void main(String args) / TODO Auto-generated method stub SwingConsole.run(new MainUI(), 1050, 700); System.out.println(my java process); / 注册一个关机钩,当系统被退出或被异常中断时,启动这个关机钩线程 Runtime.getRuntime().addShutdownHook(
11、new Thread() public void run() / 添入你想在退出JVM之前要处理的必要操作代码 try Dao.conn.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); System.out.println(数据库链接关闭); ); com.hebeu.warehouse.model里包含一个记录类,其中的get、set方法不在罗列,代码如下:public class Record private int id = 0; private int isDi
12、splay = 1; private int sort = 0; private int goods = 0; private String datetime = null; private int incOrSub = 0; private int unit = 0; private int linkman = 0; private String tip = null; Override public String toString() return Record id= + id + , isDisplay= + isDisplay + , sort= + sort + , goods=
13、+ goods + , datetime= + datetime + , incOrSub= + incOrSub + , unit= + unit + , linkman= + linkman + , tip= + tip + ; public String toSQLForAddRecordToAddList() return insert into wh_AddGoodsList(sort,goods,increment,unit,linkman,tips) values( + + sort + , + goods + , + incOrSub + , + unit + , + link
14、man + , + tip + + ); public String toSQLForAddRecordToSubList() return insert into wh_SubGoodsList(sort,goods,decrement,unit,linkman,tips) values( + + sort + , + goods + , + incOrSub + , + unit + , + linkman + , + tip + + ); public String toStringForUpdRecordToAddList() return update wh_AddGoodsList
15、 set sort= + + sort + ,goods= + goods + ,increment= + incOrSub + ,addTime= + (getdate() + ,unit= + unit + ,linkman= + linkman + ,tips= + tip + + where + addListId= + id + ; public String toStringForUpdRecordToSubList() return update wh_SubGoodsList set sort= + + sort + ,goods= + goods + ,decrement=
16、+ incOrSub + ,subTime= + (getdate() + ,unit= + unit + ,linkman= + linkman + ,tips= + tip + + where + subListId= + id + ; com.hebeu.warehouse.ui里包含很多界面类,代码较长,详情见源程序om.hebeu.warehouse.util里包含一个将Table输出到Excel的类,代码如下:public class ExcelExporter public static void excelConstructor(JTable table, File file)
17、 throws IOException TableModel model = table.getModel(); FileWriter out = new FileWriter(file); for(int i=0; i model.getColumnCount(); i+) out.write(model.getColumnName(i) + t); out.write(n); for(int i=0; i model.getRowCount(); i+) for(int j=0; j model.getColumnCount(); j+) out.write(model.getValueA
18、t(i,j).toString()+t); out.write(n); out.close(); System.out.println(write out to: + file); 3、程序运行情况进货操作:后台管理使用说明:四、心得总结这次课程设计做作的程序,是我大学两年来自己完成的工作量最大的程序。项目界面复杂,逻辑关系繁多,关键是自己完成,从设计,到实现,再到调试,有种午夜孤独者的感觉,不过做完了的那种成就感也是不言而喻的。这个小程序虽说达不到商品级,但是也让我学到很多,比如说如何从数据库更新一个JTable,再由JTable生成Excel,再比如让一个空间放到一个自己想要的位置,这些都是让我头疼好久,最后解决了的问题。通过这个程序,我觉得自己在以后的程序设计中要注意下面的几个问题:1.一定要考虑好自己自己需要什么样的数据库表结构,主体数据是必须的,但是功能字段也是必不可少的,比如这次的isDisplay,这些都是细节,但不可或缺。2.程序设计一定要先整体后局部,一块一块的来,逻辑复杂的要最后在实现,这样有利于程序模块化课程设计评 语课程设计成 绩指导教师(签字) 年 月 日
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2