您的当前位置:首页正文

Java项目实践考核报告

2023-01-25 来源:钮旅网
实践考核报告

题目:超市管理系统的开发和实现

专业班级:

学号:

姓名:

课程:Java程序设计

任课老师:

2020-2021学年

第一学期

[注意:1、照着下面的实践考核模板撰写,模板仅作参考,可以修改其目录内容(如再加一级目录等等),但格式不变。2、正文用宋体小四,写10页左右且自己的内容而非引用的内容要丰富!图文并茂,代码精简(1、2页主要代码而非全部代码)。3、撰写完成后,请重新更新目录使页码正确,并删除此红色标记文字]。4、提交纸质文档时,双面打印并装订好

目录

第1章 相关技术概述 ..................................................................................................................... 1

1.1 前端技术简介 ................................................................................................................... 1 1.2 后台框架简介 ................................................................................................................... 1 第2章 系统分析 ............................................................................................................................. 2

2.1 需求分析 ........................................................................................................................... 2 2.2 功能分析 ........................................................................................................................... 2 2.3 功能结构模型 ................................................................................................................... 2 第3章 数据库设计 ......................................................................................................................... 3

3.1 数据库对象 ....................................................................................................................... 3 3.2 关联 ................................................................................................................................... 5 第4章 系统详细设计 ..................................................................................................................... 6

4.1 系统模块描述 ................................................................................................................... 6 4.2 程序流程图 ....................................................................................................................... 6 4.3 主要配置和关键代码 ....................................................................................................... 6 第5章 测试和运行 ....................................................................................................................... 17

5.1 测试方法 ......................................................................................................................... 17 5.2 测试日志和改进内容 ..................................................................................................... 17 5.3 模块运行结果 ................................................................................................................. 17 第6章 总结 ................................................................................................................................... 18

6.1 不足之处 ......................................................................................................................... 18 6.2 心得体会 ......................................................................................................................... 18 参考文献......................................................................................................................................... 19

I

实践考核报告

第1章 相关技术概述

1.1 前端技术简介

Java既是一种编程语言,又是一个平台。 Java是具有以下特征高级程序语言:

简单; 面向对象; 可分布; 可解释; 强壮; 安全性;结构化;轻便;功能强大;多线程; 动态

Java既可以被编译,也可以被解释。通过编译器,可以把Java程序翻译成一种中间代码 - 称为字节码 - 可以被Java解释器解释的独立于平台的代码。通过解释器,每条Java字节指令被分析,然后在计算机上运行。只需编译一次,程序运行时解释执行。

1.2 后台框架简介

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。 MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。 MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。 1

实践考核报告

第2章 系统分析

2.1 需求分析

在现代化超市中,玲琅满目的商品让人们目不暇接。面对日益增加的商品数量和类型,动用人力管理商品的时候越来越麻烦。这个时候要是有一个软件系统代替人力管理超市的信息,那将使人们的生活越来越简易。超市管理系统,就是一个这样的系统。

2.2 功能分析

我们采用超市管理系统来实现管理商品的进退货、销售、人员管理和数据统计的功能。其中商品的销售需要人手动输入商品的数量来判断是批发还是零售,并且在输入二维码之后判断商品库存量是否满足实现设置的临界值,若是,则在进货表单中增加该商品,仅为提示作用,进货数量权由仓库管理员手动输入。在人员管理子系统中,仅仅可以让管理员及权限以上的人员进入该子系统,而所有的管理员信息(增删查改管理员信息、权限)都是由超级管理员管理。仓库管理中仅仅由仓库管理员和超级管理员才能进入,管理员进入该子系统之后可以对库存的商品类型商品进行增删查改操作,也可以进货,出库等表单的记录。将对每一个销售的记录和数据库流动的记录保存起来,用于查询统计某一个时间段内的情况。

本系统是一个集成前台销售系统、后台数据库管理系统于一身的综合性管理系统。

2.3 功能结构模型

2

实践考核报告

第3章 数据库设计

3.1 数据库对象

表3.1 超市系统管理表设计 表名 功能说明 Users Userlogin buygoods member goodsum Sell goods 职工信息表 管理员登录表 进货信息表 会员信息表 库存信息表 销售信息表 商品信息表

Users职工信息表

字段名称 staffId 说明 职工编号 字段类型 int 长度 6 主键/外键 字段值约束 主键,自动NOT NULL 增长 name Phone sex idcard 姓名 号码 性别 身份证号 varchar int varchar varchar

8 11 2 18 NOT NULL NOT NULL NOT NULL NOT NULL Userlogin管理员登录表

