0


mysql数据库课程设计——点餐系统(python连接实现可视化,含源码,含报告)

附:完整的sql和python文件都单独放在了主页,附录部分也有源码,大家自行选择查看,欢迎留言提出疑问。

sql文件下载链接:https://download.csdn.net/download/m0_63975371/87094012

python文件下载链接:https://download.csdn.net/download/m0_63975371/87093891

一、设计题目与内容

通过了解餐饮行业的特点和实际情况,从分析饭店的基本情况入手,结合要实现的功能,对系统的可行性进行分析,为提高其可行性,故做了以下数据分析,用以完成饭店点餐系统

二、系统分析与设计

2.1 数据需求

餐桌数据包括餐桌号、座位数、状态(空/有人)。 餐厅存储有顾客信息,员工信息。菜品信息有菜品编号、名称、类别、价格等 。

具体数据需求如下:

2.1.1下订单阶段需要的数据:

顾客信息:包括顾客编号。

订单信息:包括订单编号、消费时间。

餐桌信息:包括编号、可容人数、使用状态等

员工信息:包括员工工号。

2.1.2点菜阶段需要的数据:

订单信息:订单编号

菜品信息:包括菜品编号、菜品名称、菜品数量等。

2.1.3结账阶段需要的数据:

订单信息:包括订单编号、顾客编号

菜品信息:包括菜品编号、菜品名称、菜品数量等。

员工信息:包括员工工号

折扣信息:包括消费金额、折扣数

2.1.4员工管理需要的数据:

员工档案:包括工号、姓名、性别、工资

2.1.5顾客管理需要的数据:

顾客档案:包括编号、姓名、性别等。

2.1.6消费记录管理需要的数据有:

消费信息:订单编号、消费金额、折扣后金额、结账时间

2.2事务需求

2.2.1数据录入

录入顾客信息、录入餐桌信息、录入员工信息、录入菜品信息

2.2.2数据更新/删除

更新/删除餐桌信息、更新/删除菜谱菜品信息、更新/删除员工信息、更新/删除顾客信息、更新/删除订单菜品信息

2.2.3数据查询

查询可用餐桌信息、查询在售菜品信息、查询订单信息、查询顾客点菜信息 、查询员工信息、查询顾客消费信息

三、数据库概念设计

3.1菜谱(Menus)E-R图

3.2顾客(Tomer)E-R图

3.3餐桌(FoodTable)E-R图

3.4员工(Worke)E-R图

3.5订单(Oder)E-R图

3.6消费记录( Sales_bill)E-R图

3.7折扣规则(Discount_rules)E-R图

3.8全局E-R图

四、数据库逻辑设计

4.1转换规则

一个实体型转换成一个关系模型。实体的属性就是关系的属性,实体的码就是关系的码。

实体型间的联系常有如下不同的情况:

a. 一个1:1联系可以转换为一个独立的关系模式,也可以任意一端对应的关系模式合并。

b. 一个1:n联系可以转换成一个独立的关系模式,也可以与n端对应的关系模式合并。

c. 一个m:n联系转换成一个关系模式。

d. 3或3个以上实体间的一个多联系可以转换成一个关系模式。

e. 具有相同码的关系模式可合并。

4.1.1关系模型:(红色为主码)

菜谱(菜品编号,菜品名称,菜品类别,菜品价格)

顾客(顾客编号,姓名,性别,年龄,联系方式)

餐桌(餐桌号,座位数,使用状态)

员工(工号,姓名,性别,年龄,工资)

订单(订单编号,顾客编号,消费时间,餐桌编号,服务员编号)

菜谱_订单(订单编号,菜品编号,菜品名称,菜品数量)

消费记录(订单号,消费金额,折扣后金额,账单时间)

折扣规则(消费金额,折扣)

4.2建立基本表

4.2.1菜谱(Menus)

create table Menus(
M_id varchar(10) primary key,
M_name varchar(20),
M_class varchar(10),
M_price float);

4.2.2顾客(Tomer)

create tale Tomer

(T_id varchar(10) primary key,

T_name varchar(10) not null

T_rsex varchar(4) check (T_sex='男'or T_sex='女') ,

T_phone varchar(20) );

4.2.3餐桌(FoodTable)

create table Foodtable

