
货品名称、货品价格、货品数量等,该程序能根据货品的输入代码
统计货品价格,对多个货品能做价格的累加统计并显示清单,
另具有找零功能。
需求:
1、实现对货品信息的输入和查询。
2、能根据货品的输入代码统计货品价格。
3、能对十个货品的价格统计并显示清单。
4、具有找零功能!
*************************************************/
//为了顺便练习一下使用链表结构,所以用链表结构实现。
// -----By kuaidh00--------2008/01/08-------------
//****************************************************
#include <iostream>
#include <string>
#include <iomanip>
#include <stdio.h>
using namespace std
struct Sale
{
//数据域。
string m_code
string m_name
float m_price
unsigned int m_quantity
//指针域。
struct Sale* next
}
typedef struct Sale Node//取外别名,Node.
typedef Node* Link//取个别名,Link.
//创建链表。
Link Create(Link Head)
{
//-----初始化头节点 Head-------
Head=(Link)new Node//每次动态分配一个Node内存大小。
Head->m_code=""
Head->m_name=""
Head->m_price=0.0
Head->m_quantity=0
Head->next=NULL
//-----
Link ptr//定义一个用来运算的指针 ptr。
ptr=Head//指到首节点。
Link DNode//定义数据节点,用来存放数据。
char GoOn
do
{
cout<<"商品信息录入! "<<endl
string code,name
float price
unsigned int quantity
cout<<"输入代码:"<<endl
cin>>code
cout<<"输入名称:"<<endl
cin>>name
cout<<"输入价格:"<<endl
cin>>price
while(cin.fail())
{
cout<<"请输入正确的格式:"<<endl
cin.clear()
fflush(stdin)
cin>>price
}
cout<<"输入数量:"<<endl
cin>>quantity
while(cin.fail())
{
cout<<"请输入正确的格式:"<<endl
cin.clear()
fflush(stdin)
cin>>quantity
}
//----数据域-----
DNode=(Link)new Node//每次动态分配一个Node内存大小。
DNode->m_code=code
DNode->m_name=name
DNode->m_price=price
DNode->m_quantity=quantity
//----指针域-----
DNode->next=NULL//作为尾节点加入。
ptr->next=DNode//链入链表中。
ptr=DNode//使新节点成为下一次的前驱。
cout<<"商品信息录入成功! 是否继续录入?(Y/N) "
cin>>GoOn
}while(GoOn=='Y'||GoOn=='y')
return Head
}
//释放链表。
void Release(Link Head)
{
Link ptr
while(Head!=NULL)
{
ptr=Head
Head=Head->next
delete ptr
}
}
//查询。
Link Search(Link Head,string&code)
{
Link ptr
//Link front
ptr=Head//定义一个用于 *** 作的指针ptr。
//ptr=fornt->next
while(ptr!=NULL)
{
if(ptr->m_code==code)
return ptr
else
ptr=ptr->next
}
cout<<"无此商品!"<<endl
return ptr//此时的ptr为NULL了。
}
//打印链表。
void Display(Link Head)
{
Link ptr
ptr=Head->next//,不要头节点,只输出数据节点。
cout<<"==========================================================="<<endl
cout<<"===============所有商品信息清单============================"<<endl
cout<<"==========================================================="<<endl
cout<<"货品代码=======货品名称======货品价格======货品数量===="<<endl
while(ptr!=NULL)
{
cout<<setw(15)<<left<<ptr->m_code
<<setw(15)<<left<<ptr->m_name
<<setw(15)<<left<<ptr->m_price
<<setw(15)<<left<<ptr->m_quantity<<endl
ptr=ptr->next
}
}
void Display_One(Link Head,string&code,unsigned quantity)
{
Link ptr
ptr=Search(Head,code)//,不要头节点,只输出数据节点。
cout<<"货品代码=======货品名称======货品价格======货品数量======小计(元)===="<<endl
cout<<setw(15)<<left<<ptr->m_code
<<setw(15)<<left<<ptr->m_name
<<setw(15)<<left<<ptr->m_price
<<setw(15)<<left<<quantity
<<setw(15)<<left<<quantity*ptr->m_price<<endl
}
//单个商品小结。
float CheckOut(Link Head,string&code,unsigned quantity)
{
Link ptr
float sum(0)
ptr=Search(Head,code)
sum=(ptr->m_price*quantity)
return sum
}
//总结帐。
void Total(Link Head)
{
Link ptr
ptr=Head
float sum(0)
float factly
char GoOn
while(1)
{
cout<<"要结束商品买入请按\'N\',其它任意键表示继续买入! "<<endl
cin>>GoOn
if(GoOn=='N'||GoOn=='n')
break
else
{
string code
unsigned int quantity
cout<<"输入要购买的商品代码:"<<endl
cin>>code
cout<<"输入要购买的数量:"<<endl
cin>>quantity
sum+=CheckOut(ptr,code,quantity)
cout<<"你购买的商品为:"<<endl
Display_One(ptr,code,quantity)
}
}
cout<<"----------------------------------------------------"<<endl
cout<<"你应该付 "<<sum<<"元!"<<endl
cout<<"你实际付(元): "
cin>>factly
cout<<"应该找回你 "<<factly-sum<<"元!"<<endl//找零。
}
int main()
{
//---------菜单选项----------------
Link Head=NULL
//Head=Create(Head)
int loop=1
while(loop)
{
cout<<"***************************************************"<<endl
cout<<"*---------------------菜单选项--------------------*"<<endl
cout<<"*-------------------------------------------------*"<<endl
cout<<"* 1.输入数据 2.买入商品 3.显示数据 0.退出系统 *"<<endl
cout<<"***************************************************"<<endl
int menu
cin>>menu
if(cin.fail())
{
cout<<"请按菜单对应的数字选择合适的 *** 作,谢谢合作!"<<endl
cin.clear()
fflush(stdin)
cin>>menu
}
switch(menu)
{
case 0:
cout<<"已退出系统!"<<endl
loop=0
break
case 1:
Head=Create(Head)
break
case 2:
Total(Head)
break
case 3:
Display(Head)
break
}//switch(menu)
}//while(loop)
//Display(Head)
//Total(Head)
Release(Head)
return 0
}
您好,方法1、微信小程序是一个免除下载安装直接使用的应用,使用微信【扫一扫】或者是【搜一搜】就可以打开应用。
2、微信小程序如今存在线下扫码、公众号关注、消息通知等多种功能。
3、在微信小程序中,可以向有所了解的技术员寻求帮助。他们会为客户查找微信小程序源码,这样我们就可以看到微信小程序源码了。
4、现如今各大企业项目公司都会培养一些专业的工作人员。他们会运用现有的技术查看源码。
5、查找小程序源码很简单,并且该源码会跟销售产品量成正比关系。
6、如下图,给我们的信息可以告诉我们查看微信小程序源码很有必要且又很有重要性。
7、对于查看微信小程序源码以及它的价值,如下图给与了详细解释。跟客户需求量很有关系。
8、如今网络市场发展十分迅速,微信小程序就是其中一个热门市场点,查看源码就是微信小程序最重要的地方。
#include <iostream>#include <string>
#include <vector>
#include <cstdlib>
using namespace std
struct Drink{
Drink(float pr, string n)
string name
float price
int account
}
class Vending{
public:
Vending()
inline void showStorage() const {
cout <<"可乐:" <<m_cola->account <<endl <<"奶茶:" <<m_milkT->account <<endl
cout <<"凉茶:" <<m_T->account <<endl
}
inline void showSoldNum() const{
cout <<m_cola->name <<endl <<"销售量:" <<m_soldCola <<endl
cout <<"销售额:" <<m_soldCola*(m_cola->price) <<endl
cout <<m_milkT->name <<endl <<"销售量:" <<m_soldMilkTea <<endl
cout <<"销售额:" <<m_soldMilkTea*(m_milkT->price) <<endl
cout <<m_T->name <<endl <<"销售量:" <<m_soldTea <<endl
cout <<"销售额:" <<m_soldTea*(m_T->price) <<endl
}
void addStore()
void sellItem()
void popMenu()
private:
Drink *m_cola, *m_milkT, *m_T
int m_soldCola, m_soldMilkTea, m_soldTea
}
Drink::Drink(float pr, string n)
:name(n), price(pr), account(0){}
Vending::Vending()
:m_soldCola(0), m_soldMilkTea(0), m_soldTea(0)
{
m_cola = new Drink(float(2.8), "可乐")
m_milkT = new Drink(float(3.0), "奶茶")
m_T = new Drink(float(3.5), "凉茶")
}
void Vending::addStore(){
cout <<"请选择要上架的商品:\n1.可乐\n2.奶茶\n3.凉茶\n"
int n, count
cin >>n
if(n >3){
cout <<"选择错误" <<endl
return
}
cout <<"请输入要上架的数量:"
cin >>count
if(n == 1)
m_cola->account += count
else if(n == 2)
m_milkT->account += count
else if(n == 3)
m_T->account += count
else{
cout <<" *** 作失败" <<endl
return
}
cout <<" *** 作完成" <<endl
}
void Vending::sellItem(){
cout <<"1." <<m_cola->name <<":" <<endl
cout <<"价格:" <<m_cola->price <<ends <<"库存:" <<m_cola->account <<(m_cola->account == 0 ? "(售完)\n" : "\n")
cout <<"2." <<m_milkT->name <<":" <<endl
cout <<"价格:" <<m_milkT->price <<ends <<"库存:" <<m_milkT->account <<(m_milkT->account == 0 ? "(售完)\n" : "\n")
cout <<"3." <<m_T->name <<":" <<endl
cout <<"价格:" <<m_T->price <<ends <<"库存:" <<m_T->account <<(m_T->account == 0 ? "(售完)\n" : "\n")
cout <<"请选择:"
int n = 0, num = 0
cin >>n
float price = 0
int acc = 0
if(n == 1){
price = m_cola->price
acc = m_cola->account
}
else if(n == 2){
price = m_milkT->price
acc = m_milkT->account
}
else if(n == 3){
price = m_T->price
acc = m_T->account
}
do
{
if(num >0)
cout <<"库存不足" <<endl
cout <<"请输入数量:"
cin >>num
}while(num >acc)
price *= num
float pay = 0
do
{
if(pay >0)
cout <<"支付不足" <<endl
cout <<"请支付:"
cin >>pay
}while (pay <price)
cout <<" *** 作完成" <<endl
if(pay - price >0)
cout <<"找零:" <<pay-price <<endl
if(n == 1){
m_soldCola += num
m_cola->account -= num
}
else if(n == 2){
m_soldMilkTea += num
m_milkT->account -= num
}
else if(n == 3){
m_soldTea += num
m_T->account -= num
}
}
void Vending::popMenu(){
const string menu1 = "========自动贩卖机========\n1.管理人员界面\n2.销售界面\n3.退出\n"
const string menu2 = "========自动贩卖机========\n1.显示库存\n2.商品上架\n3.销售查询\n"
int n
while(true){
cout <<menu1 <<"请选择:"
cin >>n
if(n == 1){
cout <<"请输入密码:"
int password
cin >>password
if(password != 123){
cout <<"密码错误" <<endl
continue
}
cout <<menu2 <<"请选择:"
cin >>n
switch(n){
case 1:{
showStorage()
break
}
case 2:{
addStore()
break
}
case 3:{
showSoldNum()
break
}
default:{
cout <<"选择错误" <<endl
return
}
}
}
else if(n == 2)
sellItem()
else if(n == 3)
exit(0)
}
}
int main(){
Vending *vend = new Vending
vend->popMenu()
return 0
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)