相信有很多同学在做毕业设计或者是提升自己的会选择做一个系统,下面从各个方面了解制作餐厅管理系统(以下均为up主个人思路,有错误的地方欢迎各路大佬指点,非常感谢),供各位同学参考学习
前言:
制作思路
资料准备
功能实现
最后优化
注意:餐厅管理注重服务的细节及界面的美化
一.制作思路:
界面设计(附一张注册界面)
2.功能制作
3数据库脚本制作(脚本来自SQLserver)
二.资料准备:
首先准备数据库脚本,确定自己的表格功能及意义(这边给各位同学一个建议,尽量少设置主外键,因为非常考验基础,出错到时候修改会出现很多难修改的错误)
准备项目资料图片和视频(美化界面,这边推荐一个网站阿里巴巴图标库,里面有超多图标可作按钮使用)
可以写一个思维导图X-mind,明确项目思路(当然这边只是建议,如果个人不喜欢的话不强求哦)
注意事项:
(1)准备数据库脚本的时候思路一定要清晰,遇到问题不要慌,认真思考。
(2)想要把界面做好看的同学可以去学PS,真的很有用
(3)思维导图根据自己兴趣来
三.功能实现
首页
·用轮播图的方式展示出一部分热销产品,这个页面没有那么美观,同学们可以学习更多关于JavaFxUI知识把界面美化
点菜界面
将菜品全部展示,并且将菜品分类用不同的布局包裹0顾客能够选择自己喜欢的菜品,也能够搜素自己想要指定搜素的菜品
购物车
顾客需要将需要的菜品加入到购物车之后才能生成账单
餐桌界面
。顾客可以自定义选择空桌,选好桌之后便跳转到点菜界面(这个界面确实有点花,可以后期优化)
登录注册
顾客需要先登录/注册后才能进行点菜操作
注册信息需验证,符合条件方可注册;
登录时输入用户名、登录密码、(也可以管理者身份进行登录)
账单
。顾客点完菜之后,需进行付款结算操作
个人中心
顾客可以修改自己的信息 (手机号 名字 性别)且能够进入充值页面
充值页面
顾客可以进行充值操作
所有的功能介绍完毕
这里up主想出来的优化就是最后的界面优化,已经展示给大家看了,不过在最后一致的商讨下加了一个广告页和加载页美化一下流程页面
代码:
package com.zking.ui;
import java.io.File;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
/**
* 加载等待页案例
*
* @author Miaoqx
*/
public class LoadingDialog extends Application {
int count = 0;
Bigin bigin=new Bigin();
// 创建字符串格式的媒体源路径
String url = new File("E:\\项目资料\\S1结业\\项目资料图片\\背景图\\蟹堡王.mp4").getAbsoluteFile().toURI().toString();
// 创建媒体对象
Media media = new Media(url);
// 创建媒体播放器
MediaPlayer mPlayer = new MediaPlayer(media);
// 创建媒体播放视图
MediaView mView = new MediaView(mPlayer);
@Override
public void start(Stage stage) throws Exception {
Label loadBtn = new Label("", new ImageView(new Image("图标\\进入1.jpg", 140, 80, true, true)));
loadBtn.setStyle("-fx-background-color:while" + "");
loadBtn.setFont(new Font("华文琥珀", 20));
loadBtn.setPrefSize(140, 80);
loadBtn.setCenterShape(true);
GridPane gp = new GridPane();
gp.addRow(1, loadBtn);
gp.setMargin(loadBtn, new Insets(0, 0, 0, 250));
loadBtn.setStyle("-fx-cursor:hand");
loadBtn.setOnMouseClicked(event -> {
stage.close();
mPlayer.stop();
Loading loading = new Loading(new Stage());
loading.show();
new Thread(() -> {
while (true) {
count++;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (count >= 4) {
loading.closeStage();
Platform.runLater(() -> {
try {
new Logins().start(stage);
} catch (Exception e) {
e.printStackTrace();
}
});
break;
}
}
}).start();
// new Thread(() -> {
// // try {
// // Thread.sleep(4000);
// // } catch (InterruptedException e1) {
// // e1.printStackTrace();
// // }
//
// }).start();
});
// 设置媒体播放视图的宽度和高度
mView.setFitWidth(600);
mView.setFitHeight(600);
gp.setAlignment(Pos.BOTTOM_CENTER);
gp.addRow(0, mView);
mPlayer.play();
stage.setScene(new Scene(gp, 600, 500));
stage.setTitle("蟹堡王loading");
// stage.setMaximized(true);//设置占满全屏
// stage.getIcons().add(new Image("img\\R-C.gif"));
stage.show();
// ------------------------------------------------
}
public static void main(String[] args) {
launch(args);
}
}
package com.zking.ui;
import javafx.application.Platform;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
/**
* 加载页
*
* @author Miaoqx
*/
public class Loading {
protected Stage stage;
protected StackPane root;
protected Label messageLb;
public Loading(Stage owner) {
ImageView loadingView = new ImageView(
new Image("img\\汉堡加载界面.jfif"));// 可替换
messageLb = new Label("稍等!美味蟹堡马上送达");
messageLb.setFont(new Font("华文琥珀",20));
messageLb.setStyle("-fx-Text-fill:brown");
root = new StackPane();
root.setMouseTransparent(true);
root.setPrefSize(owner.getWidth(), owner.getHeight());
root.setBackground(new Background(new BackgroundFill(Color.rgb(0, 0, 0, 0), null, null)));
root.getChildren().addAll(loadingView, messageLb);
root.setMargin(messageLb, new Insets(500,0,0,0));
Scene scene = new Scene(root);
scene.setFill(Color.TRANSPARENT);
stage = new Stage();
stage.setScene(scene);
stage.setResizable(false);
stage.initOwner(owner);
stage.initStyle(StageStyle.TRANSPARENT);
stage.initModality(Modality.APPLICATION_MODAL);
stage.getIcons().addAll(owner.getIcons());
stage.setX(owner.getX());
stage.setY(owner.getY());
stage.setHeight(owner.getHeight());
stage.setWidth(owner.getWidth());
}
//Timer
// 更改信息
public void showMessage(String message) {
Platform.runLater(() -> messageLb.setText(message));
}
// 显示
public void show() {
Platform.runLater(() -> stage.show());
}
// 关闭
public void closeStage() {
Platform.runLater(() -> stage.close());
}
}