(Cz_id varchar(10) primary key,

Cz_number int not null,

Cz_zt varchar(6)check(Cz_zt="空" or Cz_zt="有人"));

4.2.4员工(Worke)

create table Worke

(W_id varchar(10) primary key, W_name varchar(10),

W_sex varchar(4) check(W_sex='男' or W_sex='女'),

W_age int,

W_salary float) ;

4.2.5订单(Oder)

create table Menus_Oder

(O_id varchar(10),

M_id varchar(10),

M_name varchar(10),

M_number int not null,

Primary key(M_id ,O_id),

foreign key(M_id) references Menus(M_id ),

foreign key(O_id) references Oder(O_id) ) ;

4.2.6菜谱_订单(Menus_Oder)

create table Menus_Oder

(O_id varchar(10),

M_id varchar(10),

M_name varchar(10),

M_number int not null,

Primary key(M_id ,O_id),

foreign key(M_id) references Menus(M_id ),

foreign key(O_id) references Oder(O_id) ) ;

4.2.7折扣规则(Discount_rules)

create table Discount_rules

(Je float primary key,

Zk float);

4.2.8消费账单(Sales_bill)

create table Sales_bill

(O_id varchar(10) primary key ,

S_price float,

S_priceafter float,

time datetime,

foreign key(O_id ) references Oder(O_id ) );

4.3管理基本表

有时候应用环境和应用需求的改变,我们需要修改已经建立好的基本表的模式结构或者更新已经插入的数据。mysql语句采用alter table<>语句修改基本表的结构,利用drop<>子句删除基本表,利用update更新已经插入的数据。alter table语句以修改基本表的名字,增加新列或者增加新的完整性约束条件,修改原有列的定义,包括修改列名和数据类型等。drop子句用于删除指定的完整性约束条件。UPDATE用于把插入表的数据更新改变。

因为在建立表时将Tomer表中的T_sex错误的录为T_rsex,因此用alter table 表名 change 旧字段名 新字段名 新字段类型。

五、系统实现

访问数据库

5.1数据查询

5.1.1 Foodtable表

5.2.1menus表

5.1.3员工表(worke)

5.1.4消费记录( Sales_bill)

5.1.5顾客(Tomer)

5.1.6订单(Oder)

5.1.7折扣规则(Discount_rules)

5.1.8点菜(menus_oder)

5.2数据更新

将员工表(worker)中的01号员工W_age数据项改为20.

原来的表:

改过之后

5.3python连接数据库

对数据库进行测试:

基础点餐系统:

5.4数据库的维护

数据库维护包括许多内容,包括用户权限的设置、数据库完整性维护、数据库的备份、表的备份、日志备份等。

5.4.1备份数据库

完全备份:这是大多数人常用的方式,它可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象。但它需要花费更多的时间和空间,所以,一般推荐一周做一次完全备份。

事务日志备份:事务日志是一个单独的文件,它记录数据库的改变,备份的时候只需要复制自上次备份以来对数据库所做的改变,所以只需要很少的时间。为了使数据库具有鲁棒性,推荐每小时甚至更频繁的备份事务日志。

差异备份:也叫增量备份。它是只备份数据库一部分的另一种方法,它不使用事务日志,相反,它使用整个数据库的一种新映象。它比最初的完全备份小,因为它只包含自上次完全备份以来所改变的数据库。它的优点是存储和恢复速度快。推荐每天做一次差异备份。

文件备份:数据库可以由硬盘上的许多文件构成。如果这个数据库非常大,并且一个晚上也不能将它备份完,那么可以使用文件备份每晚备份数据库的一部分。由于一般情况下数据库不会大到必须使用多个文件存储,所以这种备份不是很常用。

附录(sql源码):

1.sql****代码


-- Records of discount_rules


INSERT INTO discount_rules VALUES ('100', '9.9');

INSERT INTO discount_rules VALUES ('200', '9.5');

INSERT INTO discount_rules VALUES ('300', '9.2');

INSERT INTO discount_rules VALUES ('500', '9');

INSERT INTO discount_rules VALUES ('1000', '8.5');


-- Table structure for foodtable


DROP TABLE IF EXISTS foodtable;

