超市会员管理系统.docx

上传人:牧羊曲112 文档编号:2030700 上传时间:2023-01-02 格式:DOCX 页数:46 大小:345.94KB
返回 下载 相关 举报
超市会员管理系统.docx_第1页
第1页 / 共46页
超市会员管理系统.docx_第2页
第2页 / 共46页
超市会员管理系统.docx_第3页
第3页 / 共46页
超市会员管理系统.docx_第4页
第4页 / 共46页
超市会员管理系统.docx_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《超市会员管理系统.docx》由会员分享,可在线阅读,更多相关《超市会员管理系统.docx(46页珍藏版)》请在三一办公上搜索。

1、设计总说明本会员超市会员管理系统实际的业务流程为背景而设计的,后台数据库的设计用Mysql 5.0,前台用java来开发。本超市会员信息管理系统以超市会员信息的管理为核心,兼有各种统计、查询、添加、修改和删除等功能,如对货物流量和消费人群的查询,对会员信息的查询等。本系统利用视图、触发器,存储过程可以对数据库中的内容实现各种级联修改与信息的实时更新,可以化繁为简,提高效率,避免大量的重复性的工作。整个系统由管理员登录模块、会员信息管理模块、会员优惠信息模块、购物信息模块和商品信息模块组成。整个系统能独立运行,实现现实中的功能。关键字:超市会员管理系统、java、Mysql、图形化用户界面目录一

2、设计目的1二问题描述12.1 问题概述12.2 系统设计目标12.3 系统主要功能2三需求分析23.1 设计思想23.2 可行性分析23.3 功能需求33.4 性能需求43.5 系统设计基础5四概要设计94.1 功能描述94.2 系统模块104.3 系统功能模块图11五数据库设计115.1 数据库简介115.2 概念设计125.3 逻辑结构设计145.4 物理结构设计一五六详细设计166.1 基本信息模块166.2 系统模块316.3 数据模块37七使用说明39八设计总结43参考文献44数据库大作业 超市会员管理系统一设计目的现代化的超市组织庞大、服务项目多、信息量大,要想提高劳动生产、降低成

3、本、提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理。超市会员管理系统正是为此而设计的。优秀的超市会员管理系统操作方便,灵活性好,系统安全性高,运行稳定。二问题描述2.1 问题概述该超市会员管理系统是对会员信息的管理,会员优惠管理,超市购物交易记录,商品统计功能,实现超市会员管理的基本功能。2.2 系统设计目标超市会员管理系统提高了劳动生产、降低成本、提高服务质量和管理水平,进而促进经济效益。该超市会员管理系统是对超市会员信息,会员优惠信息,超市购物交易记录信息,商品统计信息进行管理和维护,实现超市会员管理的基本功能。2.3 系统主要功能1.登录系统: 管理员登录

4、,对会员信息进行管理。2.会员管理:对会员信息的添加、修改、查询、删除。3.交易管理:对超市会员的购物信息进行统计。4.商品管理:对货物流量、消费人群及商品实时库存量等信息进行统计。5.优惠管理:对会员的积分,享受优惠的等级信息管理。6.密码管理:对管理员密码进行修改。三需求分析3.1 设计思想超市会员管理系统是超市管理重要的一个环节,会员管理软件有助于减轻管理人员的负担,提高劳动生产、降低成本、提高服务质量和管理水平,进而促进经济效益。该超市会员管理系统是对超市会员信息,会员优惠信息,超市购物交易记录信息,商品统计信息进行管理和维护,实现超市会员管理的基本功能。本系统要求运行稳定,图形界面符

5、合用户的日常使用习惯,数据处理正确无误。3.2 可行性分析可行性分析也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。 A技术可行性:系统要求在windows 7以上环境运行,后台数据库采用Mysql 5.0,使用JAVA编程,采用JDBC方式连接数据库,这些在目前都是容易实现的。程序将部分需要经常调用的数据存入内存,可提高程序运行速度。 B经济可行性:在经济上

