《商场销售系统设计报告.doc》由会员分享,可在线阅读,更多相关《商场销售系统设计报告.doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象程序设计(C+)期末设计报告题目:商场销售管理系统学院:信息科学与工程学院专业:数字媒体技术班级:2014级1、2班职务姓名分工情况组长*组员*设计日期:*年*月*日目 录一 项目需求及分析1二 功能描述3三 程序流程4四 操作指南5五 程序代码6一 项目需求及分析一、引言随着商品数量急剧增加,有关商品的各种信息量也成倍增长。商店时时刻刻都需要对商品各种信息进行统计分析。随着计算机科学的发展与进步,计算机科学管理方式在大规模管理中显示了它的可靠性和优越性,它在人力,物力等资源方面都比之前的大为节省。计算机管理以它自身的优越性拙见成为管理模式的主流。故销售管理系统采用计算机管理模式有其必
2、然性。二、编写目的本系统为了更好加强商店的管理,方便商店销售的管理,提高商店管理的工作质量和效率,也为广大的消费者提供了方便。三、功能需求小商店的业务、人员都比较少,日常运作主要是店长进货,店长雇佣销售员来销售商品。销售人员销售时候用收银业务模块辅助销售,用会员管理模块进行会员管理。管理人员利用销售员管理模块、经营报告模块、货品管理模块来进行对商店的管理。四、子模块功能分析:1.收支子系统::查看订单记录2.管理者管理子系统:用户管理子系统提供基本信息登记管理,包括对用户的查询,修改,增加3、货品管理模块:货品管理子系统提供货品基本信息登记管理,包括对货品的查询,修改,增加,删除。4.登录子系
3、统:l管理员身份登录:可进入用户管理子系统、货品管理子系统、进出货管理;五、数据字典1. 关系描述:表1:商品信息表字段名字段类型长度字段值约束备注Codeint8Not null商品编码goodsNamechar8Not null商品名称goodsPricefloat8Not null价格goodsPrice2float8Not null成本goodsNumInt4Not null数量表2:用户信息表字段名字段类型长度字段值约束备注Namechar8Not null用户名字Passchar8Not null用户密码Typechar8Not null用户类型codeint8Not null用户
4、工号表3:销售信息表字段名字段类型长度字段值约束备注nameint4Not null商品名称(外键)pricefloat11Not null价格numInt4Not null编号numberint4Not null数量D_pricefloat11Not null单价2. 动态数据:输入数据:新增记录,输入的查寻关键字输出数据:由输入的查寻关键字确定的数据记录集合。查询输出六、接口要求 硬件接口:无特别要求;网络硬件接口要求:现实中要求具有高速以太网组网一实现联网销售,但是在理论实验验证软件本身的目的来看,无需网络通讯接口。软件接口要求:无七、软件属性可用性:本软件也可以通过单步跟踪的操作进行检
5、查处理。安全性:由于软件运行数据放在数据库中,所以参数不容易被错改、破坏,万一参数受到破坏也不会影响源程序。可维护性:本软件利用数据库进行编程,系统结构由程序基本确定,大量的参数及文本内容全部放于数据库中。修改、更新数据只要在数据库进行修改添加,而不需要对系统结构进行修改,这样系统维护性、升级都十分方便。兼容性:由于尚未测试,故无法对兼容性进行评析。八、支持信息及运行环境软件支持:本软件开发是使用vs2013编写;设备支持:推荐配置:Windows7Windows10,4G内存;数据库:mySQL 5.0二 功能描述一、功能模块划分1. 收支管理模块2. 管理者管理模块3. 货品管理模块4.
6、登陆模块 如图:二、子模块功能分析:1.收支子系统::查看订单记录2.管理者管理子系统:用户管理子系统提供基本信息登记管理,包括对用户的查询,修改,增加3、货品管理模块:货品管理子系统提供货品基本信息登记管理,包括对货品的查询,修改,增加,删除。4.登录子系统:管理员身份登录:可进入用户管理子系统、货品管理子系统、进出货管理;三 程序流程一、 程序流程描述登陆判断进入主菜单选择用户管理对用户信息增、改、查选择货品管理对商品信息增、删、改、查选择收支管理对订单信息查选择注销登陆二、程序流程图四 操作指南登陆主菜单用户管理编辑用户信息货品管理添加商品删除商品订单查看五 程序主要代码#ifndef
7、_WORK_H#define _WORK_H#include #include #include #include #include #pragma(lib,libmySQL.lib)using namespace std;/*-数据设计-*/class Goods;/商品信息typedef struct goodsInfoint code;/编号string name;/商品名称float price;/价格float price2;/成本int num;/数量goodsInfo;class Order;/订单信息typedef struct orderInfoint num;/订单编号st
8、ring name;/商品名称char unit;/单位int number;/数量float d_price;/单价float price;/成交价格orderInfo;class SQL;/数据库连接初始化class userInfo;/用户信息typedef struct Userstring name;/姓名int code;/工号User;class Goodsprivate:int code;/编号string name;/商品名称float price;/价格float price2;/成本int num;/数量public:Goods();Goods(int co,string
9、 a, float p, float p2, int n)code = co; name = a; price = p; price2 = p2; num = n;/输出信息string get_name()return name;float get_price()return price;float get_price2()return price2;int get_num()return num;void in_code() cin code; void in_name() cin name; void in_prince() cin price; void in_price2() cin
10、 price2; void in_num() cin num; bool in_goodsInfo(SQL );/增加商品信息到数据库;class Orderprivate:int num;/订单编号string name;/商品名称char unit;/单位int number;/数量float d_price;/单价float price;/成交价格public:Order();Order(int n,string a ,char u,int m,float dp,float p)num = n; name = a; unit = u; number = m; d_price = dp;
11、price = p;int get_num() return num; string get_name()return name;float get_price()return price;char get_unit() return unit; float get_d_price() return d_price; int get_number() return number; void input_name(string a)/输入订单商品名称name = a;void input_num(int a)/输入订单号num = a;void input_number(int a)/输入订单商
12、品数量num = a;void input_price(float a)/输入成交价钱price = a;bool in_order(SQL );/写入订单信息到数据库;class userInfoprivate:string name;/姓名string key;/密码int code;/工号char type;/用户权限1-超级管理员;2-普通管理员public:userInfo();userInfo(string a, string b,char c,int d)name = a; key = b; type = c; code = d;userInfo(User a)name = a.
13、name;code = a.code;string get_name()/读取姓名return name;string get_key()/读取密码return key;char get_type()return type;int get_code()return code;void input_name()cin name;void input_key()cin key;void input_code()cin code;void input_type() cin type; bool in_uesrInfo(SQL );/新增用户信息到数据库;class SQLpublic:/数据库连接参
14、数MYSQL *conn;char *host;/数据库地址char *dbname;/数据库名const char *username;/数据库用户名const char *password;/数据库连接密码unsigned int port;/连接端口MYSQL_RES *res;/结果集MYSQL_ROW row;/结果行void init_sql();/初始化数据库连接参数bool link_sql();/连接数据库成功返回true ,失败返回false;/*-后台具体模块函数声明-*/*-登陆模块-*/bool is_admin(SQL ,string ,string );/判断是否
15、是管理者账户/*数据库连接*/*-从数据库读写信息-*/bool input_db(SQL ,char *);/以指定命令写入数据到数据库/*-用户管理模块-*/int query_userinfo(SQL);/用户信息查询bool edit_userinfo(SQL, User _old,User _new);/用户信息编辑更新bool delete_user(SQL, User _old);/删除用户/*-货品管理模块-*/int query_goodsInfo(SQL);/货品信息查询bool update_goodsInfo(SQL, goodsInfo _old, goodsInfo
16、);/更新商品信息bool delete_goods(SQL, goodsInfo);/删除商品/*-收支管理模块-*/int query_order(SQL);/订单信息查询/bool delete_order(SQL, orderInfo);/删除订单/*-界面设计模块-*/void Position(int x, int y);/光标定位void rectangle_show();/画边框void open();/开始界面void logoin_show(SQL );/登录界面void main_show(SQL);/主界面void table(SQL, orderInfo, int h
17、igth);/订单表void print(SQL, orderInfo, int higth);/输出订单信息void user_show(SQL,User , int);/用户信息管理void user_Add(SQL);/添加用户void U_eidt(SQL , User &);/用户信息编辑界面void Goods_show(SQL ,goodsInfo ,int );/商品管理界面void Goods_print(SQL, goodsInfo goods, int higth);/输出货品信息void Goods_Add(SQL );/添加货品信息,写入数据库#endif/以指定命令
18、写入数据到数据库bool input_db(SQL sql,char *sqlcmd)if (mysql_query(sql.conn, sqlcmd)/如果执行失败system(cls);cout -mySQL insert error!- endl;cout mysql_error(sql.conn) endl;mysql_close(sql.conn);_getch();return false;else/写入成功return true;/*-*/增加商品信息到数据库bool Goods:in_goodsInfo(SQL sql)char sqlcmd600;sprintf_s(sqlc
19、md, INSERT INTO goodsinfo(code,goodsName,goodsPrice,goodsPrice2,goodsNum) VALUES(%d,%s,%f,%f,%d),code,name.c_str(), price, price2, num);if (input_db(sql, sqlcmd)return true;elsereturn false;/更新商品信息bool update_goodsInfo(SQL sql, goodsInfo _old,goodsInfo goods)char sqlcmd600;sprintf_s(sqlcmd, update g
20、oodsinfo set code = %d,goodsName=%s, goodsPrice=%f,goodsPrice2=%f,goodsNum=%d where code=%d,goods.code, goods.name.c_str(), goods.price, goods.price2, goods.num,_old.code);if (input_db(sql, sqlcmd)return true;elsereturn false;/货品信息查询int query_goodsInfo(SQL sql)char sqlcmd600;int i = 0, count = 0;goo
21、dsInfo goods20;strcpy_s(sqlcmd, SELECT * FROM goodsInfo);if (mysql_query(sql.conn, sqlcmd)/如果读取失败mysql_close(sql.conn);cout mysql读取错误 endl;_getch();return false;else/从goodsInfo表中读取用户信息到内存中sql.res = mysql_store_result(sql.conn); /取结果集到res中while (sql.row = mysql_fetch_row(sql.res)goodsi.code = atoi(sq
22、l.row1);goodsi.name = sql.row2;goodsi.price = atof(sql.row3);goodsi.price2 = atof(sql.row4);goodsi.num = atoi(sql.row5);i+;count = i;Goods_show(sql, goods, count);return 0;/删除货品bool delete_goods(SQL sql, goodsInfo goods)char sqlcmd600;sprintf_s(sqlcmd, delete from goodsinfo where code = %d,goods.cod
23、e );if (input_db(sql, sqlcmd)return true;elsereturn false;/收支管理界面void table(SQL sql,orderInfo order,int higth)system(cls);rectangle_show();/背景边框int i;Position(3, 2);cout ;Position(3, 19);cout ;for (i = 4; i = 13; i = i + 3)Position(5, i);cout ;for (i = 3; i = 16; i+)Position(28, i);cout ;Position(37
24、, i);cout ;Position(46, i);cout ;Position(5, 16);cout ;Position(11, 3);cout 商品名称;Position(31, 3);cout 数量;Position(40, 3);cout 单价;Position(50, 3);cout 订单号;Position(5, 17);cout 收银员:;Position(5, 18);cout 日期:;Position(37, 18);cout 总价:;Position(62, 2);cout 输入#返回主界面!;for (i = 2; i = 19; i+)/yPosition(3, i
25、);cout ;Position(57, i);cout ;Position(3, 2);cout ;Position(57, 2);cout ;Position(3, 19);cout ;Position(57, 19);cout ;for (i = 4; i = 13; i = i + 3)Position(28, i);cout ;for (i = 4; i = 13; i = i + 3)Position(37, i);cout ;for (i = 4; i = 13; i = i + 3)Position(46, i);cout ;print(sql,order,higth);voi
26、d print(SQL sql, orderInfo order, int higth)int i = 0;rectangle_show();/背景边框for (i = 0; i higth; i+)Position(5, 5);cout orderi.name;/输出名称Position(30, 5);cout orderi.number;/输出数量Position(39, 5);cout orderi.d_price;/输出价格Position(48, 5);cout orderi.num;/输出订单号Position(10, 18);cout 2015-12-24;Position(42
27、, 18);cout orderi.price;/成本Position(12, 17);/收银员cout b;if (b = #)main_show(sql);/登陆判断bool is_admin(SQL sql,string name,string pass)char sqlcmd600;/mysql命令语句string t_name20, t_pass20;int i = 0;strcpy_s(sqlcmd,SELECT * FROM userInfo);if(mysql_query(sql.conn,sqlcmd)/从userInfo表中读取用户信息到内存中/如果读取失败mysql_cl
28、ose(sql.conn);cout mysql读取错误 = 0; i-)if (name = t_namei & pass = t_passi)/判断用户是否存在return true;return false;/初始化数据库连接参数void SQL:init_sql()conn = NULL;host = localhost;/数据库地址dbname = goods;/数据库名username = root;/数据库用户名password = ;/数据库连接密码port = 3306;/连接端口res = NULL;row = NULL;/连接数据库bool SQL:link_sql()if (conn = mysql_init(MYSQL *)0)&(mysql_options(conn, MYSQL_SET_CHARSET_NAME, gbk) = 0)&mysql_real_connect(conn, host, username, password, dbname, port, NULL, 0)/连接成功return true;else /*连接失败*return false;