基于C# Winform的酒店管理系统
概述
详细
一、运行效果
二、实现过程
①、房间管理
新增房间
string sql = string.Format(@"insert into RoomTable(RoomID, Floor, TypeID, StateID)values('{0}','{1}','{2}','{3}')", tbFangHao.Text, tbLouCeng.Text, cbLeiXing.SelectedValue.ToString(), cbZhuangTai.SelectedValue.ToString()); if (db.ExecuteSQLCommand(sql) > 0) {string aac = string.Format("{0}房间新增成功!", tbFangHao.Text);MessageBox.Show(aac); }
激活房卡
string sql = string.Format(@"insert into RoomIDCard(RoomID, RoomCard)values('{0}','{1}')", FangHao, tbFangKa.Text); int a = db.ExecuteSQLCommand(sql); if (a > 0) {string aaac = string.Format("激活成功!房号为:{0},房卡为:{1}", FangHao, tbFangKa.Text);MessageBox.Show(aaac); } else {string aaac = string.Format("{0}房卡激活失败!", FangHao);MessageBox.Show(aaac); }
②、房客管理
新增房客
string gender = "男"; if (rbNv.Checked) {gender = "女"; } //向顾客表中插入数据 string sql = string.Format(@"insert into CustomerTable( Name, CarID, Phone, Balance, Type, Sex, Age)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}')", tbXingMing.Text, tbShenFenZheng.Text, tbDianHua.Text, tbJinE.Text, cbLeiXing.SelectedValue, gender, tbNianLing.Text); if (db.ExecuteSQLCommand(sql) > 0) {string sj = DateTime.Now.ToString();//新增到充值记录表try{sql = string.Format(@"insert into CustomerRecharge(RechargeTime, RechargeAmount, RechargeIDCardNumber, Gifts)values('{0}','{1}','{2}','{3}')", sj, tbJinE.Text, tbShenFenZheng.Text, "新开会员");if (db.ExecuteSQLCommand(sql) == 0){MessageBox.Show("新增到充值记录表中失败!");}}catch (Exception er){MessageBox.Show(er.Message);}finally{db.CloseConnection();}string aacc = string.Format("{0}恭喜您成为{1}", tbXingMing.Text, cbLeiXing.Text);MessageBox.Show(aacc);this.Close(); } else {MessageBox.Show("添加失败!"); }
新增房客折扣类型
string sql = string.Format(@"insert into CustomerTypeTable(Grade, Discount)values('{0}','{1}')", tbLeiXing.Text, tbZheKou.Text); if (db.ExecuteSQLCommand(sql) > 0) {MessageBox.Show("添加成功!"); }
③、开房管理
预定房间
int zhi = 0; for (int i = 0; i < lvYiXuang.Items.Count; i++) {try{string sql = string.Format(@"insert into PredeterminedTable(reservationNumber, Name, Phone, RoomID, RoomType, PreconditioningTime, PreDepartureTime, Operator, Price, Type)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')", tbDingDanHao.Text, txtXingMing.Text, txtDianHua.Text, lvYiXuang.Items[i].SubItems[0].Text, lvYiXuang.Items[i].SubItems[1].Text, tpRuZhu.Text, tpYuLi.Text, "1", lvYiXuang.Items[i].SubItems[2].Text, "预定中");if (db.ExecuteSQLCommand(sql) > 0){zhi++;}}catch (Exception ee){MessageBox.Show(ee.Message);}finally{db.CloseConnection();} }MessageBox.Show("成功预定" + zhi + "房!"); this.Close();
房客开房
if (tbXingMing.Text.Equals("") || tbNianLing.Text.Equals("") || tbShengFenngZheng.Text.Equals("")) {MessageBox.Show("抱歉!请认真填写所有信息!");return; } if (Convert.ToDouble(tbZhaoLing.Text) < 0) {MessageBox.Show("抱歉!实付金额不足!");return; } if (lvYiXuang.Items.Count == 0) {MessageBox.Show("抱歉!请选择入住房间!");return; } string sex = "男"; if (rbNv.Checked) {sex = "女"; } //将新顾客信息新增到顾客表 if (tbGuKe.Text.Equals("是")) {try{//新顾客余额为0string yuE = "0";//将顾客信息新增顾客表string sql = string.Format(@"insert into CustomerTable(Name, CarID, Phone, Balance, Type, Sex, Age)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}')", tbXingMing.Text, tbShengFenngZheng.Text, tbDianHua.Text, yuE, "1", sex, tbNianLing.Text);if (db.ExecuteSQLCommand(sql) > 0){//新增成功}else{MessageBox.Show("顾客信息填入顾客表失败");}}catch (Exception ee){MessageBox.Show(ee.Message);}finally{db.CloseConnection();} } try {//获取已选房间数int a = lvYiXuang.Items.Count;int fangShu = 0;//循环输入已选房间for (int i = 0; i < a; i++){string FangJianHao = lvYiXuang.Items[i].Text.ToString();try{string sql = "";double zheKou = 1;if (tbZhiKou.Text != "不打折"){zheKou = Convert.ToDouble(tbZhiKou.Text.Substring(0, 1)) / 10;}double FangJias = Convert.ToDouble(lvYiXuang.Items[i].SubItems[2].Text);//在订单表中插入相应数据if (cbFuKuangFangShi.Text == "现金支付"){sql = string.Format(@"insert into [dbo].[OrderTable](OrderID, RoomID, UName, Age, Deposit, CheckInTime, PreDepartureTime, Phone, CustomerType, CompanyName, Remarks, State, Address, Discounts, AmountReceived, PaymentMethod, Operator, Price)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}')", tbDingDanHao.Text, FangJianHao, tbXingMing.Text, tbNianLing.Text, "0", tpRuZhu.Text, tpYuLi.Text, tbDianHua.Text, tbLeiXing.Text, FangJias * zheKou, tbBeiZhu.Text, "新开单", tbDiZhi.Text, tbZhiKou.Text, FangJias * zheKou, cbFuKuangFangShi.Text, CaoZuoYuan, FangJias);}else if (cbFuKuangFangShi.Text == "账户余额"){sql = string.Format(@"insert into [dbo].[OrderTable](OrderID, RoomID, UName, Age, Deposit, CheckInTime, PreDepartureTime, Phone, CustomerType, CompanyName, Remarks, State, Address, Discounts, AmountReceived, PaymentMethod, Operator, Price)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}')", tbDingDanHao.Text, FangJianHao, tbXingMing.Text, tbNianLing.Text, FangJias * zheKou, tpRuZhu.Text, tpYuLi.Text, tbDianHua.Text, tbLeiXing.Text, "0", tbBeiZhu.Text, "新开单", tbDiZhi.Text, tbZhiKou.Text, FangJias * zheKou, cbFuKuangFangShi.Text, CaoZuoYuan, FangJias);}else if (cbFuKuangFangShi.Text == "现金+余额"){double xianJins = Convert.ToDouble(tbXiangJin.Text) / lvYiXuang.Items.Count;double yuEss = Convert.ToDouble(tbYuEFuKuan.Text) / lvYiXuang.Items.Count;sql = string.Format(@"insert into [dbo].[OrderTable](OrderID, RoomID, UName, Age, Deposit, CheckInTime, PreDepartureTime, Phone, CustomerType, CompanyName, Remarks, State, Address, Discounts, AmountReceived, PaymentMethod, Operator, Price)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}')", tbDingDanHao.Text, FangJianHao, tbXingMing.Text, tbNianLing.Text, yuEss, tpRuZhu.Text, tpYuLi.Text, tbDianHua.Text, tbLeiXing.Text, xianJins, tbBeiZhu.Text, "新开单", tbDiZhi.Text, tbZhiKou.Text, xianJins + yuEss, cbFuKuangFangShi.Text, CaoZuoYuan, FangJias);}if (db.ExecuteSQLCommand(sql) > 0){fangShu++;//修改房间状态sql = string.Format(@"update RoomTable set StateID = 2where RoomID ='{0}'", FangJianHao);if (db.ExecuteSQLCommand(sql) == 0){MessageBox.Show("修改房间状态失败,请手动修改!");}}else{MessageBox.Show("入住失败!");}}catch (Exception ee){MessageBox.Show(ee.Message);}finally{db.CloseConnection();}}if (fangShu == a){MessageBox.Show("入住成功!");Activation at = new Activation();at.FangHao = lvYiXuang.Items[0].Text.ToString();at.ShowDialog();//语音提示string YuYinTiShi = string.Format("找零{0}元", tbZhaoLing.Text);SpeechSynthesizer synth = new SpeechSynthesizer();synth.Speak(YuYinTiShi);if (YuDingDan != null){this.DialogResult = DialogResult.OK;}Win32.AnimateWindow(this.Handle, 300, Win32.AW_HOR_POSITIVE | Win32.AW_HIDE | Win32.AW_SLIDE);this.Close();}} catch (Exception ee) {MessageBox.Show(ee.Message);} finally {db.CloseConnection(); }
房客签入
string sql = string.Format(@"insert into CheckInTable(OrderID, UName, CarID, RoomID, CheckInTime, PreDepartureTime, Operator)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}')", DingDan, tbXingMing.Text, tbShengFengZheng.Text, tbFangHao.Text, ruZhu, yuLi, CaoZuoYuan); int a = db.ExecuteSQLCommand(sql); if ((a > 0)) {string tiShi = string.Format("{0}顾客入住信息添加成功!", tbFangHao.Text);MessageBox.Show(tiShi);this.DialogResult = DialogResult.OK; } else {MessageBox.Show("新增到入住表失败"); }
房客结账签出
string danHao = lvTuiFang.Items[0].SubItems[0].Text; string xingMing = lvTuiFang.Items[0].SubItems[2].Text; string dianHua = lvTuiFang.Items[0].SubItems[3].Text; string tradeTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss", DateTimeFormatInfo.InvariantInfo); if (cbFuKuanFangShi.Text == "现金结账") {//在入住表中插入结账信息!string sql = string.Format(@"insert into CheckoutTable(OrderID, UName, Phone, TotalCost, BalancePayment, PaymentMethod, CheckoutTime, Operator)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')", tbDingDanHao.Text, xingMing, dianHua, Convert.ToDouble(tbXianJin.Text) + Convert.ToDouble(tbChaJia.Text) - Convert.ToDouble(tbZhaoLing.Text), tbYuEZhiFu.Text, cbFuKuanFangShi.Text, tradeTime, CaoZuoYuan);if (db.ExecuteSQLCommand(sql) < 1){MessageBox.Show("结账失败");return;} } else if (cbFuKuanFangShi.Text == "余额结账") {//扣除账户余额string sql = string.Format(@"update [dbo].[CustomerTable] set Balance -= {0}where Name ='{1}' and Phone ='{2}'", Convert.ToDouble(tbYuEZhiFu.Text), xingMing, dianHua);if (db.ExecuteSQLCommand(sql) > 0){string sqls = string.Format(@"insert into MembershipConsumptionList(Name, Phone, AmountOfMoney, Type, Time)values('{0}','{1}','{2}','{3}','{4}')", xingMing, dianHua, Convert.ToDouble(tbYuEZhiFu.Text), "房间消费", tradeTime);db.ExecuteSQLCommand(sqls);}else{MessageBox.Show("修改余额失败!");}//在入住表中插入结账信息!sql = string.Format(@"insert into CheckoutTable(OrderID, UName, Phone, TotalCost, BalancePayment, PaymentMethod, CheckoutTime, Operator)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')", tbDingDanHao.Text, xingMing, dianHua, Convert.ToDouble(tbXianJin.Text) + Convert.ToDouble(tbChaJia.Text) - Convert.ToDouble(tbZhaoLing.Text), tbYuEZhiFu.Text, cbFuKuanFangShi.Text, tradeTime, CaoZuoYuan);if (db.ExecuteSQLCommand(sql) < 1){MessageBox.Show("结账失败");return;} } else {//扣除账户余额string sql = string.Format(@"update [dbo].[CustomerTable] set Balance -= {0}where Name ='{1}' and Phone ='{2}'", Convert.ToDouble(tbYuEZhiFu.Text), xingMing, dianHua);if (db.ExecuteSQLCommand(sql) > 0){string sqls = string.Format(@"insert into MembershipConsumptionList(Name, Phone, AmountOfMoney, Type, Time)values('{0}','{1}','{2}','{3}','{4}')", xingMing, dianHua, Convert.ToDouble(tbYuEZhiFu.Text), "房间消费", tradeTime);db.ExecuteSQLCommand(sqls);}else{MessageBox.Show("修改余额失败!");}//在入住表中插入结账信息!sql = string.Format(@"insert into CheckoutTable(OrderID, UName, Phone, TotalCost, BalancePayment, PaymentMethod, CheckoutTime, Operator)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')", tbDingDanHao.Text, xingMing, dianHua, Convert.ToDouble(tbXianJin.Text) + Convert.ToDouble(tbChaJia.Text) - Convert.ToDouble(tbZhaoLing.Text), tbYuEZhiFu.Text, cbFuKuanFangShi.Text, tradeTime, CaoZuoYuan);if (db.ExecuteSQLCommand(sql) < 1){MessageBox.Show("结账失败");return;} } for (int i = 0; i < lvTuiFang.Items.Count; i++) {//循环修改房间状态,改为空脏房string xiuGaiFangJian = string.Format(@"update RoomTable set StateID=3where RoomID='{0}'", lvTuiFang.Items[i].SubItems[1].Text);if (db.ExecuteSQLCommand(xiuGaiFangJian) < 1){MessageBox.Show("房间状态修改失败!");}//循环修改订单状态,改为已结账string xiuGaiDingDan = string.Format(@"update OrderTable set State='已结账'where RoomID='{0}'", lvTuiFang.Items[i].SubItems[1].Text);if (db.ExecuteSQLCommand(xiuGaiDingDan) < 1){MessageBox.Show("订单状态修改失败!");}//删除激活的房卡string shanChuFangKa = string.Format(@"delete from RoomIDCardwhere RoomID = '{0}'", lvTuiFang.Items[i].SubItems[1].Text);if (db.ExecuteSQLCommand(shanChuFangKa) < 1){//MessageBox.Show("删除房卡失败!");}//删除入住表string shanChuRuZhu = string.Format(@"delete from CheckInTablewhere OrderID='{0}'", lvTuiFang.Items[i].SubItems[0].Text);db.ExecuteSQLCommand(shanChuRuZhu); }
④、员工管理
新增员工
ring sql = string.Format(@"insert into UserTable(UserName, PassWord, CarID, EmployeeName, Jurisdiction)values('{0}','{1}','{2}','{3}','{4}')", txtZhangHao.Text, txtMiMa2.Text, txtShengFenZheng.Text, txtXingMing.Text, cbQuanXian.Text); if (db.ExecuteSQLCommand(sql) > 0) {MessageBox.Show("新增员工成功!");this.Close(); } else {MessageBox.Show("新增员工失败!"); }
⑤、商品操作
新增商品
string sql = string.Format(@"insert into Commodity(Name, Company, Number, BuyingPrice, RetailPrice, Type) values('{0}','{1}','{2}','{3}','{4}','{5}')", tbMingCheng.Text, tbDanWei.Text, tbShuLiang.Text, tbJinHuoJia.Text, tbLingShouJia.Text, cbLeiXing.SelectedValue); if (db.ExecuteSQLCommand(sql) > 0) {MessageBox.Show("新增商品成功!");this.Close(); }
商品结账
if (lvGouWuChe.Items.Count > 0) {string sql;for (int i = 0; i < lvGouWuChe.Items.Count; i++){try{sql = string.Format(@"update [dbo].[Commodity] set Number-={0}where Name = '{1}'", Convert.ToInt32(lvGouWuChe.Items[i].SubItems[3].Text), lvGouWuChe.Items[i].SubItems[0].Text);if (db.ExecuteSQLCommand(sql) == 0){MessageBox.Show("商品数量修改失败!");}}catch (Exception ee){MessageBox.Show(ee.Message);}finally{db.CloseConnection();}}sql = string.Format(@"insert into MerchandiseOrderTable(OrderTable, CollectMoney, PaymentMethod)values('{0}','{1}','{2}')", DateTime.Now.ToString(), tbHeJi.Text, cbFuKuangFangShi.Text);if (db.ExecuteSQLCommand(sql) > 0){MessageBox.Show("购买成功!");tbHeJi.Text = "";tbShiShou.Text = "";tbZhaoLing.Text = "";lvGouWuChe.Items.Clear();} } else {MessageBox.Show("请选择商品!"); }
⑥、数据库操作类
数据库操作类包括执行SQL语句,查询返回单个值/表格等操作。
using System; using System.Data; using System.Data.SqlClient;namespace S1Hotel {class DBHelper{//创建数据库连接private static string str = @"Data Source=.;Initial Catalog=S1Hotel;Integrated Security=True";private SqlConnection con = new SqlConnection(str);/// <summary>/// 查询多个值的方法/// </summary>/// <param name="str"></param>/// <param name="sql"></param>/// <returns></returns>public SqlDataReader SelectDataReader(string sql){con.Open();SqlCommand com = new SqlCommand(sql, con);return com.ExecuteReader(CommandBehavior.CloseConnection);//返回SqlDataReader关闭SqlConnection对象连接}/// <summary>/// 备用关闭数据库/// </summary>public void CloseConnection(){con.Close();}/// <summary>/// 增删改/// </summary>/// <param name="sql">SQL语句</param>/// <returns></returns>public int ExecuteSQLCommand(string sql){con.Open();SqlCommand com = new SqlCommand(sql, con);int a = com.ExecuteNonQuery();con.Close();return a;}/// <summary>/// 查询一张表的数据/// </summary>/// <param name="sql">SQL语句</param>/// <param name="biaoMing"></param>/// <returns></returns>public DataSet GetDataSet(string sql, string biaoMing){SqlDataAdapter da = new SqlDataAdapter(sql, con);DataSet ds = new DataSet();da.Fill(ds, biaoMing);return ds;}/// <summary>/// 查询单个值并返回int类型/// </summary>/// <param name="sql"></param>/// <returns></returns>public int GetSingleIntValue(string sql){con.Open();SqlCommand com = new SqlCommand(sql, con);int a = 0;var t = com.ExecuteScalar();//当com.ExecuteScalar()等于空时就返回0;if (t == DBNull.Value || t == null){}else{a = (int)com.ExecuteScalar();}con.Close();return a;}/// <summary>/// 查询单个值并返回double类型/// </summary>/// <param name="sql"></param>/// <returns></returns>public double GetSingleDoubleValue(string sql){con.Open();SqlCommand com = new SqlCommand(sql, con);double a = 0;var t = com.ExecuteScalar();//当com.ExecuteScalar()等于空时就返回0;if (t == DBNull.Value || t == null){}else{a = Convert.ToDouble(com.ExecuteScalar());}con.Close();return a;&nbnbsp; }/// <summary>/// 计算时间重叠/// </summary>/// <param name="a"></param>/// <param name="b"></param>/// <param name="x"></param>/// <param name="y"></param>/// <returns></returns>public bool CalcTimeOverlap(DateTime a, DateTime b, DateTime x, DateTime y){//时间无重叠 return b >= x && y >= a;/*if ((b < x) || (y < a))return false;return true;*/}} }
三、项目结构图
四、数据库结构图
五、注意事项
测试账号和密码都是1。
转载于:https://my.oschina.net/sitsit/blog/3094587
基于C# Winform的酒店管理系统相关推荐
- python写酒店管理系统_基于C# Winform的酒店管理系统
一.运行效果 二.实现过程 ①.房间管理 新增房间 string sql = string.Format(@"insert into RoomTable(RoomID, Floor, Typ ...
- 基于SSM框架的酒店管理系统
基于SSM框架的酒店管理系统 开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 看每个等级模 ...
- 基于javaweb+jsp的酒店管理系统(java+SSM+jsp+mysql+maven)
基于javaweb+jsp的酒店管理系统(java+SSM+jsp+mysql+maven) 主要技术:java springmvc mybatis mysql tomcat js jquery js ...
- 基于java web的酒店管理系统(Java毕业设计)(Java课程设计)
源码编号:B-I16点击查看(分类规则) 项目类型:Java web项目/Java EE项目(非开源) 项目名称:基于JSP+Servlet的酒店管理系统 当前版本:V4.0版本 难度等级:✩✩ 复杂 ...
- 基于javaweb的精品酒店管理系统(java+SSM+mysql+maven+tomcat)
基于javaweb的精品酒店管理系统(java+SSM+mysql+maven+tomcat) 一.项目简述 功能:主要功能主要功能会员管理,住客管理,房间管 理,系统管理,以及一些重要数据的展示导出 ...
- 基于javaweb+mysql的酒店管理系统(java+springboot+mybatis+beetl+layui)
基于javaweb+mysql的酒店管理系统(java+springboot+mybatis+beetl+layui) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/ ...
- 基于SpringBoot有集酒店管理系统的设计与实现
基于SpringBootd有集酒店管理系统的设计与实现 摘 要 随着互联网技术和国内酒店行业持续快速地发展,管理员为了可以更为便捷地管理用户预订酒店房间,有集酒店管理系统被开发出去的目地是为了可以更 ...
- 基于JAVA如家酒店管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA如家酒店管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA如家酒店管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...
- 基于jsp+mysql+ssm酒店管理系统-计算机毕业设计
项目介绍 本酒店管理系统毕业设计的内容旨在以管理系统的方式给人们出行提供酒店客房预订服务,从而能够更方便快捷的帮助酒店工作人员办理客户入住酒店手续,解决不必要的麻烦.如何利用先进的管理手段来提高酒店的 ...
- 基于asp.net的酒店管理系统-计算机毕业设计
项目介绍 本酒店管理系统设计的内容旨在以管理系统的方式给人们出行提供酒店客房预订服务,从而能够更方便快捷的帮助酒店工作人员办理客户入住酒店手续,解决不必要的麻烦.采用全新的计算机网络和酒店客房管理系统 ...
最新文章
- 1.2 Spyder的基本使用
- 2.9.JavaScript--内置对象
- android开发自动提示框,Android 多种简单的弹出框样式设置代码
- c语言argc,C语言 argc和argv
- 面向对象的JavaScript-007-Function.prototype.bind() 的4种作用
- SourceTree 免注册
- 清华ACL'22 | 一文读懂刘知远所在实验室18篇论文详情
- C#调用C++的DLL所有数据类型转换方式
- 操作系统及IIS版本选择参考
- 测试手机游戏平均帧率软件,想测试手机游戏帧率吗?最Skr帧率测试步骤都在这里!...
- 草莓电吉他音源 Orange Tree Samples Evolution Strawberry Kontakt
- 【2022考石开正攵★氵台】思维导图
- 在本地运行scala程序报错 requirement failed: Can only call getServletHandlers on a running MetricsSystem
- 2012年部分节假日安排
- 服务器主板双cpu性能好吗,双CPU的电脑用起来,性能和功耗都是原来的两倍?
- android保存播放进度,Android MediaPlayer控制进度播放音频
- 解救小哈——DFS算法举例
- STM32之学习总结(正点原子精英版V1,不定时更新)
- 改变屏幕分辨率的小程序
- wpf打开默认浏览器网址
热门文章
- JSP入门:什么是JSP和Servlet?
- 350网店模板一键安装模版与淘宝传统装修的对比
- 大数据资料全解析(352个案例+大数据交易白皮书+国内外政策汇篇)
- C++ 字符编码转换之UTF-8/UTF-16/UTF-32
- python 移动文件语句_python移动文件
- 开源BI工具 - Superset
- 如何查询linux服务器的网卡,linux怎么查看网卡硬件信息
- 网络安全—社会工程学
- 回归、自回归、循环神经网络(RNN)、LSTM
- 手把手全面解读思科(Cisco)网络技术学院 考试折扣号申请说明