6、,用此系统加强了超市会员的管理效率,可节省人力资源的开支。 C管理的可行性:在工作上,超市会员管理信息量非常大,开发了此系统,可极大提高超市工作人员的效率。提高决策的管理能力等等,方便数据的储存和修改,及以后随时查询会员信息,购物和商品信息是一个比较人性化的管理系统。由以上分析得出,本系统可进行开发。3.3 功能需求3.3.1 基本功能需求1.登录系统: 管理员登录,对会员信息进行管理。2.会员管理:对会员信息的添加、修改、查询、删除。3.交易管理:对超市会员的购物信息进行统计。4.商品管理:对货物流量、消费人群及商品实时库存量等信息的统计。5.优惠管理:对会员的积分的,享受优惠的等级信息管理

7、。6.密码管理:对管理员密码进行修改。3.3.2 用户界面需求界面对于用户来说至关重要,既是用户对软件评价的根据,也是用户最终使用的。所以界面设计的怎么样,对于整个系统的成功与否有着密切联系。当然,也许界面设计的好不会让其性能更好,但是设计的不好只会让它更差。界面设计原则必须是,操作步骤少,随时提示用户系统正在进行哪些操作,减少用户记忆的东西。3.4 性能需求1. 硬件环境处 理 器:CPU 1GHZ 或更高内 存:256M以上硬盘空间:120G以上2. 软件环境 操作系统:Windows 7 数据库:Mysql 5.0编程软件:MyEclipse 6.5 Enterprise Workben

8、ch3.5 系统设计基础3.5.1 系统业务流图查询修改积分信息反馈查询政策信息输出报表管理会员信息信息反馈信息反馈查询修改信息超市会员管理系统商品信息管理会员优惠政策管理消费记录管理管理员信息管理会员基本信息管理图3.1系统业务流图3.5.2 系统数据流图管理系统入库出库会员信息会员信息超市会员管理系统管理员入库出库消费记录信息会员优惠信息商品信息入库出库图3.2顶级数据流图会员基本信息管理会员ID会员地址会员积分会员卡号会员名称等会员级别图3.3会员信息数据流图会员优惠管理会员级别级别优惠级别名称图3.4会员优惠数据流图消费记录管理消费金额条形码会员ID消费ID图3.5消费记录数据流图商品

9、信息管理单价商品名称数量条形码图3.6商品信息数据流图管理员信息管理管理员ID管理员密码管理员姓名图3.7管理员数据流图四概要设计4.1 功能描述该系统的功能 需求有如下方面1. 会员信息管理。主要用于会员信息进行维护。功能包括会员信息的添加、修改和删除已有的会员信息,使用各种方式对会员信息进行查询。2. 管理员管理。主要完成管理员的登录、添加、修改、删除以及密码修改。3. 优惠管理:对会员的积分的,具体等级享受优惠的信息管理。4. 交易记录管理:管理维护超市会员的购物信息包括购买商品数量,消费金额,消费时间等信息。5. 商品管理:对货物流量、消费人群及商品实时库存量等信息的统计。4.2 系统

10、模块本系统分为三个模块:系统模块:管理员的添加修改删除。资源管理:管理本超市的会员,优惠政策,交易记录,商品等信息。数据管理:管理本软件的数据库的连接和关闭。4.3 系统功能模块图超市会员管理系统管理员登录信息管理数据处理封装管理员登录密码修改退出系统会员信息消费记录信息优惠政策信息商品信息连接数据库关闭数据库图4.1系统功能模块图五数据库设计5.1 数据库简介数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类

11、型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。 根据系统开发的需要,以及考虑到数据库存储量的大小及数据量的多少,我选择了MYSQL数据库。因为开发的时间比较短加上所需要做的事情比较多,只能对数据库进行增、删、改、查等操作的了解与学习。5.2 概念设计 局部E-R图:会员会员ID姓名性别年龄会员密码卡号地址联系方式会员级别 图5.1会员信息E-R图级别会员级别级别名称最小值最大值级别优惠图5.2优惠级别信息E-R图消费记录卡号消费ID消费金额购买数量商品条形码消费时间图5.3消费记录E-R图商品信息条形码单价种类数量商品名称图5.4 商品信

