首页 > 其他分享 >课程实践项目设计

课程实践项目设计

时间:2023-06-04 21:15:00浏览次数:33  
标签:String +---------------------+ System 实践 课程 println 设计 public out

1.用户故事;作为每天都在上课的大学生,中午排队买饭就是个 巨大的折磨,还要防止别人插队。这时候他们就需要一个点餐软件。所以我们为我们的咸肉饭店做了一个咸肉饭点餐软件。它主要能在线上提前点好饭然后在下课后根据单号取饭。我们的优势就是其他家没有点餐软件。

2.项目;

我们先定义了几种可能购买的食物,并且创建了一个空的订单order。将可购买的食物列表展示给用户,用户输入食物编号来添加到订单中。当用户选择结束选购后,展示购物车中的食物,计算出应付金额。用户选择支付方式后,调用相应的


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
List<Food> foodList = new ArrayList<>();
foodList.add(new Food("101", "素鸡蛋肠", 12));
foodList.add(new Food("102", "小酥肉", 18));
foodList.add(new Food("103", "红烧肉", 22));
foodList.add(new Food("104", "双鸡腿肉", 28));

System.out.println("请选择您要购买的商品编号(输入end结束选购):");
Scanner scanner = new Scanner(System.in);
String input = "";
while (!"end".equalsIgnoreCase(input)) {
order.showFoodList();
input = scanner.next();
if ("end".equalsIgnoreCase(input)) {
break;
}
if (!order.addFoodToCart(input)) {
System.out.println("该商品不存在,请重新选择!");
}
}
order.showCart();
System.out.println("您需要支付的金额为:" + order.getTotalPrice() + "元");

System.out.println("请选择支付方式(输入1支付宝,输入2微信):");
input = scanner.next();
if ("1".equals(input)) {
Alipay alipay = new Alipay();
alipay.pay(order.getTotalPrice());
} else if ("2".equals(input)) {
WechatPay wechatPay = new WechatPay();
wechatPay.pay(order.getTotalPrice());
} else {
System.out.println("请输入正确的支付方式编号!");
}
}
}

class Order {
private List<Food> foodList;
private List<Food> cart = new ArrayList<>();

public Order(List<Food> foodList) {
this.foodList = foodList;
}

public boolean addFoodToCart(String id) {
for (Food food : foodList) {
if (food.getId().equals(id)) {
cart.add(food);
return true;
}
}
return false;
}

public void showFoodList() {
System.out.println("---商品列表---");
for (Food food : foodList) {
System.out.println(food.getId() + " " + food.getName() + " " + food.getPrice() + "元");
}
System.out.println("--------------");
}

public void showCart() {
System.out.println("---购物车---");
for (Food food : cart) {
System.out.println(food.getName() + " " + food.getPrice() + "元");
}
System.out.println("--------------");
}

public double getTotalPrice() {
double totalPrice = 0;
for (Food food : cart) {
totalPrice += food.getPrice();
}
return totalPrice;
}
}

class Food {
private String id;
private String name;
private double price;

public Food(String id, String name, double price) {
this.id = id;
this.name = name;
this.price = price;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public double getPrice() {
return price;
}

public void setPrice(double price) {
this.price = price;
}
}

interface PayAPI {
void pay(double amount);
}

class Alipay implements PayAPI {
@Override
public void pay(double amount) {
System.out.println("使用支付宝支付成功,支付金额为:" + amount + "元");
}
}

class WechatPay implements PayAPI {
@Override
public void pay(double amount) {
System.out.println("使用微信支付支付成功,支付金额为:" + amount + "元");
}
}

类图:其中,Main类为程序入口,Order类表示订单信息,Food类表示商品信息,PayAPI接口表示支付API,Alipay和WechatPay实现了PayAPI接口,表示支付宝支付和微信支付。
+---------------------+
| Main |
+---------------------+
| - main() |
+---------------------+

+---------------------+
| Order |
+---------------------+
| - foodList : List |
| - cart : List |
+---------------------+
| + addFoodToCart() |
| + showFoodList() |
| + showCart() |
| + getTotalPrice() |
+---------------------+

+---------------------+
| Food |
+---------------------+
| - id : String |
| - name : String |
| - price : double |
+---------------------+
| + getters and setters|
+---------------------+

+---------------------+
| PayAPI |
+---------------------+
| + pay() |
+---------------------+

+---------------------+
| Alipay |
+---------------------+
| + pay() |
+---------------------+

+---------------------+
| WechatPay |
+---------------------+
| + pay() |
+---------------------+

 

在该系统中,用户可以浏览菜单,将商品添加到购物车,生成订单,进行支付等基本操作。同时,系统管理员可以添加、编辑、删除菜单项,管理订单等操作。该用户故事用例图展示了各个用户角色的功能和操作,并指明了他们之间的关系和交互。下一步,我们可以基于这个用户故事用例图来进行类和接口设计。

标签:String,+---------------------+,System,实践,课程,println,设计,public,out
From: https://www.cnblogs.com/z235419/p/17456308.html

相关文章