字段名称 loginId 说明 账号 字段类型 varchar 长度 6 主键/外键 字段值约束 主键,自动NOT NULL 增长 pwd

密码 int 6 goods商品信息表

3

实践考核报告

字段名称 merchID 说明 商品编号 字段类型 int 长度 6 主键/外键 字段值约束 主键,自动NOT NULL 增长 fullName Kind Price addrss 名称 类别 价格 产地 varchar varchar decimal varchar 80 20 (8,2) 20 NOT NULL NULL NOT NULL NOT NULL Buygoods进货信息表

字段名称 buyId 说明 进货单号 字段类型 Int 长度 6 主键/外键 字段值约束 主键,自动NOT NULL 增长 buyprice buy_num Date 进货价 进货数量 进货日期 decimal varchar date (8,2) 10 NOT NULL NOT NULL NOT NULL Member 会员信息表

字段名称 说明 字段类型 长度 主键/外键 字段值约束 MemberID 会员卡号 int 20 主键,自动NOT 增长 NULL NOT NULL name 会员姓名 varchar 10 Idcard 会员身份证 varchar 20 NOT NULL discount 会员折扣 decmail (8,2) NOT NULL

Goodsnum 库存信息表

4

实践考核报告

字段名称 goodsId 说明 商品编号 字段类型 长度 int 20 主键/外键 字段值约束 主键,自动增NOT NULL 长 goodssum

库存数量 int 20 NOT NULL Sell 销售信息表 字段名称 sellId 说明 销售编号 字段类型 长度 int 10 主键/外键 字段值约束 主键,自动增NOT NULL 长 sell_sum sellprice Date

销售数量 销售金额 销售日期 int decimal date 20 20 20 3.2 关联

Goodsnum 库存信息表作为goods商品信息表的外键表

5

实践考核报告

第4章 系统详细设计

4.1 系统模块描述

超市管理系统功能基本包括:管理员登录、商品销售、仓库管理、人员管理、综合统计五大模块。

4.2 程序流程图

4.3 主要配置和关键代码

Eclipse软件和其开发环境;数据库及开发环境

Swing窗口,jdbc数据库连接

6

实践考核报告

//连接数据库