12、息E-R图管理员信息表管理员姓名登录密码管理员ID图5.5管理员信息E-R图各实体之间关系的E-R图:会员级别消费记录商品信息拥有消费查询P11mn1图5.6各实体间关系E-R图5.3 逻辑结构设计会员(会员ID,姓名,性别,年龄,联系方式,地址,会员级别,卡号)主键会员ID,外键会员级别。消费记录(消费ID,消费时间,消费金额,条形码,购买数量,会员ID)主键消费ID,外键会员ID、条形码。优惠级别(会员级别,级别名称,最小值,最大值,级别优惠)主键会员级别。商品信息(条形码,单价,商品名称,数量,种类)主键条形码。管理员信息(管理员ID,管理员姓名,管理员密码)主键管理员ID。5.4 物理

13、结构设计表5.1 会员信息表字段名称字段类型是否为空约束字段说明memIDNumber(5)否主键会员IDmemNamevarchar2(10)否会员姓名genderVarchar2(6)是Male,fe性别Agenumber(2)是年龄telephonevarchar2(20)是唯一性联系方式addressvarchar2(30)是地址MemgradeVarchar2(10)是外键会员级别cardNonumber(10)是卡号表5.2 优惠级别表字段名称字段类型是否为空约束字段说明MemgradeNumber(2)否主键会员级别grageNamevarchar2(10)否级别名称lowLim

14、itNumber(14,2)是金额下限upLimitNumber(14,2)是金额上限YouhuiNumber(3,2)是会员打折优惠表5.3 消费记录表字段名称字段类型是否为空约束字段说明expIDNumber否主键消费IDexpPriceNumber(14,2)是消费金额expTimeDATE是消费时间barCodechar(20)是外键条形码expNumNumber(4)是购买数量memIDnumber(10)是外键会员ID表5.4 商品信息表字段名称字段类型是否为空约束字段说明barCodeVarchar2(20)否主键条形码unitPriceNumber(10,4)是商品单价good

15、Namevarchar2(20)是商品名称goodNumNumber(6)是商品数量goodSortvarchar2(10)是商品种类表5.5 管理员信息表字段名称字段类型是否为空约束字段说明LoginIdNumber(2)否主键管理员IDLoginNamevarchar2(10)否管理员姓名LoginPassNumber(14,2)否管理员密码六详细设计6.1 基本信息模块 6.1.1 会员信息 (1)模块功能此模块用于管理超市会员的信息,包括会员信息的管理与维护。(2)界面设计图6.1 会员信息浏览界面(3)关键代码public class MemRegister extends JFra

