sinat_28782331
陌湘萘
2016-02-22 10:42
采纳率: 77.8%
浏览 5.6k

“超市商品管理系统设计”

“超市商品管理系统设计”
A.问题描述
超市中商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包含商品名称、价格、库存量和生产厂家、品牌等信息。
主要完成对商品的销售、统计和简单管理。
B.功能要求
(1)销售功能。购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品的相关信息。如果有库存量,输入购买的数量,进行相应计算。如果库存量不够,给出提示信息,结束购买。
(2)商品简单管理功能。
添加功能:主要完成商品信息的添加。
查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该记录不存在!”。
修改功能:可根据查询结果对相应的记录进行修改。
删除功能:主要完成商品信息的删除。先输入商品类别,再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在”。
(3)统计功能。
输出当前库存中所有商品的总数及详细信息;可按商品的价格、库存量、生产厂家进行统计,输出统计信息时,要按从大到小进行排序。
(7)商品信息存盘:将当前程序中的商品信息存入文件中。
(8)读出信息:从文件中将商品信息读入程序。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • sinat_28782331
    陌湘萘 2016-02-27 06:21

    修改版,现在主要就是文件的读取有问题。

     /*
    A.问题描述
    超市中商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包含商品名称、价格、库存量和生产厂家、品牌等信息。
    主要完成对商品的销售、统计和简单管理。
    B.功能要求
    (1)销售功能。购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品的相关信息。如果有库存量,输入购买的数量,进行相应计算。如果库存量不够,给出提示信息,结束购买。
    (2)商品简单管理功能。
    添加功能:主要完成商品信息的添加。
    查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该记录不存在!”。
    修改功能:可根据查询结果对相应的记录进行修改。
    删除功能:主要完成商品信息的删除。先输入商品类别,再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在”。
    (3)统计功能。
    输出当前库存中所有商品的总数及详细信息;可按商品的价格、库存量、生产厂家进行统计,输出统计信息时,要按从大到小进行排序。
    (7)商品信息存盘:将当前程序中的商品信息存入文件中。
    (8)读出信息:从文件中将商品信息读入程序。
    */
    //价格
    # include <iostream>
    # include <fstream>
    # include <string.h>
    #include <conio.h>//用getch();
    #include<windows.h>
    using namespace std;
    
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌commodity类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    class commodity
    {
    public:
     char type[20];//商品类型
     char name[20];//商品名称;
     char factor[20];//生产厂家;
     double price;//价格;
     int amount;//数量;
     int sum;
     commodity * Next;
     void Input()
     {
      cout<<"\t\t请输入商品的类型:";cin>>type;
      cout<<"\t\t请输入商品的名称:";  cin>>name;
      cout<<"\t\t请输入商品生产厂家"; cin>>factor;
      cout<<"\t\t请输入商品的价格:";  cin>>price;
      cout<<"\t\t请输入商品的库存量:"; cin>>amount;
      sum=price*amount;
     }
     void ReadFile(istream & in)
     {
      in>>type>>name>>price>>amount>>factor>>sum;
     }
     void Show()
     {
      cout<<"商品类型"<<type<<endl
          <<"商品名"<<name<<endl
          <<"价格:"<<price<<endl
          <<"商品库存量:"<<amount<<endl
          <<"生产厂家:"<<factor<<endl
          <<"预计总利润:"<<sum
          <<endl<<endl<<endl;
     }
    };
    
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌Commoditymassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    class Commoditymassage
    {
    public:
     Commoditymassage();
     ~Commoditymassage();
     void ShowMenu();
     void Find();
     void Save();
     void ModifyItem();
     void RemoveItem();
     void Swap(commodity *,commodity *);
     void Sort();
     void Sale();
     int ListCount();
     void Display()
     {
      for(commodity * p=Head->Next;p!=End;p=p->Next)
       p->Show();
      cout<<"输入任意字符!继续……";
      getch();
     }
     void AddItem()//添加商品
     {
      End->Input();
      End->Next=new commodity;
      End=End->Next;
      cout<<"添加成功!"<<endl;
      cout<<"输入任意字符!继续……";
      getch();
     }
    private:
     commodity * Head,* End;
     ifstream in1,in2,in3,in4;
     ofstream out1,out2,out3,out4;
     commodity *FindItem(char * name)
     {
      for(commodity * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
       if(!strcmp(p->Next->name,name))return p;
       return NULL;
     }
     commodity *FindFactor(char * factor)
     {
      for(commodity * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
       if(!strcmp(p->Next->factor,factor))return p;
       return NULL;
     }
     commodity *FindType(char * type)
     {
      for(commodity * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
        if(!strcmp(p->Next->type,type))return p;
        return NULL;
     }
    };
    
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    Commoditymassage::Commoditymassage()
    {
     Head=new commodity;
     Head->Next=new commodity;
     End=Head->Next;
     in1.open("food.txt");
     if(!in1)
      cout<<"无商品信息。请先输入。"<<endl;
     else
     {
      while(!in1.eof())
      {
       End->ReadFile(in1);
       if(End->name[0]=='\0')break;
       End->Next=new commodity;
       End=End->Next;
      }
      in1.close();
      cout<<"\t\t读取商品信息成功!"<<endl;
     }
      in2.open("cosmetic.txt");
      if(!in2)
      cout<<"无商品信息。请先输入。"<<endl;
      else
     {
      while(!in2.eof())
      {
       End->ReadFile(in2);
       if(End->name[0]=='\0')break;
       End->Next=new commodity;
       End=End->Next;
      }
      in2.close();
      cout<<"\t\t读取商品信息成功!"<<endl;
      }
      in3.open("dailyuse.txt");
      if(!in3)
      cout<<"无商品信息。请先输入。"<<endl;
     else
     {
      while(!in3.eof())
      {
       End->ReadFile(in3);
       if(End->name[0]=='\0')break;
       End->Next=new commodity;
       End=End->Next;
      }
      in3.close();
      cout<<"\t\t读取商品信息成功!"<<endl;
      }
      in4.open("drink.txt");
      if(!in4)
      cout<<"无商品信息。请先输入。"<<endl;
     else
     {
      while(!in4.eof())
      {
       End->ReadFile(in4);
       if(End->name[0]=='\0')break;
       End->Next=new commodity;
       End=End->Next;
      }
      in4.close();
      cout<<"\t\t读取商品信息成功!"<<endl;
     }
    }
    
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    Commoditymassage::~Commoditymassage()
    {
     Save();
     for(commodity * temp;Head->Next!=End;)
     {
      temp=Head->Next;
      Head->Next=Head->Next->Next;
      delete temp;
     }
     delete Head,End;
    }
    
    
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    void Commoditymassage::ShowMenu()
    {
      cout<<"〓〓〓〓〓〓〓〓〓〓  ☆   超 市 商 品 管 理 系  统     ☆  〓〓〓〓〓〓〓〓〓〓"<<endl;
      cout<<"〓〓〓〓〓〓〓★★★★★         ★★★★★★★         ★★★★★〓〓〓〓〓〓〓"<<endl;
      cout<<"〓〓〓〓〓〓〓〓〓★  ☆          1.显示超市商品        ☆  ★〓〓〓〓〓〓〓〓〓"<<endl;//
      cout<<"〓〓〓〓〓〓〓〓〓★  ☆          2.添加超市商品        ☆  ★〓〓〓〓〓〓〓〓〓"<<endl;
      cout<<"〓〓〓〓〓〓〓〓〓★  ☆          3.修改超市商品        ☆  ★〓〓〓〓〓〓〓〓〓"<<endl;
      cout<<"〓〓〓〓〓〓〓〓〓★  ☆          4.删除超市商品        ☆  ★〓〓〓〓〓〓〓〓〓"<<endl;
      cout<<"〓〓〓〓〓〓〓〓〓★  ☆          5.统计超市商品        ☆  ★〓〓〓〓〓〓〓〓〓"<<endl;
      cout<<"〓〓〓〓〓〓〓〓〓★  ☆          6.查找超市商品        ☆  ★〓〓〓〓〓〓〓〓〓"<<endl;
      cout<<"〓〓〓〓〓〓〓〓〓★  ☆          0.安全退出系统        ☆  ★〓〓〓〓〓〓〓〓〓"<<endl;
    
     cout<<"\n\t\t\n\t\t请选择:";
    }
    
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    void Commoditymassage::Find()
    {
     char type[20],name[20] ,factor[20];
     int x;
     commodity * p=NULL;
     cout<<"\n\t\t*********************************\n";
     cout<<"\t\t※ 1.按商品的类别(名称)查找\n\t\t※ 2.按商品生产厂家查找";
     cout<<"\n\t\t*********************************\n\t\t请选择:";
     cin>>x;
     switch(x)
     {
     case 1:
         {
         cout<<"\n\t\t*********************************\n";
         cout<<"\t\t※ 1.food 2.cosmertic 3.dailyuse 4.drink";
         cout<<"\n\t\t*********************************\n请选择:";
         cout<<"\t\t请输入要查找的商品的类型:";cin>>type;
                  if(p=FindType(type))
                   {
                    p->Next->Show();
                    cout<<"输入任意字符!继续……";
                   getch();
    
                   cout<<"\t\t请输入要查找的商品的名称:";cin>>name;
                   if(p=FindItem(name))
                   {
                    p->Next->Show();
                    cout<<"输入任意字符!继续……";
                   getch();
                   }
                  else
                   {
                      cout<<"\t\t没有找到该名称的商品!"<<'\n'<<endl;
                      cout<<"输入任意字符!继续……";
                      getch();
                    }
                  }
                  else
                   {
                      cout<<"\t\t没有找到该类型的商品!"<<'\n'<<endl;
                      cout<<"输入任意字符!继续……";
                      getch();
                    }
    
                   }break;
     case 2:
            {
                   cout<<"\t\t请输入要查找的商品的生产厂家:";cin>>factor;
                    if(p=FindFactor(factor))
                  {
                   p->Next->Show();
                   cout<<"输入任意字符!继续……";
                   getch();
                  }
                    else
                    {
                    cout<<"\t\t没有找到该厂家的商品!"<<'\n'<<endl;
                    cout<<"输入任意字符!继续……";
                    getch();
                     }
                   }break;
              }
    }
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌销售函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌          //好像没用到……
    void Commoditymassage::Sale()
    {
        int amount1;
        double price1,sum;
        commodity * p;
        char name[20];
        cout<<"请选择销售产品(名称)"<<endl;
        cin>>name;
        if(p=FindItem(name))
        {   cout<<"请输入销售量(件)";
            cin>>amount1;
            p->amount=amount1;
            price1=p->price;
            sum=price1 * amount1;
            p->sum=sum;
            cout<<"购买成功!\n";
        }
        else cout<<"库存量不足!请重新输入销售库存量:\n";
    
    }
    
    
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改商品信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    void Commoditymassage::ModifyItem()     //修改商品信息
    {
     char name[20];
     commodity * p=NULL;
     cout<<"\t\t请输入要修改的商品的名称:";cin>>name;
     if(p=FindItem(name))
     {
      cout<<"\t\t已找到商品的信息,请输入新的信息!"<<endl;
      p->Next->Input();
      cout<<"修改成功!"<<endl;
      cout<<"输入任意字符!继续……";
      getch();
     }
     else
     {
      cout<<"\t\t没有找到!"<<endl;
      cout<<"输入任意字符!继续……";
      getch();
     }
    }
    
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    void Commoditymassage::RemoveItem()         // 删除信息
    {
     char name[20];
     commodity * p=NULL,*temp=NULL;
     cout<<"\t\t请输入要删除的商品的名称:"<<endl;cin>>name;
     if(p=FindItem(name))
     {
      temp=p->Next;
      p->Next=p->Next->Next;
      delete temp;
      cout<<"\t\t删除成功!"<<endl;
      cout<<"输入任意字符!继续……";
      getch();
     }
     else
     {
      cout<<"\t\t没有找到!"<<endl;
         cout<<"输入任意字符!继续……";
      getch();
     }
    }
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    void Commoditymassage::Swap(commodity *p1, commodity *p2)//交换两个combox变量的数据域
    {
     commodity *temp=new commodity;
     strcpy(temp->type,p1->type);
     strcpy(temp->name,p1->name);
     strcpy(temp->factor,p1->factor);
     temp->price=p1->price;
     temp->amount=p1->amount;
     temp->sum=p1->sum;
    
     strcpy(p1->type,p2->type);
     strcpy(p1->name,p2->name);
     strcpy(p1->factor,p2->factor);
     p1->price=p2->price;
     p1->amount=p2->amount;
     p1->sum=p2->sum;
    
     strcpy(p2->type,temp->type);
     strcpy(p2->name,temp->name);
     strcpy(p2->factor,temp->factor);
     p2->price=temp->price;
     p2->amount=temp->amount;
     p2->sum=temp->sum;
    }
    
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    int Commoditymassage::ListCount()//统计当前链表的记录总数,返回一个整数
    {
     if(! Head)
      return 0;
     int n=0;
     for(commodity * p=Head->Next;p!=End;p=p->Next)
     {
      n++;
     }
     return n;
    }
    
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    void Commoditymassage::Sort()//对当前链表进行排序
    {
     cout <<"Sorting..."<<endl;
     commodity *p=NULL,*p1=NULL,*k=NULL;
     int n=Commoditymassage::ListCount();
     if(n<2)
      return;
     for(p=Head->Next;p!=End;p=p->Next)
      for(k=p->Next;k!=End;k=k->Next)
      {
       if(p->sum>k->sum)
       {
        Commoditymassage::Swap(p,k);
       }
      }
     cout <<"排序完成!"<<endl;
     getch();
     return;
    }
    
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    void Commoditymassage::Save()
    {
     out1.open("food.txt");
     for(commodity *p1=Head->Next;p1!=End;p1=p1->Next)
     out1<<p1->type<<"\t"<<p1->name<<"\t"<<p1->factor<<"\t"<<p1->price<<"\t"<<p1->amount<<"\t"<<p1->sum<<'\n';
     out1.close();
    
     out2.open("cosmetic.txt");
     for(commodity *p2=Head->Next;p2!=End;p2=p2->Next)
     out2<<p2->type<<"\t"<<p2->name<<"\t"<<p2->factor<<"\t"<<p2->price<<"\t"<<p2->amount<<"\t"<<p2->sum<<'\n';
     out2.close();
    
     out3.open("dailyuse.txt");
     for(commodity *p3=Head->Next;p3!=End;p3=p3->Next)
     out3<<p3->type<<"\t"<<p3->name<<"\t"<<p3->factor<<"\t"<<p3->price<<"\t"<<p3->amount<<"\t"<<p3->sum<<'\n';
     out3.close();
    
     out4.open("drink.txt");
     for(commodity *p4=Head->Next;p4!=End;p4=p4->Next)
     out4<<p4->type<<"\t"<<p4->name<<"\t"<<p4->factor<<"\t"<<p4->price<<"\t"<<p4->amount<<"\t"<<p4->sum<<'\n';
     out4.close();
    }
    
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    int main()
    {
     int x,i=0;
     bool quit=false;
     cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"<<endl;
     for(i=0;i<3;i++)
      cout<<"\t\t◎\t\t\t\t\t\t  ◎"<<endl;
     cout<<"\t\t◎★★★★【  欢迎进入超市商品管理系统  】★★★★◎"<<endl;
     for(i=0;i<3;i++)
      cout<<"\t\t◎\t\t\t\t\t\t  ◎"<<endl;
     cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"<<endl;;
     cout<<"\t\t按任意键开始……";
      getch();
      Commoditymassage Grade; //
     while(!quit)
     {
      system("cls");
      Grade.ShowMenu();
      cin>>x;
      switch(x)
      {
      case 0:quit=true;break;
      case 1:Grade.Display();break;
      case 2:Grade.AddItem();break;
      case 3:Grade.ModifyItem();break;
      case 4:Grade.RemoveItem();break;
      case 5:Grade.Sort();break;
      case 6:Grade.Find();break;
      }
     }
     return 0;
    }
    
    
    点赞 3 评论
  • sinat_28782331
    陌湘萘 2016-02-22 10:49

    Q1
    我在vc中用sstring为什么会报错?
    Q2
    string h;为什么不能用?
    字符串不能用string呢?
    Q3
    这是一个桑心的事儿……
    头文件和其他文件那个,怎么分开来写?
    一直出错……我写了个.h然后还有七八个.cpp,在主函数那个代码里怎么写?
    好桑心

    点赞 评论
  • caozhy

    可以用string啊,但是没有sstring,这是什么东西。
    头文件一般写类的定义和函数的声明,实现放在cpp里面。

    点赞 评论
  • VisualEleven
    Eleven 2016-02-23 05:44

    #include
    using namespace std;

    点赞 评论
  • sinat_28782331
    陌湘萘 2016-02-24 10:59

    网上有份实验报告的,主函数的语句怎么写呢?
    http://m.doc88.com/p-9005929139245.html?st_type=null

    点赞 评论
  • sinat_28782331
    陌湘萘 2016-02-25 13:17

    四个动态链表怎么设置呢?
    贴上筛子代码……
    /*
    A.问题描述
    超市中商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包含商品名称、价格、库存量和生产厂家、品牌等信息。
    主要完成对商品的销售、统计和简单管理。
    B.功能要求
    (1)销售功能。购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品的相关信息。如果有库存量,输入购买的数量,进行相应计算。如果库存量不够,给出提示信息,结束购买。
    (2)商品简单管理功能。
    添加功能:主要完成商品信息的添加。
    查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该记录不存在!”。
    修改功能:可根据查询结果对相应的记录进行修改。
    删除功能:主要完成商品信息的删除。先输入商品类别,再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在”。
    (3)统计功能。
    输出当前库存中所有商品的总数及详细信息;可按商品的价格、库存量、生产厂家进行统计,输出统计信息时,要按从大到小进行排序。
    (7)商品信息存盘:将当前程序中的商品信息存入文件中。
    (8)读出信息:从文件中将商品信息读入程序。
    */
    //价格

    include

    include

    include

    #include //用getch();
    #include
    using namespace std;

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌commodity类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    class commodity
    {
    public:
    char name[20];//商品名称;
    char factor[20];//生产厂家;
    int price;//价格;
    int amount;//数量;
    commodity * Next;
    void Input()
    {
    cout<<"\t\t请输入商品的名称:"; cin>>name;
    cout<<"\t\t请输入商品的价格:"; cin>>price;
    cout<<"\t\t请输入商品的库存量:"; cin>>amount;
    cout<<"\t\t请输入商品生产厂家"; cin>>factor;
    }
    void ReadFile(istream & in)
    {
    in>>name>>price>>amount>>factor;
    }
    void Show()
    {
    cout<<"商品名"<<name<<endl<<"价格:"<<price<<endl
    <<"商品库存量:"<<amount<<"生产厂家:"<<factor<<endl<<endl<<endl;
    }
    };

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌Commoditymassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    class Commoditymassage
    {
    public:
    Commoditymassage1();
    ~Commoditymassage1();
    Commoditymassage2();
    ~Commoditymassage2();
    Commoditymassage3();
    ~Commoditymassage3();
    Commoditymassage4();
    ~Commoditymassage4();
    void ShowMenu();
    void Find();
    void Save();
    void ModifyItem();
    void RemoveItem();
    void Swap(commodity ,commodity *);
    void Sort();
    int ListCount();
    void Display()
    {
    for(commodity * p=Head->Next;p!=End;p=p->Next)
    p->Show();
    cout<<"输入任意字符!继续……";
    getch();
    }
    void AddItem()
    {
    End->Input();
    End->Next=new commodity;
    End=End->Next;
    cout<<"添加成功!"<<endl;
    cout<<"输入任意字符!继续……";
    getch();
    }
    private:
    commodity * Head,
    End;
    ifstream in;
    ofstream out;
    commodity *FindItem(char * name)
    {
    for(commodity * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
    if(!strcmp(p->Next->name,name))return p;
    return NULL;
    }
    commodity *FindFactor(char * factor)
    {
    for(commodity * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
    if(!strcmp(p->Next->factor,factor))return p;
    return NULL;
    }
    };

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    Commoditymassage::Commoditymassage1()
    {
    Head=new commodity;
    Head->Next=new commodity;
    End=Head->Next;
    in.open("food.txt");
    if(!in)
    cout<<"无商品信息。请先输入。"< else
    {
    while(!in.eof())
    {
    End->ReadFile(in);
    if(End->name[0]=='\0')break;
    End->Next=new commodity;
    End=End->Next;
    }
    in.close();
    cout<<"\t\t读取商品信息成功!"<<endl;
    }
    }

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    Commoditymassage::~Commoditymassage1()
    {
    Save();
    for(commodity * temp;Head->Next!=End;)
    {
    temp=Head->Next;
    Head->Next=Head->Next->Next;
    delete temp;
    }
    delete Head,End;
    }

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    Commoditymassage::Commoditymassage2()
    {
    Head=new commodity;
    Head->Next=new commodity;
    End=Head->Next;
    in.open("oosmetic.txt");
    if(!in)
    cout<<"无商品信息。请先输入。"< else
    {
    while(!in.eof())
    {
    End->ReadFile(in);
    if(End->name[0]=='\0')break;
    End->Next=new commodity;
    End=End->Next;
    }
    in.close();
    cout<<"\t\t读取商品信息成功!"<<endl;
    }
    }

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    Commoditymassage::~Commoditymassage2()
    {
    Save();
    for(commodity * temp;Head->Next!=End;)
    {
    temp=Head->Next;
    Head->Next=Head->Next->Next;
    delete temp;
    }
    delete Head,End;
    }

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    Commoditymassage::Commoditymassage3()
    {
    Head=new commodity;
    Head->Next=new commodity;
    End=Head->Next;
    in.open("dailyuse.txt");
    if(!in)
    cout<<"无商品信息。请先输入。"< else
    {
    while(!in.eof())
    {
    End->ReadFile(in);
    if(End->name[0]=='\0')break;
    End->Next=new commodity;
    End=End->Next;
    }
    in.close();
    cout<<"\t\t读取商品信息成功!"< }
    }
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    Commoditymassage::~Commoditymassage3()
    {
    Save();
    for(commodity * temp;Head->Next!=End;)
    {
    temp=Head->Next;
    Head->Next=Head->Next->Next;
    delete temp;
    }
    delete Head,End;
    }

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    Commoditymassage::Commoditymassage4()
    {
    Head=new commodity;
    Head->Next=new commodity;
    End=Head->Next;
    in.open("drink.txt");
    if(!in)
    cout<<"无商品信息。请先输入。"< else
    {
    while(!in.eof())
    {
    End->ReadFile(in);
    if(End->name[0]=='\0')break;
    End->Next=new commodity;
    End=End->Next;
    }
    in.close();
    cout<<"\t\t读取商品信息成功!"<<endl;
    }
    }

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    Commoditymassage::~Commoditymassage4()
    {
    Save();
    for(commodity * temp;Head->Next!=End;)
    {
    temp=Head->Next;
    Head->Next=Head->Next->Next;
    delete temp;
    }
    delete Head,End;
    }

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    void ShowMenu()
    {
    cout<<"〓〓〓〓〓〓〓〓〓〓 ☆ 超 市 商 品 管 理 系 统 ☆ 〓〓〓〓〓〓〓〓〓〓"<<endl;
    cout<<"〓〓〓〓〓〓〓★★★★★ ★★★★★★★ ★★★★★〓〓〓〓〓〓〓"<<endl;
    cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 1.销售超市商品 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;//
    cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 2.添加超市商品 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
    cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 3.修改统计商品 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
    cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 4.删除超市商品 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
    cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 5.统计超市商品 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
    cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 6.查找超市商品 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
    cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 0.安全退出系统 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;

    cout<<"\n\t\t\n\t\t请选择:";
    }

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    void Commoditymassage::Find()
    {
    char name[20] ,factor[20];
    int x;
    commodity * p=NULL;
    cout<<"\n\t\t*********************************\n";
    cout<<"\t\t※ 1.按商品的类别(名称)查找\n\t\t※ 2.按商品生产厂家查找";
    cout<<"\n\t\t*********************************\n请选择:";
    cin>>x;
    switch(x)
    {
    case 1:
    int v;
    cout<<"\n\t\t*********************************\n";
    cout<<"\t\t※ 1.food 2.cosmertic 3.dailyuse 4.drink";
    cout<<"\n\t\t*********************************\n请选择:";
    cin>>v;
    switch(v)
    {
    case 1:
    {
    cout<<"\t\t请输入要查找的商品的名称:";cin>>name;
    if(p=FindItem(name))
    {
    p->Next->Show();
    cout<<"输入任意字符!继续……";
    getch();
    }
    else
    {
    cout<<"\t\t没有找到该名称的商品!"<<'\n'<<endl;
    cout<<"输入任意字符!继续……";
    getch();
    }
    }break;
    case 2:

          case 3:
    
          case 4:
       }
    

    case 2:
    {
    cout<<"\t\t请输入要查找的商品的生产厂家:";cin>>factor;
    if(p=FindFactor(factor))
    {
    p->Next->Show();
    cout<<"输入任意字符!继续……";
    getch();
    }
    else
    {
    cout<<"\t\t没有找到该厂家的商品!"<<'\n'<<endl;
    cout<<"输入任意字符!继续……";
    getch();
    }
    }break;
    }

    }

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改商品信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    void Commoditymassage::ModifyItem() //修改商品信息
    {
    char name[20];
    commodity * p=NULL;
    cout<<"\t\t请输入要修改的商品的名称:";cin>>name;
    if(p=FindItem(name))
    {
    cout<<"\t\t已找到商品的信息,请输入新的信息!"< p->Next->Input();
    cout<<"修改成功!"<<endl;
    cout<<"输入任意字符!继续……";
    getch();
    }
    else
    {
    cout<<"\t\t没有找到!"<<endl;
    cout<<"输入任意字符!继续……";
    getch();
    }
    }

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    void Commoditymassage::RemoveItem() // 删除信息
    {
    char name[20];
    commodity * p=NULL,*temp=NULL;
    cout<<"\t\t请输入要删除的商品的名称:"<>name;
    if(p=FindItem(name))
    {
    temp=p->Next;
    p->Next=p->Next->Next;
    delete temp;
    cout<<"\t\t删除成功!"< cout getch();
    }
    else
    {
    cout cout getch();
    }
    }
    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    void Commoditymassage::Swap(commodity *p1, commodity *p2)//交换两个combox变量的数据域
    {
    commodity *temp=new commodity;
    strcpy(temp->name,p1->name);
    strcpy(temp->Id,p1->Id);
    temp->sale=p1->sale;
    temp->buy=p1->buy;
    temp->sum=p1->sum;

    strcpy(p1->name,p2->name);
    strcpy(p1->Id,p2->Id);
    p1->sale=p2->sale;
    p1->buy=p2->buy;
    p1->sum=p2->sum;

    strcpy(p2->name,temp->name);
    strcpy(p2->Id,temp->Id);
    p2->sale=temp->sale;
    p2->buy=temp->buy;
    p2->sum=temp->sum;
    }

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    int Commoditymassage::ListCount()//统计当前链表的记录总数,返回一个整数
    {
    if(! Head)
    return 0;
    int n=0;
    for(commodity * p=Head->Next;p!=End;p=p->Next)
    {
    n++;
    }
    return n;
    }

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    void Commoditymassage::Sort()//对当前链表进行排序
    {
    cout <<"Sorting..."< commodity *p=NULL,*p1=NULL,*k=NULL;
    int n=Commoditymassage::ListCount();
    if(n return;
    for(p=Head->Next;p!=End;p=p->Next)
    for(k=p->Next;k!=End;k=k->Next)
    {
    if(p->sum>k->sum)
    {
    Commoditymassage::Swap(p,k);
    }
    }
    cout <<"排序完成!"<<endl;
    getch();
    return;
    }

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    void Commoditymassage::Save()
    {
    out.open("food.txt");
    for(commodity *p=Head->Next;p!=End;p=p->Next)
    out<name<<"\t"<Id<<"\t"<sum<<'\n';
    out.close();
    }

    //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
    int main()
    {
    int x,i=0;
    bool quit=false;
    cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"< for(i=0;i cout cout for(i=0;i cout cout Commoditymassage Grade;
    cout getch();
    while(!quit)
    {
    system("cls");
    Grade.ShowMenu();
    cin>>x;
    switch(x)
    {
    case 0:quit=true;break;
    case 1:Grade.Display();break;//???
    case 2:Grade.AddItem();break;
    case 3:Grade.Sort();break;
    case 4:Grade.Find();break;
    case 5:Grade.RemoveItem();break;
    case 6:Grade.ModifyItem();break;
    }
    }
    return 0;
    }

    点赞 评论

相关推荐