问题描述
- “超市商品管理系统设计”
-
“超市商品管理系统设计”
A.问题描述
超市中商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包含商品名称、价格、库存量和生产厂家、品牌等信息。
主要完成对商品的销售、统计和简单管理。
B.功能要求
(1)销售功能。购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品的相关信息。如果有库存量,输入购买的数量,进行相应计算。如果库存量不够,给出提示信息,结束购买。
(2)商品简单管理功能。
添加功能:主要完成商品信息的添加。
查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该记录不存在!”。
修改功能:可根据查询结果对相应的记录进行修改。
删除功能:主要完成商品信息的删除。先输入商品类别,再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在”。
(3)统计功能。
输出当前库存中所有商品的总数及详细信息;可按商品的价格、库存量、生产厂家进行统计,输出统计信息时,要按从大到小进行排序。
(7)商品信息存盘:将当前程序中的商品信息存入文件中。
(8)读出信息:从文件中将商品信息读入程序。
解决方案
Q1
我在vc中用sstring为什么会报错?
Q2
string h;为什么不能用?
字符串不能用string呢?
Q3
这是一个桑心的事儿……
头文件和其他文件那个,怎么分开来写?
一直出错……我写了个.h然后还有七八个.cpp,在主函数那个代码里怎么写?
好桑心
解决方案二:
可以用string啊,但是没有sstring,这是什么东西。
头文件一般写类的定义和函数的声明,实现放在cpp里面。
解决方案三:
#include
using namespace std;
解决方案四:
网上有份实验报告的,主函数的语句怎么写呢?
http://m.doc88.com/p-9005929139245.html?st_type=null
解决方案五:
四个动态链表怎么设置呢?
贴上筛子代码……
/*
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<<"tt请输入商品的名称:"; cin>>name;
cout<<"tt请输入商品的价格:"; cin>>price;
cout<<"tt请输入商品的库存量:"; cin>>amount;
cout<<"tt请输入商品生产厂家"; 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]=='')break;
End->Next=new commodity;
End=End->Next;
}
in.close();
cout<<"tt读取商品信息成功!"<<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]=='')break;
End->Next=new commodity;
End=End->Next;
}
in.close();
cout<<"tt读取商品信息成功!"<<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]=='')break;
End->Next=new commodity;
End=End->Next;
}
in.close();
cout<<"tt读取商品信息成功!"<
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
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]=='')break;
End->Next=new commodity;
End=End->Next;
}
in.close();
cout<<"tt读取商品信息成功!"<<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<<"nttntt请选择:";
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Commoditymassage::Find()
{
char name[20] ,factor[20];
int x;
commodity * p=NULL;
cout<<"ntt*********************************n";
cout<<"tt※ 1.按商品的类别(名称)查找ntt※ 2.按商品生产厂家查找";
cout<<"ntt*********************************n请选择:";
cin>>x;
switch(x)
{
case 1:
int v;
cout<<"ntt*********************************n";
cout<<"tt※ 1.food 2.cosmertic 3.dailyuse 4.drink";
cout<<"ntt*********************************n请选择:";
cin>>v;
switch(v)
{
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:
case 3:
case 4:
}
case 2:
{
cout<<"tt请输入要查找的商品的生产厂家:";cin>>factor;
if(p=FindFactor(factor))
{
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已找到商品的信息,请输入新的信息!"<
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请输入要删除的商品的名称:"<>name;
if(p=FindItem(name))
{
temp=p->Next;
p->Next=p->Next->Next;
delete temp;
cout<<"tt删除成功!"<
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<<"tt§§§§§§§§§§§§§§§§§§§§§§§§§§"<
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;
}
解决方案六:
修改版,现在主要就是文件的读取有问题。
/*
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<<"tt请输入商品的类型:";cin>>type;
cout<<"tt请输入商品的名称:"; cin>>name;
cout<<"tt请输入商品生产厂家"; cin>>factor;
cout<<"tt请输入商品的价格:"; cin>>price;
cout<<"tt请输入商品的库存量:"; 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]=='')break;
End->Next=new commodity;
End=End->Next;
}
in1.close();
cout<<"tt读取商品信息成功!"<<endl;
}
in2.open("cosmetic.txt");
if(!in2)
cout<<"无商品信息。请先输入。"<<endl;
else
{
while(!in2.eof())
{
End->ReadFile(in2);
if(End->name[0]=='')break;
End->Next=new commodity;
End=End->Next;
}
in2.close();
cout<<"tt读取商品信息成功!"<<endl;
}
in3.open("dailyuse.txt");
if(!in3)
cout<<"无商品信息。请先输入。"<<endl;
else
{
while(!in3.eof())
{
End->ReadFile(in3);
if(End->name[0]=='')break;
End->Next=new commodity;
End=End->Next;
}
in3.close();
cout<<"tt读取商品信息成功!"<<endl;
}
in4.open("drink.txt");
if(!in4)
cout<<"无商品信息。请先输入。"<<endl;
else
{
while(!in4.eof())
{
End->ReadFile(in4);
if(End->name[0]=='')break;
End->Next=new commodity;
End=End->Next;
}
in4.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;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
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<<"nttntt请选择:";
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Commoditymassage::Find()
{
char type[20],name[20] ,factor[20];
int x;
commodity * p=NULL;
cout<<"ntt*********************************n";
cout<<"tt※ 1.按商品的类别(名称)查找ntt※ 2.按商品生产厂家查找";
cout<<"ntt*********************************ntt请选择:";
cin>>x;
switch(x)
{
case 1:
{
cout<<"ntt*********************************n";
cout<<"tt※ 1.food 2.cosmertic 3.dailyuse 4.drink";
cout<<"ntt*********************************n请选择:";
cout<<"tt请输入要查找的商品的类型:";cin>>type;
if(p=FindType(type))
{
p->Next->Show();
cout<<"输入任意字符!继续……";
getch();
cout<<"tt请输入要查找的商品的名称:";cin>>name;
if(p=FindItem(name))
{
p->Next->Show();
cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"tt没有找到该名称的商品!"<<'n'<<endl;
cout<<"输入任意字符!继续……";
getch();
}
}
else
{
cout<<"tt没有找到该类型的商品!"<<'n'<<endl;
cout<<"输入任意字符!继续……";
getch();
}
}break;
case 2:
{
cout<<"tt请输入要查找的商品的生产厂家:";cin>>factor;
if(p=FindFactor(factor))
{
p->Next->Show();
cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"tt没有找到该厂家的商品!"<<'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<<"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->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<<"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;;
cout<<"tt按任意键开始……";
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;
}