javaEE课程设计报告
javaee课程设计报告书

软件学院课程设计报告书课程名称 Java EE 与中间件课程设计设计题目社团管理系统专业班级软件12-5班学号 1220010518 姓名王义武指导教师常戬2015 年 1 月目录1 设计时间 (3)2 设计目的 (3)3 设计任务 (3)4 设计容 (3)4.1 需求分析 (3)4.1.1 总体目标 (3)4.1.2具体目标 (4)4.1.3 系统数据建模 (4)4.1.4 系统功能建模 (4)4.1.5 数据字典 (5)4.2 总体设计 (6)4.3详细设计 (9)4.3.1模块详细设计 (9)4.3.2流程设计 (10)4.4运行与测试 (11)5 总结与展望 (14)附录 (15)参考文献 (29)成绩评定 (29)图4.2.2 数据库表users2)shetuan表表二社团表列名数据类型长度允许空文字描述 sid int 5 社团编号 sname varchar 20 Y 社团名称type varchar 20 Y 社团性质图4.2.3 数据库表shetuan3)activity表表三 activity表列名数据类型长度允许空文字描述 aid int 5 活动编号 aname varchar 20 Y 活动名称score int 10 Y 获得分数sname varchar 20 Y 参与社团place varchar 20 Y 举办地点time date 0 Y 活动时间图4.2.4 是数据库表activity4.3详细设计4.3.1模块详细设计本系统具有以下几个功能模块:用户登录模块、查看信息模块、添加社团和活动信息模块、删除社团信息模块。
1)用户登录模块流程图:图4.3.1.1 系统程序流程图N开始输入用户名和密码判断用户名和密码选择操作功能 结束Y1)登陆测试图4.4.1 登陆界面图4.4.2 管理员登陆成功界面图4.4.3 普通用户登录界面2)操作测试图4.4.4 查看用户信息图4.4.5 查看活动信息图4.4.6 查看社团信息图4.4.7 添加社团图4.4.8 删除社团图4.4.9 添加活动5 总结与展望通过本次的程序设计本次的课程设计让我对,对struts与hibernate框架的操作使用也进一步熟练,了解了项目开发的相关步骤,但也有问题如对数据的操作问题,通过muyclpse自动生成dao 包,相关配置文件的配置还不熟练,最大的问题还是类间的调用不清楚和明确。
javaEE课程设计报告

《JAVAEE课程设计》课程设计报告(2012— 2013学年第 2 学期)系别:专业名称:课程设计科目:学生姓名:学号:指导教师:成绩:完成时间:项目组成员及分工目录一、网上商城系统概述 (1)二、需求分析与总体设计 (1)三、界面设计 (14)四、数据库设计 (19)五、代码设计................................. 错误!未定义书签。
六、运行调试................................. 错误!未定义书签。
七、结论与心得 (24)八、致谢 (24)九、参考文献 (24)一、网上商城xmutmall系统概述购物网站网上商城,为用户提供购物需求。
拥有前台客户注册、登录、登出,个人信息修改,商品展示,商品详情浏览,搜索商品,购物车,商品评价,网上新闻,后台登录,后台商品管理、用户管理、评论管理、新闻管理、数据库管理等功能。
本购物网站是专门针对网上学生和老师而创建的,旨在为网上师生们提供方便快捷的生活。
二、需求分析与总体设计开发流程图:图1 开发流程图需求分析1、系统名称网上商城(XMUTMALL)2、任务概述应用JSP与Servlet技术,实现B/S三层架构的WEB应用系统设计。
WEB容器选用、数据库服务器选用Oracle。
要求实现MVC架构,视图用JSP实现、模型用JavaBean实现、控制器用Servlet实现。
完成项目的需求分析与设计,包括数据库设计、功能设计、编码与测试;3、设计目的这是针对网上师生的购物网站,在注册之后可以进行校内商品销售和购买,每个客户都拥有买卖的权限,同时也包括旧物拍卖等交易方式,同时还有用户评论功能,用户可以对商品进行。
同时还有网上实时新闻报道,动态更新各种最新的学校信息。
不仅仅可以方便师生们的购物和交易,同时也使师生能够更加实时的了解学校最新的信息。
4、系统功能1)前台系统a.注册b.登录c.登出d.个人资料修改e.商品展示f.商品详情浏览g.搜索商品h.参与评论i.确定购买j.网上新闻展示2)后台管理系统a.管理员登录b.账号管理c.商品管理d.购物车管理e.发表网上新闻f.评论管理g.搜索商品5、详细功能1)前台系统a.注册使用邮箱账号注册重复验证密码个人资料填写b.登录使用邮箱账号登录验证密码c.登出登出账号后回到登录页面d.个人资料修改修改用户名、密码、个人介绍等e.商品展示最新商品热门商品推荐商品f.商品详情浏览商品图片展示添加到购物车添加到用户关注列表g.搜索商品根据关键字从数据库中找出相类似的信息h.参与评论为商城提建议i.确定购买选择线上交易选择线下交易j.网上新闻展示查看网上新闻2)后台管理系统a.管理员登录登录登出b.账号管理修改用户信息c.商品管理商品添加修改商品信息d.购物车管理商品管理费用统计e.发表网上新闻管理员发表新闻f.评论管理评论管理/删除/修改g.搜索商品总体设计系统角色:用户和管理员用例图:图2 用例图系统功能的总体划分框图:图3 系统功能总体划分图项目整体流转图:图4 流转图1、登录注册模块设计注册:在这一模块中,我们分为三个小模块。
关于javaee的课程设计

