商品库存管理系统课程设计说明书_第1页
商品库存管理系统课程设计说明书_第2页
商品库存管理系统课程设计说明书_第3页
商品库存管理系统课程设计说明书_第4页
商品库存管理系统课程设计说明书_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

商品库存管理系统课程设计说明书燕山大学课程设计说明书题目:商品库存管理系统学院(系):理学院年级专业:13级应用软件学号:130108010020学生姓名:杨亚南指导教师:聂栋栋商品库存管理系统课程设计说明书全文共28页,当前为第1页。商品库存管理系统课程设计说明书全文共28页,当前为第1页。商品库存管理系统课程设计说明书全文共28页,当前为第1页。商品库存管理系统课程设计说明书全文共28页,当前为第1页。燕山大学课程设计(论文)任务书院(系):理学院信息与计算科学系基层教学单位:学号130108010020学生姓名杨亚南专业(班级)应用软件设计题目商品库存管理系统设计技术参数以C++面向对象的设计思想完成设计任务;详细说明设计中的各个类,尤其是各类的属性及所提供的接口;要求对任务问题进行详细分析,说明程序所实现的功能;通过具体的应用程序对所实现的功能进行测试,并给出结果;设计要求详细说明程序的总体设计,及各个类的设计细节;写出各自对这次设计的心得体会;要求4篇以上参考文献;报告正文在5000字以上;工作量主要包括程序的编码实现和数据库的设计代码总行数为307行,数据库中两张表工作计划第一周:进行需求分析和业务流程图,实体关系图的绘制,建立逻辑模型第二周:进行类的设计和数据库的设计,编码测试参考资料1.马光志等编著.C++程序设计实践教程.华中科技大学出版社,2001年2.黄维通等编著.VisualC++面向对象与可视化程序设计.清华大学出版社,2000年3.刘瑞新等编著.VisualC++面向对象程序设计教程.机械工业出版社指导教师签字基层教学单位主任签字说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。商品库存管理系统课程设计说明书全文共28页,当前为第2页。商品库存管理系统课程设计说明书全文共28页,当前为第2页。年月日商品库存管理系统课程设计说明书全文共28页,当前为第2页。商品库存管理系统课程设计说明书全文共28页,当前为第2页。商品库存管理系统课程设计说明书全文共28页,当前为第3页。商品库存管理系统课程设计说明书全文共28页,当前为第3页。燕山大学课程设计评审意见表商品库存管理系统课程设计说明书全文共28页,当前为第3页。商品库存管理系统课程设计说明书全文共28页,当前为第3页。指导教师评语:成绩:指导教师:年月日答辩小组评语:成绩:组长:年月日课程设计总成绩:答辩小组成员签字:年月日共页第页目录TOC\o"1-2"\h\u407摘要 5244191.引言 5303741.1面向对象程序设计思想 5261.2面向对象程序设计的优点 547272.总体设计 5148162.1需求分析 5102632.2程序流程图 6287472.3实体-关系模型 6242142.4类的设计 71832.4.1管理员类 7200302.4.2商品基类 764262.4.3零售商品类 7288312.4.4散称商品类 726732.4.5数据库连接类 7168402.5数据库的设计 770513.实现方法 893113.1类的定义 8182383.2类的实现 10264953.3类的应用 15269623.4程序源代码 1611564.运行结果及分析 25142395.结论 2672096.心得体会 264397参考文献 28商品库存管理系统课程设计说明书全文共28页,当前为第4页。商品库存管理系统课程设计说明书全文共28页,当前为第4页。商品库存管理系统课程设计说明书全文共28页,当前为第4页。商品库存管理系统课程设计说明书全文共28页,当前为第4页。摘要商品库存管理系统是商店中不可缺少的部分,本篇主要利用C++面向对象编程的方法设计了一个商品库存管理系统,后台数据库采用轻量级数据库mysql5.0,管理员通过账号密码登录系统后实现对库存商品的增加,删除,修改,查询等功能,进而实现对商品库存的管理。1.引言面向对象程序设计与结构化程序设计考虑问题的角度不同,他的重点不是对问题本身的功能分解和各个功能的具体算法实现,而是从系统组成的角度进行分解,对问题进行自然分解,以更接近人类思维的方式建立问题域模型。1.1面向对象程序设计思想将数据及对数据的操作方法进行封装,作为一个有机体——对象。封装使得算法和数据形成了相互依存的关系。通过采用抽象、封装、继承和多态性等概念和措施,以一种模拟人类认知的方式对软件系统建模,从而构造出可重用性好、易维护的软件,提高软件的开放效率。1.2面向对象程序设计的优点程序模块之间的关系更为简单,程序模块的独立性、数据的安全性有良好的保障。通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。总体设计2.1需求分析管理员可以登录系统,登录成功后对查询所有商品的名称,编号,数量,价格以及类型;通过商品编号修改某一商品的价格;通过商品编号删除该商品;输入商品的名称,编号,数量,价格,类型进行添加;2.2业务流程图商品库存管理系统课程设计说明书全文共28页,当前为第5页。商品库存管理系统课程设计说明书全文共28页,当前为第5商品库存管理系统课程设计说明书全文共28页,当前为第5页。商品库存管理系统课程设计说明书全文共28页,当前为第5页。开始开始输入用户名以及密码登录验证添加删除修改查询退出操作选择注销用户结束12043否是2.3实体-关系模型商品商品管理管理员姓名编号密码名称编号数量价格类型1n商品库存管理系统课程设计说明书全文共28页,当前为第6页。商品库存管理系统课程设计说明书全文共28页,当前为第6页。商品库存管理系统课程设计说明书全文共28页,当前为第6页。商品库存管理系统课程设计说明书全文共28页,当前为第6页。2.4类的设计2.4.1管理员类管理员类静态属性有管理员姓名,管理员密码,管理员编号动态方法有登录login();2.4.2商品基类商品基类静态属性有商品名称,商品价格,商品数量,商品编号,商品类型动态方法有添加商品addGoods(),更新商品价格updateGoods(),删除商品deleteGoods(),查询所有商品getAllGoods();其中添加商品addGoods()为纯虚函数,因为考虑到散称和零售商品添加的时候商品价格表示不同,所以设置成纯虚函数,由各自的类重写该方法。2.4.3零售商品类重写了添加商品addGoods();价格设置成:元/件2.4.4散称商品类重写了添加商品addGoods();价格设置成:元/kg2.4.5数据库连接类主要负责数据库的连接,操作指针的生成。方法有构造方法DataBase();初始化数据库连接2.5数据库的设计数据库中总共有两个表,管理员表adminer,商品表goods管理员表adminer结构如下:adminId管理员在数据库中的idadminName管理员姓名adminPasswd密码adminNum管理员编号管理员表adminer的内容如下:商品库存管理系统课程设计说明书全文共28页,当前为第7页。商品库存管理系统课程设计说明书全文共28页,当前为第7页。商品库存管理系统课程设计说明书全文共28页,当前为第7页。商品库存管理系统课程设计说明书全文共28页,当前为第7页。商品表goods的结构如下:商品表的内容如下:实现方法3.1类的定义/***mysql数据库操作类**/classDataBase{public: DataBase(); MYSQL*conn; MYSQL_RES*resSet; MYSQL_ROWrow; MYSQL_FIELD*field; unsignedintret,numFields; MYSQL*getConnection();};/***管理员类*/商品库存管理系统课程设计说明书全文共28页,当前为第8页。商品库存管理系统课程设计说明书全文共28页,当前为第8页。classAdminer{商品库存管理系统课程设计说明书全文共28页,当前为第8页。商品库存管理系统课程设计说明书全文共28页,当前为第8页。public: boollogin(stringuser,stringpwd);//登录方法};/***商品基类**/classBaseGoods{protected: intgoodsId;//数据库自增idstringgoodsName;//商品名称 stringgoodsNum;//编号 stringgoodsPrice;//价格 stringgoodsCount;//剩余数量 stringgoodsType;//类型public: //基类属性的setget函数 voidsetGoodsId(intid); intgetGoodsId(); voidsetGoodsName(stringname); stringgetGoodsName(); voidsetGoodsNum(stringnum); stringgetGoodsNum(); voidsetGoodsPrice(stringprice); stringgetGoodsPrice(); voidsetGoodsCount(stringcount); stringgetGoodsCount(); voidsetGoodsType(stringtype); stringgetGoodsType();//数据库操作函数 virtualvoidaddGoods(BaseGoods*goods)=0;//纯虚函数--添加商品 voidupdateGoods(stringgoodsName,stringgoodsNum); voiddeleteGoods(stringgoodsNum);//删除商品 voidgetAllGoods(stringtype);//查看所有商品 voidgetGoodsByCount(stringtype,intcount);//条件查询库存数量低于count的商品};/***散装商品类商品库存管理系统课程设计说明书全文共28页,当前为第9页。商品库存管理系统课程设计说明书全文共28页,当前为第9页。**/商品库存管理系统课程设计说明书全文共28页,当前为第9页。商品库存管理系统课程设计说明书全文共28页,当前为第9页。classBulkGoods:publicBaseGoods{public: voidaddGoods(BaseGoods*goods);};/***零售商品类**/classRetailGoods:publicBaseGoods{public: voidaddGoods(BaseGoods*goods);};3.2类的实现/***mysql数据库操作类**/DataBase::DataBase(){ conn=mysql_init(NULL); if(conn==NULL) cout<<"数据库初始化连接失败"<<endl; ret=mysql_options(conn,MYSQL_SET_CHARSET_NAME,"gb2312");//设置字符编码 if(ret!=0) cout<<"数据库初始化设置失败"<<endl; if(mysql_real_connect(conn,"localhost","root","yyn1995","goodsManage",0,NULL,0)==NULL) cout<<"数据库连接失败!"<<endl;}/***管理员类*/boolAdminer::login(stringuser,stringpwd){DataBasedb; stringsql="SELECTadminPasswdFROMadminerwhereadminNum='"+user+"'"; constchar*c_sql=sql.c_str(); if(mysql_query(db.conn,c_sql)){//查询成功返回非0 cout<<"查询失败"<<endl; }else{商品库存管理系统课程设计说明书全文共28页,当前为第10页。商品库存管理系统课程设计说明书全文共28页,当前为第10页。 db.resSet=mysql_store_result(db.conn);//查询失败返回NULL商品库存管理系统课程设计说明书全文共28页,当前为第10页。商品库存管理系统课程设计说明书全文共28页,当前为第10页。 if(db.resSet==NULL){ cout<<"resSetisnull"<<endl; }else{ db.numFields=mysql_num_fields(db.resSet); while((db.row=mysql_fetch_row(db.resSet))!=NULL) { if(pwd!=db.row[0]) returnfalse; else returntrue; } } } mysql_close(db.conn);}/***商品基类**/voidBaseGoods::setGoodsId(intid){ if(id>0) this->goodsId=id;}intBaseGoods::getGoodsId(){ returngoodsId;}voidBaseGoods::setGoodsName(stringname){ if(name.length()>0&&name.length()<=20) this->goodsName=name;}stringBaseGoods::getGoodsName(){ returngoodsName;}voidBaseGoods::setGoodsNum(stringnum){if(num.length()>0&&num.length()<=5) this->goodsNum=num;}stringBaseGoods::getGoodsNum(){ returngoodsNum;商品库存管理系统课程设计说明书全文共28页,当前为第11页。商品库存管理系统课程设计说明书全文共28页,当前为第11页。}商品库存管理系统课程设计说明书全文共28页,当前为第11页。商品库存管理系统课程设计说明书全文共28页,当前为第11页。voidBaseGoods::setGoodsPrice(stringprice){ if(price.length()>0) this->goodsPrice=price;}stringBaseGoods::getGoodsPrice(){ returngoodsPrice;}voidBaseGoods::setGoodsCount(stringcount){ if(count.length()>0) this->goodsCount=count;}stringBaseGoods::getGoodsCount(){ returngoodsCount;}voidBaseGoods::setGoodsType(stringtype){ this->goodsType=type;}stringBaseGoods::getGoodsType(){ returngoodsType;}voidBaseGoods::deleteGoods(stringgoodsNum){//删除商品 DataBasedb; stringsql="deletefromgoodswhere编号='"+goodsNum+"'"; constchar*c_sql=sql.c_str(); mysql_query(db.conn,c_sql); intflag=mysql_affected_rows(db.conn); if(flag>0)cout<<"删除"<<flag<<"条记录成功"<<endl; else cout<<"删除失败"<<endl; mysql_close(db.conn);}voidBaseGoods::getAllGoods(stringtype){//按类型查询商品 DataBasedb; stringsql="SELECT*FROMgoodswhere类型='"+type+"'"; constchar*c_sql=sql.c_str(); if(mysql_query(db.conn,c_sql)){//查询成功返回非0商品库存管理系统课程设计说明书全文共28页,当前为第12页。商品库存管理系统课程设计说明书全文共28页,当前为第12页。 cout<<"mysql_queryfailed!"<<endl;商品库存管理系统课程设计说明书全文共28页,当前为第12页。商品库存管理系统课程设计说明书全文共28页,当前为第12页。 }else{ db.resSet=mysql_store_result(db.conn);//查询失败返回NULL if(db.resSet==NULL){ cout<<"resSetisnull"<<endl; }else{ db.numFields=mysql_num_fields(db.resSet); for(inti=0;i<db.numFields;i++) { db.field=mysql_fetch_field_direct(db.resSet,i); cout<<setw(10)<<db.field->name; } cout<<endl; while((db.row=mysql_fetch_row(db.resSet))!=NULL) { for(inti=0;i<mysql_num_fields(db.resSet);i++) { cout<<setw(10)<<db.row[i]; } cout<<endl; } } } mysql_close(db.conn);}voidBaseGoods::updateGoods(stringgoodsPirce,stringgoodsNum){//更新商品信息DataBasedb; stringsql="updategoodsset价格='"+goodsPirce+"'where编号='"+goodsNum+"'"; constchar*c_sql=sql.c_str(); mysql_query(db.conn,c_sql);//执行插入一条商品记录操作 intflag=mysql_affected_rows(db.conn); if(flag>0)cout<<"修改"<<flag<<"条记录成功"<<endl; else cout<<"修改失败"<<endl; mysql_close(db.conn);}商品库存管理系统课程设计说明书全文共28页,当前为第13页。商品库存管理系统课程设计说明书全文共28页,当前为第13页。商品库存管理系统课程设计说明书全文共28页,当前为第13页。商品库存管理系统课程设计说明书全文共28页,当前为第13页。/***散装商品**/voidBulkGoods::addGoods(BaseGoods*goods){ //添加商品 DataBasedb; stringname=goods->getGoodsName(); stringnum=goods->getGoodsNum(); stringcount=goods->getGoodsCount(); count.append("kg"); stringprice=goods->getGoodsPrice(); price.append("元/kg"); stringtype=goods->getGoodsType(); stringsql="insertintogoods(名称,编号,价格,数量,类型)values('"+name+"','"+num+"','"+price+"','"+count+"','"+type+"')"; constchar*c_sql=sql.c_str(); mysql_query(db.conn,c_sql);//执行插入一条商品记录操作 intflag=mysql_affected_rows(db.conn); if(flag>0)cout<<"插入"<<flag<<"条记录成功"<<endl; else cout<<"插入失败"<<endl; mysql_close(db.conn);}/***零售商品**/voidRetailGoods::addGoods(BaseGoods*goods){//零售商品的添加商品DataBasedb; stringname=goods->getGoodsName(); stringnum=goods->getGoodsNum(); stringcount=goods->getGoodsCount(); count.append("件"); stringprice=goods->getGoodsPrice(); price.append("元/件"); stringtype=goods->getGoodsType(); stringsql="insertintogoods(名称,编号,价格,数量,类型)values('"+name+"','"+num+"','"+price+"','"+count+"','"+type+"')"; constchar*c_sql=sql.c_str();商品库存管理系统课程设计说明书全文共28页,当前为第14页。商品库存管理系统课程设计说明书全文共28页,当前为第14页。 mysql_query(db.conn,c_sql);//执行插入一条商品记录操作商品库存管理系统课程设计说明书全文共28页,当前为第14页。商品库存管理系统课程设计说明书全文共28页,当前为第14页。 intflag=mysql_affected_rows(db.conn); if(flag>0)cout<<"插入"<<flag<<"条记录成功"<<endl; else cout<<"插入失败"<<endl; mysql_close(db.conn);}3.3类的应用voidmain(){ cout<<"商品库存管理"<<endl; boolflag=true; boolflag2=true; while(flag){ DataBasea; RetailGoodsbg; BaseGoods*goods=&bg; Adminerb; boolresult; stringuser,password; while(flag2){//登录判断 cout<<"请输入用户名和密码"<<endl; cin>>user>>password; result=b.login(user,password); if(result){ cout<<user<<"欢迎使用"<<endl; flag2=false; break; }else{ cout<<"用户名或密码错误"<<endl; } } if(result){ cout<<"请输入操作号1.查看所有商品2.添加商品3.删除商品4.修改商品0.退出"<<endl; stringgoodsName,goodsNum,goodsPrice,goodsCount,goodsType; intnum; cin>>num;商品库存管理系统课程设计说明书全文共28页,当前为第15页。商品库存管理系统课程设计说明书全文共28页,当前为第15页。 switch(num){商品库存管理系统课程设计说明书全文共28页,当前为第15页。商品库存管理系统课程设计说明书全文共28页,当前为第15页。 case0: flag=false;break; case1: goods->getAllGoods("零售"); goods->getAllGoods("散装"); break; case2: cout<<"请输入商品名称,编号,价格,数量,类型"<<endl; cin>>goodsName>>goodsNum>>goodsPrice>>goodsCount>>goodsType; bg.setGoodsName(goodsName); bg.setGoodsNum(goodsNum); bg.setGoodsPrice(goodsPrice); bg.setGoodsCount(goodsCount); bg.setGoodsType(goodsType); goods->addGoods(goods);//向上转型分别调用对象各自的函数 break; case3: cout<<"请输入要删除的商品编号"<<endl; cin>>goodsNum; goods->deleteGoods(goodsNum); break; case4: cout<<"请输入商品价格,商品编号"<<endl; cin>>goodsPrice>>goodsNum; goods->updateGoods(goodsPrice,goodsNum); break; } } }}3.4程序代码#include<iostream>#include<iomanip>#include<windows.h>#include<cstdlib>#include<cstdio>商品库存管理系统课程设计说明书全文共28页,当前为第16页。商品库存管理系统课程设计说明书全文共28页,当前为第16页。#include<mysql.h>商品库存管理系统课程设计说明书全文共28页,当前为第16页。商品库存管理系统课程设计说明书全文共28页,当前为第16页。#include<string>#pragmacomment(lib,"libmysql.lib")usingnamespacestd;/***mysql数据库操作类**/classDataBase{public: DataBase(); MYSQL*conn; MYSQL_RES*resSet; MYSQL_ROWrow; MYSQL_FIELD*field; unsignedintret,numFields; MYSQL*getConnection();};DataBase::DataBase(){ conn=mysql_init(NULL); if(conn==NULL) cout<<"数据库初始化连接失败"<<endl; ret=mysql_options(conn,MYSQL_SET_CHARSET_NAME,"gb2312");//设置字符编码 if(ret!=0) cout<<"数据库初始化设置失败"<<endl; if(mysql_real_connect(conn,"localhost","root","yyn1995","goodsManage",0,NULL,0)==NULL) cout<<"数据库连接失败!"<<endl;}/***管理员类*/classAdminer{public: boollogin(stringuser,stringpwd);//登录方法};boolAdminer::login(stringuser,stringpwd){DataBasedb;商品库存管理系统课程设计说明书全文共28页,当前为第17页。商品库存管理系统课程设计说明书全文共28页,当前为第17页。 stringsql="SELECTadminPasswdFROMadminerwhereadminNum='"+user+"'";商品库存管理系统课程设计说明书全文共28页,当前为第17页。商品库存管理系统课程设计说明书全文共28页,当前为第17页。 constchar*c_sql=sql.c_str(); if(mysql_query(db.conn,c_sql)){//查询成功返回非0 cout<<"查询失败"<<endl; }else{ db.resSet=mysql_store_result(db.conn);//查询失败返回NULL if(db.resSet==NULL){ cout<<"resSetisnull"<<endl; }else{ db.numFields=mysql_num_fields(db.resSet); while((db.row=mysql_fetch_row(db.resSet))!=NULL) { if(pwd!=db.row[0]) returnfalse; else returntrue; } } } mysql_close(db.conn);}/***商品基类**/classBaseGoods{protected: intgoodsId;//数据库自增idstringgoodsName;//商品名称 stringgoodsNum;//编号 stringgoodsPrice;//价格 stringgoodsCount;//剩余数量 stringgoodsType;//类型public: //基类属性的setget函数 voidsetGoodsId(intid); intgetGoodsId(); voidsetGoodsName(stringname); stringgetGoodsName(); voidsetGoodsNum(stringnum);商品库存管理系统课程设计说明书全文共28页,当前为第18页。商品库存管理系统课程设计说明书全文共28页,当前为第18页。 stringgetGoodsNum();商品库存管理系统课程设计说明书全文共28页,当前为第18页。商品库存管理系统课程设计说明书全文共28页,当前为第18页。 voidsetGoodsPrice(stringprice); stringgetGoodsPrice(); voidsetGoodsCount(stringcount); stringgetGoodsCount(); voidsetGoodsType(stringtype); stringgetGoodsType();//数据库操作函数 virtualvoidaddGoods(BaseGoods*goods)=0;//纯虚函数--添加商品 voidupdateGoods(stringgoodsName,stringgoodsNum); voiddeleteGoods(stringgoodsNum);//删除商品 voidgetAllGoods(stringtype);//查看所有商品 voidgetGoodsByCount(stringtype,intcount);//条件查询库存数量低于count的商品};voidBaseGoods::setGoodsId(intid){ if(id>0) this->goodsId=id;}intBaseGoods::getGoodsId(){ returngoodsId;}voidBaseGoods::setGoodsName(stringname){ if(name.length()>0&&name.length()<=20) this->goodsName=name;}stringBaseGoods::getGoodsName(){ returngoodsName;}voidBaseGoods::setGoodsNum(stringnum){if(num.length()>0&&num.length()<=5) this->goodsNum=num;}stringBaseGoods::getGoodsNum(){ returngoodsNum;}voidBaseGoods::setGoodsPrice(stringprice){ if(price.length()>0) this->goodsPrice=price;商品库存管理系统课程设计说明书全文共28页,当前为第19页。商品库存管理系统课程设计说明书全文共28页,当前为第19页。}商品库存管理系统课程设计说明书全文共28页,当前为第19页。商品库存管理系统课程设计说明书全文共28页,当前为第19页。stringBaseGoods::getGoodsPrice(){ returngoodsPrice;}voidBaseGoods::setGoodsCount(stringcount){ if(count.length()>0) this->goodsCount=count;}stringBaseGoods::getGoodsCount(){ returngoodsCount;}voidBaseGoods::setGoodsType(stringtype){ this->goodsType=type;}stringBaseGoods::getGoodsType(){ returngoodsType;}voidBaseGoods::deleteGoods(stringgoodsNum){//删除商品 DataBasedb; stringsql="deletefromgoodswhere编号='"+goodsNum+"'"; constchar*c_sql=sql.c_str(); mysql_query(db.conn,c_sql); intflag=mysql_affected_rows(db.conn); if(flag>0)cout<<"删除"<<flag<<"条记录成功"<<endl; else cout<<"删除失败"<<endl; mysql_close(db.conn);}voidBaseGoods::getAllGoods(stringtype){//按类型查询商品 DataBasedb; stringsql="SELECT*FROMgoodswhere类型='"+type+"'"; constchar*c_sql=sql.c_str(); if(mysql_query(db.conn,c_sql)){//查询成功返回非0 cout<<"mysql_queryfailed!"<<endl; }else{ db.resSet=mysql_store_result(db.conn);//查询失败返回NULL if(db.resSet==NULL){商品库存管理系统课程设计说明书全文共28页,当前为第20页。商品库存管理系统课程设计说明书全文共28页,当前为第20页。 商品库存管理系统课程设计说明书全文共28页,当前为第20页。商品库存管理系统课程设计说明书全文共28页,当前为第20页。 }else{ db.numFields=mysql_num_fields(db.resSet); for(inti=0;i<db.numFields;i++) { db.field=mysql_fetch_field_direct(db.resSet,i); cout<<setw(10)<<db.field->name; } cout<<endl; while((db.row=mysql_fetch_row(db.resSet))!=NULL) { for(inti=0;i<mysql_num_fields(db.resSet);i++) { cout<<setw(10)<<db.row[i]; } cout<<endl; } } } mysql_close(db.conn);}voidBaseGoods::updateGoods(stringgoodsPirce,stringgoodsNum){//更新商品信息DataBasedb; stringsql="updategoodsset价格='"+goodsPirce+"'where编号='"+goodsNum+"'"; constchar*c_sql=sql.c_str(); mysql_query(db.conn,c_sql);//执行插入一条商品记录操作 intflag=mysql_affected_rows(db.conn); if(flag>0)cout<<"修改"<<flag<<"条记录成功"<<endl; else cout<<"修改失败"<<endl; mysql_close(db.conn);}/***散装商品**/商品库存管理系统课程设计说明书全文共28页,当前为第21页。商品库存管理系统课程设计说明书全文共28页,当前为第21页。classBulkGoods:publicBaseGoods{商品库存管理系统课程设计说明书全文共28页,当前为第21页。商品库存管理系统课程设计说明书全文共28页,当前为第21页。public: voidaddGoods(BaseGoods*goods);};voidBulkGoods::addGoods(BaseGoods*goods){ //添加商品 DataBasedb; stringname=goods->getGoodsName(); stringnum=goods->getGoodsNum(); stringcount=goods->getGoodsCount(); count.append("kg"); stringprice=goods->getGoodsPrice(); price.append("元/kg"); stringtype=goods->getGoodsType(); stringsql="insertintogoods(名称,编号,价格,数量,类型)values('"+name+"','"+num+"','"+price+"','"+count+"','"+type+"')"; constchar*c_sql=sql.c_str(); mysql_query(db.conn,c_sql);//执行插入一条商品记录操作 intflag=mysql_affected_rows(db.conn); if(flag>0)cout<<"插入"<<flag<<"条记录成功"<<endl; else cout<<"插入失败"<<endl; mysql_close(db.conn);}/***零售商品**/classRetailGoods:publicBaseGoods{public: voidaddGoods(BaseGoods*goods);};voidRetailGoods::addGoods(BaseGoods*goods){//零售商品的添加商品DataBasedb; stringname=goods->getGoodsName(); stringnum=goods->getGoodsNum(); stringcount=goods->getGoodsCount(); count.append("件"); stringprice=goods->getGoodsPrice(); price.append("元/件");商品库存管理系统课程设计说明书全文共28页,当前为第22页。商品库存管理系统课程设计说明书全文共28页,当前为第22页。 stringtype=goods->getGoodsType();商品库存管理系统课程设计说明书全文共28页,当前为第22页。商品库存管理系统课程设计说明书全文共28页,当前为第22页。 stringsql="insertintogoods(名称,编号,价格,数量,类型)values('"+name+"','"+num+"','"+price+"','"+count+"','"+type+"')"; constchar*c_sql=sql.c_str(); mysql_query(db.conn,c_sql);//执行插入一条商品记录操作 intflag=mysql_affected_rows(db.conn); if(flag>0)cout<<"插入"<<flag<<"条记录成功"<<endl; else cout<<"插入失败"<<endl; mysql_close(db.conn);}voidmain(){ cout<<"商品库存管理"<<endl; boolflag=true; boolflag2=true; while(flag){ DataBasea; RetailGoodsbg; BaseGoods*goods=&bg; Adminerb; boolresult; stringuser,password; while(flag2){//登录判断 cout<<"请输入用户名和密码"<<endl; cin>>user>>password; result=b.login(user,password); if(result){ cout<<user<<"欢迎使用"<<endl; flag2=false; break; }else{ cout<<"用户名或密码错误"<<endl; } } if(result){商品库存管理系统课程设计说明书全文共28页,当前为第23页。商品库存管理系统课程设计说明书全文共28页,当前为第23页。 cout<<"请输入操作号1.查看所有商品2.添加商品3.删除商品4.修改商品0.退出"<<endl;商品库存管理系统课程设计说明书全文共28页,当前为第23页。商品库存管理系统课程设计说明书全文共28页,当前为第23页。 stringgoodsName,goodsNum,goodsPrice,goodsCount,goodsType; intnum; cin>>num; switch(num){ case0: flag=false;break; case1: goods->getAllGoods("零售"); goods->getAllGoods("散装"); break; case2: cout<<"请输入商品名称,编号,价格,数量,类型"<<endl; cin>>goodsName>>goodsNum>>goodsPrice>>goodsCount>>goodsType; bg.setGoodsName(goodsName); bg.setGoodsNum(goodsNum); bg.setGoodsPrice(goodsPrice); bg.setGoodsCount(goodsCount); bg.setGoodsType(goodsType); goods->addGoods(goods);//向上转型分别调用对象各自的函数 break; case3: cout<<"请输入要删除的商品编号"<<endl; cin>>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论