#include<iostream>
#include<string>
using namespace std;
struct Sale
{
string num;
string name;
float price;
unsigned int quantity;
struct Sale*next;
};
typedef struct Sale Node;
typedef Node*Link;
//創建鏈表
Link Create(Link Head)
{
Head=(Link)new Node;
Head->num=" ";
Head->name=" ";
Head->price=0.0;
Head->quantity=0;
Head->next=NULL;
Link p;//定義一個用來計算的指標p
p=Head;
Link DNode;
char GoOn;
do
{
cout<<"商品入庫資訊"<<endl;
string num,name;
float price;
unsigned int quantity;
cout<<"代碼:"<<endl;
cin>>num;
cout<<"名稱:"<<endl;
cin>>name;
cout<<"價格:"<<endl;
cin>>price;
while(cin.fail())
{
cout<<"出現錯誤,請重新輸入:"<<endl;
cin>>price;
}
cout<<"數量:"<<endl;
cin>>quantity;
while(cin.fail())
{
cout<<"出現錯誤,請重新輸入:"<<endl;
cin>>quantity;
}
DNode=(Link)new Node;
DNode->num=num;
DNode->name=name;
DNode->price=price;
DNode->quantity=quantity;
DNode->next=NULL;
p->next=DNode;
p=DNode;
cout<<"資訊錄入成功,是否繼續?(Y/N)";
cin>>GoOn;
}
while(GoOn=='Y'||GoOn=='y');
return Head;
}
//釋放鏈表
void Release(Link Head)
{
Link p;
while(Head!=NULL)
{
p=Head;
Head=Head->next;
delete p;
}
}
//查詢
Link Search(Link Head,string&num)
{
Link p;
p=Head;
while(p!=NULL)
{
if(p->num==num)
return p;
else
p=p->next;
}
cout<<"無此商品!"<<endl;
return p;
}
void Display(Link Head)
{
Link p;
p=Head->next;
cout<<"所有商品資訊"<<endl;
cout<<"代碼==名稱==價格==數量"<<endl;
while(p!=NULL)
{
cout<<p->num<<" "<<p->name<<" "<<p->price<<" "<<p->quantity<<endl;
p=p->next;
}
}
void Display_One(Link Head,string&num,unsigned quantity)
{
Link p;
p=Search(Head,num);
cout<<"代碼==名稱==價格==數量==小計(元)"<<endl;
cout<<p->num<<" "<<p->name<<" "<<p->price<<" "<<quantity<<
" "<<quantity*p->price<<endl;
}
//單個商品小結
float CheckOut(Link Head,string&num,unsigned quantity)
{
Link p;
float sum(0);
p=Search(Head,num);
sum=(p->price*quantity);
return sum;
}
void xg(Link Head,string&num,unsigned quantity)
{
Link p;
p=Search(Head,num);
p->quantity=p->quantity-quantity;
}
//總結帳
void Total(Link Head)
{
Link p;
p=Head;
float sum(0);
float fukuan;
char GoOn;
while(1)
{
cout<<"結束請按\'N'\繼續請按其它任意鍵"<<endl;
cin>>GoOn;
if(GoOn=='N'||GoOn=='n')
break;
else
{
string num;
unsigned int quantity;
cout<<"代碼:"<<endl;
cin>>num;
cout<<"數量:"<<endl;
cin>>quantity;
sum+=CheckOut(p,num,quantity);
cout<<"您購買的商品為:"<<endl;
Display_One(p,num,quantity);
xg(Head,num,quantity);
}
}
cout<<"該付"<<sum<<"元"<<endl;
cout<<"實付:";
cin>>fukuan;
cout<<"找零"<<fukuan-sum<<"元"<<endl;
}
int main()
{
//******選單選項******
Link Head=NULL;
Link p;
string num;
int loop=1;
while(loop)
{
cout<<"*******歡迎光臨,請選擇進入系統*********"<<endl;
cout<<"* 1.錄入資訊 2.查詢商品 3.顯示資料 4.買入商品 0.退出系統 *"<<endl;
int menu;
cin>>menu;
if(cin.fail())
{
cout<<"出現錯誤,請重新輸入!"<<endl;
cin>>menu;
}
switch(menu)
{
case 0:
cout<<"已退出系統!"<<endl;
loop=0;
break;
case 1:
Head=Create(Head);
break;
case 2:
cout<<"輸入商品代碼:"<<endl;
p=Search(Head,num);
cout<<"代碼==名稱==價格==數量"<<endl;
cout<<p->num<<" "<<p->name<<" "<<p->price<<" "<<p->quantity<<endl;
break;
case 3:
Display(Head);
break;
case 4:
Total(Head);
break;
}
}
Release(Head);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/74498.html
標籤:C++ 語言
下一篇:關于vector的問題
