对自助销售机进行UML设计


对自助销售机进行UML设计



一、设计目标

教学楼一楼大厅摆放着饮料自助销售机,阿呆想仿照饮料自助销售机,设计实现出自己的自助销售机放在宿舍楼下销售方便面。请你帮他分析一下这个销售机的用例图、领域模型(类图)、以及某一用例交互实现的顺序图。

二、UML 模型

1.用例图

在这里插入图片描述

2.类图

在这里插入图片描述

3.顺序图

在这里插入图片描述

#include bool GetCharge(int Sum,int Money); void Getsmalcharge(int Money,int *ChargeNum); void main() { char state='N'; int Sum=0; char Pro; printf("\n********************************\n"); while(true) { state='N'; Sum=0; while(state=='N'||state=='n') { printf("\n输入购买物品(a,b,c):"); scanf("%c",&Pro;); getchar(); switch(Pro) { case 'a': Sum=Sum+1; break; case 'A': Sum=Sum+1; break; case 'b': Sum=Sum+5; break; case 'B': Sum=Sum+5; break; case 'c': Sum=Sum+10; break; case 'C': Sum=Sum+10; break; default: printf("\n输入物品有误!!!!\n"); break; }; printf("\n是否完成(Y/N):"); scanf("%c",&state;); getchar(); } int Money; printf("\n购买总价为:%d",Sum); bool st=false; while(!st) { printf("\n输入金额:"); scanf("%d",&Money;); getchar(); st=GetCharge(Sum,Money); }; printf("\n----------------购买结束------------\n"); printf("\n"); printf("\n"); printf("\n"); } } //---------------------------------------------------- bool GetCharge(int Sum,int Money) { int ChargeNum[4]; for(int i=0;iMoney) { printf("\n金额不够,请重新输入....."); return false; } else if(Sum==Money) { printf("\n余额为0"); return true; } else { int Result=Money-Sum; Getsmalcharge(Result,ChargeNum); printf("\n余额为%d元,应找零\n1 元%d张\n2 元%d张\n5 元%d张\n10元%d张\n",Result,ChargeNum[0],ChargeNum[1],ChargeNum[2],ChargeNum[3]); }//end if return true; } //------------------------------------ void Getsmalcharge(int Money,int *ChargeNum) { if(Money<0) return; int Sum=Money; int charge[4]={1,2,5,10}; ChargeNum[3]=Sum/charge[3]; Sum=Sum%charge[3]; ChargeNum[2]=Sum/charge[2]; Sum=Sum%charge[2]; ChargeNum[1]=Sum/charge[1]; Sum=Sum%charge[1]; ChargeNum[0]=Sum/charge[0]; Sum=Sum%charge[0]; } 或者这个试试#include main() { int x,n,y; float sum=0.0; printf("请选择: 1.日用品 2.文具 3. 食品\n"); scanf("%d",&x); switch(x) { case 1: printf("请选择:1.牙刷(3.5元/支) 2.牙膏(6.2元支)\n"); printf(" 3.肥皂(2元/块) 4.毛巾(8.6元/条)\n"); scanf("%d",&y); printf("数量?"); scanf("%d",&n); switch(y)/*匹配顾客选择的具体商品*/ { case 1: sum=3.5*n ; break; case 2: sum=6.2*n ; break; case 3: sum=2*n ; break; case 4: sum=8.6*n ; break; } break; case 2: printf("请选择:1.笔( 3元/支) 2.笔记本(1.2元/个)\n"); printf(" 3.文件夹(12元/个) 4.文具盒(8.6元/个)\n"); scanf("%c",&y); printf("数量?"); scanf("%d",&n); switch(y) { case 1: sum=3*n; break; case 2: sum=1.2*n; break; case 3: sum=12*n; break; case 4: sum=8.6*n; break; } break; case 3: printf("请选择:1.白糖(3.6元/包) 2.盐(1元/包)\n"); printf(" 3.饼(2元/个) 4.方便面(3.6元/条)\n"); scanf("%c",&y); printf("数量?"); scanf("%d",&n); switch(y) { case 1: sum=3.6*n; break; case 2: sum=1*n; break; case 3: sum=2*n; break; case 4: sum=3.6*n; break; } break; } printf("总计:%.2f 元\n",sum); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值