十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
import java.util.*;
创新互联长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为罗庄企业提供专业的网站设计、网站制作,罗庄网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.io.*;
class 商品 extends Panel
{String 代号,名称;int 库存;float 单价; br/商品(String 代号,String 名称,int 库存,float 单价) br/{this.代号=代号;this.名称=名称;this.库存=库存;this.单价=单价; br/}
}
class ShowWin extends JFrame implements ActionListener
{ Hashtable hashtable=null;
JTextField 代号文本框=new JTextField(),
名称文本框=new JTextField(),
库存文本框=new JTextField(),
单价文本框=new JTextField(),
查询文本框=new JTextField(),
查询信息文本框=new JTextField(),
删除文本框=new JTextField();
JButton b_add=new JButton("添加商品"),
b_del=new JButton("删除商品"),
b_xun=new JButton("查询商品"),
b_xiu=new JButton("修改商品"),
b_show=new JButton("显示商品清单");
JTextArea 显示区=new JTextArea(25,10);
ShowWin()
{super("仓库管理窗口"); br/hashtable=new Hashtable(); br/Container con=getContentPane(); br/JScrollPane pane=new JScrollPane(显示区); br/显示区.setEditable(false); br/JPanel save=new JPanel(); br/save.setLayout(new GridLayout(8,2)); br/save.add(new Label("输入代号:")); br/save.add(代号文本框); br/save.add(new Label("输入名称:")); br/save.add(名称文本框); br/save.add(new Label("输入库存:"));/pre /div div class="replenish min_margin" dl dt 补充: /dt dd save.add(库存文本框); br/save.add(new Label("输入单价:")); br/save.add(单价文本框); br/save.add(new Label("单击添加:")); br/save.add(b_add); br/save.add(new Label("单击修改:")); br/save.add(b_xiu); br/save.add(new Label("输入查询代号:")); br/save.add(查询文本框); br/save.add(new Label("单击查询:")); br/save.add(b_xun); br/JPanel del=new JPanel(); br/del.setLayout(new GridLayout(2,2)); br/del.add(new Label("输入删除的代号:")); br/del.add(删除文本框); br/del.add(new Label("单击删除:")); br/del.add(b_del); br/JPanel show=new JPanel(); br/show.setLayout(new BorderLayout()); br/show.add(pane,BorderLayout.CENTER); br/show.add(b_show,BorderLayout.SOUTH); br/JSplitPane split_one,split_two; br/split_one=new JSplitPane(JSplitPane.VERTICAL_SPLIT,save,del); br/split_two=new br/JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,split_one,show); br/con.add(split_two,BorderLayout.CENTER); br/JPanel xun=new JPanel(); br/xun.add(new Label("所得信息:")); br/xun.add(查询信息文本框); br/xun.setLayout(new GridLayout(2,1)); br/con.add(xun,BorderLayout.SOUTH); br/b_add.addActionListener(this); /dd /dl dl dt 补充: /dt dd b_del.addActionListener(this); br/b_xun.addActionListener(this); br/b_xiu.addActionListener(this); br/b_show.addActionListener(this); br/}
public void actionPerformed(ActionEvent e)
{if(e.getSource()==b_add) br/{String daihao=null,mingcheng=null;int kucun=0;float danjia=0.0f; br/daihao=代号文本框.getText();mingcheng=名称文本框.getText(); br/kucun=Integer.parseInt(库存文本框.getText()); br/danjia=Float.valueOf(单价文本框.getText()).floatValue(); br/商品 goods=new 商品(daihao,mingcheng,kucun,danjia); br/hashtable.put(daihao,goods); br/try{FileOutputStream file=new FileOutputStream("goods.txt"); br/ObjectOutputStream out=new ObjectOutputStream(file); br/out.writeObject(hashtable); out.close(); br/}
catch(IOException event){}
}
else if(e.getSource()==b_del)
{String daihao1=删除文本框.getText(); br/try{FileInputStream come_in=new FileInputStream("goods.txt"); br/ObjectInputStream in=new ObjectInputStream(come_in); br/hashtable=(Hashtable)in.readObject(); ////// br/in.close(); br/} /dd /dl 补充: catch(ClassNotFoundException event){}
catch(IOException event){}
商品 temp=(商品)hashtable.get(daihao1);
{hashtable.remove(daihao1);}
try{FileOutputStream file=new FileOutputStream("goods.txt"); br/ObjectOutputStream out =new ObjectOutputStream(file); br/out.writeObject(hashtable);// br/out.close(); br/}
catch(IOException event){}
}
//
else if(e.getSource()==b_xun)
{ String aa;
aa=查询文本框.getText();
查询信息文本框.setText(null);
try{FileInputStream come_in=new FileInputStream("goods.txt"); br/ObjectInputStream in =new ObjectInputStream(come_in); br/hashtable=(Hashtable)in.readObject(); //// br/in.close(); br/}
catch(ClassNotFoundException event){}
catch(IOException event){}
商品 a=(商品)hashtable.get(aa);
查询信息文本框.setText(" 代号:"+a.代号+" 名称:"+a.名称+" 库存:"+a.库存+" 单价:"+a.单价);
}
//
else if(e.getSource()==b_xiu)
{ String bb;
bb=代号文本框.getText();
try{FileInputStream come_in=new FileInputStream("goods.txt"); br/ObjectInputStream in=new ObjectInputStream(come_in); /dd /dl dl dt 补充: /dt dd hashtable=(Hashtable)in.readObject(); ////// br/in.close(); br/}
catch(ClassNotFoundException event){}
catch(IOException event){}
商品 temp=(商品)hashtable.get(bb);
{hashtable.remove(bb);}
try{FileOutputStream file=new FileOutputStream("goods.txt"); br/ObjectOutputStream out =new ObjectOutputStream(file); br/out.writeObject(hashtable);// br/out.close(); br/}
catch(IOException event){}
String daihao1=null,mingcheng1=null;int kucun1=0;float danjia1=0.0f;
daihao1=代号文本框.getText();mingcheng1=名称文本框.getText();
kucun1=Integer.parseInt(库存文本框.getText());
danjia1=Float.valueOf(单价文本框.getText()).floatValue();
商品 goods1=new 商品(daihao1,mingcheng1,kucun1,danjia1);
hashtable.put(daihao1,goods1);
try{FileOutputStream file=new FileOutputStream("goods.txt"); br/ObjectOutputStream out=new ObjectOutputStream(file); br/out.writeObject(hashtable); out.close(); br/}
catch(IOException event){}
}
//
else if(e.getSource()==b_show)
{ 显示区.setText(null); 补充: try{FileInputStream come_in=new FileInputStream("goods.txt"); br/ObjectInputStream in =new ObjectInputStream(come_in); br/hashtable=(Hashtable)in.readObject(); //// br/}
catch(ClassNotFoundException event){}
catch(IOException event){}
Enumeration enum=hashtable.elements();
while(enum.hasMoreElements())
{ 商品 te=(商品)enum.nextElement();
显示区.append("商品代号:"+te.代号+" ");
显示区.append("商品名称:"+te.名称+" ");
显示区.append("商品库存:"+te.库存+" ");
显示区.append("商品单价:"+te.单价+" ");
显示区.append("\n ");
}
}
}
}
public class LinkListFour
{public static void main(String args[]) br/{ ShowWin win=new ShowWin(); br/win.setSize(400,350); br/win.setVisible(true); br/win.addWindowListener(new WindowAdapter() br/{public void windowClosing(WindowEvent e) br/{ System.exit(0);}});
}
}
终于完了! 追问: 这里面应该没有涉及到功能吧?? 回答: 你可以根据这个写出来呀!呵呵.
既然是商品库存系统,那么最少有各种商品的单件信息,1:需要有商品的进货价格,卖出价格,剩余数量,每月的销售数量,进货时间等,在对应的数据库表创建相应的字段。2:商品管理就是对多种商品的管理,所以还要有各种商品的分类,比如烟酒类,饮料类,小吃类,将其分类好管理,同样数据库里面建立相对的数据表。具体需要根据自己需求来编写。3:界面的设计,这里可分为登陆界面,其中一个是用户登陆后查看的界面,和管理员登陆后查看的界面,用户登录只能查看对应的商店的物品管理,并且能进行修改自家商品。管理员登陆可查看所有的用户的商店物品,及修改物品信息。而物品分类栏就可以用jQuery来实现局部的刷新界面。左边为物品分类栏,右边为选中物品类的信息。点击右边分类物品的某件物品,可跳转到该类物品的单个信息,如第1点提到的。
你说的java源代码是指编译成的class文件前的java文件。
当我们运行.java文件时,它会被系统编译成.class文件,例如Test.java编译之后就是Test.class,
源文件就是指Test.java文件,
一般部署项目时,有.class文件就可以发布运行了,但是如果想修改这个系统,.class是不能修改的,要有.java文件才能修改
也可以上网去下反编译软件,就是能把.class文件大部分还原成.java文件的工具,但不是100%还原,而且如果不是正版的,小心有毒啊,什么的。
我有进销存的源码MVC、Hibernate的都有,但是数据库是SQL Server 2000的。开发工具采用Eclipse,开发应用服务器采用Tomcat 。不知可以不???
给你个流程,自己学着做,做出来你会很有成就感的,对你的技术也有很大帮助:
仓库管理系统流程说明
(一)进货管理
现代商业管理,进货环节尤为重要,要求现场实时下订单(Purchase
Order),及时补货。
1、
业务员根据手中的手持终端(Handheld
Terminal,简称HHT),调用后台资料,与实际库存资料进行实
时对照,并可通过终端无线驱动打印机打印对照表;
2、
业务员根据实时对照表,现场决定是否应补货或退货,通过终端调用后台数据库制定订单,以最快速度进行补货或退货;维持库存的合理性。
(二)上架
将货物存放到货位上。
(三)交叉驳运
这种作业不对商品进行储存,只处理信息分类。作业接受来自制造商的顾客组合订货,并把他们装运到个别的顾客处去。交叉站台是指多对多的配送体系中的货物调整。直接通过交叉换货后为客户配送,可以避免出入库的麻烦。
(四)收货管理
1、
供货商按照订单要求将货品送到商场收货处;
2、
商场验收人员利用终端调用后台数据库中相应的订单存盘,与供货商送来的商品逐一检查对照,并进行确认,包括:商品编码、商品数量、生产地、品种、规格、包装时间、保质时间、旧价格、新价格、变更时间、条形码标准等信息;
注:终端在系统未授权的情况下无法修改订单。
3、
商场验收人员在终端上按[确认]键,将信息上传到后台服务器,并同时记录收货时间和收货人;
4、
终端可以现场实时调用后台数据库中供货商的历史订单,逐一查验对照核算;
5、
通过终端无线驱动打印机打印收货清单;
6、
在查验过程中出现问题,可以拒收货物。
(五)货位管理
1、
采用条码解读器读取商品条形码,查询商品在货区的具体位置,(如X商品在A货区B航道C货架2层),用叉车将商品送到位,实现商品的全方位管理。
2、
通过终端实时地查看货位货量的存储情况、空间大小及商品的最大容量,管理货仓的区域、容量、体积和装备限度。
3、
系统可以支持商场货架、工具、固定资产及设备的反复排定和追踪管理;使实际现场的错误堆放或工具、货物的零散管理变得容易;使之有序、易于比较和修正现场与系统管理的信息差异;显示、查询设备、产品的使用历史资料及商品、易损耗品的零用及耗费清单。
(六)盘点管理
传统盘点必须关门进行盘点,盘点时间长,投入人力、物力大,效率低,由于人为因素较多,盘点资料不准确,给决策带来极大困难。使用终端进行商品盘点,可以避免传统盘点的这些弊端,而使用RF
终端后,后台系统通过无线网络终端在盘点采集资料的同时进行数据处理,更节省时间,灵活性更好。
(七)查询管理
1、
在任何时间和地点,都可以通过终端进行查询;查询内容包括:商品信息、库存情况、变价核对、订单校验等等;
2、
每次查验可以包括该项诸多信息的逐一核对,并反馈给系统有效结果。
3、
总经理的现场实时查询和店面的现场实时指挥工作变得方便容易。
(八
)追踪调货管理
在商场、仓库、箱位、系列包装及货盘之间实现任意调货功能。
(九)
出货业务管理
完成校验单据、出库登记、释放货位、意外处理、货物跟踪
(十)
拣选管理
略
(十一)
装运管理
略
(十二)
移库管理
主要是针对不同库区间的货物移动,移入系统可以根据收货系统原则进行处理,移出系统可以根据出货系统原则进行处理。
(十三)
退货处理
(1)
退厂通知维护
(2)
退厂通知确认:系统将在库存中自动增加待出量
(3)
将退厂作业资料传送到配送中心,然后等待配送中心回单
(4)
得到退厂资料回单后,执行退厂回单登录,系统将自动调整库存
package com.company.dao;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class BaseDao {
// 数据库驱动
String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//url
String url = "jdbc:sqlserver://数据库ip:端口号;databaseName=数据库名;";
//用户名
String uname = "数据库用户名";
//密码
String pwd = "数据库密码";
/**
* 获得连接对象
* @return
*/
protected Connection getCon(){
//返回的连接
Connection con = null;
try {
//载入驱动
Class.forName(driver);
//得到连接
con = DriverManager.getConnection(url, uname, pwd);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
/**
* 关闭数据库
* @param con
* @param stmt
* @param rs
*/
protected void closeDB(Connection con, Statement stmt, ResultSet rs){
if(rs != null){
try {
//关闭结果集
rs.close();
rs = null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(stmt != null){
try {
//关闭语句对象
stmt.close();
stmt = null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(con != null){
try {
//关闭连接对象
con.close();
con = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
}
protected void closeDB(Connection con, PreparedStatement pstmt, ResultSet rs){
if(rs != null){
//关闭结果集
try {
rs.close();
rs = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pstmt != null){
try {
pstmt.close();
pstmt = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
if(con != null){
try {
con.close();
con = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
}
这个是我写的一个基本的连接sql2005数据库的代码,.! 不知道你能不能用,! 你看一下吧, 连接的时候需要sqljdbc.jar数据库驱动,!