关于javaee的课程设计一、课程目标知识目标:1. 掌握Java EE的基本概念,了解其体系结构和核心组件;2. 学会使用Servlet技术进行Web编程,掌握请求和响应的处理方法;3. 熟悉JSP页面开发,能够运用常用指令和脚本语言实现动态页面;4. 了解Java EE的数据库连接技术,掌握JDBC的基本使用方法;5. 掌握Java EE的会话管理,了解Session和Cookie的作用及应用场景。
技能目标:1. 能够独立搭建Java EE开发环境,配置服务器和数据库;2. 能够编写Servlet程序,实现用户请求的接收和响应;3. 能够运用JSP技术,实现动态页面的设计与开发;4. 能够通过JDBC连接数据库,实现数据的增删改查操作;5. 能够运用会话管理技术,实现用户状态的保持和共享。
情感态度价值观目标:1. 培养学生主动探索、积极进取的学习态度,增强解决实际问题的自信心;2. 培养学生的团队协作意识,学会与他人共同解决问题,提高沟通能力;3. 培养学生养成良好的编程习惯,注重代码规范和性能优化;4. 增强学生的网络安全意识,了解Java EE应用的安全机制。
本课程针对高年级学生,在已有Java基础的前提下,深入讲解Java EE技术。
课程性质为理论与实践相结合,注重培养学生的实际动手能力。
在教学过程中,教师需关注学生的个体差异,提供个性化指导,确保学生能够达到课程目标,为后续的Java EE项目开发打下坚实基础。
通过本课程的学习,学生将能够掌握Java EE的基本知识和技能,为今后从事Web开发工作奠定基础。
二、教学内容1. Java EE概述- 体系结构及核心组件介绍- 开发环境搭建(含服务器和数据库配置)2. Servlet技术- Servlet生命周期及方法- Request和Response对象的使用- ServletConfig和ServletContext对象的作用3. JSP技术- JSP页面基本结构- JSP指令和脚本语言- JSP内置对象及其作用4. 数据库连接技术- JDBC基本概念- 数据库连接池技术- 常用SQL语句及操作5. 会话管理- Session和Cookie机制- 会话管理策略及应用场景- 用户登录状态保持6. Java EE安全- Web应用安全策略- 认证和授权机制- 常见安全漏洞及防护措施教学内容依据课程目标进行选择和组织,以教材为基础,注重科学性和系统性。
JavaEE应用技术课程设计报告

