进销存管理系统课设_第1页
进销存管理系统课设_第2页
进销存管理系统课设_第3页
进销存管理系统课设_第4页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告课程名称信息系统项目管理与实践课题名称企业进销存管理专业xxx班级xxx学号xxxxxxx姓名xxx指导教师xxx xxx20xx年 x 月 x 日一、设计内容与设计要求1.课程设计目的全面熟悉、掌握信息系统项目管理基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及项目管理描述的本领,熟悉编制和调试程序的技巧,掌握分析结专业资料果的若干有效方法,进一步提高上机动手能力, 增强面向对象程序设计概念, 熟悉 java语言编程,养成提供文档资料的习惯和规范编程的思想,为后继课程的实验以及课程设计打下较扎实的基础。进一步提高上机动手能力,培养使用计算机解决实际问题的能力,为后继课程

2、的实验以及课程设计,特别是自学、毕业论文的完成打下扎实的基础。2.课题题目进销存管理系统酒店管理系统企业门户网站图书馆管理系统3设计要求:设计课题题目:按学号顺序(每 15 位学生选择一题)选择相应题号的课题。换题者不记成绩。根据自己对应的课题完成以下主要工作:完成系统需求分析:包括系统设计目的与意义;系统功能需求(系统流程图) ;输入输出的要求。完成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模块图) 。完成系统详细设计:包括数据库需求分析;类层次图;界面设计与各功能模块实现。系统调试:调试出现的主要问题, 编译语法错误及修改, 重点是运行逻辑问题修改和调整。使用说明书及

3、编程体会:说明如何使用你编写的程序,详细列出每一步的操作步骤。关键源程序(带注释)专业资料按规定格式完成课程设计报告,将其打印稿 (A4 纸)上交给老师存档。不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。二、进度安排第 15 周星期二 上午 8:00-12:00 下午 13:00-17:00 星期四 上午 8:00-12:00 下午 13:00-17:00第 16 周星期三 上午 8:00-12:00 下午 13:00-17:00专业资料课题 1:进销存管理系统(一)、课程设计题目:进销存管理系统(二)、目的与要求:1、目的:(1)要求学生达到熟练掌握java 语言的基本知识和技

4、能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、基本要求:(1)要求利用面向对象的方法以及java 的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统中定义类,每个类中要有各自的属性和方法;(4)在系统的设计中,至少要用到面向对象的一种机制。3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。4、写出设计说明书(三)、设计方法和基本原理:1、问题描述(功能要求) :专业资料某公司现有进销存物品,要求对所有的库存设备都能按照品名进行显示、查找、入库和出库、保存的

5、功能。进销存物品有下列属性:尺寸、类型、售价、重量、品牌、入库编号2、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:( 1)分析系统中的各个实体之间的关系及其属性和行为;( 2)根据问题描述,设计系统的类层次;( 3)完成类层次中各个类的描述(包括属性和方法) ;( 4)完成类中各个成员函数的定义;( 5)完成系统的应用模块;( 6)功能调试;( 7)完成系统总结报告以及系统使用说明书目录1系统需求分析 .62总体设计 .72.1总体设计模块图 .72.2数据结构及数据库 .82.3数据保存到数据库结果 .83详细设计 .93.1采用 Java 语言定义的相关数据类型 .93.

6、2各子功能模块的实现函数 .124程序调试中的问题 .13专业资料5使用说明 .146心得体会 .167附录.177.1源代码 .177.2参考文献 .408评分表 .341 系统需求分析企业进销存管理系统的主要工作是对企业的进货、销售和库存以信息化的方式进行管理,最大限度地减少各个环节可能出现的错误,有限减少盲目采购、降低采购成本、合理控制库存、减少资金占用并提高市场灵敏度,使企业能够合理安排进、销、存的每个关键步骤,提升企业市场竞争力。针对经营管理中存在的问题,对进销存管理系统提出更高的要求,利用Java 语言和 SQL 数据库的相关知识设计与开发一个企业进销存管理系统的管理模块。要求对所