16、me public MemRegister() try jbInit(); catch (Exception exception) exception.printStackTrace(); private void jbInit() throws Exception getContentPane().setLayout(null); int x=(1024-480)/2); int y=(768-580)/2); this.setBounds(x, y, 480, 580); jLabel1.setText(会员卡号:); jLabel1.setBounds(new Rectangle(50,

17、 46, 60, 一五); jLabel11.setText(YY-MM-DD); jLabel11.setBounds(new Rectangle(287, 298, 99, 一五); jLabel10.setText(会员卡充值:); jLabel10.setBounds(new Rectangle(50, 428, 77, 一五); jLabel9.setText(办卡时间:); jLabel9.setBounds(new Rectangle(51, 388, 68, 一五); jLabel8.setText(会员住址:); jLabel8.setBounds(new Rectangle

18、(50, 344, 65, 一五); jLabel7.setText(会员生日:); jLabel7.setBounds(new Rectangle(51, 297, 64, 一五); jLabel6.setText(会员年龄:); jLabel6.setBounds(new Rectangle(49, 254, 63, 一五); jLabel5.setText(会员性别:); jLabel5.setBounds(new Rectangle(50, 223, 66, 一五); jLabel4.setText(确认密码:); jLabel4.setBounds(new Rectangle(50,

19、 172, 64, 一五); jLabel3.setText(会员密码:); jLabel3.setBounds(new Rectangle(50, 124, 73, 21); jPasswordField2.setText(jPasswordField2); jPasswordField2.setBounds(new Rectangle(128, 166, 一五3, 25); jPasswordField1.setText(jPasswordField1); jPasswordField1.setBounds(new Rectangle(128, 117, 一五3, 25); jTextFi

20、eld7.setText(jTextField7); jTextField7.setBounds(new Rectangle(128, 423, 一五1, 21); jTextField6.setText(jTextField6); jTextField6.setBounds(new Rectangle(129, 379, 148, 21); jTextField5.setText(jTextField5); jTextField5.setBounds(new Rectangle(128, 342, 一五1, 21); jTextField4.setText(jTextField4); jTe

21、xtField4.setBounds(new Rectangle(128, 293, 一五2, 24); jTextField3.setText(jTextField3); jTextField3.setBounds(new Rectangle(128, 253, 一五3, 23); jTextField2.setText(jTextField2); jTextField2.setBounds(new Rectangle(128, 72, 一五3, 21); jTextField1.setText(jTextField1); jTextField1.setBounds(new Rectangl

22、e(128, 39, 一五3, 21); jButton2.addActionListener(new MemberRegister_jButton2_actionAdapter(this); jRadioButton1.setText(男); jRadioButton1.addActionListener(new AbstractAction()xOverridepublic void actionPerformed(ActionEvent e) jdio_actionPerformed( e); ); jRadioButton1.setBounds(new Rectangle(128, 2

23、19, 51, 23); jRadioButton2.setText(女); jRadioButton2.setBounds(new Rectangle(一八6, 219, 48, 23); jgroup.add(jRadioButton1); jgroup.add(jRadioButton2); this.getContentPane().add(jLabel1); jButton2.setBounds(new Rectangle(240, 490, 83, 25); jButton2.setText(清空); jButton1.setBounds(new Rectangle(102, 49

24、0, 81, 25); jButton1.setText(提交); jButton1.addActionListener(new MemberRegister_jButton1_actionAdapter(this); this.getContentPane().add(jLabel2); this.getContentPane().add(jLabel3); this.getContentPane().add(jLabel4); this.getContentPane().add(jLabel6); this.getContentPane().add(jLabel7); this.getCo

25、ntentPane().add(jLabel8); this.getContentPane().add(jLabel9); this.getContentPane().add(jLabel10); this.getContentPane().add(jTextField2); this.getContentPane().add(jTextField1); this.getContentPane().add(jPasswordField1); this.getContentPane().add(jPasswordField2); this.getContentPane().add(jTextFi

26、eld3); this.getContentPane().add(jTextField4); this.getContentPane().add(jTextField5); this.getContentPane().add(jTextField6); this.getContentPane().add(jTextField7); this.getContentPane().add(jLabel11); this.getContentPane().add(jLabel5); this.getContentPane().add(jButton1); this.getContentPane().a

27、dd(jButton2); this.getContentPane().add(jRadioButton1); this.getContentPane().add(jRadioButton2); jLabel2.setText(会员姓名:); jLabel2.setBounds(new Rectangle(50, 84, 64, 一五); JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); JLabel jLabel3 = new JLabel(); JLabel jLabel4 = new JLabel(); JLabe

28、l jLabel5 = new JLabel(); JLabel jLabel6 = new JLabel(); JLabel jLabel7 = new JLabel(); JLabel jLabel8 = new JLabel(); JLabel jLabel9 = new JLabel(); JLabel jLabel10 = new JLabel(); JLabel jLabel11 = new JLabel(); JTextField jTextField1 = new JTextField(); JTextField jTextField2 = new JTextField();

29、JTextField jTextField3 = new JTextField(); JTextField jTextField4 = new JTextField(); JTextField jTextField5 = new JTextField(); JTextField jTextField6 = new JTextField(); JTextField jTextField7 = new JTextField(); JPasswordField jPasswordField1 = new JPasswordField(); JPasswordField jPasswordField2

30、 = new JPasswordField(); JButton jButton1 = new JButton(); JButton jButton2 = new JButton(); ButtonGroup buttonGroup1 = new ButtonGroup(); JRadioButton jRadioButton1 = new JRadioButton(); JRadioButton jRadioButton2 = new JRadioButton(); ButtonGroup jgroup=new ButtonGroup(); public void jdio_actionPe

31、rformed(ActionEvent e) String gender=; if(jRadioButton1.isSelected() gender=男; else gender=女; public void jButton1_actionPerformed(ActionEvent e) /String ManName= public void jButton2_actionPerformed(ActionEvent e) jTextField1.setText(); jTextField2.setText(); jTextField3.setText(); jTextField4.setT

32、ext(); jTextField5.setText(); jTextField6.setText(); jTextField7.setText(); jPasswordField1.setText(); jPasswordField2.setText(); class MemberRegister_jButton2_actionAdapter implements ActionListener private MemRegister adaptee; MemberRegister_jButton2_actionAdapter(MemRegister adaptee) this.adaptee

33、 = adaptee; public void actionPerformed(ActionEvent e) adaptee.jButton2_actionPerformed(e); class MemberRegister_jButton1_actionAdapter implements ActionListener private MemRegister adaptee; MemberRegister_jButton1_actionAdapter(MemRegister adaptee) this.adaptee = adaptee; public void actionPerforme

34、d(ActionEvent e) adaptee.jButton1_actionPerformed(e); 6.1.2 交易记录信息 (1)模块功能此模块用于管理维护超市会员的购物信息包括购买商品数量,消费金额,消费时间等信息。(2)界面设计图6.2 交易记录界面(3)关键代码private void jbInit() throws Exception this.getContentPane().setLayout(null); jLabel1.setBounds(new Rectangle(39, 62, 79, 一五); jLabel10.setText(YY-MM-DD); jLabel

35、10.setBounds(new Rectangle(284, 211, 88, 24); jLabel9.setText(消费金额:); jLabel9.setBounds(new Rectangle(39, 383, 68, 一五); jLabel7.setText(购买数量:); jLabel7.setBounds(new Rectangle(39, 291, 64, 一五); jLabel6.setText(条形码:); jLabel6.setBounds(new Rectangle(39, 252, 61, 一五);jLabel8.setText(会员ID:); jLabel8.se

36、tBounds(new Rectangle(39, 339, 60, 一五); jLabel5.setText(消费时间:); jLabel5.setBounds(new Rectangle(39, 217, 66, 一五); jLabel3.setText(消费ID:); jLabel3.setBounds(new Rectangle(39, 145, 73, 一五); jButton2.addActionListener(new StafRegister_jButton2_actionAdapter(this); this.getContentPane().add(jLabel4); jB

37、utton2.setBounds(new Rectangle(224, 469, 83, 25); jButton2.setText(清空); jButton1.setBounds(new Rectangle(101, 469, 83, 25); jButton1.setText(提交); jgroup1.add(jRadioButton1); jgroup1.add(jRadioButton2); jRadioButton1.addActionListener(new AbstractAction()xOverridepublic void actionPerformed(ActionEve

38、nt e) / TODO Auto-generated method stubjRadioButton1_actionPerformed( e); ); jRadioButton1.setBounds(new Rectangle(1一三, 99, 41, 23); jTextField8.setText(jTextField8); jTextField8.setBounds(new Rectangle(112, 381, 168, 21); jTextField7.setText(jTextField7); jTextField7.setBounds(new Rectangle(111, 33

39、2, 168, 21); jTextField6.setText(jTextField6); jTextField6.setBounds(new Rectangle(112, 285, 167, 21); jTextField5.setText(jTextField5); jTextField5.setBounds(new Rectangle(1一三, 250, 165, 21); jTextField4.setText(jTextField4); jTextField4.setBounds(new Rectangle(112, 212, 167, 21); jTextField3.setText(jTextField3); jTextField3.setBounds(new Rectangle(112, 一八2, 167, 21); jTextField2.setText(jTextField2); jTextField2.setBounds(new Rectangle(109, 140, 170, 21); jTextField1.setText(jTextField1); jT

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号