商品销售系统

/*在实现功能中,主要使用迭代器(迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。
迭代器提供一些基本操作符:*、++、==、!=、=。这些操作和C/C++“操作array元素”时的指针接口一致。不同之处在于,迭代器是个所谓的复杂的指针,具有遍历复杂数据结构的能力。其下层运行机制取决于其所遍历的数据结构。因此,每一种容器型别都必须提供自己的迭代器。事实上每一种容器都将其迭代器以嵌套的方式定义于内部。因此各种迭代器的接口相同,型号却不同。这直接导出了泛型程序设计的概念:所有操作行为都使用相同接口,虽然它们的型别不同。)*/

//头文件
#ifndef  GOODS_H

#define GOODS_H

#include 

#include 

#include 

#include 

using namespace std;

class Goods{

protected:

int number;

string name;

float price;

list goodslist;

list::iterator iter;

 

public:

Goods(){};

Goods(int n,string nam,float p);

void addGoods();

void showGoods();

void menu();

void returnmenu();

void saveGoodsFile();

void eraseGoodsFile();

int getnumber(){return number;};

string getname(){return name;};

float getprice(){return price;};

void modifyGoods();

void saveGoodsfile();

void readGoodsfile();

};

#endif


//源文件
#include "stdafx.h"

#include "gq.h"



Goods::Goods(int n,string nam,float p)

{

number=n;

name=nam;

price=p;

}

 
//添加函数
void Goods::addGoods()

{

system("cls");

//cout<<"请输入商品编号:"<>number;

number=goodslist.size();

cout<<"请输入商品名称:"<>name;

cout<<"请输入商品价格:"<>price;

 

goodslist.push_back(Goods(++number,name,price));

 

cout<<"添加商品成功!输入Q继续,输入W返回主菜单。"<>h;

if (h=='Q')

addGoods();

else 

if (h=='W')

menu();

else 

cout<<"您的输入有误,请重新输入:"<getnumber()<<"\t"<getname()<<"\t\t"<getprice()<>ID;

for (iter=goodslist.begin();iter!=goodslist.end();++iter)

 

if (ID==iter->getnumber())

{

iter=goodslist.erase(iter);

cout<<"您已删除成功!按W返回主菜单..."<>X;

for(iter=goodslist.begin();iter!=goodslist.end();++iter)

if (X==iter->getnumber())

{

iter=goodslist.erase(iter);

cout<<"请输入新商品名称"<>N;

cout<<"请输入新商品价格:"<>P;

goodslist.insert(iter,Goods(X,N,P));

cout<<"您已修改成功!按W返回主菜单..."<getnumber()<<"\t"<getname()<<"\t"<getprice()<>nX>>nN>>nP;

goodslist.push_back(Goods(nX,nN,nP));

}


}

//返回函数
void Goods::returnmenu()

{

char h=0;

while (h!='W')

{

cin>>h;

if (h=='W')

menu();

else 

cout<<"您的输入有误,请重新输入:"<

#include "gq.h"

class BuyGoods:public Goods

{

protected:

long goodsamount;

long double totalmoney;

string Stime;

int sellID;

list buygoodslist;

list::iterator itera;

public:

BuyGoods(){};

BuyGoods(int sID,int num,string nam,float pri,long ga,long double tm,string tim);

int getgoodsamount(){return goodsamount;};

long double gettotalmoney(){return totalmoney;};

int getSellID(){return sellID;};

string getTime(){return Stime;};

void switch_while();

void showbuygoods();

void savebuyGoodsFile();

void readbuyGoodsfile();

string setTime();

void purchaseGoods();

void sellbuygoods();

};

#endif

//源文件
#include "stdafx.h"

#include "jc.h"


//购买商品函数
BuyGoods::BuyGoods(int sID,int num,string nam,float pri,long ga,long double tm,string tim)

{

sellID=sID;

number=num;

name=nam;

price=pri;

goodsamount=ga;

totalmoney=tm;

Stime=tim;

}

//选择函数
void BuyGoods::switch_while()

{

while (1)

{

cout<<"请输入选项:"<>x;

switch (x)

{

case 1:addGoods();

break;

case 2:showGoods();

break;

case 3: saveGoodsfile();

savebuyGoodsFile();

exit(0);

break;

case 4:eraseGoodsFile();

break;

case 5:modifyGoods();

break;

case 6:purchaseGoods();

break;

case 7:showbuygoods();

break;

case 8:sellbuygoods();

break;

default:cout<<"您的输入有误!请重新输入。"<getSellID()<<"\t"<getnumber()<<"\t"<getname()<<"\t"<getprice()

<<"\t"<getgoodsamount()<<"\t"<gettotalmoney()<<"\t"<<

itera->getTime()<>h;

if (h=='W')

 

menu();

else 

cout<<"您的输入有误,请重新输入:"<getSellID()<<"\t"<getnumber()<<"\t"<getname()<<"\t"<getprice()

<<"\t"<getgoodsamount()<<"\t"<gettotalmoney()<<"\t"<getTime()<>nsID>>nnum>>nnam>>npri>>nga>>ntm>>ntim>>ntim1;

ntim.append(ntim1);

buygoodslist.push_back(BuyGoods(nsID,nnum,nnam,npri,nga,ntm,ntim));

}

}

 
//查看货物信息函数
void BuyGoods::purchaseGoods()

{

system("cls");

cout<<"商品信息"<getnumber()<<"\t"<getname()<<"\t\t"<getprice()<>z;

if (z>=0&&z<=goodslist.size())

k=1;

else

cout<<"您的输入有误,请重新输入..."<getnumber())

{

nam=iter->getname();

pri=iter->getprice();

break;

}

 

cout<<"请输入您要购买的数量:"<>ga;

sID=buygoodslist.size()+1;

tim=setTime();

buygoodslist.push_back(BuyGoods(sID,z,nam,pri,ga,pri*ga,tim));

cout<<"购买"<getnumber()<<"\t"<getname()<<"\t"<getprice()

<<"\t"<getgoodsamount()<<"\t"<gettotalmoney()<>z;

if (z>=0&&z<=goodslist.size())

k=1;

else

cout<<"您的输入有误,请重新输入..."<getnumber())

{

sID=itera->getSellID();

nam=itera->getname();

pri=itera->getprice();

nga=itera->getgoodsamount();

tim=itera->getTime();

 

cout<<"请输入您要购买的数量:"<>ga;

if(ga>0&&ga<=nga)

l=1;

else

cout<<"您的输入有误..."<


你可能感兴趣的:(应用程序,控制台)