Java期末课程设计-超市进销存管理系统
java超市仓库管理课程设计
java超市仓库管理课程设计一、课程目标知识目标:1. 理解Java面向对象编程的基本概念,掌握类与对象的关系及应用;2. 学会使用Java编写基本的仓库管理功能,如商品信息的增删改查;3. 了解数据库连接和SQL语句在Java中的应用,实现数据存储与检索。
技能目标:1. 能够运用所学知识,设计并实现一个简单的超市仓库管理系统;2. 培养独立分析和解决问题的能力,掌握编程调试技巧;3. 提高团队协作和沟通能力,通过小组合作完成项目任务。
情感态度价值观目标:1. 培养对编程的兴趣和热情,树立自信心,勇于面对编程挑战;2. 培养良好的编程习惯,注重代码规范,提高代码质量;3. 增强实践意识,将所学知识应用于实际生活,体会科技改变生活的魅力。
分析课程性质、学生特点和教学要求,本课程旨在让学生通过实际项目案例,掌握Java编程在超市仓库管理中的应用。
课程目标具体、可衡量,以便学生和教师在教学过程中能够明确预期成果,并为后续教学设计和评估提供依据。
通过本课程的学习,学生将能够具备一定的编程实践能力,为未来从事相关领域工作打下坚实基础。
二、教学内容1. Java面向对象编程基础:复习类与对象的概念,重点讲解封装、继承、多态等特性。
教材章节:第五章 面向对象编程2. Java数据库连接:介绍JDBC的使用,讲解如何通过Java程序连接数据库,执行SQL语句。
教材章节:第八章 数据库编程3. 超市仓库管理功能设计:a. 商品信息管理:实现商品信息的添加、删除、修改和查询功能;b. 库存管理:实现库存的增减和查询功能;c. 销售管理:实现销售记录的添加和查询功能。
教材章节:第七章 Java集合与泛型、第十章 Java异常处理4. 项目实践:分组进行项目开发,每个小组完成一个超市仓库管理系统的设计与实现。
教材章节:全书综合案例5. 编程规范与调试技巧:讲解Java编程规范,培养学生良好的编程习惯,介绍常见的编程调试方法。
Java课程设计超市库存管理系统附源代码可以直接运行
登录= new JButton("登录");
登录.addActionListener(this);
重置= new JButton("重置");
try{
Class.forName(dbdriver);
}
catch(ClassNotFoundException classnotfound){
System.out.println("未能找到SQLServerDriver,请检查是否已加载SQLServer驱动");
}
}
void init()
{
f = new Font("幼圆",Font.BOLD,18);
重置.addActionListener(this);
用户名= new JTextField(16);
用户名.setFont(f);
密码= new JPasswordField(16);
userName = new JLabel("用户名:");
userName.setFont(f);
psw = new JLabel("密码:");
String user = "sa";
String pass = "123";
public loginframe()
{
setLayout(new FlowLayout());
init();
setBounds(130,80,960,600);
JAVA课程设计--进销存管理系统
5.2.2 实现原理
用hibernate语句里的查询、增加、修改、删除语句,对数据库里对应的产品信息表,供应商信息表,客户信息表进行相应的操作.
图10产品基本信息管理界面
图11客户信息管理界面
图12供应商信息管理界面
5。2。3核心代码
因此从技术方面讲开发此系统是可行的。
3。1.2经济可行性分析
企业进销存管理系统从中小企业的实际出发,可有效地管理企业的进销存情况,并降低企业运营成本、及时调整营销策略、提高库房的利用率.当前许多中小型企业都使用人工管理方式(即纸和笔)来管理企业的进销存,这样的管理方式既困难又浪费时间和成本,并且容易出现漏账、差账的情况,因此中小企业应该向大型企业那样采用先进的管理方式,提高企业效率、降低企业运营成本。
进销存管理系统
摘要
进销存系统是在研究了SAP R/3系统运作的的基础之上,结合了中国的国情以及开发人员能力所研制开发的一套进销存系统,这套系统将用户设定为存在进销存业务的企业,即此用户并不负责生产以及组装,而仅涉及到对商品的采购,对商品的存储,以及最终对商品的销售,在这一过程中实现商品的增值,以及企业利润和资本的增加。系统包括了基本信息,进货管理,销货管理,存货管理以及系统管理五大模块来实现其具体功能.
4.1。1模块设计
整个系统的模块划分如下:
图7各模块在导航栏的体现
4。2系统E—R图
图8进销存管理系统E—R图
4.3数据库设计
本系统采用微软公司的SQL Server2000数据库管理系统,下面就该系统的数据库表做如下设计(主键都是自动增长):产品基本信息表:产品的信息,与销售,库存,进货产品之间的信息一一对应,product_id用来标记产品编号,产品ID不一样则无法进行该品的进货,销售,库存功能,表结构见附录一
JAVA课程设计超市管理系统的设计与实现
提高工作效率:通过自动化和智能化, 提高超市运营效率
降低成本:减少人力成本,提高资源利 用率
提高服务质量:提供更便捷、高效的服 务,提升顾客满意度
安全性:确保系统安全,防止数据泄露 和系统故障
可扩展性:系统设计应具备良好的可扩 展性,适应未来业务发展需求
用户友好性:界面设计应简洁明了,易 于操作,提高用户体验
销售报表生成: 生成销售报表, 包括销售订单报 表、销售退货报 表、销售统计报 表等
报表生成方式:根据用户选 择生成相应的报表
报表模块功能:提供各种报 表,如销售报表、库存报表 等
报表展示方式:支持多种展 示方式,如表格、图表等
报表导出功能:支持将报表 导出为Excel、PDF等格式
Part Six
能测试,如 JMeter、 LoadRunner
等
性能瓶颈分析: 分析性能测试 结果,找出性
能瓶颈
性能优化:针 对性能瓶颈进 行优化,如优 化数据库查询、 优化代码逻辑
等
性能监控:设 置性能监控指 标,实时监控 系统性能,及 时发现并解决
问题
缺陷类型:功 能缺陷、性能 缺陷、安全缺
陷等
解决方案:修等安全协 议进行数据传输加密,使用防火墙、入 侵检测系统等安全设备进行安全防护
性能优化:使用缓存、负载均衡、分布 式等技术进行系统性能优化和扩展
商品分类:按照商品类型、品牌、价格 等进行分类
商品添加:支持手动添加和批量导入商 品信息
商品修改:支持修改商品名称、价格、 库存等信息
订单管理:查看、修改订单信息,处 理订单状态
报表管理:生成销售报表、库存报表 等,供管理者查看和分析
系统维护:备份数据,更新系统,保 证系统正常运行
java超市仓库管理课程设计
java超市仓库管理课程设计一、教学目标本课程旨在通过Java编程语言,使学生掌握超市仓库管理的基本知识和技能,培养学生运用Java语言进行实际项目开发的能力。
具体的教学目标如下:1.知识目标:(1)理解Java编程语言的基本语法和特性;(2)熟悉超市仓库管理系统的业务流程;(3)掌握Java在超市仓库管理系统中的应用技术和方法。
2.技能目标:(1)能够使用Java编写简单的程序;(2)能够运用Java语言实现超市仓库管理系统的相关功能;(3)具备一定的Java项目开发和调试能力。
3.情感态度价值观目标:(1)培养学生对编程语言的兴趣和热情;(2)培养学生团队协作和自主学习的能力;(3)培养学生运用技术解决实际问题的责任感和社会使命感。
二、教学内容本课程的教学内容主要包括Java编程语言基础、超市仓库管理系统的业务流程及其在Java中的实现。
具体的教学大纲如下:1.Java编程语言基础:(1)Java语法和数据类型;(2)控制结构和函数;(3)面向对象编程;(4)Java集合框架。
2.超市仓库管理系统的业务流程:(1)商品信息管理;(2)库存管理;(3)销售管理;(4)报表统计。
3.Java在超市仓库管理系统中的应用:(1)使用Java实现商品信息管理功能;(2)使用Java实现库存管理功能;(3)使用Java实现销售管理功能;(4)使用Java实现报表统计功能。
三、教学方法本课程采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性。
具体的教学方法如下:1.讲授法:用于讲解Java编程语言基础知识和超市仓库管理系统的业务流程;2.案例分析法:通过分析实际案例,使学生掌握Java在超市仓库管理系统中的应用;3.实验法:让学生动手编写Java程序,实现超市仓库管理系统的相关功能;4.小组讨论法:分组进行项目开发,培养学生的团队协作和沟通能力。
四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备。
超市管理系统java课课程设计
超市管理系统java课课程设计一、教学目标本节课的教学目标是使学生掌握Java编程的基本语法和逻辑结构,能够运用Java编写简单的程序。
具体来说,知识目标包括理解Java的基本数据类型、控制结构和面向对象编程思想;技能目标包括能够使用Java编写简单的程序,解决实际问题;情感态度价值观目标包括培养学生对计算机科学的兴趣和热情,提高学生解决问题的能力。
二、教学内容本节课的教学内容主要包括Java的基本语法、数据类型、控制结构和面向对象编程。
具体来说,将讲解Java的基本语法规则,包括变量、常量的声明和使用,运算符的运算规则等;介绍Java的数据类型,包括整型、浮点型、字符型和布尔型等;讲解Java的控制结构,包括顺序结构、选择结构和循环结构等;最后介绍Java的面向对象编程思想,包括类和对象的概念,构造函数的定义和使用,成员变量的声明和方法的定义等。
三、教学方法为了达到本节课的教学目标,将采用多种教学方法进行教学。
首先,将采用讲授法,向学生讲解Java的基本语法、数据类型、控制结构和面向对象编程思想;其次,将采用案例分析法,通过分析具体的案例,让学生理解Java编程的实际应用;最后,将采用实验法,让学生动手编写Java程序,巩固所学知识。
四、教学资源为了支持本节课的教学内容和教学方法的实施,将准备一些教学资源。
教材方面,将使用《Java编程思想》作为主教材,辅以《Java核心技术》等参考书;多媒体资料方面,将制作PPT课件,通过图文并茂的方式,帮助学生理解Java编程的概念和语法;实验设备方面,将准备计算机实验室,让学生能够动手编写和运行Java程序。
五、教学评估为了全面、客观地评估学生的学习成果,将采用多种评估方式。
平时表现方面,将根据学生在课堂上的发言、提问和参与程度进行评估;作业方面,将布置适量的编程作业,要求学生独立完成,并根据作业的质量和创新性进行评估;考试方面,将安排一次期中考试和一次期末考试,考试内容主要包括Java的基本语法、数据类型、控制结构和面向对象编程等,考试成绩将占总评分的绝大部分。
JAVA超市库存管理系统2
This article system analysis software has developed background by process; first introduced the software development environment, next introduced this software detailed design process: Database design, each module design and realization, as well as concrete contact surface design and function.
java超市进销存课程设计
java超市进销存课程设计一、课程目标知识目标:1. 学生能够理解并掌握Java语言在开发超市进销存系统中的应用。
2. 学生能运用面向对象编程思想,设计出合理的类和对象,实现商品、库存、销售记录等实体的属性和方法。
3. 学生能了解并运用数据库连接技术,实现数据存储和查询功能。
技能目标:1. 学生能够运用Java语言编写出结构清晰、逻辑性强的代码,实现超市进销存系统的基本功能。
2. 学生能够通过本课程的学习,掌握使用数据库存储数据,实现对数据的增、删、改、查操作。
3. 学生能够运用所学知识,解决实际生活中超市进销存的相关问题。
情感态度价值观目标:1. 学生通过课程学习,培养对编程的兴趣和热情,提高自主学习和解决问题的能力。
2. 学生能够认识到编程在生活中的实际应用,激发对信息技术的热爱。
3. 学生在学习过程中,培养团队合作精神,学会分享和交流,提高沟通能力。
课程性质:本课程为实践性较强的Java语言课程,结合超市进销存实际案例,使学生在实践中掌握编程技能。
学生特点:学生具备一定的Java基础,对面向对象编程有一定了解,但实际应用能力较弱。
教学要求:教师需引导学生通过实践操作,将理论知识应用于实际项目中,培养其编程思维和实际操作能力。
教学过程中,注重培养学生的自主学习能力和团队合作精神。
通过课程目标的实现,使学生能够独立完成超市进销存系统的设计与开发。
二、教学内容1. Java面向对象编程基础:复习类与对象的概念、封装、继承、多态等基础知识,为后续课程打下基础。
- 教材章节:第三章 面向对象编程基础- 内容列举:类与对象的创建、构造方法、访问控制符、继承与多态、接口与实现2. Java数据库连接技术:学习JDBC技术,实现与数据库的连接、数据操作。
- 教材章节:第七章 数据库编程- 内容列举:JDBC简介、数据库连接、SQL语句执行、结果集处理、事务处理3. 超市进销存系统设计:结合实际案例,分析需求,设计系统架构。
超市管理系统java课程设计
超市管理系统java课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握Java编程基础、超市管理系统的基本原理和架构。
技能目标要求学生能够使用Java语言设计和实现一个简单的超市管理系统,培养学生的编程能力和问题解决能力。
情感态度价值观目标在于培养学生的创新意识、团队合作精神和对计算机科学的兴趣。
二、教学内容教学内容主要包括Java编程基础、超市管理系统的基本原理和架构、以及系统设计和实现。
具体包括:1.Java编程基础:介绍Java语言的基本语法、数据结构、控制流程、类和对象等。
2.超市管理系统的基本原理和架构:讲解超市管理系统的业务流程、数据模型和系统架构。
3.系统设计和实现:引导学生通过Java语言设计和实现一个简单的超市管理系统,包括用户界面设计、数据管理、业务逻辑处理等。
三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过讲解和演示,向学生传授Java编程基础和超市管理系统的基本原理。
2.讨论法:学生进行小组讨论,促进学生之间的交流和合作,培养学生的思考和表达能力。
3.案例分析法:分析真实的超市管理案例,引导学生理解超市管理系统的实际应用和挑战。
4.实验法:学生通过设计和实现一个简单的超市管理系统,培养学生的动手能力和问题解决能力。
四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选择合适的Java编程和超市管理系统相关的教材,作为学生学习的基础资料。
2.参考书:提供相关的参考书籍,帮助学生深入理解超市管理系统的相关知识。
3.多媒体资料:制作和收集相关的多媒体资料,如教学视频、演示文稿等,丰富学生的学习体验。
4.实验设备:提供必要的计算机设备和编程环境,让学生能够实际操作和实验。
五、教学评估本课程的评估方式包括平时表现、作业和考试。
平时表现评估学生的课堂参与和积极程度,作业评估学生的理解和应用能力,考试评估学生的综合运用和解决问题能力。
java课程设计超市
java课程设计超市一、教学目标本节课的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握Java编程的基本语法和面向对象编程思想,了解超市管理系统的基本框架。
技能目标要求学生能够运用Java编写简单的超市管理系统程序,培养学生的编程能力和问题解决能力。
情感态度价值观目标要求学生培养对计算机科学的兴趣和热情,提高学生自我学习和探索的精神。
教学目标的设计基于课程性质、学生特点和教学要求。
课程性质是Java编程基础,学生特点是对计算机科学有浓厚兴趣,教学要求是培养学生的编程能力和问题解决能力。
通过将目标分解为具体的学习成果,后续的教学设计和评估可以更有针对性和可衡量性。
二、教学内容教学内容将根据课程目标进行选择和,确保内容的科学性和系统性。
教学大纲将明确教学内容的安排和进度,指出教材的章节和列举内容。
本节课的教学内容主要包括Java编程的基本语法、面向对象编程思想和超市管理系统的基本框架。
具体内容包括:1.Java编程的基本语法:数据类型、变量、运算符、控制结构等。
2.面向对象编程思想:类、对象、继承、多态等。
3.超市管理系统的基本框架:界面设计、数据管理、业务逻辑等。
教学内容的安排将循序渐进,从基本语法开始,逐步引入面向对象编程思想,最后结合超市管理系统的实例进行实践。
三、教学方法本节课将采用多种教学方法,以激发学生的学习兴趣和主动性。
教学方法包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:教师通过讲解Java编程的基本语法和面向对象编程思想,为学生提供系统的知识结构。
2.讨论法:学生分组讨论超市管理系统的设计和实现,促进学生之间的交流和合作。
3.案例分析法:分析实际的超市管理系统案例,引导学生运用所学知识解决实际问题。
4.实验法:学生动手编写超市管理系统程序,培养学生的编程能力和问题解决能力。
通过多样化的教学方法,学生可以在不同的学习方式中掌握知识,提高学习效果。
四、教学资源本节课将选择和准备适当的教学资源,以支持教学内容和教学方法的实施,丰富学生的学习体验。
java小型超市管理系统课程设计
一、概述Java小型超市管理系统是一种基于Java语言开发的软件,旨在帮助超市管理者更加高效地进行商品管理、库存管理、销售管理等各方面的工作。
本文将从系统需求分析、系统设计、系统实现等方面对Java小型超市管理系统进行详细介绍。
二、系统需求分析1. 功能需求小型超市管理系统应该包括商品管理、库存管理、销售管理、统计分析等功能。
具体包括:商品信息的录入、修改、删除功能;库存信息的实时更新和管理;销售记录的录入和查询功能;销售统计报表的生成等。
2. 性能需求系统应该能够支持多用户同时操作,运行稳定,响应速度快,界面友好,易于操作。
3. 安全需求系统应该具备数据安全、用户权限管理、备份与恢复等功能,防止数据泄露和损坏。
三、系统设计1. 系统架构设计本系统采用B/S结构,前端使用HTML+CSS+JavaScript进行界面设计,后端采用Java语言开发,数据库采用MySQL,采用MVC设计模式进行系统架构设计。
2. 数据库设计数据库包括商品信息表、库存信息表、销售记录表等,其中商品信息表包括商品编号、名称、单价、类别等字段;库存信息表包括库存编号、商品编号、库存数量等字段;销售记录表包括销售编号、商品编号、销售数量、销售日期等字段。
3. 界面设计界面应该简洁、美观、易于操作,包括登入界面、主界面、商品管理界面、库存管理界面、销售管理界面等。
四、系统实现1. 用户模块(1)用户登入:用户输入用户名和密码进行登入,系统验证后跳转到主界面。
(2)用户管理:管理员可以对用户进行添加、删除、修改等操作。
2. 商品管理模块(1)商品录入:录入商品信息,包括编号、名称、单价、类别等。
(2)商品修改与删除:对已有商品信息进行修改和删除操作。
3. 库存管理模块(1)实时库存更新:在销售模块中销售商品时,库存数量会实时更新。
(2)库存查询与盘点:实现对库存信息的查询和盘点功能。
4. 销售管理模块(1)销售记录录入:录入销售记录,包括商品编号、销售数量、销售日期等。
java超市购物系统课程设计
java超市购物系统课程设计一、课程目标知识目标:1. 理解面向对象编程的基本概念,掌握Java语言的基本语法;2. 学会运用Java编程构建超市购物系统的基本框架,了解其各功能模块的作用;3. 掌握使用Java进行数据库连接和操作的方法,实现对商品信息的管理。
技能目标:1. 能够运用面向对象的思想进行Java编程,独立设计并实现超市购物系统的功能模块;2. 通过编写代码,实现对商品信息的增删改查功能;3. 学会使用Java异常处理机制,提高程序的稳定性和可靠性。
情感态度价值观目标:1. 培养学生的团队协作意识,提高在项目开发过程中与他人沟通与协作的能力;2. 增强学生的编程兴趣,使其认识到编程在解决实际问题中的应用价值;3. 通过实际项目的开发,培养学生的耐心、细心和责任心。
分析课程性质、学生特点和教学要求,本课程目标将分解为以下具体学习成果:1. 学生能够熟练运用Java语言编写面向对象的程序,独立完成超市购物系统的设计与实现;2. 学生能够掌握数据库连接和操作,实现商品信息的管理;3. 学生通过项目实践,提升团队协作和沟通能力,增强编程兴趣和责任感。
二、教学内容1. 面向对象编程基础- 类与对象的概念- 封装、继承、多态性2. Java语言基本语法- 数据类型、变量、运算符- 控制语句(条件、循环)- 数组、字符串3. Java数据库连接与操作- JDBC原理及使用方法- SQL语句编写- 数据库连接、查询、更新操作4. 超市购物系统功能模块设计- 系统需求分析- 功能模块划分- 类的设计与实现5. 系统功能实现- 用户登录与注册- 商品展示、查询- 购物车管理- 订单处理6. 异常处理与程序调试- 异常处理机制- 常见异常类型及处理方法- 程序调试技巧7. 项目实践与团队协作- 项目任务分配- 团队协作与沟通- 项目进度管理与质量控制教学内容安排与进度:第一周:面向对象编程基础,Java基本语法第二周:Java数据库连接与操作第三周:超市购物系统功能模块设计第四周:系统功能实现(用户登录与注册、商品展示与查询)第五周:系统功能实现(购物车管理、订单处理)第六周:异常处理与程序调试,项目实践与团队协作教学内容与课本关联性:本教学内容依据《Java编程思想》及《Java数据库编程》等相关教材,结合课程目标进行选择和组织,确保科学性和系统性。
java超市收银系统课程设计
java超市收银系统课程设计一、课程目标知识目标:1. 理解Java面向对象编程的基本概念,掌握类和对象的定义、属性和方法的使用;2. 学会使用Java编写简单的超市收银系统,理解其业务流程;3. 掌握Java集合框架的使用,如List、Map等,实现商品信息和交易记录的存储与查询;4. 学会使用Java异常处理机制,增强程序的健壮性。
技能目标:1. 能够运用面向对象的思想分析并解决实际问题,具备一定的编程实践能力;2. 熟练使用Java编程工具,如Eclipse或IntelliJ IDEA,进行代码编写、调试和优化;3. 能够设计合理的类和接口,实现模块化编程,提高代码的可维护性;4. 学会运用常用的设计模式,如单例模式、工厂模式等,优化程序结构。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发主动学习和探究的精神;2. 培养学生的团队协作意识,学会与他人共同分析问题、解决问题;3. 培养学生严谨的编程态度,注重细节,追求程序的高效与稳定;4. 培养学生具备良好的信息素养,关注现实生活中计算机技术的应用与发展。
本课程针对高中年级学生,结合学科特点和教学要求,以实际应用为导向,注重理论与实践相结合。
通过本课程的学习,学生将能够掌握Java面向对象编程的基本知识,具备实际编程能力,并培养良好的情感态度价值观。
为实现课程目标,教学过程中将采用案例分析、项目驱动、分组讨论等多种教学方法,以提高学生的实践操作能力和团队协作能力。
同时,课程评估将关注学生在知识、技能和情感态度价值观方面的具体学习成果。
二、教学内容1. Java面向对象编程基础:复习类与对象的概念,构造方法,封装,继承和多态;- 教材章节:第三章《面向对象编程》- 内容:类的定义,对象的创建,访问控制符,继承,方法重写,多态。
2. Java集合框架:学习List、Map等集合接口及其实现类;- 教材章节:第五章《集合框架》- 内容:ArrayList,LinkedList,HashSet,TreeSet,HashMap,TreeMap 的基本使用。
java超市管理系统课程设计报告
java超市管理系统课程设计报告湖南文理学院课程设计题目:超市管理系统系别计算机科学与技术班级计科12102学生姓名罗巍杨欢杨沁铠唐振学号 201217010223指导教师谭文学课程设计进行地点:第三实验楼A617任务下达时间: 2014 年5月21日起止日期:2014年5月21日起——至 2014年6月21日止目录一、系统需求分析.................................. - 6 -1.1系统名称:...................................... - 6 -1.2系统介绍:...................................... - 6 -1.3开发背景........................................ - 6 -1.4.系统面向的用户群体.............................. - 7 -1.5开发环境........................................ - 7 -二、系统总体设计.................................. - 7 -2.1系统功能结构图 .................................. - 7 -三、系统详细设计...................... 错误!未定义书签。
3.1数据库实体E-R图设计 ................ 错误!未定义书签。
3.2数据库表的设计 ...................... 错误!未定义书签。
3.3物理设计文档 ........................ 错误!未定义书签。
3.4详细设计............................ 错误!未定义书签。
四、系统总结.......................... 错误!未定义书签。
基于JAVA超市进销存管理系统毕业设计说明
基于JAVA超市进销存管理系统毕业设计说明摘要由于超市行业的竞争越来越强,超市规模的发展不断扩大,商品数量和种类急剧增加,有关商品的信息量也随之增长。
超市随时都需要对商品各种信息进行统计分析。
超市销售管理系统是基于J2EE的技术架构,使用JSP构建动态网页和Servlet 组件,使用Tomcat作为web服务器, 用JDBC连接的MySql数据库作为存储对象,在设计和完成的过程中加深对数据库查询方法的理解,也进一步的了解MVC的设计模式。
系统主要实现的功能:管理员信息的管理、销售管理、员工管理、供应商管理。
通过上述功能实现对进货、销售及员工等基本的信息采集和处理,辅助提高超市的决策水平;使用该系统,可以提升超市的管理水平和运作效率,降低经营成本,提高管理人员的效益,增强超市扩力。
关键词: J2EE;Servlet;JSP;MySql;销售管理AbstractWith the competition between supermarkets becoming stronger and stronger, supermarkets themselves becoming larger and larger, and the quantity as well as the varieties of merchandise increasing sharply, the quantity of information about merchandise is becoming larger, too. The supermarket needs to be ready to make statistical analysis of all the information about the merchandise all the time.This system is based on the technological architecture of Java 2 Platform Enterprise Edition, use of JSP Construction of dynamic pages and Servlet as its components,using Tomcat as a web server, using the MySql database as a storage object and visiting to the database are through module JDBC link, in the design and complete the process of deepening the understanding of the database query methods, but also a better understanding of theMVC design pattern.The system compromises the following modules: user right management, sales management, staff management and supplier management, hence managing the recording and inquiring of the information about purchases, sales and employees. Supermarkets may make better decisions by collecting and processing some basic information. Through this system, the management and operational efficiency can be improved, the operating cost can be reduced, the efficiency of the staff members ca n be promoted and the supermarket’s expandability can become stronger.Key words: J2EE;Servlet;JSP;MySql;sales management目录1 绪论 (1)2 开发环境及开发工具的介绍 (2)2.1 关于WEB (2)2.2 J2EE的优势 (2)2.3 J SP语言和HTML语言 (3)2.4 关于Servlet (3)2.5 M ySql数据库 (4)2.5.1 MySql的优势 (4)2.6 T omcat服务器 (5)2.6.1 Tomcat 服务器简介 (5)2.6.2 TomCat的优势 (5)3 需求分析和可行性分析 (7)3.1 系统用户及其功能分析 (7)3.2 系统的模块划分 (7)3.3 系统运行环境 (8)3.4 技术可行性 (8)3.5 操作可行性 (8)4 系统总体设计 (9)4.1 设计思想 (9)4.2 系统功能模块图 (10)4.3 实体关系图 (10)4.4 数据库设计 (14)4.5 系统的用例图 (18)4.6 系统登录时序图 (21)5 系统的详细设计 (21)5.1 系统模块的划分 (21)5.2 模块流程和具体实现 (21)5.2.1 用户登录模块 (22)5.2.2 商品的销售管理模块 (24)5.2.3 员工管理模块 (27)5.2.4 供应商管理模块 (29)5.2.5 管理员信息管理模块 (31)6 系统测试 (34)6.1 模块测试 (34)结束语 (35)致37参考文献 (38)附录部分源代码 (39)1绪论随着现代科学技术的迅猛发展,计算机技术已经渗透到商业领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java程序设计期末课程设计报告题目超市进销存管理系统班级:13级信息安全班学号:姓名:成绩:完成时间:2014 年12 月目录一、需求分析............................. 错误!未定义书签。
二、系统简介............................. 错误!未定义书签。
三.数据准备............................. 错误!未定义书签。
四、数据库结构........................... 错误!未定义书签。
五、系统实现与核心代码................... 错误!未定义书签。
六、系统的运行结果....................... 错误!未定义书签。
七、心得与体会........................... 错误!未定义书签。
八、参考书目............................. 错误!未定义书签。
一.需求分析企业进销存管理系统的主要工作,是对企业的进货、销售和库存以信息化的方式进行管理,最大限度的减少各个环境中可能出现的错误,有效减少盲目采购,降低采购成本、合理控制库存、减少资金占用并提高市场灵敏度,使企业能够合理安排进、销、存的每个关键步骤,替身企业市场竞争力。
针对经营管理中存在的问题,兰州华联超市对产品的进销存合理化提出了更高的要求。
通过实际调查,要求企业进销存管理系统具有以下功能。
◆界面设计美观大方,方便、快捷、操作灵活。
◆实现强大的进销存管理,包括基本信息、进货、销售和库存管理。
◆能够在不同的操作系统下运行,不局限于特定的平台。
◆提供数据库备份与恢复功能。
◆提供库存盘点功能。
◆提供技术支持的联系方式,可以使用邮件进行沟通,或者直接连接到技术网站。
二.分析与设计:(1)功能模块划分:本进销存管理系统划分为六个模块,分别为系统登陆模块,系统主窗体设计模块,进货单模块,销售单模块,库存盘点模块和数据库备份与恢复模块,(2)数据库结构描述:企业进销存管理系统需要使用数据库存储和管理进销存过程中的所有信息,本企业进销存管理系统使用Access数据库系统作为后台数据库,数据库名称为db_database28。
其中包含了14张数据表﹑两个视图。
以下是系统主要涉及的六个数据库表:1.供应商信息表:主要用于存储供应商详细信息,其结构如下表所示:User表:Handle表:Product表:Stuff表:Yield表:空表等待插入数据。
三.系统详细设计文档:1.系统流程图:(1)系统功能结构图:(2)系统业务流程图:(3)系统中的主要类及功能:1.Item公共类:Item公共类是对数据表最常用的ID和name属性的封装,属于swing 列表,表格,下拉列表框等组件的赋值。
该类重写了toString()方法,在该方法中只输出name属性。
但是在获取组件的内容时,获取的是Item 类的对象,从该对象中可以获取ID的属性,然后通过该属性到数据库中获取唯一的数据。
2.数据模型公共类:数据模型公共类对应着数据库中不同的数据表,这些模型将被访问数据库的Dao类和程序中各个模块甚至各个组件使用,数据模型是对数据表所有字段的封装,它是纯粹的模型类,他也要重写toString()方法,另外还要重写hashCode()方法和equal()方法。
它主要用于存贮数据,并通过相应的getXXX()方法和setXXX()实现不同属性的访问原则。
3.Dao公共类:Dao类实现了数据库的驱动,连接,关闭和多个操作数据库的方法,Dao类不需要创建对象,可以直接调用类中的所有数据库操作方法。
Dao 类自定义的主要方法有getKhlnfo(Item item)方法,主要是获取客户信息,方法的返回值是tKhlnfo的对象,及客户信息的数据模型。
getGyslnfo(Item item)方法,主要是获取供应商信息,返回值是Gyslnfo类的对象,及供应商数据表的模型对象。
getSplnfo(Item item)方法,主要用于获取商品信息,返回值是Splnfo类的对象,及商品数据表的数据模型。
getLogin(String name,String password)方法《主要适用于判断登录用户的用户名与密码是否正确,返回值是boolean类型。
insertSelllnfo(TbSellMain sellMain)方法,主要是添加销售信息到数据库中。
restoreOrBackup(String sql)方法,此方法是设置数据库的模式为单用户连接模式,这样可以避免数据库恢复或备份时失败。
checkLogin(String userStr,String passStr)方法,用于判断登录用户与密码是否正确。
(2)各个模块实现方法描述:1.系统登录模块实现该模块的主要代码如下package src;import java.awt.AlphaComposite;import java.awt.GradientPaint;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Image;import java.awt.RenderingHints;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.JComponent;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.UIManager;public class AddUser {private static final String logoon = "添加用户";private static final String helpt = "添加";private static final String logooff ="退出";private static final String user = "用户:";private static final String password = "密码:";private static final String enterpwd ="再次输入密码:";private javax.swing.JTextField userText=null;private javax.swing.JPasswordField userpwd=null;private javax.swing.JPasswordField enterpassword=null;private javax.swing.JPanel jp = new javax.swing.JPanel(){final static long serialVersionUID = 2309585L;public void paintComponent(Graphics g){super.paintComponent(g);if(!isOpaque()){return;}Graphics2D g2d = (Graphics2D) g;//int rule = AlphaComposite.SRC_OVER;AlphaComposite opaque = AlphaComposite.SrcOver;//AlphaComposite blend = AlphaComposite.getInstance(rule, 0.6f);//AlphaComposite set = AlphaComposite.Src;int width = getWidth();int height = getHeight();GradientPaint gradientPaint = newGradientPaint(0,0,java.awt.Color.green,width/2,height/2,java.awt.Color.yellow,false);g2d.setComposite(opaque);g2d.setPaint(gradientPaint);g2d.fillRect(0, 0, width,height);g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);}};private javax.swing.JButton add = new javax.swing.JButton(helpt);private javax.swing.JButton cancle = new javax.swing.JButton(logooff);private JFrame logo_Frame = new JFrame(logoon);public AddUser() {// TODO自动生成构造函数存根try{UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());}catch(Exception exe){System.err.print(exe.getMessage());}JFrame.setDefaultLookAndFeelDecorated(true);Toolkit tools = logo_Frame.getToolkit();Image logo = tools.getImage("res/logo.jpg");logo_Frame = new JFrame(logoon);logo_Frame.setIconImage(logo);jp.setLayout(new GridBagLayout());javax.swing.ImageIcon pic = new javax.swing.ImageIcon("res/logo1.jpg");javax.swing.JLabel picture = new javax.swing.JLabel(pic);setupComponent(picture,0,0,GridBagConstraints.ABOVE_BASELINE_LEADING,1,true);javax.swing.JLabel users = new javax.swing.JLabel(user);setupComponent(users,0,1,1,1,false);javax.swing.JLabel pas = new javax.swing.JLabel(password);setupComponent(pas,0,2,1,1,false);javax.swing.JLabel enpas = new javax.swing.JLabel(enterpwd);setupComponent(enpas,0,3,1,1,false);userText = new javax.swing.JTextField(12);userText.requestFocus();userText.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyReleased(KeyEvent e){}public void keyPressed(KeyEvent e){if((e.getKeyChar() == KeyEvent.VK_ENTER )&&(userText.getText().trim() != "")){ userpwd.requestFocus();}}});setupComponent(userText,1,1,1,1,false);userpwd = new javax.swing.JPasswordField(12);userpwd.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){if((e.getKeyChar() == KeyEvent.VK_ENTER) && (!userpwd.getPassword().toString().trim().isEmpty())){enterpassword.requestFocus();}else{userpwd.requestFocus();}}public void keyReleased(KeyEvent e){}});setupComponent(userpwd,1,2,1,1,false);enterpassword = new javax.swing.JPasswordField(12);enterpassword.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyReleased(KeyEvent e){}public void keyPressed(KeyEvent e){//String pwd = userpwd.getPassword().toString().trim();//String epwd = enterpassword.getPassword().toString().trim();if((e.getKeyChar()==KeyEvent.VK_ENTER) &&((userpwd.getPassword().toString().trim())==(enterpassword.getPassword().toString().trim()))){add.requestFocus();}else if((e.getKeyChar()==(KeyEvent.VK_ENTER)) &&((userpwd.getPassword().toString().trim())!=(enterpassword.getPassword().toString().trim()))){ userpwd.setText("");enterpassword.setText("");userpwd.requestFocus();}}});setupComponent(enterpassword,1,3,1,1,false);//logoin = new javax.swing.JButton(logoon);add.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyReleased(KeyEvent e){}public void keyPressed(KeyEvent e){if((e.getKeyChar()==KeyEvent.VK_ENTER )){String users =userText.getText().trim();String pwd =userpwd.getPassword().toString().trim();String epwd =enterpassword.getPassword().toString().trim();if(users.isEmpty()){javax.swing.JOptionPane.showMessageDialog(logo_Frame, "必须输入用户名!","输入用户名",JOptionPane.ERROR_MESSAGE);userText.requestFocus();}if(pwd.isEmpty()){javax.swing.JOptionPane.showMessageDialog(logo_Frame, "必须输入密码!","输入密码",JOptionPane.ERROR_MESSAGE);userpwd.requestFocus();}if(epwd.isEmpty()){javax.swing.JOptionPane.showMessageDialog(logo_Frame, "第二个输入密码必须与第一个密码相同!","密码不一致",JOptionPane.ERROR_MESSAGE);enterpassword.requestFocus();}boolean b = DBUtil.isExist("select user_name from user whereuser_name="+"'"+users+"'");if(b){javax.swing.JOptionPane.showMessageDialog(logo_Frame, "用户已经存在,请另外输入!","不能添加",JOptionPane.ERROR_MESSAGE);userText.setText("");userpwd.setText("");enterpassword.setText("");userText.requestFocus();}int vale = DBUtil.getValue("select user_name from user whereuser_name='"+users+"'")+1;if(vale>0){String sql = "insert into user values('"+vale+",'"+users+"','"+pwd+"')";boolean bo = USeDB.Update(sql);if(bo)JOptionPane.showConfirmDialog(logo_Frame, "用户名添加成功!");}}}});add.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String users =userText.getText().trim();String pwd =userpwd.getPassword().toString().trim();String epwd =enterpassword.getPassword().toString().trim();if(users.isEmpty()){javax.swing.JOptionPane.showMessageDialog(null, "必须输入用户名!","输入用户名",JOptionPane.ERROR_MESSAGE);userText.requestFocus();}if(pwd.isEmpty()){javax.swing.JOptionPane.showMessageDialog(null, "必须输入密码!","输入密码",JOptionPane.ERROR_MESSAGE);userpwd.requestFocus();}if(epwd.isEmpty()){javax.swing.JOptionPane.showMessageDialog(null, "第二个输入密码必须与第一个密码相同!","密码不一致",JOptionPane.ERROR_MESSAGE);enterpassword.requestFocus();}boolean b = DBUtil.isExist("select user_name from user where user_name='"+users+"'");if(b){javax.swing.JOptionPane.showMessageDialog(logo_Frame, "用户已经存在,请另外输入!","不能添加",JOptionPane.ERROR_MESSAGE);userText.setText("");userpwd.setText("");enterpassword.setText("");userText.requestFocus();}int vale = DBUtil.getValue("select user_name from user where user_name='"+users+"'")+1;if(vale>0){String sql = "insert into user values('"+vale+",'"+users+"','"+pwd+"')";USeDB.UpdateDB(sql);boolean bo = DBUtil.isExist("select user_name from user where id=vale");if(bo){JOptionPane.showConfirmDialog(null, "用户名添加成功!");}JOptionPane.showConfirmDialog(null, "用户名已经存在!");}userText.setText("");userpwd.setText("");enterpassword.setText("");userText.requestFocus();}});setupComponent(add,0,4,1,1,true);//javax.swing.JButton exit = new javax.swing.JButton(logooff);cancle.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e2){logo_Frame.dispose();//System.exit(0);}});setupComponent(cancle,1,4,1,1,true);java.awt.Dimension d = tools.getScreenSize();int width = (int)(d.getWidth()-350) /2;int height = (int)(d.getHeight()-240)/2;logo_Frame.add(jp);logo_Frame.setAlwaysOnTop(true);logo_Frame.setLocation(width, height);logo_Frame.setSize(350, 240);logo_Frame.pack();logo_Frame.validate();logo_Frame.setVisible(true);}private void setupComponent(JComponent component,int gridx,int gridy,int gridwidth,int ipadx,boolean fill){final GridBagConstraints gridBagConstrains = new GridBagConstraints();gridBagConstrains.gridx = gridx;gridBagConstrains.gridy = gridy;gridBagConstrains.insets = new java.awt.Insets(5,3,3,3);if(gridwidth>1)gridBagConstrains.gridwidth = gridwidth;if(ipadx > 0)gridBagConstrains.ipadx = ipadx;if(fill)gridBagConstrains.fill = GridBagConstraints.HORIZONTAL;jp.add(component,gridBagConstrains);}}package src;import java.awt.AlphaComposite;import java.awt.GradientPaint;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.RenderingHints;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.util.regex.Matcher;import java.util.regex.Pattern;import javax.swing.JPanel;import javax.swing.JComponent;public class createStuffQuitInterFace extends JPanel{private final static long serialVersionUID = 230000123423L;private javax.swing.JTextField stuff_id = null;private javax.swing.JTextField stuff_name = null;private javax.swing.JTextField stuff_company = null;private javax.swing.JTextField stuff_people = null;private javax.swing.JTextField check_people = null;private javax.swing.JTextField stuff_unit = null;private javax.swing.JTextField stuff_value = null;private javax.swing.JTextField stuff_spec = null;private javax.swing.JTextField stuff_color = null;private javax.swing.JTextField stuff_place = null;private javax.swing.JTextField stock_date = null;private javax.swing.JTextField stuff_text = null;private javax.swing.JButton enter = null;private javax.swing.JButton clean = null;private javax.swing.JButton cancle = null;private String sql = null;public createStuffQuitInterFace() {// TODO自动生成构造函数存根this.setLayout(new GridBagLayout());this.setBackground(java.awt.Color.PINK);javax.swing.JLabel stuff_id_label = new javax.swing.JLabel("编号:");setupComponent(stuff_id_label,0,0,1,1,true);stuff_id = new javax.swing.JTextField(10);stuff_id.requestFocus();stuff_id.addKeyListener(new KeyListener(){public void keyReleased(KeyEvent e){if((e.getKeyChar() == KeyEvent.VK_ENTER) && ((stuff_id.getText().trim()) != "")){ stuff_name.requestFocus();}}public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}});setupComponent(stuff_id,1,0,1,1,true);javax.swing.JLabel stuff_name_label = new javax.swing.JLabel("原料名:");setupComponent(stuff_name_label,2,0,1,1,true);stuff_name = new javax.swing.JTextField(10);stuff_name.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}public void keyReleased(KeyEvent e){if((e.getKeyChar()==KeyEvent.VK_ENTER) && (stuff_name.getText().trim() != "")){ stuff_company.requestFocus();}}});setupComponent(stuff_name,3,0,1,1,true);javax.swing.JLabel stuff_company_label = new javax.swing.JLabel("生产商:");setupComponent(stuff_company_label,4,0,1,1,true);stuff_company = new javax.swing.JTextField(10);stuff_company.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}public void keyReleased(KeyEvent e){if((e.getKeyChar()==KeyEvent.VK_ENTER) && (stuff_company.getText().trim() != "")){ stuff_people.requestFocus();}}});setupComponent(stuff_company,5,0,1,1,true);javax.swing.JLabel stuff_people_label = new javax.swing.JLabel("收货员:");setupComponent(stuff_people_label,6,0,1,1,true);stuff_people = new javax.swing.JTextField(10);stuff_people.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}public void keyReleased(KeyEvent e){if((e.getKeyChar()==KeyEvent.VK_ENTER) && (stuff_people.getText().trim() != "")){ check_people.requestFocus();}}});setupComponent(stuff_people,7,0,1,1,true);javax.swing.JLabel check_people_label = new javax.swing.JLabel("检验员:");setupComponent(check_people_label,0,1,1,1,true);check_people = new javax.swing.JTextField(10);check_people.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}public void keyReleased(KeyEvent e){if((e.getKeyChar()==KeyEvent.VK_ENTER) && (check_people.getText().trim() != "")){ stuff_unit.requestFocus();}}});setupComponent(check_people,1,1,1,1,true);javax.swing.JLabel stuff_unit_label = new javax.swing.JLabel("单位:");setupComponent(stuff_unit_label,2,1,1,1,true);stuff_unit = new javax.swing.JTextField(10);stuff_unit.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}public void keyReleased(KeyEvent e){if((e.getKeyChar()==KeyEvent.VK_ENTER) && (stuff_unit.getText().trim() != "")){stuff_value.requestFocus();}}});setupComponent(stuff_unit,3,1,1,1,true);javax.swing.JLabel stuff_value_label = new javax.swing.JLabel("数量:");setupComponent(stuff_value_label,4,1,1,1,true);stuff_value = new javax.swing.JTextField(10);stuff_value.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}public void keyReleased(KeyEvent e){if((e.getKeyChar()==KeyEvent.VK_ENTER) && (stuff_value.getText().trim() != "")){if(CheckValue(stuff_value.getText().trim())){stuff_spec.requestFocus();}else{javax.swing.JOptionPane.showMessageDialog(null,"你的录入有误,请录入0-9的数值!","录入错误",javax.swing.JOptionPane.ERROR_MESSAGE);stuff_value.setText("");stuff_value.requestFocus();}}}});setupComponent(stuff_value,5,1,1,1,true);javax.swing.JLabel stuff_spec_label = new javax.swing.JLabel("规格:");setupComponent(stuff_spec_label,6,1,1,1,true);stuff_spec = new javax.swing.JTextField(10);stuff_spec.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}public void keyReleased(KeyEvent e){if((e.getKeyChar()==KeyEvent.VK_ENTER) && (stuff_spec.getText().trim() != "")){ stuff_color.requestFocus();}}});setupComponent(stuff_spec,7,1,1,1,true);javax.swing.JLabel stuff_color_label = new javax.swing.JLabel("颜色:"); setupComponent(stuff_color_label,0,2,1,1,true);stuff_color = new javax.swing.JTextField(10);stuff_color.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}public void keyReleased(KeyEvent e){if((e.getKeyChar()==KeyEvent.VK_ENTER) && (stuff_color.getText().trim() != "")){ stuff_place.requestFocus();}}});setupComponent(stuff_color,1,2,1,1,true);javax.swing.JLabel stuff_place_label = new javax.swing.JLabel("存放位置:");setupComponent(stuff_place_label,2,2,1,1,true);stuff_place = new javax.swing.JTextField(10);stuff_place.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}public void keyReleased(KeyEvent e){if((e.getKeyChar()==KeyEvent.VK_ENTER)&&(stuff_place.getText().trim() !="")){ stock_date.requestFocus();}}});setupComponent(stuff_place,3,2,1,1,true);javax.swing.JLabel stock_date_label = new javax.swing.JLabel("入库时间:");setupComponent(stock_date_label,4,2,1,1,true);stock_date = new javax.swing.JTextField(10);stock_date.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}public void keyReleased(KeyEvent e){if((e.getKeyChar()==KeyEvent.VK_ENTER) && (stock_date.getText().trim() != "")){ if(CheckDate(stock_date.getText().trim())){stuff_text.requestFocus();}else{javax.swing.JOptionPane.showMessageDialog(null,"数据录入错误格式为:YYYY/MM/DD,请你重新输入!","数据错误",javax.swing.JOptionPane.ERROR_MESSAGE);stock_date.setText("");stock_date.requestFocus();}}}});setupComponent(stock_date,5,2,1,1,true);javax.swing.JLabel stuff_text_label = new javax.swing.JLabel("原料备注:");setupComponent(stuff_text_label,6,2,1,1,true);stuff_text = new javax.swing.JTextField(10);stuff_text.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}public void keyReleased(KeyEvent e){if((e.getKeyChar()==KeyEvent.VK_ENTER)){enter.requestFocus();}}});setupComponent(stuff_text,7,2,1,1,true);enter = new javax.swing.JButton("录入");enter.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}public void keyReleased(KeyEvent e){if((e.getKeyChar()==KeyEvent.VK_ENTER)){IsGood();}}});enter.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){IsGood();}});setupComponent(enter,1,3,1,1,true);clean = new javax.swing.JButton("清空");clean.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){clean();}});setupComponent(clean,3,3,1,1,true);cancle = new javax.swing.JButton("退出");cancle.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){}});setupComponent(cancle,5,3,1,1,true);}public void paintComponent(Graphics g){super.paintComponent(g);if(!isOpaque()){return;}Graphics2D g2d = (Graphics2D) g;//int rule = AlphaComposite.SRC_OVER;AlphaComposite opaque = AlphaComposite.SrcOver;//AlphaComposite blend = AlphaComposite.getInstance(rule, 0.6f);//AlphaComposite set = AlphaComposite.Src;int width = getWidth();int height = getHeight();GradientPaint gradientPaint = newGradientPaint(0,0,java.awt.Color.green,width/2,height/2,java.awt.Color.yellow,false);g2d.setComposite(opaque);g2d.setPaint(gradientPaint);g2d.fillRect(0, 0, width,height);g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);}private void setupComponent(JComponent component,int gridx,int gridy,int gridwidth,int ipadx,boolean fill){final GridBagConstraints gridBagConstrains = new GridBagConstraints();gridBagConstrains.gridx = gridx;gridBagConstrains.gridy = gridy;gridBagConstrains.insets = new java.awt.Insets(5,3,3,3);if(gridwidth>1)gridBagConstrains.gridwidth = gridwidth;if(ipadx > 0)gridBagConstrains.ipadx = ipadx;if(fill)gridBagConstrains.fill = GridBagConstraints.VERTICAL ;this.add(component,gridBagConstrains);}private void clean(){stuff_id.setText("");stuff_name.setText("");stuff_company.setText("");stuff_people.setText("");check_people.setText("");stuff_unit.setText("");stuff_value.setText("");stuff_spec.setText("");stuff_color.setText("");stuff_place.setText("");stock_date.setText("");stuff_text.setText("");stuff_id.requestFocus();}private void IsGood(){String id = stuff_id.getText().trim();String name = stuff_name.getText().trim();String company = stuff_company.getText().trim();String people = stuff_people.getText().trim();String check = check_people.getText().trim();String unit = stuff_unit.getText().trim();String value = stuff_value.getText().trim();String spec = stuff_spec.getText().trim();String color = stuff_color.getText().trim();String place = stuff_place.getText().trim();String date = stock_date.getText().trim();String text = stuff_text.getText().trim();String str [] = {id,name,company,people,check,unit,value,spec,color,place,date,text};for(int i =0;i<str.length;i++){if(str[i].isEmpty()){javax.swing.JOptionPane.showMessageDialog(null,"必填项,请务必输入!","必须输入",javax.swing.JOptionPane.ERROR_MESSAGE);return;}}sql = "select stuff_ID,stuff_name,stuff_company,stuff_unit from stuff_in where stuff_ID="+id+" and stuff_name="+name+" and stuff_company="+company+" and stuff_unit="+unit;if(!DBUtil.isExist(sql)){javax.swing.JOptionPane.showMessageDialog(null,"请认真核对你的输入项是否和以前的相等,请务必输入相同的编号、名称、公司、规格!","重新输入",javax.swing.JOptionPane.ERROR_MESSAGE);clean();return;}sql ="delete from stuff_in where stuff_ID="+id+" and stuff_name="+name+" andstuff_company="+company+" and stuff_unit="+unit;USeDB.UpdateDB(sql);sql ="'"+id+"','"+name+"','"+company+"','"+people+"','"+check+"','"+unit+"','"+value+"','"+spec+"','"+color+"','"+place+"','"+date+"','"+text+"'";sql = "insert into stuff_quit values("+sql+")";USeDB.UpdateDB(sql);clean();}private boolean CheckValue(String s){char ch[] = s.toCharArray();int j=0;for(int i=0;i<ch.length;i++){if((ch[i]>'\u002f') && (ch[i]<'\u0040') ){j++;}}if(j==ch.length){return true;}return false;}private boolean CheckDate(String st){//检效年月日boolean b = false;String token[] = st.split("/");if((CheckDateRexgex(st))&&(token.length == 3)){if((CheckValue(token[0]))&& (CheckValue(token[1])) && (CheckValue(token[2]))){b = ISLeapYear(token);}}return b;}private boolean ISLeapYear(String str[]){int year = Integer.parseInt(str[0]);int month = Integer.parseInt(str[1]);int day = Integer.parseInt(str[2]);boolean b = false;if((month>0) && (month<13)){if((month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 10) || (month == 12)){if(day>0 && day<32){b = true;}}else if((month == 4) || (month ==6 ) || (month == 9) || (month == 11)){if(day>0 && day<31){b= true;}}else if(month==2){if(((year%4 == 0) && (year%100 !=0)) || (year%400 == 0)){//是闰年if(day>0 && day<30){b = true;}}if(day>0 && day<29){b= true;}}}return b;}private boolean CheckDateRexgex(String str){Pattern re = pile("[0-9]{4}\\/[0-9]{1,2}\\/[0-9]{1,2}");Matcher m = re.matcher(str);boolean b = m.matches();return b;}}package src;import java.awt.AlphaComposite;import java.awt.GradientPaint;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.GridBagConstraints;import java.awt.RenderingHints;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyListener;import java.awt.event.KeyEvent;import javax.swing.JComponent;//import javax.swing.JFrame;//import javax.swing.JPanel;//import javax.swing.UIManager;import java.util.regex.Pattern;import java.util.regex.Matcher;public class createUserProductInterFace extends javax.swing.JPanel{//implements ActionListener private final static long serialVersionUID = 230002323189L;private String sql = null;private javax.swing.JTextField product_id = null;private javax.swing.JTextField product_client = null;private javax.swing.JTextField product_name = null;private javax.swing.JTextField product_spec = null;private javax.swing.JTextField product_unit = null;private javax.swing.JTextField product_value = null;private javax.swing.JTextField product_make = null;private javax.swing.JTextField stock_date = null;private javax.swing.JTextField product_text = null;private javax.swing.JButton enter = null;private javax.swing.JButton cancle = null;private javax.swing.JButton quit = null;//private javax.swing.JButton find = null;public createUserProductInterFace(){//增加删除生产产品//pane = new javax.swing.JPanel();this.setLayout(new java.awt.GridBagLayout());this.setBackground(java.awt.Color.PINK);javax.swing.JLabel product_id_label = new javax.swing.JLabel("产品编号:");setupComponent(product_id_label,0,0,1,1,true);product_id = new javax.swing.JTextField(10);product_id.requestFocus();product_id.addKeyListener(new KeyListener(){public void keyReleased(KeyEvent e){if(e.getKeyChar()== KeyEvent.VK_ENTER && product_id.getText().trim() != ""){ product_client.requestFocus();}}public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}});setupComponent(product_id,1,0,1,1,true);javax.swing.JLabel product_client_label = new javax.swing.JLabel("客户名称:");setupComponent(product_client_label,2,0,1,1,true);product_client = new javax.swing.JTextField(10);product_client.addKeyListener(new KeyListener(){public void keyReleased(KeyEvent e){if(e.getKeyChar()== KeyEvent.VK_ENTER && product_client.getText().trim() != ""){ product_name.requestFocus();}}public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){}});setupComponent(product_client,3,0,1,1,true);javax.swing.JLabel product_name_label = new javax.swing.JLabel("产品名称:");setupComponent(product_name_label,4,0,1,1,true);product_name = new javax.swing.JTextField(10);product_name.addKeyListener(new KeyListener(){。