7、有的库存设备都能按照品名进行显示、查找、入库和出库、保专业资料存的功能;可以在数据库中查询和删除所保存的记录:并具有退出该系统模块的功能。企业进销存系统应该具有的功能:( 1)界面设计美观大方,操作方便、快捷、灵活。( 2)实现强大的进销存管理,包括基本信息、进货、销售和库存管理。( 3)能够在不同的操作系统下运行,不局限于特定的平台。( 4)提供数据库的备份与恢复功能。( 5)提供库存盘点功能。2 总体设计2.1 总体设计模块图企业进销存管理基础信息管理进货管理销售管理查询统计库存管理系统管理图 2.1企业进销存管理系统总体设计模块基础信息管理进货管理客户信息商品信息供应商信息进货单进货退货

8、专业资料销售管理库存管理系统管理销售单销售退货库存盘点价格调整操作员管理更改密码权限管理查询统计客户查询销售排行商品查询入库退货查询供应商查询入库查询销售查询销售退货查询图 2.2 各子功能模块2.2 数据结构及数据库程序利用 Java 语言编写,数据保存到SQL 数据库实现数据保存和查询以及数据库的更新。SQL 数据库中包括十个表和三个试图,分别为tb_rkth_detail、tb_rkth_main、tb_ruku_detail、 tb_ruku_main、tb_sell_detail、tb_sell_main 、tb_spinfo 、tb_userlist 、tb_xsth_detail

9、、tb_xsth_main、v_rkthView 、v_rukuView 、v_sellView ,各自保存表中菜单下的数据。2.3 数据保存到数据库结果(1)db-JXC数据库中 tb_sell_main表的数据如下图:专业资料图后台数据库中销售商品的数据表(2)db-JXC数据库中 v_rukuView表的数据如下 所示:图数据库中入库商品的视图3 详细设计3.1 采用 Java 语言定义的相关数据类型(1)登陆界面的相关数据类型:专业资料public class JXCFrame private JPanel sysManagePanel;private JDesktopPane des

10、ktopPane;private JFrame frame;private JLabel backLabel;/创建窗体的 Map类型集合对象private Map<String, JInternalFrame> ifs = new HashMap<String, JInternalFrame>();public JXCFrame() (2)链接数据库的相关数据类型:专业资料import model.TbGysinfo;import model.TbKhinfo;import model.TbKucun;import model.TbRkthDetail;import

11、model.TbRkthMain;import model.TbRukuDetail;import model.TbRukuMain;import model.TbSellDetail;import model.TbSellMain;import model.TbSpinfo;import model.TbUserlist;import model.TbXsthDetail;import model.TbXsthMain;public class Dao protected static String dbUrl = "jdbc:microsoft:sqlserver:/localh

12、ost:7789;"+ "DatabaseName=db_JXC;SelectMethod=Cursor" protected static String dbUser = "sa"专业资料protected static String dbPwd = ""protected static String second = null;public static Connection conn = null;3.2 各子功能模块的实现函数public class CzyGL extends JInternalFrame . pu

13、blic class GengGaiMiMa extends JInternalFrame.public class GongYingShangChaXun extends JInternalFrame . public class GysGuanLi extends JInternalFrame . public class JiaGeTiaoZheng extends JInternalFrame .public class JinHuoDan extends JInternalFrame .public class JinHuoTuiHuo extends JInternalFrame

14、.public class KeHuChaXun extends JInternalFrame .public class KeHuGuanLi extends JInternalFrame .public class KuCunPanDian extends JInternalFrame .public class QuanManager extends JInternalFrame .public class RuKuChaXun extends JInternalFrame .public class RuKuTuiHuoChaXun extends JInternalFrame .pu

15、blic class ShangPinChaXun extends JInternalFrame .public class ShangPinGuanLi extends JInternalFrame .public class XiaoShouChaXun extends JInternalFrame .public class XiaoShouDan extends JInternalFrame .专业资料public class XiaoShouPaiHang extends JInternalFrame .public class XiaoShouTuiHuo Textends JIn

