数据库大作业超市管理系统文档格式.docx
《数据库大作业超市管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《数据库大作业超市管理系统文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
![数据库大作业超市管理系统文档格式.docx](https://file1.bdocx.com/fileroot1/2022-12/1/843007c1-e4fa-4bdd-95ba-c3f16b53435b/843007c1-e4fa-4bdd-95ba-c3f16b53435b1.gif)
一、系统的设计理念
本小组设计的是一个超市管理系统,针对小型的超市的线下管理,旨在实现一些超市管理常用的功能,主要包括顾客访问功能,超市员工访问功能以及超市管理者访问功能。
方便顾客获得商品的相关信息、便于员工、管理员对员工信息、商品的管理。
该系统想法源于学校的小卖部。
二、需求分析
本系统为小型超市管理系统,为了较好的满足要求,就需要了解超市销售管理的情况。
对于超市来说,有很多信息是具有价值的,比如客源、服务人员以及管理层人员,除此之外,还应该保存货物的相关信息,因此,这个系统也是从三方面来展开的。
超市的顾客可以通过系统得知商品的价格等信息,从而方便进行选购;
超市的工作人员更加在意的是商品的库存与摆放,与此同时还应当关注到自己的情况;
而超市管理层则更多的是关注员工的表现以及超市在一段时间之内的销售情况,以便进行管理和决策。
三、编程软件及环境
编程软件:
1、Visualstudio2013
2、Mysql的数据库操作系统
3、Navicatformysql的数据库可视化工具
系统环境:
系统采用的编程语言为c语言、sql语句。
首先通过vs2013添加mysql软件提供的数据库连接的类库,包括mysql的头文件和相应的类,来配置mysql函数运行的环境。
在程序中通过添加头文件#include<
mysql.h>
,利用其中提供的api函数来对数据库进行交互。
四、数据库的基本表和E-R图
(1)员工的实体建立的表
主键为员工的编号,姓名不为空
(2)商品实体的表
主键为商品的编号,属性都不为空
(3)货架的表
主键为编号和商品编号
(4)进货表
主键为商品编号
(5)日销售量的表
(6)实体之间的关联(E-R图)
员工与商品之间的关系是整理,1对多;
员工与销售之间是记录关系,1对多;
货架与商品之间是摆放关系,1对多;
5、数据库基本框架
本系统主要分为三大部分:
管理员部分、员工部分、顾客部分
如图,数据库的主界面如下:
(1)其中顾客访问界面如下
它主要实现的功能是使顾客可以通过商品的名称或者是商品的类别去找到自己所需要的商品,得到一部分商品的信息
(2)管理员界面
在进入管理员界面之前必须要完成一个登录的过程,只有输入正确的用户名和密码才能进入。
管理员可以实现的操作是可以查询到员工的信息,其中有部分的信息可以修改。
此外还可以观测到本日的销售额。
实验的界面如下
这是管理员界面拥有的两个功能:
员工信息的查询修改;
销售情况的查看
员工信息的查询修改部分的界面:
以实现的功能有按照员工的编号或者姓名查询员工的信息;
然后可以对选择的员工可以进行修改;
还有一项添加员工信息的功能。
(失败会提示)
管理员界面中的销售情况的界面:
管理员可以查看之前的销售情况,根据日期或者商品编号。
(3)员工界面
员工进入时需要账号和密码(账号为员工的名字,密码一开始为空,后来进入界面后可以自己设计)
员工界面主要包括以下功能:
对个人信息的管理、对商品信息的管理、记录超市的销售情况。
个人信息的界面:
可以查看或者对自己信息的修改
商品信息管理的界面:
比顾客界面多了修改和添加的功能,以便对商品的管理。
记录销售情况的界面:
六、部分重要代码
MYSQL*sock;
//数据库连接的句柄
MYSQL_RES*res;
//得到查询的返回结果集
MYSQL_ROWrow;
//从结果集中得到每个元组
mysql_real_connect(sock,host,user,pass,db,0,NULL,0)//数据库的连接
mysql_query(sock,szSqlText)//数据库的增删改查
res=mysql_store_result(sock);
//取得查询结果,保存查询到的数据到
fd=mysql_fetch_field(res)//获取列名
row=mysql_fetch_row(res)//获取具体的数据,依次读取各条记录
mysql_query(sock,"
SETNAMES'
GB2312'
"
);
//解决乱码
七、实验过程中遇到的问题
(1)首先是创建表时候出现的困难。
比如在建表时对主码和外码的选取问题。
这个可能是由于在初期没有完全考虑清楚表之间的关系,因而出现了错误。
这些问题在调试之中得到了解决,选择了合适的码,使程序可以顺利运行。
(2)其次是在编程过程中遇到的一些问题。
这次实验我们采用了MFC类库去优化界面,但是由于不熟悉而出现了一些状况,比如对于C-string类型的变量,在程序调试时会出现错误,最后询问老师找到了答案。
(3)在整合代码时出现了问题。
(4)功能的实现不够完全。
(5)还没实现并发访问