CREATE TABLE foodtable (

Cz_id varchar(10) NOT NULL,

Cz_number int(11) NOT NULL,

Cz_zt varchar(6) DEFAULT NULL,

PRIMARY KEY (Cz_id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


-- Records of foodtable


INSERT INTO foodtable VALUES ('1', '6', '有人');

INSERT INTO foodtable VALUES ('2', '6', '空');

INSERT INTO foodtable VALUES ('3', '6', '空');

INSERT INTO foodtable VALUES ('4', '6', '空');

INSERT INTO foodtable VALUES ('5', '8', '空');

INSERT INTO foodtable VALUES ('6', '8', '有人');

INSERT INTO foodtable VALUES ('7', '8', '有人');

INSERT INTO foodtable VALUES ('8', '8', '空');

INSERT INTO foodtable VALUES ('9', '10', '有人');


-- Table structure for menus


DROP TABLE IF EXISTS menus;

CREATE TABLE menus (

M_id varchar(10) NOT NULL,

M_name varchar(20) DEFAULT NULL,

M_class varchar(10) DEFAULT NULL,

M_price float DEFAULT NULL,

PRIMARY KEY (M_id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


-- Records of menus


INSERT INTO menus VALUES ('001', '小鸡炖蘑菇', '荤素搭配', '49.99');

INSERT INTO menus VALUES ('002', '黄焖鸡', '荤', '12');

INSERT INTO menus VALUES ('003', '混沌', '荤', '10');

INSERT INTO menus VALUES ('004', '混沌', '素', '8');

INSERT INTO menus VALUES ('005', '兰州拉面', '素', '10');

INSERT INTO menus VALUES ('006', '鸭血粉丝', '荤素搭配', '9.99');

INSERT INTO menus VALUES ('007', '小酥肉', '荤', '11.99');

INSERT INTO menus VALUES ('008', '大盘鸡', '荤', '55.99');

INSERT INTO menus VALUES ('009', '烤鱼', '荤', '20.99');

INSERT INTO menus VALUES ('010', '花生米', '小吃', '5.99');

INSERT INTO menus VALUES ('011', '啤酒', '饮品', '4.5');

INSERT INTO menus VALUES ('012', '腐竹', '素', '10');

INSERT INTO menus VALUES ('013', '拍黄瓜', '素', '5.5');


-- Table structure for menus_oder


DROP TABLE IF EXISTS menus_oder;

CREATE TABLE menus_oder (

O_id varchar(10) NOT NULL,

M_id varchar(10) NOT NULL,

M_name varchar(10) DEFAULT NULL,

M_number int(11) NOT NULL,

PRIMARY KEY (M_id,O_id),

KEY O_id (O_id),

CONSTRAINT menus_oder_ibfk_1 FOREIGN KEY (M_id) REFERENCES menus (M_id),

CONSTRAINT menus_oder_ibfk_2 FOREIGN KEY (O_id) REFERENCES oder (O_id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


-- Records of menus_oder


INSERT INTO menus_oder VALUES ('000001', '001', '小鸡炖蘑菇', '20');

INSERT INTO menus_oder VALUES ('000020', '001', '兰州拉面', '23');

INSERT INTO menus_oder VALUES ('000002', '002', '黄焖鸡', '24');

INSERT INTO menus_oder VALUES ('000003', '003', '混沌', '25');

INSERT INTO menus_oder VALUES ('000007', '003', '混沌', '40');

INSERT INTO menus_oder VALUES ('000013', '003', '小鸡炖蘑菇', '25');

INSERT INTO menus_oder VALUES ('000015', '003', '腐竹', '38');

INSERT INTO menus_oder VALUES ('000018', '003', '鸭血粉丝', '50');

INSERT INTO menus_oder VALUES ('000004', '004', '混沌', '23');

INSERT INTO menus_oder VALUES ('000014', '004', '兰州拉面', '23');

INSERT INTO menus_oder VALUES ('000005', '005', '兰州拉面', '28');

INSERT INTO menus_oder VALUES ('000008', '005', '烤鱼', '50');

INSERT INTO menus_oder VALUES ('000016', '005', '兰州拉面', '40');

INSERT INTO menus_oder VALUES ('000005', '006', '鸭血粉丝', '38');

INSERT INTO menus_oder VALUES ('000010', '006', '兰州拉面', '23');

INSERT INTO menus_oder VALUES ('000014', '006', '花生米', '28');

INSERT INTO menus_oder VALUES ('000017', '006', '混沌', '40');

INSERT INTO menus_oder VALUES ('000006', '007', '小酥肉', '40');

INSERT INTO menus_oder VALUES ('000009', '008', '烤鱼', '46');

INSERT INTO menus_oder VALUES ('000012', '008', '黄焖鸡', '24');

INSERT INTO menus_oder VALUES ('000019', '008', '拌黄瓜', '46');

INSERT INTO menus_oder VALUES ('000011', '009', '鸭血粉丝', '20');


-- Table structure for oder


DROP TABLE IF EXISTS oder;

CREATE TABLE oder (

O_id varchar(10) NOT NULL,

T_id varchar(10) NOT NULL,

time datetime NOT NULL,

Cz_id varchar(10) NOT NULL,

W_id varchar(10) NOT NULL,

PRIMARY KEY (O_id),

KEY T_id (T_id),

KEY Cz_id (Cz_id),

KEY W_id (W_id),

CONSTRAINT oder_ibfk_1 FOREIGN KEY (T_id) REFERENCES tomer (T_id),

CONSTRAINT oder_ibfk_2 FOREIGN KEY (Cz_id) REFERENCES foodtable (Cz_id),

CONSTRAINT oder_ibfk_3 FOREIGN KEY (W_id) REFERENCES worke (W_id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


-- Records of oder


INSERT INTO oder VALUES ('000001', '00001', '2020-06-01 09:30:45', '1', '01');

INSERT INTO oder VALUES ('000002', '00002', '2021-06-22 16:15:31', '2', '02');

INSERT INTO oder VALUES ('000003', '00003', '2021-06-22 16:15:57', '3', '03');

INSERT INTO oder VALUES ('000004', '00004', '2021-06-22 16:16:19', '4', '04');

INSERT INTO oder VALUES ('000005', '00005', '2021-06-22 16:16:40', '5', '05');

INSERT INTO oder VALUES ('000006', '00006', '2021-06-22 16:17:01', '6', '06');

INSERT INTO oder VALUES ('000007', '00007', '2021-06-22 16:17:23', '7', '07');

INSERT INTO oder VALUES ('000008', '00008', '2021-06-22 16:17:47', '8', '08');

INSERT INTO oder VALUES ('000009', '00009', '2021-06-22 16:18:07', '9', '09');

INSERT INTO oder VALUES ('000010', '00010', '2021-06-22 16:18:30', '1', '10');

INSERT INTO oder VALUES ('000011', '00011', '2021-06-22 16:19:08', '2', '01');

INSERT INTO oder VALUES ('000012', '00012 ', '2021-06-22 16:19:28', '3', '02');

INSERT INTO oder VALUES ('000013', '00013', '2021-06-22 16:19:53', '4', '03');

INSERT INTO oder VALUES ('000014', '00014', '2021-06-22 16:20:17', '5', '04');

INSERT INTO oder VALUES ('000015', '00015', '2021-06-22 16:20:40', '6', '05');

INSERT INTO oder VALUES ('000016', '00016', '2021-06-22 16:21:08', '7', '06');

INSERT INTO oder VALUES ('000017', '00017', '2021-06-22 16:21:33', '8', '07');

INSERT INTO oder VALUES ('000018', '00018', '2021-06-22 16:21:54', '9', '08');

INSERT INTO oder VALUES ('000019', '00019', '2021-06-22 16:22:12', '1', '09');

INSERT INTO oder VALUES ('000020', '00020', '2021-06-22 16:22:34', '2', '10');


-- Table structure for sales_bill


DROP TABLE IF EXISTS sales_bill;

CREATE TABLE sales_bill (

O_id varchar(10) NOT NULL,

S_price float DEFAULT NULL,

S_priceafter float DEFAULT NULL,

time datetime DEFAULT NULL,

PRIMARY KEY (O_id),

CONSTRAINT sales_bill_ibfk_1 FOREIGN KEY (O_id) REFERENCES oder (O_id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


-- Records of sales_bill


INSERT INTO sales_bill VALUES ('000001', '100.07', '99.0693', '2021-06-22 16:42:22');

INSERT INTO sales_bill VALUES ('000002', '120.25', '119.048', '2021-06-22 16:42:24');

INSERT INTO sales_bill VALUES ('000003', '132.52', '131.195', '2021-06-22 16:42:28');

INSERT INTO sales_bill VALUES ('000004', '154.42', '152.876', '2021-06-22 16:42:31');

INSERT INTO sales_bill VALUES ('000005', '2546.2', '2164.27', '2021-06-22 16:42:35');

INSERT INTO sales_bill VALUES ('000006', '487.45', '448.454', '2021-06-22 16:42:38');

INSERT INTO sales_bill VALUES ('000007', '165.23', '163.578', '2021-06-22 16:42:41');

INSERT INTO sales_bill VALUES ('000008', '235.55', '223.773', '2021-06-22 16:42:44');

INSERT INTO sales_bill VALUES ('000009', '345.26', '317.639', '2021-06-22 16:42:47');

INSERT INTO sales_bill VALUES ('000010', '256.42', '243.599', '2021-06-22 16:42:50');

INSERT INTO sales_bill VALUES ('000011', '354.42', '326.006', '2021-06-22 16:42:52');

INSERT INTO sales_bill VALUES ('000012', '145.23', '143.778', '2021-06-22 16:42:54');

INSERT INTO sales_bill VALUES ('000013', '200.12', '190.114', '2021-06-22 16:42:57');

INSERT INTO sales_bill VALUES ('000014', '300.14', '276.129', '2021-06-22 16:42:59');

INSERT INTO sales_bill VALUES ('000015', '1000.23', '850.195', '2021-06-22 16:43:01');

INSERT INTO sales_bill VALUES ('000016', '154.15', '152.609', '2021-06-22 16:43:03');

INSERT INTO sales_bill VALUES ('000017', '1120.23', '952.192', '2021-06-22 16:43:05');

INSERT INTO sales_bill VALUES ('000018', '1523.45', '1294.93', '2021-06-22 16:43:08');

INSERT INTO sales_bill VALUES ('000019', '123.23', '121.998', '2021-06-22 16:43:11');

INSERT INTO sales_bill VALUES ('000020', '154.5', '326.14', '2021-06-22 16:43:14');


-- Table structure for tomer


DROP TABLE IF EXISTS tomer;

CREATE TABLE tomer (

T_id varchar(10) NOT NULL,

T_name varchar(10) NOT NULL,

T_rsex varchar(4) DEFAULT NULL,

T_phone varchar(20) DEFAULT NULL,

PRIMARY KEY (T_id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


-- Records of tomer


INSERT INTO tomer VALUES ('00001', '李一', '男', '12345678910');

INSERT INTO tomer VALUES ('00002', '李二', '男', '11345678910');

INSERT INTO tomer VALUES ('00003', '李三', '男', '12145678910');

INSERT INTO tomer VALUES ('00004', '李四', '男', '12315678910');

INSERT INTO tomer VALUES ('00005', '李五', '男', '12341678910');

INSERT INTO tomer VALUES ('00006', '李六', '男', '12345178910');

INSERT INTO tomer VALUES ('00007', '李七', '女', '15936053010');

INSERT INTO tomer VALUES ('00008', '李八', '女', '12345671910');

INSERT INTO tomer VALUES ('00009', '李九', '女', '12345678110');

INSERT INTO tomer VALUES ('00010', '李十', '男', '12345678900');

INSERT INTO tomer VALUES ('00011', '田一', '男', '12345678911');

INSERT INTO tomer VALUES ('00012 ', '田二', '男', '10345678910');

INSERT INTO tomer VALUES ('00013', '田三', '男', '12045678910');

INSERT INTO tomer VALUES ('00014', '田四', '男', '12305678910');

INSERT INTO tomer VALUES ('00015', '田五', '女', '12340678910');

INSERT INTO tomer VALUES ('00016', '田六', '女', '12345078910');

INSERT INTO tomer VALUES ('00017', '田七', '女', '12345608910');

INSERT INTO tomer VALUES ('00018', '田八', '女', '12345670910');

INSERT INTO tomer VALUES ('00019', '田九', '男', '12345678010');

INSERT INTO tomer VALUES ('00020', '暴徒', '男', '12345678920');


-- Table structure for worke


DROP TABLE IF EXISTS worke;

CREATE TABLE worke (

W_id varchar(10) NOT NULL,

W_name varchar(10) DEFAULT NULL,

W_sex varchar(4) DEFAULT NULL,

W_age int(11) DEFAULT NULL,

W_salary float DEFAULT NULL,

PRIMARY KEY (W_id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


-- Records of worke


INSERT INTO worke VALUES ('01', '张一', '男', '21', '5200');

INSERT INTO worke VALUES ('02', '张二', '男', '21', '5100');

INSERT INTO worke VALUES ('03', '张三', '男', '22', '5000');

INSERT INTO worke VALUES ('04', '张四', '男', '22', '4900');

INSERT INTO worke VALUES ('05', '张五', '男', '22', '4800');

INSERT INTO worke VALUES ('06', '张六', '女', '21', '5200');

INSERT INTO worke VALUES ('07', '张七', '女', '20', '5100');

INSERT INTO worke VALUES ('08', '张八', '女', '20', '5000');

INSERT INTO worke VALUES ('09', '张九', '女', '20', '5000');

INSERT INTO worke VALUES ('10', '不可以色色', '女', '20', '5000');


-- View structure for tomer_t


DROP VIEW IF EXISTS tomer_t;

CREATE ALGORITHM=UNDEFINED DEFINER=root@localhost SQL SECURITY DEFINER VIEW tomer_t AS select tomer.T_id AS T_id,tomer.T_name AS T_name,tomer.T_rsex AS T_rsex,tomer.T_phone AS T_phone from tomer where (tomer.T_rsex = '女') ;

2.python****代码

主菜单

def main():

# while死循环

while True:

    # 打印主菜单

    print('------------欢迎使用点餐系统------------\n本软件提供如下功能:')

    lis = ['1. 查看菜单', '2. 查看顾客信息', '3. 查看员工信息', '4. 退出系统']

    for i in lis:

        print(i)

    # 接收用户输入

    a = int(input('请输入数字选择一项功能:'))

    if a == 1:

        print('开始点餐')

        order_food()

        continue

    elif a == 2:

        print('正在打印报表')

        print_work()

        continue

    elif a == 3:

        print('正在存储报表')

        people()

        continue

    elif a == 4:

        print('成功退出系统')

        # 退出循环

        break

    else:

        print('输入错误请重新输入!!')

        continue

def order_food():

import pymysql

#打开数据库连接

db = pymysql.connect(host="localhost",user="root",password="123456",database="ks")

#使用cursor()方法获取操作游标

cursor = db.cursor()

#sql语句

sql = "select * from menus_oder"

try:

    #执行sql语句

    cursor.execute(sql)

    #查询中的一个操作,获取所有记录

    result = cursor.fetchall()

    #打印表数据

    for row in result:

        O_id = row[0]

        M_id = row[1]

        M_name = row[2]

        M_number = row[3]

        print(O_id, M_id,M_name,M_number)

except:

    print("Error!")

def print_work():

import pymysql

db = pymysql.connect(host="localhost",user="root",password="123456",database="ks")

cursor = db.cursor()

sql = "select * from tomer "

try:

    cursor.execute(sql)

    result = cursor.fetchall()

    for row in result:

        T_id = row[0]

        T_name = row[1]

        T_rxex = row[2]

        T_phone = row[3]

        print( T_id,T_name,T_rxex,T_phone)

except:

    print("Error!")

def people():

import  pymysql

db = pymysql.connect(host="localhost",user="root",password="123456",database="ks")

cursor = db.cursor()

sql = "select * from worke "

try:

    cursor.execute(sql)

    result = cursor.fetchall()

    for row in result:

        W_id = row[0]

        W_name = row[1]

        W_sex = row[2]

        W_age = row[3]

        W_salary = row[4]

        print( W_id,W_name,W_sex,W_age,W_salary)

except:

    print("Error!")

if name == 'main':

main()

本文转载自: https://blog.csdn.net/m0_63975371/article/details/127946552
版权归原作者 BaoTuxxl 所有, 如有侵权,请联系我们删除。

“mysql数据库课程设计——点餐系统(python连接实现可视化,含源码,含报告)”的评论:

还没有评论