16、ternalFrame .public class XiaoShouTuiHuoChaXun extends JInternalFrame .4 程序调试中的问题在 JXC-Manager 与 db-JXC 数据库的连接过程中, 运行程序,出现如下错误,通过老师的指导,把下面程序段中的password置为空,在 db-JXC 数据库中,把安全性中的登陆用户密码设置为空,如下图所示,保存后,连接成功!专业资料5 使用说明( 1)运行程序到登陆界面, 输入用户的姓名和密码, 点击“登录”,即可登录该系统。图 5.1 登陆界面( 2)用户登陆后,单击菜单栏中的“基础信息管理”按钮,显示“客户信息管理

17、”、“商品信息管理”、“供应商信息管理”等信息,出现如下 5.2 界面,点击进入“商品信息管理” , 可以进行商品的添加及修改删除操作,在专业资料相应的位置输入商品的基本信息,单击“添加”,如图5.3 所示,即可把所输入的数据保存到db-JXC数据库中的 tb_spinfo表中,打开数据库中的数据,如下 5.4 所示,商品信息添加成功。图 5.2进销存主界面图 5.3 添加商品信息界面专业资料图 5.4 添加信息后后台数据库查询结果显示(3)通过其他需要, 可以对供应商及客户等信息进行增删改,对入库信息进行查询,退货等多种操作。6 心得体会两个星期的课设,在黑夜中终于结束了,这次用Java语言

18、编写的界面,看起来容易做起来难,每一个小模块的编写都会有很多的问题,在这次课设中,最主要的是JXC-Manager与 db-JXC数据库的连接,在连接的过程中出现了很多问题,通过老师的精心指导,最终顺利解决了连接问题。我知道,只有通过实践,我才能发现自己的不足之处,从而不断的完善自己,首先是对Java语言不熟悉,实现起来困难,通过查找各类资料,上网搜索相关资料,不断的熟悉和掌握。比起上课学习的理论知识,课程设计更考验了我们综合分析问题、解决问题的能力,要求我们有细心,有恒心去规划我们的思想,设计出美丽大方的界面。课设,是锻炼我们实践能力的好机会,任何事情都是从简单开始的,当我们知道编写一个个简

19、单的模块,要学会把模块拼接起来,最终系统化,通过课设,我们能够从中学专业资料到更多的新知识,更好的充实自己,遇到难题上网搜索,请教老师,求助同学,虽然我们流下了不少的汗水,当一个简单的模块实现,我无法表达收获的喜悦。顿时觉得编程是个既有挑战又有意思的工作,因为每一次成功的背后都有曲折的过程,只要我们迎难而上,成功就在不远,最后,感谢老师的指导,感谢同学们的帮助!这次课设我感触颇多,喜欢课设背后的过程。7 附录7.1 源代码(1)连接数据库模块函数:专业资料import model.TbGysinfo;import model.TbKhinfo;import model.TbKucun;impo

20、rt model.TbRkthDetail;import model.TbRkthMain;import model.TbRukuDetail;import model.TbRukuMain;import model.TbSellDetail;import model.TbSellMain;import model.TbSpinfo;import model.TbUserlist;import model.TbXsthDetail;import model.TbXsthMain;public class Dao protected static String dbUrl = "jdb

21、c:microsoft:sqlserver:/localhost:7789;"+ "DatabaseName=db_JXC;SelectMethod=Cursor" protected static String dbUser = "sa"protected static String dbPwd = "" protected static String second = null;专业资料public static Connection conn = null;static try if (conn = null) Cla

22、ss.forName(dbClassName).newInstance();conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd); catch (Exception ee) ee.printStackTrace();private Dao() /读取所有客户信息public static List getKhInfos() List list = findForList("select id,khname from tb_khinfo");return list;/读取所有供应商信息public static List g

