超市内自助付款机软件开发
一、
背景
北京某大型连锁超市实力雄厚,拥有西单、中关村、五道口、国贸、望京等多家门店。
现该超市欲推出自助付款机,取代人工收银,需要开发自助付款机的软件部分 Automatic
Teller Machine(简称 ATM)。
ATM 应包括三个部分:前台可视化界面操作模块、逻辑处理模块、调取后台数据库的
接口。数据库包括会员信息数据库、商品信息(价格、折扣、赠品、类别等)数据库、商品
库存数据库、销售记录数据库。ATM 从可视化界面获取信息,在后台数据库调取数据,经
过逻辑处理并与前台交互后完成操作,最终将操作结果返回后台数据库。
二、
会员政策
该超市的会员分等级,其对应的服务及优惠如下。
普通会员
VIP 会员
学生会员
实付金额 5%积分
实付金额 10%积分
实付金额 10%积分
实付金额 5%积分
实付金额 5%积分
实付金额 5%积分
无积分
视是否折价或是否有
赠品商品情况确定积
正常优惠外,享受实
付金额 5%的额外积
分
分
免手续费
免手续费
正价且无赠品商品积
分规则
折价且无赠品商品积
分规则
含赠品商品
无积分
无积分
文化、体育类商品
无积分
信用卡交易手续费
30 元以下需要支付 3
元手续费;满 30 元免
手续费
代金券使用
不可换购烟酒、香水
等奢侈品;不找零;
无限制使用;找零等
额存入积分账户;积
不积分
分。
不可换购烟酒、香水
等奢侈品;不找零;
积分,但多倍积分商
品只享受单倍积分
使用积分支付
非会员顾客除不积分外,其余同普通会员。学生会员升级为 VIP 会员后,依旧享受文化、
无积分
无积分
无积分
体育类商品优惠。
使用 ATM 购物流程
三、
1. 顾客以散客或会员方式登录系统,ATM 从会员信息数据库调入会员信息并认证(散客
则跳过该步骤)。
2. 顾客选择“购物”,跳转到购物清单界面。顾客逐一扫描所购商品条形码,ATM 从商品
价格数据库调入商品类别、价格、折扣、积分倍数、赠品规则等信息,不断更新商品清
单;允许的顾客随时删除已有商品清单中的商品。
3. 确定购物清单后,转入支付界面。顾客可依次使用代金券、积分、现金、信用卡中的一
种或多种方式支付;每次支付操作后,实时更新仍需支付的金额及各项商品的返还积分
情况。
4. 一旦支付款项可覆盖商品价格,则前往结算找零界面。
5. 支付过程中,顾客可以随时返回清单界面重新编辑购物清单。
6. 支付完成后,更新会员信息数据库(积分数)、更新商品库存数据库、更新销售记录数
据库。
注意:
1. 友好的界面设计会更好地取悦用户。
2. 在生成的购物清单中,赠品商品应自动识别出;例如,某酸奶品牌“买 3 赠 2”促销,
当顾客在 ATM 上输入购买 7 盒酸奶的信息后,购物清单中应自动列出 5 盒正价商品、2
盒赠品。
3. 支付过程的推荐流程
1) 先让顾客选择是否使用代金券,代金券面额每张 100 元,放入代金券后,提示顾客
代金券的使用政策,确认后需退回多余的代金券。例如,使用 4 张代金券支付 250
元商品,应退回 1 张代金券,但无须找零 50 元。
2) 再让顾客选择使用积分支付部分剩余款项,输入使用多少积分。如顾客输入积分数
额等于或超过所需支付款项,则提示顾客结束支付及实际扣除的积分数并等待确认,
确认后完成交易。实际扣除的积分数并不一定等于顾客输入的积分数。例如,会员
A 输入 300 分积分,购买 250 元商品,交易结束后只应扣除 250 点积分。另外,应
提供一个“使用积分支付全部”的选项,使得顾客无须每次输入数字。若采用该选
项,应注意积分的最小单位是 1 元(分),需要向上取整。
3) 若积分支付环节后,应付款额仍未完全支付,由顾客放入现金(可接受 100 元至 1
角各种的纸币或硬币)。会员的找零可选择转入积分账号。
4) 若现金支付环节后,应付款额仍未完全支付,由顾客信用卡支付,应提示顾客手续
费,确认后跳转到第三方支付平台界面,支付完成后返回。
4. 不同支付手段可能对积分返回造成影响,此时应按照对顾客有利原则进行积分。例如,
某普通会客购买了 200 元正价商品和 200 元折价商品,他使用 300 元代金券和 100 元
现金进行支付,即 200 元代金券先覆盖 200 元折价商品后,剩余 100 元代金券及 100
元现金覆盖 200 元正价商品。
使用 ATM 办理会员业务
四、
1. 申请普通会员:一次性存入 500 元,填入个人信息
2. 申请学生会员:一次性存入 500 元,填入个人信息及学校信息
3. 升级为 VIP 会员:普通会员、学生会员积分满 1000 分可申请,学生会员申请为 VIP 后
依旧享受文化、体育类商品优惠。
五、
使用 ATM 查询交易记录
仅对会员开放此功能,仅限查询前一月的交易记录。
要求与提示
六、
1. 以 VC2010(2008 也可)为开发环境;前台可用 MFC 或 Dos 实现,后台可用 Access 或
文件实现。
2. 充分运用课程中所学 C++的面向对象的知识,如类、类的初始化方法、类的继承和组合、
虚函数和模板等,以单纯的 C 语言写出的面向过程的程序显然不能获得较高的分数。
3. 提交可以运行的源代码(含注释说明)、可执行程序、项目报告、数据测试文件(详见
七)。
5. 截止时间:9 月 17 日 24 时
6.
2 人一组,自由组合。单独组队无加分。
评分标准
七、
1. 可执行程序 20 分
功能实现的完善程度、容错设计、用户体验。
2. 源代码 20 分
逻辑处理模块对应源代码使用的技术(类的封装、继承、运算符重载等等)、可读性(变
量英文名的正确翻译、注释简洁易懂等)。
3. 数据库 10 分
数据库的实现方式;测试数据的数量足以支持对功能的测试。
4. 项目报告 50 分
a) 总体设计 10 分
前台可视化界面操作模块、逻辑处理模块、调取后台数据库的接口三层结构之间的
关系;逻辑处理模块内各流程与前台、后台的交互关系等等。
b) 详细设计 25 分
描述前台界面之间的跳转关系;5 分
描述逻辑处理模块内类的设计与对应数据库的数据格式;10 分
描述逻辑处理模块内各流程的逻辑处理结构;10 分
c) 操作实例(作为报告附件)5 分
d) 分工的真实性与合理性 10 分
项目报告中应有两人分工的详细描述,两人应分别描述自己某一个特定的局部设
计的思路和一个遇到的具体问题及解决方法。根据合作双方的贡献大小分别给出该项分
数,即合作双方的最大分差为 10 分。
5. 项目报告篇幅限定在 8 页以内(不含报告附件、封面等),最后 1 页为分工的详细描述,
5 号字,单倍行距。篇幅每多 1 页,扣 1 分。
6. 迟交作业每迟交 1 天,扣 1 分。
八、
购物清单的样例
购物清单也可参考紫荆 C 楼地下超市购物小票设计。
可以搜索关键词“关系数据库”,学习相关知识设计后台的数据库结。