这次毕业设计我选择了一个实际项目。这个项目是为一家小型超市设计库存管理系统。超市老板是我的亲戚。他遇到了管理困难。手工记录商品进出容易出错。商品种类越来越多。每天销售数量很大。月底盘点经常对不上账。老板很头疼。他需要一个简单好用的软件。
我的任务很明确。设计一个系统帮助超市管理库存。系统要能记录商品信息。包括商品名称、进货价格、销售价格、当前库存数量。系统要能记录每一次进货。系统要能记录每一次销售。系统要能自动计算库存变化。系统要能生成简单报表。老板可以通过电脑查询这些信息。
我开始思考怎么做。首先我去超市实地观察。我看店员怎么工作。他们用本子记下每天卖出的东西。晚上再整理到一个大账本里。进货时候供应商会给一张单子。店员根据单子往账本上写。这个方法用了很多年。现在问题越来越多。字写错了不好改。本子弄丢了很麻烦。查一个商品要翻很久。老板说有时候顾客问还有没有货。店员要跑去仓库看。很耽误时间。
我决定用计算机解决这个问题。我学的是软件专业。我想到可以做一个数据库。数据库能存很多数据。查找数据很快。不容易出错。我用学过的编程知识。我选择使用Java语言。数据库用MySQL。这两个工具我都学过。它们很适合做这种管理系统。
我先把系统需要做什么写下来。系统要有登录功能。不同的人用不同的账号。老板和店员权限不一样。系统要有商品管理功能。可以添加新商品。可以修改商品信息。可以删除不卖的商品。系统要有进货管理功能。录入进货单。系统要有销售管理功能。录入销售记录。系统要有查询功能。可以按名称查商品。可以看库存不够的商品。系统要有报表功能。可以看每天卖了什么。可以看哪些商品卖得好。
我开始设计数据库。数据库就像一个大仓库。存放所有数据。我设计了几张表。用户表存放账号信息。商品表存放商品信息。进货表记录每次进货。销售表记录每次销售。库存表记录当前库存数量。表与表之间有关系。通过商品编号可以找到对应的进货和销售记录。
接下来我写程序。我先做登录界面。用户输入用户名和密码。系统检查对不对。对了就进入主界面。主界面有几个按钮。点哪个按钮就打开哪个功能。我做了商品管理界面。可以输入新商品的信息。点保存按钮就把数据存到数据库。我做了进货界面。选择商品。输入进货数量。输入进货价格。点确定按钮。库存自动增加。我做了销售界面。选择商品。输入销售数量。系统检查库存够不够。够了就减少库存。不够就提示用户。
这个过程不顺利。我遇到了很多问题。第一次测试时。输入商品信息点保存。程序报错了。我检查了很久。发现是数据库一个字段长度不够。商品名称太长存不进去。我修改了数据库结构。第二次测试时。销售商品后库存数不对。我检查代码。发现忘记写更新库存的语句。我补上了这个功能。第三次测试时。两个人同时卖同一个商品。库存数乱了。我学了数据库锁的知识。解决了这个问题。
我请超市店员试用这个系统。他们提出了很多建议。键盘操作太多。鼠标操作不方便。他们习惯用扫码枪。我增加了扫码枪支持。商品编号可以用扫码枪输入。速度快了很多。他们希望有快捷键。按F1直接进入销售界面。我加了这些快捷键。他们希望销售时能直接看到商品图片。我在商品表加了图片字段。录入商品时上传一张图片。
系统慢慢完善了。老板很满意。他说现在盘点轻松多了。电脑里的数据和实际货物对得上。查一个商品很快。输入名字马上就看到库存。他知道哪些商品卖得好。可以多进货。哪些商品卖得不好。可以搞促销。店员也高兴。不用整天翻本子。不用跑来跑去查库存。顾客问还有没有货。电脑上一查就知道。
通过这次实践我学会了很多东西。书本上的知识变成了实际可用的软件。我明白了什么是需求分析。要先了解用户需要什么。不能自己想当然。我学会了调试程序。程序出错时怎么找到问题。我学会了与人沟通。听取别人的意见改进软件。我看到了计算机技术的用处。一个简单的系统就能解决实际问题。
这次经历对我找工作有帮助。面试时我可以讲这个项目。我不仅会写代码。我还能做出有用的东西。我知道企业需要什么。软件要稳定。软件要易用。软件要能解决真正的问题。我对自己更有信心了。我能用所学知识做点事情。