23、etGysInfos() List list = findForList("select id,name from tb_gysinfo"); return list;/ 读取客户信息public static TbKhinfo getKhInfo(Item item) String where = "khname='" + item.getName() + "'" if (item.getId() != null)专业资料where = "id='" + item.getId() + &q

24、uot;'"TbKhinfo info = new TbKhinfo();ResultSet set = findForResultSet("select * from tb_khinfo where "+ where);try if (set.next() info.setId(set.getString("id").trim();info.setKhname(set.getString("khname").trim();info.setJian(set.getString("jian").tr

25、im();info.setAddress(set.getString("address").trim();info.setBianma(set.getString("bianma").trim();info.setFax(set.getString("fax").trim();info.setHao(set.getString("hao").trim();info.setLian(set.getString("lian").trim();info.setLtel(set.getString(&q

26、uot;ltel").trim();info.setMail(set.getString("mail").trim();info.setTel(set.getString("tel").trim();info.setXinhang(set.getString("xinhang").trim(); catch (SQLException e) e.printStackTrace();return info;/ 读取指定供应商信息专业资料public static TbGysinfo getGysInfo(Item item)

27、String where = "name='" + item.getName() + "'" if (item.getId() != null)where = "id='" + item.getId() + "'"TbGysinfo info = new TbGysinfo();ResultSet set = findForResultSet("select * from tb_gysinfo where"+ where);try if (set.next() i

28、nfo.setId(set.getString("id").trim();info.setAddress(set.getString("address").trim();info.setBianma(set.getString("bianma").trim();info.setFax(set.getString("fax").trim();info.setJc(set.getString("jc").trim();info.setLian(set.getString("lian&quo

29、t;).trim();info.setLtel(set.getString("ltel").trim();info.setMail(set.getString("mail").trim();info.setName(set.getString("name").trim();info.setTel(set.getString("tel").trim();info.setYh(set.getString("yh").trim(); catch (SQLException e) 专业资料e.print

30、StackTrace();return info;/ 读取用户public static TbUserlist getUser(String name, String password) TbUserlist user = new TbUserlist();ResultSet rs = findForResultSet("select * from tb_userlist where username='"+ name + "'");try if (rs.next() user.setUsername(name);user.setPass

31、(rs.getString("pass");if (user.getPass().equals(password) user.setName(rs.getString("name");user.setQuan(rs.getString("quan"); catch (SQLException e) e.printStackTrace();return user;/ 执行指定查询public static ResultSet query(String QueryStr) ResultSet set = findForResultSet(

32、QueryStr); return set;专业资料/ 执行删除public static int delete(String sql) return update(sql);/ 添加客户信息的方法public static boolean addKeHu(TbKhinfo khinfo) if (khinfo = null)return false;return insert("insert tb_khinfo values('" + khinfo.getId() + "','"+ khinfo.getKhname() + &q

33、uot;','" + khinfo.getJian() + "','"+ khinfo.getAddress() + "','" + khinfo.getBianma() + "','"+ khinfo.getTel() + "','" + khinfo.getFax() + "','"+ khinfo.getLian() + "','" + khinfo

34、.getLtel() + "','"+ khinfo.getMail() + "','" + khinfo.getXinhang() + "','"+ khinfo.getHao() + "')");/ 修改客户信息的方法public static int updateKeHu(TbKhinfo khinfo) return update("update tb_khinfo set jian='" + khinfo.getJian(

35、)+ "',address='" + khinfo.getAddress() + "',bianma='"+ khinfo.getBianma() + "',tel='" + khinfo.getTel() + "',fax='"+ khinfo.getFax() + "',lian='" + khinfo.getLian() + "',ltel='"+ khinfo.getLte

36、l() + "',mail='" + khinfo.getMail()+ "',xinhang='" + khinfo.getXinhang() + "',hao='"专业资料+ khinfo.getHao() + "' where id='" + khinfo.getId() + "'");/ 修改库存的方法public static int updateKucunDj(TbKucun kcInfo) return upd

37、ate("update tb_kucun set dj=" + kcInfo.getDj()+ " where id='" + kcInfo.getId() + "'");/ 修改供应商信息的方法public static int updateGys(TbGysinfo gysInfo) return update("update tb_gysinfo set jc='" + gysInfo.getJc()+ "',address='" + gysInfo

38、.getAddress() + "',bianma='"+ gysInfo.getBianma() + "',tel='" + gysInfo.getTel()+ "',fax='" + gysInfo.getFax() + "',lian='" + gysInfo.getLian()+ "',ltel='" + gysInfo.getLtel() + "',mail='"+ gy

39、sInfo.getMail() + "',yh='" + gysInfo.getYh()+ "' where id='" + gysInfo.getId() + "'");/ 添加供应商信息的方法public static boolean addGys(TbGysinfo gysInfo) if (gysInfo = null)return false;return insert("insert tb_gysinfo values('" + gysInfo.getId

40、() + "','"+ gysInfo.getName() + "','" + gysInfo.getJc() + "','"+ gysInfo.getAddress() + "','" + gysInfo.getBianma() + "','"+ gysInfo.getTel() + "','" + gysInfo.getFax() + "','&quo

41、t;专业资料+ gysInfo.getLian() + "','" + gysInfo.getLtel() + "','"+ gysInfo.getMail() + "','" + gysInfo.getYh() + "')");/ 添加商品public static boolean addSp(TbSpinfo spInfo) if (spInfo = null)return false;return insert("insert tb_spinf

42、o values('" + spInfo.getId() + "','"+ spInfo.getSpname() + "','" + spInfo.getJc() + "','"+ spInfo.getCd() + "','" + spInfo.getDw() + "','"+ spInfo.getGg() + "','" + spInfo.getBz() + &

43、quot;','"+ spInfo.getPh() + "','" + spInfo.getPzwh() + "','"+ spInfo.getMemo() + "','" + spInfo.getGysname() + "')");/ 更新商品public static int updateSp(TbSpinfo spInfo) returnupdate("updatetb_spinfoset jc='"

44、+ spInfo.getJc()+"',cd='"+ spInfo.getCd() + "',dw='" + spInfo.getDw() + "',gg='"+ spInfo.getGg() + "',bz='" + spInfo.getBz() + "',ph='"+spInfo.getPh()+"',pzwh='"+spInfo.getPzwh()+"',m

45、emo='"+spInfo.getMemo()+"',gysname='"+spInfo.getGysname()专业资料+ "' where id='" + spInfo.getId() + "'");./ 获取所有商品信息public static List getSpInfos() List list = findForList("select * from tb_spinfo"); return list;/ 获取库存商品信息public stati

46、c TbKucun getKucun(Item item) String where = "spname='" + item.getName() + "'" if (item.getId() != null)where = "id='" + item.getId() + "'"ResultSet rs = findForResultSet("select * from tb_kucun where " + where);TbKucun kucun = new Tb

47、Kucun();try if (rs.next() kucun.setId(rs.getString("id");kucun.setSpname(rs.getString("spname");kucun.setJc(rs.getString("jc");kucun.setBz(rs.getString("bz");kucun.setCd(rs.getString("cd");kucun.setDj(rs.getDouble("dj");专业资料kucun.setDw(rs.g

48、etString("dw");kucun.setGg(rs.getString("gg");kucun.setKcsl(rs.getInt("kcsl"); catch (SQLException e) e.printStackTrace();return kucun;/ 获取入库单的最大 ID,即最大入库票号public static String getRuKuMainMaxId(Date date) returngetMainTypeTableMaxId(date,"tb_ruku_main","RK","rkid");/在事务中添加入库信息public static boolean insertRukuInfo(TbRukuMain ruMain) try boolean autoCommit = conn.getAutoCommit(); conn.setAutoCommit(false);/ 添加入库主表记录insert("insert into tb_ruku_main values('" + ruMain.getRkId()+ "','"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论