C++超市管理系统(直接可以运行)

C++超市管理系统(直接可以运行)C 超市管理系统心得写这个东西最重要环节不是上手去实现代码 而是再此之前的整体的系统分析 分析整个系统所需要定义的类 以及不同类实现的功能 以及类与类之间的消息的传递 最重要的还有模块之间的解耦 为后续的迭代 二次开发打好基础 由于还有两天就开学了 所以本人直接就略过最重要的一步系统分析 直接开始敲了 边敲边考虑类的设计 这样导致的结果就是类所属功能的划分不够明确 部分代码冗余 以及为了实现老师作业中的几个继承组合的要求 导致整个系统有些地方并不是十分合理 本系统只是实现了最基本的功能模块 且进货



C++超市管理系统

心得

写这个东西最重要环节不是上手去实现代码,而是再此之前的整体的系统分析,分析整个系统所需要定义的类,以及不同类实现的功能,以及类与类之间的消息的传递。最重要的还有模块之间的解耦,为后续的迭代,二次开发打好基础。

由于还有两天就开学了,所以本人直接就略过最重要的一步系统分析,直接开始敲了,边敲边考虑类的设计,这样导致的结果就是类所属功能的划分不够明确,部分代码冗余,以及为了实现老师作业中的几个继承组合的要求,导致整个系统有些地方并不是十分合理,本系统只是实现了最基本的功能模块,且进货功能和账单功能并未做出单独的类去进行统一管理,但思想都大差不差,想要在此基础之上进行改进,增加模块的小伙伴可以自行添加修改。

简介:环境 :codeblocks 20.03


我将会按照代码从上到下的顺序解析代码……

开始写了个getTime()方法,是卖货产生流水的获取本地时间的方法。一个员工类,继承出一个管理员,管理员可以创建新用户。商品基类,继承出食品类,饮品类,化妆品类,此处我认为着实牵强(老师要求),各自特有的实现方法我没有用,直接输出字符串了。紧接着就是管理商品的商品管理类(销售员),继承出商品管理类(管理员);销售员权限低,只能进行售货和查看,管理员除此之外还可以进行查看流水账单,进行商品补充进货,还可以创建新的账户。最后就是一个超市类,它持有一个员工类指针,还有一个商品管理类指针。大概一两天差不多OK!

注意

有些文件操作写在了超市类的析构函数中,若不是正常退出系统,会导致文件与内存数据之间存在差异(可以改但是我懒…),还有就是本系统涉及到三个txt文件,Users.txt(账户信息),Goods.txt(仓库商品),Bills.txt(流水账单),没有User.txt就登录不了了,自己建一个(同目录即可)每行中间三个空位\t,末尾位\n;
在这里插入图片描述

展示

在这里插入图片描述
在这里插入图片描述