  • 计应211四组零食销售系统设计
    系统用例分析系统的用户共有两种,顾客和管理员并且不同的用户权限各不相同  0   实体类模型设计在线零食销售系统主要有两大实体用户与管理员,管理员与用户是一对多的关系。系统关系图如下所示 购物车操作步骤如下所示1、顾客先登录到购物车页面2、顾客......
  • [MAUI程序设计] 用Handler实现自定义跨平台控件
    @目录Handler与Xamarin.Forms实现的区别为什么要用Handler代替Renderer解耦生命周期管理更细粒度的控制用Effect来实现呢?自定义手势监听控件在各平台上实现TouchRecognizeriOS中的实现Android中的实现Windows中的实现创建控件使用控件最终效果项目地址今天来谈一谈MAUI跨平台技术......
  • C/C++数据结构设计题[2023-06-04]
    C/C++数据结构设计题[2023-06-04]停车场模拟管理程序的设计与实现1.设计目的理解线性表的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。2.问题描述设停车场只有一个可停放几辆汽车的狭长通道,只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺......
  • ZUYUEXI中国香氛设计师祖悦茜
    祖悦茜在法国格拉斯GIP香水研院人物简介ZUYUEXI(祖悦茜)1980年3月12日生于黑龙江哈尔滨市国内香氛设计师,毕业于法国格拉斯GrasselnstitutePerfumery调香研院早年经历:ZUYUEXI祖悦茜1980年出生小时候她随着家人在黑龙江哈尔滨老弄堂里长大,因为爷爷满族血统,所以她拥有着较好气质。200......
  • 课程实践项目设计
    一、酒店管理系统用例图       在图中,用户通过登录界面输入信息与数据库信息匹对,确定用户的权限。二、类图与活动图       order,room,receptionist,hotelmanager,user五个示例类为数据库(被操作的数据),三个实现类用来对数据进行操作。三、用户设计界面四、......
  • 郑州公交车系统设计结果
    用户故事:作为郑州公交车的乘客,增加公交车辆出行效率,缓解拥挤情况,提高乘客出行便利性。改善公交车站环境,提高乘客出行安全性。我想要郑州公交车系统能够实现地图服务,地图管理,车辆、地名、线路检索,车辆实时显示,轨迹绘制,距离计算,车辆实时监控子功能。根据GPS全球定位系统、智能传感......
  • 研发人员绩效考核指标怎么设计?
    企业研发人员绩效考核指标的设计,需要根据企业的研发目标、研发项目、研发流程和研发人员的职责和能力等因素进行综合考虑。一般来说,研发人员的绩效考核指标可以分为以下几类:研发进度:考核研发人员是否按时完成研发任务,是否达到预期的效果,是否符合项目要求,是否有创新和优化等。......
  • 模板设计模式
    模板设计模式定义1、模板方法模式(TemplateMethodPattern),又叫模板模式(TemplatePattern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。2、简单说,模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到......
  • 连珠(有禁五子棋)课程播放平台课件的录制方法
    RenjuClass、浙江教室及其他连珠(有禁五子棋)课程在线学习这是个播放专业连珠课程的学习网站当前上面有近800节以前老牌资深棋手讲的课。有世界冠军爱沙尼亚的Ando九段Tunnet八段、Ants七段,日本的河村九段山口九段冈部宽九段,通讯赛世界冠军张进宇四段、全国冠军戴晓涵六段、吴昊......
  • 漫谈发版哪些事,好课程推荐
       生产发布是一件非常严谨的事,如果其中一道工序出了问题就有可能导致发版失败。发版涉及开发、测试、运维等。分工明确才能确保一次发版的成功。开发人员    开发人员不止把程序开发完毕就万事大吉了。开发完毕后需要准备发版的jar包、war包、sql脚步、配置文件及配......