public static Connection getConnection(){

Connection connection=null; try {

connection=DriverManager.getConnection(\"jdbc:mysql://localhost:3306/supermarket1?useSSL=false&serverTimezone=GMT\",\"root\",\"123456\");

} catch (SQLException e) {

// TODO Auto-generated catch block e.printStackTrace();

System.out.println(\"连接失败\"); }

return connection; }

//执行查询操作

public static ResultSet query(String sql){

//获取连接 Connection

7

实践考核报告

connection=getConnection(); PreparedStatement psd=null; ResultSet rSet=null; try { psd =

connection.prepareStatement(sql); rSet=psd.executeQuery(); } catch (SQLException e) {

// TODO Auto-generated catch block e.printStackTrace(); }

return rSet; }

//执行更新操作

public static int update(String sql){ //h获取连接 Connection

connection=getConnection(); try {

PreparedStatement psd =connection.prepareStatement(sql);

8

实践考核报告

return psd.executeUpdate(); } catch (SQLException e) {

// TODO Auto-generated catch block e.printStackTrace(); }

return 0; }

public static void main(String[] args) {

System.out.println(getConnection()); } }

//创建表头

final Object[] header={\"商品编号\",\"商品名称\",\"商品产地\",\"保质期\",\"销售数量\",\"销售价格\",\"日期\",\"商品类型\",\"卖出数量\"};

Object[][]

date=SellController.Goods(sql); //创建表模型

9

实践考核报告

DefaultTableModel

dt=new DefaultTableModel(date,header);

//显示表

JTable jTable=new JTable(dt); JScrollPane jScrollPane1=new JScrollPane(jTable);

jScrollPane1.setBounds(100,350, 1000, 200);

this.add(jScrollPane1);

//运用object数组进行查询

public static Object[][] Goods(String sql){

ResultSet

resultSet=DBConnection.query(sql); ArrayList arrayList=new ArrayList(); try {

while (resultSet.next()) { Goods goods=new Goods();

10

实践考核报告

goods.setgoodsId(resultSet.getInt(1));

goods.setGoodsname(resultSet.getString(2));

goods.setAddress(resultSet.getString(3));

goods.setLongtime(resultSet.getString(4));

goods.setSellsum(resultSet.getInt(5));

goods.setSellprice(resultSet.getDouble(6));

goods.setDate(resultSet.getString(7));

goods.setGoodstype(resultSet.getStri

11

实践考核报告

ng(8));

goods.setGoodssum(resultSet.getString(9));

arrayList.add(goods); }

} catch (SQLException e) { // TODO Auto-generated catch block

e.printStackTrace(); }

Object[][] date=new Object[arrayList.size()][9];

for (int i = 0; i date[i][0]=arrayList.get(i).getgoodsId();

date[i][1]=arrayList.get(i).getGoodsname();

12

实践考核报告

date[i][2]=arrayList.get(i).getAddress();

date[i][3]=arrayList.get(i).getLongtime();

date[i][4]=arrayList.get(i).getSellsum();

date[i][5]=arrayList.get(i).getSellprice();

date[i][6]=arrayList.get(i).getDate();

date[i][7]=arrayList.get(i).getGoodstype();

date[i][8]=arrayList.get(i).getGoodssum(); }

13

实践考核报告

return date; }

//修改

public static int UpDateGoods(Goods goods){

String sql=\"UPDATE goods g join sell s ON g.goodsId=s.goodsId join goostype gt ON g.gsId=gt.gsId JOIN goodsnum gs on g.goodsId=gs.goodsId set

goodsname='\"+goods.getGoodsname()+\"',g.goodsId='\"+goods.getgoodsId()+\"',sellsum='\"+goods.getSellsum()+\"',date='\"+goods.getDate()+\"' WHERE

g.goodsId='\"+goods.getgoodsId()+\"'\"; return DBConnection.update(sql); } //添加

public static int AddGoods(Goods goods){

String sql=\"INSERT into goods g join sell s ON g.goodsId=s.goodsId join

14

实践考核报告

goostype gt ON g.gsId=gt.gsId JOIN goodsnum gs on g.goodsId=gs.goodsId set goodsname='\"+goods.getGoodsname()+\"',g.goodsId='\"+goods.getgoodsId()+\"',sellsum='\"+goods.getSellsum()+\"',date='\"+goods.getDate()+\"'

VALUES(null,'\"+goods.getGoodsname()+\"','\"+goods.getAddress()+\"','\"+goods.getLongtime()+\"','\"+goods.getSellsum()+\"','\"+goods.getSellprice()+\"','\"+goods.getDate()+\"','\"+goods.getGoodstype()+\"','\"+goods.getGoodssum()+\"');\"; return DBConnection.update(sql); } //删除

public static int DeleteGoods(int goodsId){

String sql=\"Delete from goods g join sell s ON g.goodsId=s.goodsId join goostype gt ON g.gsId=gt.gsId JOIN goodsnum gs on g.goodsId=gs.goodsId WHERE g.goodsId='\"+goodsId+\"'\";

15

实践考核报告

return DBConnection.update(sql); }

16

实践考核报告

第5章 测试和运行

5.1 测试方法

静态测试和动态测试

5.2 测试日志和改进内容

模块 管理员登录 商品销售管理 统计验证 商品入库 超市向商家批发货物多少的数量仓库进货管理 库存查询 验证 查询商品库存情况 超市会员管理 人员管理 员工管理 超市服务顾客的员工统计 综合统计

消费统计 统计消费总情况 拥有会员卡打折的统计 子模块 数据验证登陆 销售 改进内容 管理员信息验证 超市里的商品的5.3 模块运行结果

功能基本完成

17

实践考核报告

第6章 总结

6.1 不足之处

(1) 技术不成熟,掌握的知识不到位 (2) Swing运用不熟 (3) 需要自己查找资料

6.2 心得体会

通过这次做项目,使我对编程有了进一步的认识。做项目的时候,最重要的不是自己如何快速地将自己分配的任务做完,而是要注重团队合作。一开始组内必须对这个项目的数据库的命名进行讨论,定义表的属性的数据类型,表与表之间会有关联,所以有的属性的类型与长度必须定义一致,这样访问数据库时才不会出错。如果一开始不将这些步骤统一下来的话,就会给后面的编程带来一系列的问题。

做这个项目的时候,我浪费了太多的时间在销售添加界面上。首先对于界面的一些布局没有考虑清楚就动手,不知道如何运用java语言来对数据库进行处理,对于细节方面考虑地不全面,导致了遇到了错误就不停地修改。在项目完成我明白了细节的重要性和团队合作的重要性

18

实践考核报告

参考文献

1.李宝敏:《动态网站设计与开发应用教程》,清华大学出版社,2012年版 2.费东东:《挑战Java script&Ajax应用开发》,机械工业出版社,2008年版

。。。。。。

19

因篇幅问题不能全部显示,请点此查看更多更全内容