#include  
     #include  
     #include  
     #include  
    //包含getch(); using namespace std; string getTime() { 
    time_t timep; time (&timep); char tmp[64]; strftime(tmp, sizeof(tmp), "%Y-%m-%d %H:%M:%S",localtime(&timep) ); return tmp; } //普通员工类 class LogUser { 
    protected: string name; //员工姓名 string userId; //员工唯一ID(账号) string userPassword; //登录密码 string userLevel; //权限(管理员、售货员) public: LogUser(string n,string ui,string up,string ul); friend ostream& operator<<(ostream& out,LogUser& obj); friend istream& operator>>(istream& in,LogUser& obj); // void readFile(istream & in); string getName(); string getUserId(); string getUserPassword(); string getUserLevel(); }; LogUser::LogUser(string n,string ui,string up,string ul):name(n),userId(ui),userPassword(up),userLevel(ul) { 
    } ostream& operator<<(ostream& out,LogUser& obj) { 
    out<<obj.getName()<<obj.getUserId()<<obj.getUserPassword()<<obj.getUserLevel(); } istream& operator>>(istream& in,LogUser& obj) { 
    in>>obj.name>>obj.userId>>obj.userPassword>>obj.userLevel; } //void LogUser::readFile(istream & in) //{ 
    // in>>namename>>userId>>userPassword; //} //void LogUser::writeFile(ostream & out) //{ 
    // out< 
   
     name<<"\t"< 
    
      userId<<"\t"< 
     
       userPassword<<'\n'; 
      
     
    //} string LogUser::getName() { 
    return name; } string LogUser::getUserId() { 
    return userId; } string LogUser::getUserPassword() { 
    return userPassword; } string LogUser::getUserLevel() { 
    return userLevel; } //管理员类 class LogAdministrator : public LogUser { 
    protected: public: LogAdministrator(string n,string ui,string up,string ul); void addUser(); //管理员特有的创建员工账号功能 }; LogAdministrator::LogAdministrator(string n,string ui,string up,string ul):LogUser( n, ui,up, ul) { 
    } void LogAdministrator::addUser() { 
    ofstream out("Users.txt",ios::app); if(!out) { 
    cout<<"Users.txt error!"<<endl; abort(); } else { 
    system("cls"); string name,userId,userPassword,userLevel; cout<<"输入员工信息:"<<endl; cout<<"姓名:"; cin>>name; cout<<"ID:"; cin>>userId; cout<<"密码:"; cin>>userPassword; cout<<"权限:"; cin>>userLevel; out<<name<<"\t"<<userId<<"\t"<<userPassword<<"\t"<<userLevel<<"\n"; out.close(); } } //商品基类 class Goods { 
    protected: int id; //商品唯一编号 string name; //商品名称 double purchasingPrice; //进货价格 double price; //售价 int repertory; //库存 string producer; //生厂商 string brand; //品牌 string type; //类型 public: Goods(int i,string n,double pP,double p,int r,string pr,string b,string t); virtual void introduce(); //产品说明 void show(); int getId(); string getName(); double getPurchasingPrice(); double getPrice(); int getRepertory(); string getProducer(); string getBrand(); string getType(); void setRepertory(int r); }; Goods::Goods(int i,string n,double pP,double p,int r,string pr,string b,string t):name(n),producer(pr),brand(b),type(t) { 
    id=i; purchasingPrice = pP; price = p; repertory = r; } void Goods ::introduce() { 
    cout<<"商品基类!"<<endl; } void Goods :: show() { 
    cout<<"商品名称:"<<name<<endl<<"进货价格:"<<purchasingPrice<<"\t\t"<<"售价:"<<price<<endl<<"库存:"<<"\t"<<repertory<<"生厂商:"<<endl<<producer<<"品牌:"<<"\t"<<brand<<"类型:"<<type<<endl; } int Goods :: getId() { 
    return id; } string Goods :: getName() { 
    return name; } double Goods :: getPurchasingPrice() { 
    return purchasingPrice; } double Goods :: getPrice() { 
    return price; } int Goods :: getRepertory() { 
    return repertory; } string Goods :: getProducer() { 
    return producer; } string Goods :: getBrand() { 
    return brand; } string Goods :: getType() { 
    return type; } void Goods :: setRepertory(int r) { 
    repertory = r; } //食品类 class Food: public Goods { 
    protected: public: Food(int i,string n,double pP,double p,int r,string pr,string b,string t); void introduce(); }; Food::Food(int i,string n,double pP,double p,int r,string pr,string b,string t):Goods(i,n,pP,p,r,pr,b,t) { 
    } void Food::introduce() { 
    cout<<"食品类!"<<endl; } //饮料类 class Drink: public Goods { 
    protected: public: Drink(int i,string n,double pP,double p,int r,string pr,string b,string t); void introduce(); }; Drink::Drink(int i,string n,double pP,double p,int r,string pr,string b,string t):Goods(i,n,pP,p,r,pr,b,t) { 
    } void Drink::introduce() { 
    cout<<"饮料类!"<<endl; } //化妆品类 class Cosmetics: public Goods { 
    protected: public: Cosmetics(int i,string n,double pP,double p,int r,string pr,string b,string t); void introduce(); }; Cosmetics::Cosmetics(int i,string n,double pP,double p,int r,string pr,string b,string t):Goods(i,n,pP,p,r,pr,b,t) { 
    } void Cosmetics::introduce() { 
    cout<<"化妆品类!"<<endl; } //商品管理类(售货员) class GoodsManage_Employee { 
    protected: vector<Goods*> goods_Vector; vector<Goods*> shopping_Cart; vector<int> shopping_Cart_Sums; public: GoodsManage_Employee(); ~GoodsManage_Employee(); void showAll(); //显示全部商品信息 void showByIndex(int index); //显示单个产品信息 void sell(LogUser* log); //出售 virtual int showMenu(LogUser* log); //售货员视角菜单 }; GoodsManage_Employee::~GoodsManage_Employee() { 
    ofstream out("Goods.txt"); if(!out) { 
    cout<<"Goods.txt error!"<<endl; abort(); } else { 
    int n = goods_Vector.size(); for(int i = 0; i<n; i++) { 
    out<<goods_Vector[i]->getId()<<"\t"<<goods_Vector[i]->getName()<<"\t"<<goods_Vector[i]->getPurchasingPrice()<<"\t"<<goods_Vector[i]->getPrice()<<"\t"<<goods_Vector[i]->getRepertory()<<"\t"<<goods_Vector[i]->getProducer()<<"\t"<<goods_Vector[i]->getBrand()<<"\t"<<goods_Vector[i]->getType()<<"\n"; } out.close(); } } GoodsManage_Employee::GoodsManage_Employee() { 
    ifstream in("Goods.txt"); if(!in) { 
    cout<<"Goods.txt error!"<<endl; abort(); } else { 
    int id,repertory; string name, producer,brand,type; double purchasingPrice,price; while(!in.eof()) { 
    Goods *temp; in>>id>>name>>purchasingPrice>>price>>repertory>>producer>>brand>>type; if(type=="食品类") { 
    temp= new Food(id,name,purchasingPrice,price,repertory,producer,brand,type); } else if(type=="饮料类") { 
    temp = new Drink(id,name,purchasingPrice,price,repertory,producer,brand,type); } else if(type=="化妆品类") { 
    temp = new Cosmetics(id,name,purchasingPrice,price,repertory,producer,brand,type); } goods_Vector.push_back(temp); } goods_Vector.pop_back(); in.close(); } } void GoodsManage_Employee :: showAll() { 
    int n = goods_Vector.size(); system("cls"); cout<<"ID\t"<<"商品名称\t"<<"进货价格\t"<<"售价\t"<<"库存\t"<<"生产商\t"<<"品牌\t"<<"类型"<<endl; for(int i = 0; i<n; i++) { 
    cout<<goods_Vector[i]->getId()<<"\t"<<goods_Vector[i]->getName()<<"\t\t"<<goods_Vector[i]->getPurchasingPrice()<<"\t\t"<<goods_Vector[i]->getPrice()<<"\t"<<goods_Vector[i]->getRepertory()<<"\t"<<goods_Vector[i]->getProducer()<<"\t"<<goods_Vector[i]->getBrand()<<"\t"<<goods_Vector[i]->getType()<<endl; } cout<<"选择ID查看商品详细信息!输入0退出!"<<endl; int _p; cin>>_p; while(_p!=0) { 
    showByIndex(_p); cin>>_p; } } void GoodsManage_Employee :: showByIndex(int index) { 
    int n = goods_Vector.size(),i; for(i = 0; i<n; i++) { 
    if(goods_Vector[i]->getId()==index) { 
    goods_Vector[i]->show(); cout<<endl; break; } } if(i==n) cout<<"未查询到对应商品信息!请输入正确的ID!"<<endl; } void GoodsManage_Employee :: sell(LogUser* log) { 
    while(1) { 
    system("cls"); int n = goods_Vector.size(); cout<<"ID\t"<<"商品名称\t"<<"进货价格\t"<<"售价\t"<<"库存\t"<<"生产商\t"<<"品牌\t"<<"类型"<<endl; for(int i = 0; i<n; i++) { 
    cout<<goods_Vector[i]->getId()<<"\t"<<goods_Vector[i]->getName()<<"\t\t"<<goods_Vector[i]->getPurchasingPrice()<<"\t\t"<<goods_Vector[i]->getPrice()<<"\t"<<goods_Vector[i]->getRepertory()<<"\t"<<goods_Vector[i]->getProducer()<<"\t"<<goods_Vector[i]->getBrand()<<"\t"<<goods_Vector[i]->getType()<<endl; } double sum=0; cout<<"购物车:\t\t\t\t\t总金额:"; if(shopping_Cart.size()==0) { 
    cout<<sum<<endl<<"啥也没有啊!赶紧购物吧!"<<endl; } else { 
    int m = shopping_Cart.size(); for(int i = 0; i<m; i++) { 
    sum += shopping_Cart[i]->getPrice()*shopping_Cart_Sums[i]; } cout<<sum<<endl; cout<<"ID\t"<<"商品名称\t"<<"售价\t"<<"购买数量\t"<<"总价\t"<<endl; for(int i = 0; i<m; i++) { 
    cout<<shopping_Cart[i]->getId()<<"\t"<<shopping_Cart[i]->getName()<<"\t\t"<<shopping_Cart[i]->getPrice()<<"\t"<<shopping_Cart_Sums[i]<<"\t\t"<<shopping_Cart_Sums[i]*shopping_Cart[i]->getPrice()<<endl; } cout<<endl; } int index,amount; cout<<"选择ID...(输入0退出)"<<endl; cin>>index; if(index==0) break; if(index<0||index>n) { 
    cout<<"ID错误!"<<endl<<"退出中"; for(int i=0; i<6; i++) { 
    cout<<"."; Sleep(250); } break; } cout<<endl<<"输入购买输入数量..."<<endl; cin>>amount; for(int i = 0; i<n; i++) { 
    if(goods_Vector[i]->getId()==index) { 
    if(amount>goods_Vector[i]->getRepertory()) { 
    cout<<"库存不足!请输入正确数量"; for(int j=0; j<6; j++) { 
    cout<<"."; Sleep(250); } break; } goods_Vector[i]->setRepertory(goods_Vector[i]->getRepertory() - amount); int m = shopping_Cart.size(),mm=0; for( mm = 0; mm<m; mm++) { 
    if(shopping_Cart[mm]->getId()==goods_Vector[i]->getId()) { 
    shopping_Cart_Sums[mm]+=amount; break; } } if(mm==m) { 
    shopping_Cart.push_back(goods_Vector[i]); shopping_Cart_Sums.push_back(amount); } for(int i=0; i<6; i++) { 
    cout<<"."; Sleep(250); } cout<<endl<<"购买成功!"; Sleep(1000); break; } } } ofstream out("Bills.txt",ios::app); if(!out) { 
    cout<<"Bills.txt error!"<<endl; abort(); } else { 
    int m = shopping_Cart.size(); for(int i = 0; i<m; i++) { 
    out<<getTime()<<"\t"<<log->getName()<<"\t"<<shopping_Cart[i]->getId()<<"\t"<<shopping_Cart_Sums[i]<<"\n"; } } } int GoodsManage_Employee :: showMenu(LogUser* log) { 
    for(int i=0; i<24; i++) cout<<"●"; puts(""); cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(16)<<left<<"●"<<setw(16)<<"1.查看商品信息"<<setw(16)<<right<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(16)<<left<<"●"<<setw(16)<<"2.购买商品"<<setw(16)<<right<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(16)<<left<<"●"<<setw(16)<<"0.退出系统"<<setw(16)<<right<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; for(int i=0; i<24; i++) cout<<"●"; puts(""); cout<<"请输入执行操作的编号:"<<endl; int choice; cin>>choice; if(choice==1) { 
    showAll(); } else if(choice==2) { 
    sell(log); } else if(choice==0) { 
    } else { 
    cout<<"输入错误,请重新输入..."<<endl; } return choice; } //商品管理类(管理员) class GoodsManage_Administrator : public GoodsManage_Employee { 
    protected: public: GoodsManage_Administrator(); ~GoodsManage_Administrator(); void showBills(); //显示账单 void purchaseGoods(); //进货 void addUser(LogAdministrator* log); //增加账户 int showMenu(LogUser* log); }; GoodsManage_Administrator :: GoodsManage_Administrator() { 
    } GoodsManage_Administrator :: ~GoodsManage_Administrator() { 
    } void GoodsManage_Administrator :: showBills() { 
    ifstream in("Bills.txt"); if(!in) { 
    cout<<"Users.txt error!"<<endl; abort(); } else { 
    system("cls"); cout<<"日期\t\t\t"<<"售货员\t"<<"商品ID\t"<<"数量\t"<<endl; while(!in.eof()) { 
    string time1,time2,name; int type,sum; in >>time1>>time2>>name>>type>>sum; if(time1=="") break; cout<<time1<<" "<<time2<<"\t"<<name<<"\t"<<type<<"\t"<<sum<<endl; } in.close(); } cout<<"按任意键退出!"; getch(); } void GoodsManage_Administrator :: purchaseGoods() { 
    while(1) { 
    system("cls"); int n = goods_Vector.size(); cout<<"ID\t"<<"商品名称\t"<<"进货价格\t"<<"售价\t"<<"库存\t"<<"生产商\t"<<"品牌\t"<<"类型"<<endl; for(int i = 0; i<n; i++) { 
    cout<<goods_Vector[i]->getId()<<"\t"<<goods_Vector[i]->getName()<<"\t\t"<<goods_Vector[i]->getPurchasingPrice()<<"\t\t"<<goods_Vector[i]->getPrice()<<"\t"<<goods_Vector[i]->getRepertory()<<"\t"<<goods_Vector[i]->getProducer()<<"\t"<<goods_Vector[i]->getBrand()<<"\t"<<goods_Vector[i]->getType()<<endl; } cout<<"退出:0\t增加新产品:1\t\t增加已有产品数量:2\n"; int _P; cin>>_P; if(_P==0) { 
    cout<<"退出中"; for(int i=0; i<6; i++) { 
    cout<<"."; Sleep(250); } break; } else if(_P==1) { 
    int m = goods_Vector.size(); cout<<"1.食品类\t2.饮料类\t3.化妆品类"<<endl; int c; cin>>c; string name,producer,brand,type; double purchasingPrice,price; int repertory; if(c==1) { 
    cout<<"商品名称:"; cin>>name; cout<<"进货价格:"; cin>>purchasingPrice; cout<<"售价:"; cin>>price; cout<<"库存:"; cin>>repertory; cout<<"生厂商:"; cin>>producer; cout<<"品牌:"; cin>>brand; goods_Vector.push_back(new Food(m+1,name,purchasingPrice,price,repertory,producer,brand,"食品类")); } else if(c==2) { 
    cout<<"商品名称:"; cin>>name; cout<<"进货价格:"; cin>>purchasingPrice; cout<<"售价:"; cin>>price; cout<<"库存:"; cin>>repertory; cout<<"生厂商:"; cin>>producer; cout<<"品牌:"; cin>>brand; goods_Vector.push_back(new Drink(m+1,name,purchasingPrice,price,repertory,producer,brand,"饮料类")); } else if(c==3) { 
    cout<<"商品名称:"; cin>>name; cout<<"进货价格:"; cin>>purchasingPrice; cout<<"售价:"; cin>>price; cout<<"库存:"; cin>>repertory; cout<<"生厂商:"; cin>>producer; cout<<"品牌:"; cin>>brand; goods_Vector.push_back(new Cosmetics(m+1,name,purchasingPrice,price,repertory,producer,brand,"化妆品类")); } else { 
    cout<<"输入错误"; for(int i=0; i<6; i++) { 
    cout<<"."; Sleep(250); } } } else if(_P==2) { 
    int ID; cout<<"商品ID:"; cin>>ID; if(ID<=0||ID>goods_Vector.size()) { 
    cout<<"ID非法,退出中"; for(int i=0; i<6; i++) { 
    cout<<"."; Sleep(250); } } cout<<"输入进货数量:"; int sum; cin>>sum; goods_Vector[ID-1]->setRepertory(goods_Vector[ID-1]->getRepertory() + sum); cout<<"加入中"; for(int i=0; i<6; i++) { 
    cout<<"."; Sleep(250); } cout<<endl<<"加入成功"; Sleep(1000); } else { 
    cout<<"输入错误...\n退出中"; for(int i=0; i<6; i++) { 
    cout<<"."; Sleep(250); } } } } void GoodsManage_Administrator ::addUser(LogAdministrator* log) { 
    log->addUser(); } int GoodsManage_Administrator :: showMenu(LogUser* log) { 
    for(int i=0; i<24; i++) cout<<"●"; puts(""); cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(16)<<left<<"●"<<setw(16)<<"1.查看商品信息"<<setw(16)<<right<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(16)<<left<<"●"<<setw(16)<<"2.购买商品"<<setw(16)<<right<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(16)<<left<<"●"<<setw(16)<<"3.账单"<<setw(16)<<right<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(16)<<left<<"●"<<setw(16)<<"4.进货"<<setw(16)<<right<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(16)<<left<<"●"<<setw(16)<<"5.创建账户"<<setw(16)<<right<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(16)<<left<<"●"<<setw(16)<<"0.退出系统"<<setw(16)<<right<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; for(int i=0; i<24; i++) cout<<"●"; puts(""); cout<<"请输入执行操作的编号:"<<endl; int choice; cin>>choice; if(choice==1) { 
    showAll(); } else if(choice==2) { 
    sell(log); } else if(choice==3) { 
    showBills(); } else if(choice==4) { 
    purchaseGoods(); } else if(choice==5) { 
    addUser((LogAdministrator*)log); } else if(choice==0) { 
    } else { 
    cout<<"输入错误,请重新输入..."<<endl; } return choice; } //超市类 class Supermarket { 
    private: LogUser *user = nullptr; GoodsManage_Employee *goodsManage = nullptr; GoodsManage_Employee* getGoodsManage(); void login(); void Welcome(); public: Supermarket(); ~Supermarket(); void showMenu(); }; GoodsManage_Employee* Supermarket::getGoodsManage() { 
    if(user->getUserLevel()=="售货员") { 
    return new GoodsManage_Employee(); } else if(user->getUserLevel()=="管理员") { 
    return new GoodsManage_Administrator(); } } void Supermarket::login() { 
    ifstream in; string Log_Id,Log_Password; string name,userId,userPassword,userLevel; while(user==nullptr) { 
    in.open("Users.txt"); system("cls"); for(int i=0; i<24; i++) cout<<"●"; puts(""); cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(16)<<left<<"●"<<setw(16)<<"欢迎来到超市管理系统"<<setw(12)<<right<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(16)<<left<<"●"<<setw(16)<<"请登录......"<<setw(16)<<right<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; for(int i=0; i<24; i++) cout<<"●"; puts(""); cout<<"账号:"; cin>>Log_Id; cout<<"密码:"; cin>>Log_Password; if(!in) { 
    cout<<"Users.txt error!"<<endl; abort(); } else { 
    while(!in.eof()) { 
    in >>name>>userId>>userPassword>>userLevel; if(Log_Id==userId&&Log_Password==userPassword) { 
    if(userLevel=="管理员") { 
    user = new LogAdministrator(name,userId,userPassword,userLevel); } else { 
    user = new LogUser(name,userId,userPassword,userLevel); } break; } } in.close(); } if(user==nullptr) { 
    cout<<"账号或密码错误!重新登录"; for(int i=0; i<6; i++) { 
    cout<<"."; Sleep(250); } } } } void Supermarket :: Welcome() { 
    system("cls"); for(int i=0; i<24; i++) cout<<"●"; puts(""); cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(10)<<left<<"●"<<setw(2)<<"欢迎"<<user->getName()<<"!"<<setw(27)<<right<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(10)<<left<<"●"<<setw(2)<<"正在进入超市管理系统"<<"(权限:"<<user->getUserLevel()<<")"<<setw(5)<<right<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; cout<<setw(46)<<left<<"●"<<"●"<<endl; for(int i=0; i<24; i++) cout<<"●"; puts(""); cout<<"加载数据中"; for(int i=0; i<6; i++) { 
    cout<<"."; Sleep(250); } } Supermarket::Supermarket() { 
    login(); goodsManage = getGoodsManage(); Welcome(); } Supermarket::~Supermarket() { 
    delete user; delete goodsManage; } void Supermarket :: showMenu() { 
    while(1) { 
    system("cls"); cout<<"用户:"<<user->getName()<<"\t\t\t "<<"权限:"<<user->getUserLevel()<<endl; if(goodsManage->showMenu(user)==0) break; } } int main() { 
    Supermarket s; s.showMenu(); cout<<getTime(); return 0; } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212739.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午7:22
