c/c++语言开发共享C++实现超市商品管理系统最新版

超市商品管理系统,供大家参考,具体内容如下一、问题描述及功能要求1.提供商品系统的添加、删除、编辑、显示等功能。2.同类系统多数使用结构体数组来操作数据,本系统使用链表结构操作数据,提高了数据处理的效

超市商品管理系统,供大家参考,具体内容如下

一、问题描述及功能要求

1.提供商品系统的添加、删除、编辑、显示等功能。
2.同类系统多数使用结构体数组来操作数据,本系统使用链表结构操作数据,提高了数据处理的效率。

二、代码实现 带有注释

废话不说,直接代码,欢迎指正。
大家cv可能有不兼容的情况,可以滴滴,尽可能解决问题地回复。

  #include <iostream>  #include <string.h>  #include <fstream>  #include <conio.h>//用getch();  using namespace std;    //以下是类的设计    class commodity  {  public:  char name[20];  char id[20];  int buy;//进货价;  int sale;//卖出价;  int amount;//数量;  int sum;//利润;  commodity * next;  void input()  {  cout<<"tt请输入商品的名称:"; cin>>name;  cout<<"tt请输入商品的编号:"; cin>>id;  cout<<"tt请输入进货价:"; cin>>buy;  cout<<"tt请输入售出价:"; cin>>sale;  cout<<"tt请输入商品数量:"; cin>>amount;  sum=(sale-buy)*amount;  }  void readfile(istream & in)  {  in>>name>>id>>sale>>buy>>sum;  }  void show()  {  cout<<"商品名"<<name<<endl<<"编号:"<<id<<endl<<"进货价"<<buy<<"售出价"<<sale<<"商品数量:"<<  amount<<"预计总利润:"<<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();  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 *findid(char * id)  {  for(commodity * p=head;p->next!=end;p=p->next)//匹配成功则返回上一个指针,不成功就返回空  if(!strcmp(p->next->id,id))return p;  return null;  }  };  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  commoditymassage::commoditymassage()  {  head=new commodity;  head->next=new commodity;  end=head->next;  in.open("sort.txt");  if(!in)  cout<<"无商品信息。请先输入。"<<endl;  else  {  while(!in.eof())  {  end->readfile(in);  if(end->name[0]=='')break;  end->next=new commodity;  end=end->next;  }  in.close();  cout<<"tt读取商品信息成功!"<<endl;  }  }  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  commoditymassage::~commoditymassage()  {  save();  for(commodity * temp;head->next!=end;)  {  temp=head->next;  head->next=head->next->next;  delete temp;  }  delete head,end;  }    //以下是主函数  int main()  {  int x,i=0;  bool quit=false;  cout<<"tt**************************"<<endl;  for(i=0;i<3;i++)  cout<<"tt*tttttt *"<<endl;  cout<<"tt*****【 欢迎进入超市商品管理系统 】*****"<<endl;  for(i=0;i<3;i++)  cout<<"tt◎tttttt ◎"<<endl;  cout<<"tt**************************n"<<endl;;  commoditymassage grade;  cout<<"按任意键开始……";  getch();  while(!quit)  {    grade.showmenu();  cin>>x;  switch(x)  {  case 0:quit=true;break;  case 1:grade.additem();break;  case 2:grade.display();break;  case 3:grade.sort();break;  case 4:grade.find();break;  case 5:grade.removeitem();break;  case 6:grade.modifyitem();break;  }  }  return 0;  }  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<<"          └────────-┘"<<endl;  cout<<"nttntt请选择:";  }  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  void commoditymassage::find()  {  char name[20] ,id[10];  int x;  commodity * p=null;  cout<<"ntt*********************************n";  cout<<"tt※ 1.按商品的名称查找ntt※ 2.按商品编号查找";  cout<<"ntt*********************************n请选择:";  cin>>x;  switch(x)  {  case 1:{cout<<"tt请输入要查找的商品的名称:";cin>>name;  if(p=finditem(name))  {  p->next->show();  cout<<"输入任意字符!继续……";  getch();  }  else  {  cout<<"tt没有找到该名称的商品!"<<'n'<<endl;  cout<<"输入任意字符!继续……";  getch();  }  }break;  case 2:  {  cout<<"tt请输入要查找的商品的编号:";cin>>id;  if(p=findid(id))  {  p->next->show();  cout<<"输入任意字符!继续……";  getch();  }  else  {  cout<<"tt没有找到该编号的商品!"<<'n'<<endl;  cout<<"输入任意字符!继续……";  getch();  }  }break;  }  }  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改商品信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  void commoditymassage::modifyitem() //修改商品信息  {  char name[20];  commodity * p=null;  cout<<"tt请输入要修改的商品的名称:";cin>>name;  if(p=finditem(name))  {  cout<<"tt已找到商品的信息,请输入新的信息!"<<endl;  p->next->input();  cout<<"修改成功!"<<endl;  cout<<"输入任意字符!继续……";  getch();  }  else  {  cout<<"tt没有找到!"<<endl;  cout<<"输入任意字符!继续……";  getch();  }  }  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  void commoditymassage::removeitem() // 删除信息  {  char name[20];  commodity * p=null,*temp=null;  cout<<"tt请输入要删除的商品的名称:"<<endl;cin>>name;  if(p=finditem(name))  {  temp=p->next;  p->next=p->next->next;  delete temp;  cout<<"tt删除成功!"<<endl;  cout<<"输入任意字符!继续……";  getch();  }  else  {  cout<<"tt没有找到!"<<endl;  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..."<<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()  {  out.open("sort.txt");  for(commodity *p=head->next;p!=end;p=p->next)  out<<p->name<<"t"<<p->id<<"t"<<p->sum<<'n';  out.close();  }

以上就是c/c++开发分享C++实现超市商品管理系统最新版的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

需要了解更多c/c++开发分享C++实现超市商品管理系统最新版,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/638857.html

(0)
上一篇 2021年6月17日
下一篇 2021年6月17日

精彩推荐