大庆师范学院《Java EE应用技术》课程设计报告题目:登录系统小组成员: ;;;;;;;;;;;;;;;;;;3专业:计算机科学与信息技术班级:计算机科学与技术一班指导老师: [[[[2016年 12月 28 日一、任务描述SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。
因此希望通过本次实验充分了解SHH框架集成应用的设计理念和具体步骤;1. 熟练掌握Struts/Spring/Hibernate框架的使用2. 熟练掌握数据库的创建以及JDBC的应用3. 掌握SSH框架的集成和相关配置文件的装配二、功能需求说明本设计是图书馆管理系统的前端,可实现在数据库添加数据进行对用户的增添和对该系统的登录。
三、总体设计(一)总体功能描述在了解Java语言的基础上了解并掌握J2EE的构架及相关技术,重点掌握核心技术中最基本的Servlet、JSP、Javabean、JDBC,初步具有基于J2EE平台的软件开发能力、设计并实现小型应用系统。
(二)系统功能结构图四、数据库设计login.jsp 登录界面main.jsp增加信息删除信息查询信息create database book;use book;set names gbk;create table user_info(id int primary key auto_increment,name varchar(20),password varchar(20),mail varchar(20),sex varchar(20),address varchar(20),tel varchar(20))jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/bookername=rootjdbc.password=123456五、系统详细设计与实现(一)模块一: login.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w /TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><link rel="stylesheet" type="text/css"href="jquery-easyui-1.5/themes/default/easyui.css"><link rel="stylesheet" type="text/css"href="jquery-easyui-1.5/themes/icon.css"><script type="text/javascript" src="jquery-easyui-1.5/jquery.min.js"></script ><script type="text/javascript"src="jquery-easyui-1.5/jquery.easyui.min.js"></script></head><body><script type="text/javascript">$(function() {$("#submit").click(function() {var username = $("#username").val();var password = $("#password").val();alert(username+password);$.post('userAction_login', {'ername' : username,'user.password' : password}, function(data) {if (data) {alert('登陆成功');window.location = 'main.jsp';} else {alert('登录失败');window.location = 'login.jsp';$("#username").val();$("#password").val();}})});$("#register").click(function() {var username = $("#username").val(); var password = $("#password").val(); alert(username+password);$.post('userAction_register', {'ername' : username,'user.password' : password}, function(data) {if (data) {alert('注册成功');window.location = 'main.jsp';} else {alert('注册失败');window.location = 'login.jsp'; $("#username").val();$("#password").val();}})});})</script><br>用户名<br><input type="text" id="username"><br><br> 密码<br><input type="text" id="password" > <br><br><input type="button" id="submit" value="登录"><input type="button" id="register" value="注册"></body></html>运行截图:(二)模块二:main.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><link rel="stylesheet" type="text/css"href="jquery-easyui-1.5/themes/default/easyui.css"><link rel="stylesheet" type="text/css"href="jquery-easyui-1.5/themes/icon.css"><script type="text/javascript" src="jquery-easyui-1.5/jquery.min.js"></script> <script type="text/javascript"src="jquery-easyui-1.5/jquery.easyui.min.js"></script></head><body><script type="text/javascript">$(function() {$('#dg').datagrid({url : 'studentAction_getAllStudent', //urlsingleSelect : true,columns : [ [ {field : 'no',title : '学号',width : 100,//hidden : true}, {field : 'name',title : '姓名',width : 100}, {field : 'age',title : '年龄',width : 100,},{field : 'address',title : '地址',width : 100,} ] ],toolbar : [ {iconCls : 'icon-add',handler : function() {$('#dd').dialog({title: 'addStudent',width: 400,height: 200,closed: false,cache: false,href: 'add.html',modal: true,buttons:[{text:'Save',handler:function(){var name = $("#name").val();var age = $("#age").val();var address = $("#address").val();$.post('studentAction_add', {"" : name,"student.age" : age,"student.address" : address}, function(data) {if (data == 1) {alert('添加成功!');$('#dg').datagrid('reload');$('#dd').dialog('close');} else {alert('添加失败!');}})}},{text:'Close',handler:function(){$('#dd').dialog('close');} }]});}}, '-', {iconCls : 'icon-remove', //实现删除handler : function() {var row = $('#dg').datagrid('getSelected'); //选中的行if (row == null) {alert('请选中要删除的行!');} else {var no = row.no; //获取选中行的学号//alert(no);$.post('studentAction_delete', {"no" : no,}, function(data) {if (data) {$('#dg').datagrid('reload');alert('删除成功!');} else {alert('删除失败!');}})}}}, '-', {iconCls : 'icon-help',handler : function() {$('#dd').dialog({title : 'My Dialog',width : 400,height : 200,closed : false,cache : false,href : 'help.html',modal : true,buttons : [ {text : 'Close',handler : function() {$('#dd').dialog('close');}} ]});}}],onDblClickRow : function(rowIndex, rowData) {//alert(rowData);//alert();//console.log(rowData);$('#dg').datagrid('reload');},onDblClickCell : function(rowIndex, field, value) {//alert(value + field + rowIndex);/* -------------------- 获取学号 -----------------------*/var rows = $('#dg').datagrid('getRows'); // 获取rows 每一行的对象var row = rows[rowIndex]; //获取选中行的对象var no = row.no; //获取学号//alert(no);if(field == 'no'){alert('您不能修改学号!');}else{$('#dd').dialog({title: 'CellEdit',width: 400,height: 200,closed: false,cache: false,href: 'edit.html',modal: true,buttons:[{text:'Update',handler:function(){var ms = $("#ms").val();alert(field+ms);$.post('studentAction_update', {"field" : field,"no" : no,"ms" : ms}, function(data) {if (data == 1) {alert('修改成功!');$('#dg').datagrid('reload');$('#dd').dialog('close');} else {alert('修改失败!');}})//alert(no+field+ms);}}]});}},});})</script><div id="dg"></div><div id="dd"></div><div id="win"></div></body></html>运行截图:六、学习总结(一)小组分工说明jy 负责struts2技术 jdbc数据库技术yj负责ssh框架整合技术编写yj 负责spring技术 hibernate技术(二)涉及知识点struts2技术spring技术hibernate技术ssh技术整合jdbc数据库技术(三)遇到的主要难点及解决方法遇到的问题:1.地址栏中:http://localhost:8088/sshtest/user.do?act=register报错:HTTP Status 404 - Servlet action is not available原因:struts-config.xml配置文件中的请求处理器类出错了(找不到类路径)<controllerprocessorClass="com.xj.requestprocessor.MyProcessor"></controller>解决方法:<controllerprocessorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller>2.报错 :javax.servlet.ServletException: Cannot find ActionMappings orActionFormBeans collection原因: 工程里面的struts包.有损坏或某些struts包没有存在.解决办法:重新创建一个工程,并且导入struts,然后将导入的struts包copy到目前的工厂的WEB-INf/lib目录,重新部署,重新启动服务,就ok了3.报错:ng.NoSuchMethodErrororg.objectweb.asm.ClassVisitor.visit(IILjavalangString;LjavalangString;[LjavalangString;LjavalangString;)V.txt原因: 由于某些Spring和Hibernate的版本问题,其中导入包的时候,某些jar包发生了冲突.解决办法: 删除工程下面WEB-INF/lib/asm-2.2.3.jar,然后在Eclipse中刷新工程,再重新部署工程,然后重启 Tomcat.struts2,spring,hibernate是三个相互独立的框架。
javaEE课设报告

JavaEE课程设计报告目录摘要 (3)前言 (3)一、课题总体介绍 (4)1.1 课设题目 (4)1.2 课题开发的目的 (4)二、需求分析和概要设计 (5)1.项目介绍 (5)1.1编写目 (5)1.2项目背景 (5)2.任务概述 (5)2.1目标 (5)2.2运行环境 (5)2.3需求概述 (5)3.总体设计 (6)3.1处理流程 (6)3.2总体结构和模块外部设计 (6)3.3功能分配 (6)4.接口设计 (7)4.1外部接口 (7)4.2内部接口 (7)5.数据结构设计 (8)5.1逻辑结构设计 (8)5.2物理结构设计 (8)5.3数据结构与程序的关系 (8)6.运行设计 (8)6.1运行模块的组合 (8)6.2运行控制 (9)6.3运行时间 (9)7.出错处理设计 (9)7.1出错输出信息 (9)7.2出错处理对策 (9)总体设计 (9)2.3..1处理流程 (9)2.3.2总体结构和模块外部设计 (11)三、详细设计 (12)3.1功能分配 (12)3.2外部接口 (12)3.3内部接口 (12)四、数据结构设计 (13)4.1逻辑结构设计 (13)4.2总体结构和模块外部设计 (14)4.3功能分配 (14)4.4接口设计 (15)4.4.1外部接口 (15)4.4.2内部接口 (15)5.数据结构设计 (16)5.1逻辑结构设计 (16)5.2物理结构设计 (16)5.3数据结构与程序的关系 (16)六、课程设计总结 (16)七、参考文献 (17)八、附件 (17)部分重要代码: (17)6.1 采集数据GatherImpl类: (17)6.2 入库模块DBStoreImpl (23)、摘要JAVAEE开发技术是Java开发中综合性最强,Java编程应用最为广泛的一项,作为企业级的开发框架,JavaEE除了有SDK基本的包支持,还有各种基于服务器,数据库等开发的工具包,在JavaEE开发中,这些工具包很大程度上简化了开发复杂项目的开发流程。
javaEE课程设计报告

成绩:JAVA 开源技术课程设计报告题目:小型日志网站设计姓名 _班级 _ 网络10-1 _ _ 学号 _ 10034120125 实验地点 _ 宿舍 _实验时间 2013.9.2—2013.9.6指导教师 __ _李启锐目录第一章绪论 (3)1.1课题背景和意义 (3)1.2 网站开发平台 (3)1.3论文的组织结构 (3)第二章技术概述 (4)2.1 myEclipse (4)2.2 MYSQL (4)2.3 Navicat for Mysql (4)2.4 本章小结 (4)第三章网页概要设计 (5)3.1 网页功能设计 (5)3.2网站界面设计 (8)3.3 本章小结 (8)第四章网页数据库设计 (9)4.1数据库表的建立 (9)4.2通过Navicat for Mysql对数据库进行操作 (10)4.3本章小结 (10)第五章网页详细设计 (11)5.1设计思想 (11)5.2 设计原理 (11)5.2 部分设计代码 (12)5.3 本章小结 (17)结论 (18)第一章绪论1.1课题背景和意义如今国家发展迅速,奔上小康的人们越来越多,人们对生活的需求也不仅仅满足于食物上的温饱,逐渐对生活的质量有了更高的追求,有了电脑之后能把一些信息储存在电子平台上,日志网页能让人们把日志发布在网页上,随时提取查看。
1.2 网站开发平台1、数据库MSQL开发工具2、myEclipse1.3论文的组织结构本文的主要章节安排如下:第一章绪论。
简单地介绍了课题背景和意义,并简略地介绍了网页开发所用的平台。
第二章技术概述。
简单地介绍了开发网站过程中所用到的主要技术与工具myEclipse,mysql,Navicat for Mysql。
第三章网页概要设计。
介绍了网页设计的思想,网页的主要功能,各个模块的使用与图示。
第四章网页数据库设计。
对网页的数据库设计进行描述,介绍了数据库的各个表的功能与简单的设计思想。
第五章网页的详细设计。
javaee课设报告

javaee课设报告
模板
一、引言
随着互联网的快速发展,Web 应用程序的需求也在不断增长,而Java EE(Java Platform, Enterprise Edition)是企业级应用程序的开发的技术,是建立在 JAVA 技术基础上的规范,是企业级应用开发的完整解决方案。
本文以XXX组毕业设计为例,分析XXX组在Java EE开发中的技术实现,对该组设计的毕业设计应用程序进行研究、分析、总结,提出如何更好的实现网络应用程序。
二、研究内容
XXX组的毕业设计应用程序XX(系统名称)依托Java EE技术,采用了前端、后端分离技术,使用SpringMVC作为前端框架,Mybatis作为持久层框架,具体技术实现(具体技术实现内容)。
(1)XX系统前端框架实现:
XXX组主要采用SpringMVC框架实现系统前端,使用SpringMVC可以减少控制器和服务层、视图层的耦合,具体技术实现(具体实现技术内容),使得系统的结构更加清晰,维护更加容易。
(2)XX系统持久层实现:
XXX组主要采用Mybatis框架实现系统持久层。
Mybatis框架的主要作用是映射Java类和数据库表、字段的关系,在持久层使用Mybatis可以提升开发效率,更快的进行数据库查询、更新等操作,具体技术实现(具体实现技术内容)。
(3)XX系统测试:
XXX组在实现完毕。
javaee课程设计

软件学院课程设计报告书课程名称 Java EE 与中间件课程设计设计题目社团管理系统专业班级软件12-5班学号 ********** 姓名王义武指导教师常戬2015 年1 月目录1 设计时间 (3)2 设计目的 (3)3 设计任务 (3)4 设计内容 (3)4.1 需求分析 (3)4.1.1 总体目标 (3)4.1.2具体目标 (4)4.1.3 系统数据建模 (4)4.1.4 系统功能建模 (4)4.1.5 数据字典 (5)4.2 总体设计 (6)4.3详细设计 (9)4.3.1模块详细设计 (9)4.3.2流程设计 (10)4.4运行与测试 (10)5 总结与展望 (14)附录 (15)参考文献 (29)成绩评定 (29)图4.2.2 数据库表users2)shetuan表表二社团表列名数据类型长度允许空文字描述sid int 5 社团编号 sname varchar 20 Y 社团名称type varchar 20 Y 社团性质图4.2.3 数据库表shetuan3)activity表表三activity表列名数据类型长度允许空文字描述aid int 5 活动编号 aname varchar 20 Y 活动名称score int 10 Y 获得分数sname varchar 20 Y 参与社团place varchar 20 Y 举办地点time date 0 Y 活动时间图4.2.4 是数据库表activity4.3详细设计4.3.1模块详细设计本系统具有以下几个功能模块:用户登录模块、查看信息模块、添加社团和活动信息模块、删除社团信息模块。
1)用户登录模块流程图:图4.3.1.1 系统程序流程图N开始输入用户名和密码判断用户名和密码选择操作功能 结束Y1)登陆测试图4.4.1 登陆界面图4.4.2管理员登陆成功界面图4.4.3普通用户登录界面2)操作测试图4.4.4 查看用户信息图4.4.5 查看活动信息图4.4.6 查看社团信息图4.4.7 添加社团图4.4.8 删除社团图4.4.9 添加活动5 总结与展望通过本次的程序设计本次的课程设计让我对,对struts与hibernate框架的操作使用也进一步熟练,了解了项目开发的相关步骤,但也有问题如对数据的操作问题,通过muyclpse自动生成dao 包,相关配置文件的配置还不熟练,最大的问题还是类间的调用不清楚和明确。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计课程名称: JAVAEE/.NET课程设计设计题目:校园超市商品信息管理系统学院:信息工程与自动化学院专业:计算机科学与技术年级: 2011年级学生姓名:指导教师:日期: 2014-6-30——2014-7-11 教务处制课程设计任务书信息工程与自动化学院计算机科学与技术专业 2011 年级学生姓名:张建兴课程设计题目:校园超市商品信息管理系统课程设计主要内容:本次课程设计自主完成一个系统,题目学生自定。
我设计的是一个校园超市商品信息管理系统,是一个小型系统,适用于一些小型超市,对库存商品,售出商品,日常业务进行管理。
主要采用jsp+servlet+数据库配合的方式工作。
Jsp 负责页面显示,servlet处理逻辑业务,后台数据库采用mysql数据库。
用到连接数据库,对数据库的操作,servlet跳转,实现部件之间的合作,前台(jsp)获取并显示后台(数据库)数据,或者后台(数据库)获取并存储前台数据。
设计指导教师(签字):教学基层组织负责人(签字):年月日摘要本次课程设计题目有学生自定,学生可以受日常学习生活启发来设计一个系统。
这次课程设计主要要求学生掌握javaEE网络编程,老师要求学生自主完成规模不限的系统,自定题目,自主设计。
对于这次课程设计,我把它当做一次实践的机会,设计过程中希望通过跟同学讨论,提问老师等方式使自己得到提升,毕竟平时自己一个人琢磨很难解决一些问题,也很难提高技巧。
之前对于MVC 编程方法的逻辑不是那么清晰,很难衔接好各个层之间的接口。
如果时间足够,希望这一次通过各种方法,在采用MVC的编程思想的前提下,自己完成一个完整的系统。
这一次我自主设计并完成了校园超市商品信息管理系统,旨在复习javaEE/.net的知识,并从这一次实践中获得技术的提升。
熟练编程中的一些技巧和编程中常见的错误每个校园内都会有好几个小型的超市,虽然说是小型,但也提供了上万学生日常所需的任何商品,在我印象中在校园里的超市能找到你所需要的一切。
超市的商品肯定很多,零零碎碎很繁杂,难管理,所以一个管理超市商品信息和业务的系统根由必要。
可以减轻店员的工作量,提高效率。
超市商品信息管理系统是一个规划管理超市商品的价格,库存,利润和日常的一些业务的一个小型系统,适用于一些小型超市。
它包括三个主要功能:库存商品管理,售出商品管理和日常业务管理。
在这三大功能下又各自包括对商品的添加,查询和删除等功能。
是一个小型,便捷地系统。
关键字:超市,管理商品,业务,功能目录摘要 (3)第一章系统概述 (1)1.1 课程设计背景 (1)1.2 开发工具及相关技术 (1)1.2.1 Tomcat介绍 (1)1.2.2 MySQL介绍 (1)1.2.3 Eclipse简介 (2)1.3 可行性分析 (2)1.3.1 技术可行性分析 (2)1.3.2 经济可行性分析 (2)1.3.3 操作可行性分析 (3)第二章需求分析 (3)2.1业务需求概述 (3)第三章系统设计 (4)3.1总体结构设计 (4)3.2系统数据库设计 (4)第四章编码实现 (5)第五章系统实现及操作说明 (20)第六章总结体会 (26)致谢 (27)参考文献 (27)第一章系统概述1.1课程设计背景我国超市形成于20世纪90年代初期,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。
随着超市高速的发展,其经营管理也变得愈加复杂,早期的超市商品管理形式不能满足现有销售也的发展,这样就迫切地需要引入新的商品管理技术。
超市形态具有种种优点,但在目前状况下,它仍存在零售业企业所共有的落后的一面,如:不能有效地管理每种商品,不宜进行商品调价,盘点效率低等,而且在超市日常管理中,商品的进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。
而且日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。
因此,在选题过程中,我们小组选择了超市商品管理系统设计题目,依靠现代化的计算机信息处理技术来管理超市,从而节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。
1.2开发工具及相关技术1.2.1 Tomcat介绍Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。
由于Tomcat本身也内含了一个HTTP 服务器,它也可以被视作一个单独的Web服务器。
1.2.2 MySQL介绍MySQL是一个开放源码的关系数据库管理系统,是一个真正的多用户、多线程SQL数据库服务器。
MySQL由于性能高、成本低、可靠性好、小巧、功能齐全、查询迅捷而且是免费的等优点,已经成为最流行的开源数据库,被广泛地应用在中小型网站中。
1.2.3 Eclipse简介Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。
Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。
由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于Java 开发工具。
尽管 Eclipse 是使用Java语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如C/C++、COBOL、PHP等编程语言的插件已经可用,或预计将会推出。
Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。
基于Eclipse 的应用程序的一个突出例子是 IBM Rational Software Architect,它构成了 IBM Java 开发工具系列的基础。
1.3可行性分析1.3.1 技术可行性分析基于相对成熟的前台开发工具eclipse,运用Flex开发前台界面,其功能完全能够满足本系统的实现。
使用java语言进行后台编码,运用面向对象的思想和设计模式进行开发,后台使用简单快捷的mysql数据库,运用tomcat来部署整个程序。
这些技术在当今时代都趋于成熟,并且运用广泛,所以,本系统的实现在技术上是可行的。
1.3.2 经济可行性分析由于开发设备与人员都已聚齐,开发所用的成本主要是人力资源的支出。
并且系统所发挥的作用是科学地管理数据,大大提高了管理效率,降低了工作人员的负担,节省了管理时间,所以,本系统的实现在经济方面是可行的。
1.3.3 操作可行性分析本系统功能模块划分明确,有较强可操作性;并具有规范化的工作界面,能够让用户在很短的时间内掌握使用的方法。
进入系统后,系统的界面人性化,规范化,而且很美观,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。
而整个超市管理系统采用最友好的交互界面,简介明了,不需要太多的数据库知识。
第二章需求分析2.1业务需求概述1、售货业务售货管理是企业生产经营活动中及其重要的一环,它关系到产品质量能否得到保证,生产是否能够顺利进行,采购成本能否得到有效控制等问题。
企业现代管理理念中对企业的进货管理提出新的要求;企业进货时对供货商的选择更见慎重,双方不再是讨价还价的买卖关系,而是一种相互依存的合作伙伴关系,并且还需要认识到企业产品质量要从采购抓起,这就关系到供方的供货、服务质量。
下面是进货业务程序的主要内容:供货商的情况调查:在实施采购之前,超市首先就要对市场上各大商品供货商进行详细的调查,了解公司的具体情况,评定企业的信誉级别和公司的市场口碑,做到准确无误,采购顺利。
实施进货计划:根据供货商档案及评审结果,选定供货商;生成订货单给选定的供货商;双方就价格、数量、质量等方面洽谈磋商,直至签订合同;跟踪合同执行,安排供货进度和货物运输,做好验收入库工作。
2、库存业务:库存管理是指在生产经营中为销售和耗用而存储的各种资产。
企业存货不当都会增加不必要的费用:存货过多将导致物资的积压、存储费用增加、流动资金周转不利,并且过量的库存会掩盖管理不善的问题。
存货不足则影响企业的正常销售活动。
库存管理的目标是需求最佳存货数量,使库存的成本总额最小化。
其主要业务如下:产品入库、出库、盘库等日常处理。
科学合理地确定某库存物资的库存控制参数。
如:最佳订货批量、最大库存量、最佳缺货量、最佳订购周期等,进行严格的库存控制工作。
汇总统计各类库存数据,反应和监督储备资金占用及采购资金使用情况。
3、销售业务销售对一个企业的生存和发展是至关重要的,它不再是传统意义上的“卖东西”,它对外关系到企业产品、服务和企业形象等多方面因素,对内涉及到销售、库存、财务等信息。
此外信息化的高速发展为企业的销售工作提出了新的挑战,封闭意味着落后,超市要抓住时机,根据市场所需,引入现代化的销售管理模式,实施企业的信息化、智能化销售管理,才能使超市在激烈的市场竞争中立于不败之地第三章系统设计3.1总体结构设计系统流程图图3-1系统流程图3.2系统数据库设计属性名属性类型备注产品名称Text 说明产品名称产品价格Float 说明产品价格库存数量Int 库存产品数量商品编号Int 商品代号表3-1库存商品数据表图3-2数据库中的库存商品表属性名属性类型备注商品名称Text 说明商品名称商品编号Int 商品代号售出数量Int 已销售商品数量售出获利Float 售出所有商品数量的利润表3-2售出商品数据表属性名属性类型备注商品编号Int 售出商品的编号商品名称Text 售出商品的名称商品数量Int 售出商品的数量顾客姓名Text 购买顾客姓名顾客地址Text 购买商品顾客的地址图3-4数据库中业务表截图第四章编码实现以下代码只包含本系统部分关键代码,完整代码另附:(1)数据库连接类,内含连接数据库的方法,还有各种对数据库的操作的方法:Sqlbean:package ConnectionFactory;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import shopValue.inShopBean;import shopValue.outShopBean;import shopValue.salesBean;public class sqlbean {static Connection con;static PreparedStatement pre = null;static ResultSet rs;public sqlbean() {System.out.println("kkk");try {Class.forName("com.mysql.jdbc.Driver");con = DriverManager.getConnection("jdbc:mysql://localhost:3306/shop", "root", "636692");System.out.println(con);} catch (Exception e1) {e1.printStackTrace();}}public inShopBean searchStore_table(String sql, int id) {inShopBean isb = new inShopBean();try {new sqlbean();System.out.println(con + "KKKK");pre = (PreparedStatement) con.prepareStatement(sql);pre.setInt(1, id);rs = pre.executeQuery();while (rs.next()) {isb.setId(rs.getInt("id"));isb.setName(rs.getString("name"));isb.setPrice(rs.getFloat("price"));isb.setNumber(rs.getInt("number"));}} catch (SQLException e) {e.printStackTrace();}return isb;}public int insertIntoStore_table(String sql, inShopBean isb) { int count = 0;try {new sqlbean();pre = (PreparedStatement) con.prepareStatement(sql);pre.setInt(1, isb.getId());pre.setString(2, isb.getName());pre.setFloat(3, isb.getPrice());pre.setInt(4, isb.getNumber());count=pre.executeUpdate();} catch (Exception e) {e.printStackTrace();}return count;}public int getDelete(String sql, int id) {int count = 0;try {new sqlbean();pre = (PreparedStatement) con.prepareStatement(sql);pre.setInt(1, id);count = pre.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {try {pre.close();con.close();} catch (SQLException e) {e.printStackTrace();}}return count;}public int getUpdateStore_table(String sql, inShopBean isb) { int count = 0;try {new sqlbean();pre = (PreparedStatement) con.prepareStatement(sql);pre.setInt(1, isb.getId());pre.setString(2, isb.getName());pre.setFloat(3, isb.getPrice());pre.setInt(4, isb.getNumber());count = pre.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {try {pre.close();con.close();} catch (SQLException e) {e.printStackTrace();}}return count;}public outShopBean searchSell_table(String sql, int id) { outShopBean osb = new outShopBean();try {new sqlbean();pre = (PreparedStatement) con.prepareStatement(sql);pre.setInt(1, id);rs = pre.executeQuery();while (rs.next()) {osb.setId(rs.getInt("id"));osb.setName(rs.getString("name"));osb.setNumber(rs.getInt("number"));osb.setLirun(rs.getFloat("lirun"));}} catch (SQLException e) {e.printStackTrace();}return osb;}public salesBean searchBuseness_table(String sql, int id) { salesBean sb = new salesBean();try {new sqlbean();pre = (PreparedStatement) con.prepareStatement(sql);pre.setInt(1, id);rs = pre.executeQuery();while (rs.next()) {sb.setId(rs.getInt("id"));sb.setGoodsname(rs.getString("goodsname"));sb.setNumber(rs.getInt("number"));sb.setCsmname(rs.getString("csmname"));sb.setCsmaddr(rs.getString("csmaddr"));}} catch (SQLException e) {e.printStackTrace();}return sb;}public List<inShopBean> getStoreList(String sql) { List<inShopBean> list = new ArrayList<inShopBean>();try {new sqlbean();pre = (PreparedStatement) con.prepareStatement(sql);rs = pre.executeQuery();while (rs.next()) {inShopBean isb = new inShopBean();isb.setId(rs.getInt("id"));isb.setName(rs.getString("name"));isb.setPrice(rs.getFloat("price"));isb.setNumber(rs.getInt("number"));list.add(isb);}} catch (SQLException e) {e.printStackTrace();} finally {try {pre.close();con.close();} catch (SQLException e) {e.printStackTrace();}}return list;}public List<outShopBean> getsellList(String sql) {List<outShopBean> list = new ArrayList<outShopBean>();try {new sqlbean();pre = (PreparedStatement) con.prepareStatement(sql);rs = pre.executeQuery();while (rs.next()) {outShopBean osb = new outShopBean();osb.setId(rs.getInt("id"));osb.setName(rs.getString("name"));osb.setNumber(rs.getInt("number"));osb.setLirun(rs.getFloat("lirun"));list.add(osb);}} catch (SQLException e) {e.printStackTrace();} finally {try {pre.close();con.close();} catch (SQLException e) {e.printStackTrace();}}return list;}public List<salesBean> getBusenessList(String sql) { List<salesBean> list = new ArrayList<salesBean>();try {new sqlbean();pre = (PreparedStatement) con.prepareStatement(sql);rs = pre.executeQuery();while (rs.next()) {salesBean sb = new salesBean();sb.setId(rs.getInt("id"));sb.setGoodsname(rs.getString("goodsname"));sb.setNumber(rs.getInt("number"));sb.setCsmname(rs.getString("csmname"));sb.setCsmaddr(rs.getString("csmaddr"));list.add(sb);}} catch (SQLException e) {e.printStackTrace();} finally {try {pre.close();con.close();} catch (SQLException e) {e.printStackTrace();}}return list;}}(2)三种商品的值类,内含set和get方法,对数据进行设置和获取操作:Inshopbean:package shopValue;public class inShopBean {private String name;private float price;private int number;private int id;public inShopBean(){}public inShopBean(String name,float price,int number,int id){ =name;this.price=price;this.number=number;this.id=id;}public String getName(){return name;}public void setName(String name){=name;}public float getPrice(){return price;}public void setPrice(float price){this.price=price;}public int getNumber(){return number;}public void setNumber(int number){this.number=number;}public int getId(){return id;}public void setId(int id){this.id=id;}}Outshopbean:package shopValue;public class outShopBean {private String name;private float lirun;private int number;private int id;public outShopBean(){}public outShopBean(String name,float lirun,int number,int id){ =name;this.lirun=lirun;this.number=number;this.id=id;}public String getName(){return name;}public void setName(String name){=name;}public float getLirun(){return lirun;}public void setLirun(float lirun){this.lirun=lirun;}public int getNumber(){return number;}public void setNumber(int number){this.number=number;}public int getId(){return id;}public void setId(int id){this.id=id;}}Salesbean:package shopValue;public class salesBean {private String goodsname;private String csmname;private String csmaddr;private int number;private int id;public salesBean(){}public salesBean(String csmname,String goodsname,int number,int id,String csmaddr){this.goodsname=goodsname;this.csmname=csmname;this.csmaddr=csmaddr;this.number=number;this.id=id;}public String getGoodsname(){return goodsname;}public void setGoodsname(String goodsname){this.goodsname=goodsname;}public String getCsmname(){return csmname;}public void setCsmname(String csmname){this.csmname=csmname;}public String getCsmaddr(){return csmaddr;}public void setCsmaddr(String csmaddr){this.csmaddr=csmaddr;}public int getNumber(){return number;}public void setNumber(int number){this.number=number;}public int getId(){return id;}public void setId(int id){this.id=id;}}(3)库存商品查找servlet,完成查找逻辑功能package shopManage;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import shopValue.inShopBean;import ConnectionFactory.sqlbean;public class researchStoreGoods extends HttpServlet {private static final long serialVersionUID = 1L;private Connection cn;public researchStoreGoods() {super();}public void init(ServletConfig config) throws ServletException { super.init(config);try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e1) {e1.printStackTrace();}String url = "jdbc:mysql://localhost:3306/shop";String user = "root";String password = "636692";try {cn = DriverManager.getConnection(url, user, password);} catch (SQLException e) {e.printStackTrace();}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");String sid=request.getParameter("id");int id=Integer.parseInt(sid);String sql="select * from store where id=?";sqlbean sBean=new sqlbean();inShopBean isb=sBean.searchStore_table(sql, id);request.setAttribute("id", isb.getId());request.setAttribute("name", isb.getName());request.setAttribute("price", isb.getPrice());request.setAttribute("number", isb.getNumber());request.getRequestDispatcher("researchstoregoods.jsp").forward(request, response);}}(4)库存商品添加servlet,完成商品添加逻辑功能package shopManage;import java.io.IOException;import java.sql.Connection;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import shopValue.inShopBean;import ConnectionFactory.sqlbean;public class AddStoreGoods extends HttpServlet {private static final long serialVersionUID = 1L;static Connection cn;public AddStoreGoods() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");String sid=request.getParameter("id");int id=Integer.parseInt(sid);String name=request.getParameter("name");String sprice=request.getParameter("price");float price=Float.parseFloat(sprice);String snumber=request.getParameter("number");int number=Integer.parseInt(snumber);inShopBean isb=new inShopBean();isb.setId(id);isb.setName(name);isb.setPrice(price);isb.setNumber(number);String sql="insert into store(id,name,price,number) values (?,?,?,?)";sqlbean sBean=new sqlbean();int count = sBean.insertIntoStore_table(sql, isb);System.out.println("count"+count);if (count >0) {response.sendRedirect("StoreGoodsList");} else {response.sendRedirect("error.jsp");}}}(5)库存商品删除servlet,完成删除逻辑功能package shopManage;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import shopValue.inShopBean;import ConnectionFactory.sqlbean;public class DeleteStoreGoods extends HttpServlet {private static final long serialVersionUID = 1Lpublic DeleteStoreGoods() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");String sId = request.getParameter("id");int id = Integer.parseInt(sId);inShopBean isb=new inShopBean();isb.setId(id);String sql="delete from store where id=?";sqlbean sBean=new sqlbean();int count = sBean.getDelete(sql, id);if (count >=0) {response.sendRedirect("StoreGoodsList");} else {response.sendRedirect("error.jsp");}}}(6)库存商品管理页面jsp,返回商品信息列表,附有相应功能:<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <%@page import="shopValue.inShopBean"%><%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html;charset=ISO-8859-1"><title>库存商品管理</title></head><body bgcolor="green"><center><font size="8">库存商品列表</font><hr><table><tr><td><font color="yellow"size="6">商品编号</font></td><td><font color="yellow"size="6">商品名称</font></td><td><font color="yellow"size="6">商品价格</font></td><td><font color="yellow"size="6">库存数量</font></td></tr><%List list = (List)request.getAttribute("list");for(java.util.Iterator it =list.iterator();it.hasNext();){inShopBean isb =(shopValue.inShopBean)it.next();%><tr><td><font color="yellow"size="6"><%=isb.getId() %></font></td><td><fontcolor="yellow"size="6"><%=isb.getName() %></font></td><td><fontcolor="yellow"size="6"><%=isb.getPrice() %></font></td><td><fontcolor="yellow"size="6"><%=isb.getNumber() %></font></td><td><a href="addstoregoods.jsp">添加</a><a href="researchStoreGoods?id=<%=isb.getId() %>">查找</a></td></tr><% }%></table></center></body></html>(7)库存商品查询页面jsp,返回单项商品信息:<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <%@page import="shopValue.inShopBean"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html;charset=ISO-8859-1"><title>库存商品查询</title></head><body><center><table><tr><td><font size="6">商品编号</font></td><td><font size="6">商品名称</font></td><td><font size="6">商品价格</font></td><td><font size="6">商品数量</font></td></tr><tr><td><font size="6"><%=request.getAttribute("id")%></font></td><td><font size="6"><%=request.getAttribute("name")%></font></td><td><font size="6"><%=request.getAttribute("price")%></font></td><td><font size="6"><%=request.getAttribute("number")%></font></td><tr><td><a href="DeleteStoreGoods?id=<%=request.getAttribute("id")%>">删除</a><img src="F:\image\nn.jpg"></table></center></body></html>(8)添加库存商品页面jsp:<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html;charset=ISO-8859-1"><title>添加库存商品</title></head><body><hr><form action="AddStoreGoods"method="post"><table><tr><td>商品编号:</td><td><input type="text"name="id"></td><tr><td>商品名称</td><td><input name="name"></td></tr><tr><td>商品价格</td><td><input type="text"name="price"></td></tr><tr><td>商品数量</td><td><input type="text"name="number"></td></tr><tr><td><center><input type="submit"value="提交"><inputtype="reset"value="重置"></center></td></tr></table></form><a href="StoreGoodsList">查看</a></body></html>注:超市售出商品管理和业务管理相应的业务逻辑代码和jsp页面代码与库存商品管理的代码大同小异,所以略去,整个系统的完整代码打包另附。