下一篇 2026年3月18日 下午7:23


相关推荐

  • FastJson对BigDecimal保留两位小数(valueFilter)「建议收藏」

    FastJson对BigDecimal保留两位小数(valueFilter)「建议收藏」2019独角兽企业重金招聘Python工程师标准>>>…

    2026年2月21日
    9
  • 响应式布局的实现方法

    响应式布局的实现方法响应式布局可以让网站同时适配不同分辨率和不同的手机端 让客户有更好的体验 一共有以下五种方法实现响应式布局 百分比布局 2 媒体查询布局 3 rem 响应式布局 4 vw 响应式布局 5 flex 弹性布局 1 百分比布局 百分比布局很简单 就是对盒子的属性设置百分比来适配不同的屏幕 媒体查询布局 媒体查询就是对不同分辨率的屏幕编写不同的 css 样式

    2026年3月17日
    2
  • PID算法详解[通俗易懂]

    PID算法详解[通俗易懂]PID算法是一种具有预见性的控制算法,其核心思想是:1>.PID算法不但考虑控制对象的当前状态值(现在状态),而且还考虑控制对象过去一段时间的状态值(历史状态)和最近一段时间的状态值变化(预期),由这3方面共同决定当前的输出控制信号;2>.PID控制算法的运算结果是一个数,利用这个数来控制被控对象在多种工作状态(比如加热器的多种功率,阀门的多种开度等)工作,一般输出形式为PWM,基本上满足了按需输出控制信号,根据情况随时改变输出的目的。比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例

    2026年4月14日
    3
  • mapper怎么用_当前余额和通用余额

    mapper怎么用_当前余额和通用余额通用Mapper是一个可以实现任意MyBatis通用方法的框架,提供了常规的增删改查操作以及Example相关的单表操作。解决MyBatis使用中90%的基本操作,使用它可以很方便的进行开发,可以节省开发人员大量的时间。…

    2022年10月6日
    4
  • db2codepage作用_dbcc checktable

    db2codepage作用_dbcc checktable1、db2变量查看  db2set-all  (connecttodbanme)getdbcfg  db2pd-osinfo这个命令很强大哦  2、db2c变量的设置用命令  db2set变量=value  可以参考一下:  客户端:  db2codepage=1386(简体中文)  db2country

    2025年11月22日
    4
  • DHCP 协议(二)「建议收藏」

    DHCP 协议(二)「建议收藏」DHCP的全名叫什么?(DynamicHostconfigurationProtocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作;主要有两个用途:(1)用于内部网或网络服务供应商自动分配IP地址;(2)给用户用于内部网管理员作为对所有计算机作中央管理的手段。功能简述:它主要是通过客户端发送广播数据包给整个物理网段内的所有主机,若局域网内有DHCP服务器时,才会…

    2022年5月23日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号