影院购票系统 C#源代码
我希望能得到更多的建议,如果你觉得哪里能够改进,请您花点时间告诉我,
QQ:1743703238
独立网站:www.addoiles.com
电台:《程序员的生活记录》 目前在网易云音乐/网易云电台,荔枝FM,喜马拉雅,苹果播客可获得收听影院购票系统实现的功能:
1.选择电影
2.该电影有放映场次,可以选择放映场次
3.电影中提供三种票:学生票、普通票、赠送票
4.电影选好了、时间选好了、票的种类选好了,就可以选座位了
5.有确认购票的功能,票才会买,而且你的票一旦买过就不能重复买
6.当你换到其他的时间场次,可以购票,再回来时,购票的信息还在,就是保存死了,不会丢失
7.当你关闭系统时,再次打开信息时票的信息还在
8.提供了系统重置的功能,一旦重置,所有的东西全部初始化
Movie的XML文件:
<?xml version="1.0" encoding="utf-8" ?>
<ShowList><Movie><Name>碟中谍5</Name><Poster>碟中谍5.jpg</Poster><Director>克里斯托夫·迈考利</Director><Actor>汤姆·克鲁斯 / 杰瑞米·雷纳</Actor><Type>动作、冒险、惊悚</Type><Price>60</Price><Schedule><item>9:00</item><item>12:50</item></Schedule></Movie><Movie><Name>地心引力</Name><Poster>地心引力.jpg</Poster><Director>阿方索·卡隆</Director><Actor>乔治·克鲁尼 / 桑德拉·布洛克</Actor><Type>科幻 / 剧情 / 惊悚</Type><Price>80</Price><Schedule><item>12:00</item><item>15:00</item></Schedule></Movie><Movie><Name>极乐空间</Name><Poster>极乐空间.jpg</Poster><Director>尼尔·布洛姆坎普</Director><Actor>马特·达蒙 / 朱迪·福斯特</Actor><Type>科幻 / 动作 / 剧情</Type><Price>60</Price><Schedule><item>7:00</item><item>12:20</item><item>15:30</item></Schedule></Movie><Movie><Name>星际穿越</Name><Poster>星际穿越.jpg</Poster><Director>克里斯托弗·诺兰</Director><Actor>马修·麦康纳 / 安妮·海瑟薇</Actor><Type>冒险 / 科幻</Type><Price>90</Price><Schedule><item>1:00</item><item>2:23</item></Schedule></Movie><Movie><Name>遗落战境</Name><Poster>遗落战境.jpg</Poster><Director>约瑟夫·科辛斯基</Director><Actor>汤姆·克鲁斯 / 摩根·弗里曼</Actor><Type>科幻 / 冒险 / 悬疑 / 动作</Type><Price>80</Price><Schedule><item>1:20</item><item>2:34</item></Schedule></Movie><Movie><Name>泰坦尼克号</Name><Poster>泰坦尼克号.jpg</Poster><Director>詹姆斯·卡梅隆</Director><Actor>迪卡普里奥/温斯莱特</Actor><Type>灾难,爱情</Type><Price>80</Price><Schedule><item>1:45</item><item>2:14</item></Schedule></Movie>
</ShowList>
Form1窗体中的源代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.IO;
using System.Text.RegularExpressions;
namespace FetchMovie
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){LoadTreeView(); //加载TreeViewLoadLabel();//加载座位Labelthis.cboDiscount.Items.Add("今天全免费!!!");this.cboDiscount.SelectedIndex = 6;}/// <summary>/// 成员变量/// </summary>public string xmlPath = "C:\\Users\\YangRunkang\\Desktop\\FetchMovie\\FetchMovie\\Movie.xml";public int ticketsCount = 0;//定的座位的个数,及买票的个数,要保证每次换是时间时,就是选别的时间看电影,要归0,但在归0之前,要存起来public bool isBuy=false;//是否选择电影(即是否触发了TreeView的AfterSelect事件),如果触发了该事件,truepublic string ticketType = "";//电影票的类型public double totalMoney = 0;//总票价public StringBuilder seatNumber = new StringBuilder();//记录座位号public List<Label> LabelLists = new List<Label>();//记录界面中的所有座位Labelpublic string otherPeople = "匿名";//增票的人的名字//public int isTreeViewClick = 0;/// <summary>/// 加载座位的Label标签/// </summary>public void LoadLabel(){for (int i = 1; i <=5;i++)//控制行数{for (int n = 1; n <=7; n++){Label label = new Label();label.Location = new Point(60+(i*100),-20+(n*50));label.Text = (n.ToString() + "-" + i.ToString()).ToString();label.TextAlign = ContentAlignment.MiddleCenter;label.Size = new System.Drawing.Size(50,25);label.BackColor = Color.Wheat;label.Tag = (i.ToString() + n.ToString()).ToString();//只以此为唯一标示 labellabel.Click += new EventHandler(label18_Click);//绑定统一事件this.tabPage2.Controls.Add(label);LabelLists.Add(label);//将new出来的Label存入总的List<Class>中,以备不时之需}}}/// <summary>/// 加载TreeView/// </summary>public void LoadTreeView(){XmlDocument doc = new XmlDocument();doc.Load(xmlPath);XmlNode node = doc.DocumentElement;foreach (XmlNode no in node.ChildNodes){foreach (XmlNode n in no.ChildNodes){//电影名称节点 父节点TreeNode MasterNode = new TreeNode();MasterNode.Text = no["Name"].InnerText;MasterNode.Tag = MasterNode;//Save Nodethis.treeView1.Nodes.Add(MasterNode);//时间节点,统一以电影名称节点为父节点TreeNode StuNode = new TreeNode();StuNode.Text=no["Schedule"]["item"].InnerText;StuNode.Tag = StuNode;MasterNode.Nodes.Add(StuNode);//加载到父节点MasterNode下//时间节点,统一以电影名称节点为父节点TreeNode StuNode2 = new TreeNode();StuNode2.Text = no["Schedule"]["item"].NextSibling.InnerText;//判断点 下StuNode2.Tag = StuNode2;MasterNode.Nodes.Add(StuNode2);//加载到父节点MasterNode下break;//循环一次,跳一次}}}/// <summary>/// 统一公用的控件,此控件的点击事件绑定了35个new出来的控件/// </summary>/// <param name="sender">点击label控件时,一个对象就穿过来了</param>事件源/// <param name="e"></param>//定义一个Label集合,里面存入已经售出的票List<Label> labelList = new List<Label>();private void label18_Click(object sender, EventArgs e){Label clickLabel =(Label)sender;//售出的,不能再卖if (clickLabel.BackColor == Color.Red){MessageBox.Show("此票以售出"); return;}clickLabel.BackColor = Color.Red;//点击后,变色string text = clickLabel.Text;//我点击的Label上的Text值//座位号seatNumber.Append(text+"\t");//座位号如果有多个的话,他是追加的labelList.Add(clickLabel);ticketsCount++;//用加加,原来问题是处在这里,不是算你点了多少个label,而是算你实际的有效点击次数//ticketsCount = labelList.Count;//记票数}//定义一个数组这个数组中存入电影的名字 然后用循环一次查找,找到即显示相应的图片 然后return //找不到,就什么都不干string[] filmNames = new string[] { "碟中谍5", "地心引力", "极乐空间", "星际穿越", "遗落战境", "泰坦尼克号"};private void treeView1_AfterSelect(object sender, TreeViewEventArgs e){//每一次点击保证所有的座位Label是最新的,新场次嘛,肯定要最新的;也要保证座位号(我是把它设为全局变量)是全新的,//不能在上一次的基础上追加foreach(Label label in LabelLists){label.BackColor = Color.Wheat;seatNumber = new StringBuilder() ;this.lowPrice.Text = "无优惠";//将优惠价重置this.txtSender.Text = "匿名";//将赠送者的文本框重置ticketsCount = 0;//我换场次的时候,票数也要归0}// 点击相应的电影显示相应的图片for (int i = 0; i < filmNames.Length;i++){//一开始用 this.treeView1.SelectedNode.Tag.ToString().Substring(9) 用了Tag,其实弄麻烦了,直接用textif ((this.treeView1.SelectedNode.Text.ToString()).Equals(filmNames[i])){//MessageBox.Show("TestOK");测试成功,能实现this.pictureBox1.BackgroundImage=this.Poster.Images[i];this.pictureBox1.BackgroundImageLayout = ImageLayout.Stretch;//return;不能再这里return,在这里return将结束这个方法,那么下面的将不会执行}}//进来就说明你点了电影,isBuy = true;TreeNode node= this.treeView1.SelectedNode;//你选中的节点,电影节点(第2次的想法)//node.Text;//节点上的文本信息string cinemaName = node.Text;//获取具体的电影,然后就可以展示了showDetailsByName(node, cinemaName);//如果当前节点下面有字节点,那么我就打开if (node.Nodes.Count>0){node.Expand();//因为我是点击节点,然后就顺便,所以其子节点是可见的}//处理点击时间,放映时间也会变得功能if (node.Nodes.Count == 0) //等于0说明我选的是时间{TreeNode childNode = this.treeView1.SelectedNode;//因为此子节点下面就没有其他节点了,所以就是时间了this.Time.Text = childNode.Text;}///触发条件 深度为1 次判断,用于根据节点获取相应的获取文件,并从文件中获取数据,最后将获取到到的数据还原到窗体上if (this.treeView1.SelectedNode.Level == 1){DealTxtToForm();}}/// <summary>根电影的名字来展示电影的相关信息/// 根电影的名字来展示电影的相关信息/// </summary>/// <param name="node">选中的节点(电影名称的节点)</param>/// <param name="cinemaName">选中节点上的文本,即电影的名字</param>public void showDetailsByName(TreeNode node,string cinemaName){XmlDocument doc = new XmlDocument();doc.Load(xmlPath);XmlNode no = doc.DocumentElement;foreach (XmlNode n in no.ChildNodes){if (n["Name"].InnerText.Equals(cinemaName)){// MessageBox.Show("1234");测试成功,所以下面就好办了,给各个空间赋值this.FileName.Text=cinemaName;this.Director.Text = n["Director"].InnerText;this.Actor.Text = n["Actor"].InnerText;this.Type.Text = n["Type"].InnerText;this.Price.Text = n["Price"].InnerText;}}}/// <summary>/// 购票条件: 选票 选座位 根据票的种类计算价格,最后打印,打印前或后将数据存入文件/// 购票流程: 流程用字符串进行记录,每记录一个信息用一个%进行结尾,最后以%为标志,进行分割,然后存入数组,以供使用/// 1.选电影 public bool isBuy/// 2.选座位 public int ticketsCount/// 3.选票 rbtn/// 4.最后点击“购票”按钮/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void 购票ToolStripMenuItem_Click(object sender, EventArgs e){buyTicketBefore();//里面调用了购票方法buyTicket(),在调用这个方法之前,就是先判断用户是否买票seatNumber = new StringBuilder(); //卖完之后,我要将seatNumber座位号清空一下,调试的结果 测试成功}/// <summary>/// 买之前要进行一定的价检查,价差好了之后再调用buyTicket()方法,进行买票/// </summary>public void buyTicketBefore(){//判断用户选择,已提供良好的用户体验//Coolif (this.treeView1.SelectedNode == null)//判断节点对象是否为空,就可以判断有没有选择,不用凭借字符字符了,而且凭借字符效率也好低{MessageBox.Show("请选择电影");return;}else if (this.treeView1.SelectedNode.Parent == null){MessageBox.Show("请选择时间");return;}else if (ticketsCount == 0){MessageBox.Show("请选择座位");return;}else if (this.rbtnNormal.Checked == false && this.rbtnSend.Checked == false && this.rbtnStu.Checked == false) //判断 票的种类 有没有选{MessageBox.Show("请选择票的种类");return;}else{//先问是否购买DialogResult result = MessageBox.Show("是否确认购买", "友情提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);if (result == DialogResult.Yes){buyTicket(); //当一切ok,没错,那么我们进行购票 调用buyTicket()}else //不买,将选的座位空出来 {//定义一个Label的List集合,里面存入已经售出的票 List<Label> labelList = new List<Label>();//将存在集合里面的票颜色变过来foreach (Label label in labelList){label.BackColor = Color.Wheat;}ticketsCount = 0;}}}/// <summary>/// 购票的方法/// </summary>public void buyTicket(){string selectTime = this.treeView1.SelectedNode.Text.Replace(":","");//因为时间有:,而:作为文件名就不行就会从出错string path = "d:\\" + this.treeView1.SelectedNode.Parent.Text + "%" + selectTime + ".txt";//文件流FileStream fis = new FileStream(path, FileMode.Create);//写入器StreamWriter sw = new StreamWriter(fis);//写////this.treeView1.SelectedNode.Parent.Text 电影名称//this.treeView1.SelectedNode.Text 电影的放映时间//ticketsCount 电影的票数//StringBuilder sb = new StringBuilder();//电影清单sb.AppendLine("********************************");sb.AppendLine("*********影院售票系统*********");sb.AppendLine("电影名称:《" + this.treeView1.SelectedNode.Parent.Text + "》");sb.AppendLine("电影放映时间:" + this.treeView1.SelectedNode.Text + "");sb.AppendLine("电影类型:" + this.Type.Text + "");sb.AppendLine("购买《" + this.treeView1.SelectedNode.Parent.Text + "》电影票数量:" + ticketsCount.ToString() + "张");//处理学生票类型string ticketType="";if(this.rbtnNormal.Checked==true){ticketType="普通票";}else if(this.rbtnSend.Checked==true){ticketType="赠送票";}else{ticketType="学生票";}sb.AppendLine("电影票类型:" + ticketType);if ((!this.txtSender.Text.Equals("匿名"))||!(this.txtSender.Text.Equals(string.Empty)))//表示有人送票,然后将赠送票的人打印出来{sb.AppendLine("赠送者:"+this.txtSender.Text);}//如果我选的是普通票,我算一下;赠送不用算0元,学生票已经处理过了//test OK全成功if( ticketType=="普通票"){totalMoney = Convert.ToInt32(this.Price.Text) * ticketsCount;ticketsCount = 0;//每次算完各自的账后,就归0,反正已经用过了}sb.AppendLine("总票价:"+totalMoney);totalMoney = 0;//用完之后就清0,给下一个操作留位子 //Test OK//**************************打印座位号sb.AppendLine("您的座位号是:"+seatNumber.ToString());sb.AppendLine("购票时间:" + System.DateTime.Now.ToString());sb.AppendLine("********************************"); sw.Write(sb.ToString());//向文件中写入//关闭sw.Close();fis.Close(); MessageBox.Show(sb.ToString());}/// <summary>/// 当选的是学生票是,学生折扣的cbo能用/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void rbtnStu_CheckedChanged(object sender, EventArgs e){this.cboDiscount.Enabled = true;this.txtSender.Text = "";ticketType = "学生票";this.txtSender.Enabled = false;this.lowPrice.Text = "¥";}//普通票private void rbtnNormal_CheckedChanged(object sender, EventArgs e){this.cboDiscount.Enabled = false;this.txtSender.Enabled = false;this.txtSender.Text = "";this.lowPrice.Text = "无优惠";ticketType = "普通票";}//赠票 优惠的label改为0private void rbtnSend_CheckedChanged(object sender, EventArgs e){this.cboDiscount.Enabled = false;this.txtSender.Enabled = true;//当点中rbtnSend时,那么txtSender可用this.txtSender.Text = otherPeople;this.lowPrice.Text = "赠票,价格0元" + "赠送者:" + otherPeople;ticketType = "赠票";}private void txtSender_TextChanged(object sender, EventArgs e){this.lowPrice.Text ="无优惠"+" "+ "赠送者:"+this.txtSender.Text;}/// <summary>/// 专门处理学生票的,为学生票票计算钱的 获取总金额totalMoney/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void cboDiscount_SelectedIndexChanged(object sender, EventArgs e){string disCountStr=this.cboDiscount.Text;//多个if判断麻烦,用数组string[] dis = new string[] { "九折", "八折", "七折", "六折", "五折", "四折", "今天全免费!!!" };double[] ToDis = new double[] { 0.9,0.8,0.7,0.6,0.5,0.4,0};//对应上面的折扣for (int i = 0; i < dis.Length; i++){if (disCountStr == dis[i]){totalMoney = ticketsCount * Convert.ToDouble(this.Price.Text) * ToDis[i];this.lowPrice.Text = totalMoney.ToString();return;}}}//艰巨的任务来了,从文件中获取数据,并且将获取到到的数据还原到窗体上 --->文本信息获取到了之后,转到另一个方法中AccordingfileContentLoadLabelOfSeat()/// <summary>/// 从文件中获取数据,并且将获取到到的数据还原到窗体上/// /// 事件触发条件:节点深度为1/// </summary>public string fileContent = "";public void DealTxtToForm(){//所有电影的文件的名称(简单点,就是买完票之后的清单) 没有枚举了,直接用数组,方便点string[] allFilesName = new string[] { "地心引力%1200.txt", "地心引力%1500.txt", "碟中谍5%900.txt", "碟中谍5%1250.txt", "极乐空间%700.txt", "极乐空间%1220.txt", "泰坦尼克号%145.txt", "泰坦尼克号%214.txt", "星际穿越%100.txt", "星际穿越%223.txt", "遗落战境%120.txt", "遗落战境%234.txt" };//我要获取D盘下的所有文件的文件名,然后用for循环进行依次比对,比对成功打开文件,进行文件中数据的处理//到D盘下DirectoryInfo D = new DirectoryInfo("D:\\");//获取D盘下的文件FileInfo[] D_files = D.GetFiles();//获取每个文件的文件名 存到文件名数组中//文件名数组string[] getD_filesName=new string[D_files.Length];//文件全路径数组string[] getD_filesFullName = new string[D_files.Length];for (int i = 0; i < D_files.Length; i++){getD_filesName[i] = D_files[i].Name;getD_filesFullName[i] = D_files[i].FullName;}//下面的验证成功,可以获取到文件的名称//for (int i = 0; i < D_files.Length; i++)//{// MessageBox.Show(getD_filesName[i]);// MessageBox.Show(getD_filesFullName[i]);//}//就是根据用户的点击(此方法的触发有一个条件,节点深度为1,所以不用担心,所以可以直接用this.treeView1.SelectNode.Text),来调取相应的文件string treeViewSelectNodeText = this.treeView1.SelectedNode.Parent.Text + "%" + this.treeView1.SelectedNode.Text.Replace(":","") + ".txt";//时间要将:去掉//MessageBox.Show(treeViewSelectNodeText); OKfor (int i = 0; i < D_files.Length; i++){if (treeViewSelectNodeText == getD_filesName[i])//如果文件名称相等{FileStream fis = new FileStream(getD_filesFullName[i],FileMode.Open);//文件的全路径//打开文件获取里面的内容StreamReader read = new StreamReader(fis);fileContent = read.ReadToEnd();//从头读到尾,将读到的数据放入成员变量fileContent中//MessageBox.Show(fileContent); OKread.Close();fis.Close();AccordingfileContentLoadLabelOfSeat(fileContent);//专门处理座位的文本return;}}//如果if进去,下面的两行代码是执行不了的//MessageBox.Show(treeViewSelectNodeText);//MessageBox.Show(fileContent);}/// <summary>/// 文本信息获取到了之后,根据文本的信息加载座位Label/// </summary>/// <param name="fileContent"></param>//LabelLists 所有的座位号,一直存在数组里,现在到用它的时候了public void AccordingfileContentLoadLabelOfSeat(string fileContent){//下面就是处理文本了,我主要是想获取里面的座位号 X-Y 格式的//解决方法 以"-"为标志,取前取后,然后连接起来,存入新的数组(成员变量的位置),以供使用我现将所有的内容,分割,一个字符分一下 行不通//string[] words = fileContent.Split(' ');//for (int i = 0; i < words.Length; i++)//{// MessageBox.Show(words[i]);//}//正则表达式Regex obj = new Regex("[0-9][-][0-9]");MatchCollection co= obj.Matches(fileContent,0);foreach(Match maco in co) //MatchCollection 大, match 小{//MessageBox.Show(maco.ToString()); 测试成功,每个座位号都可以获取foreach (Label label in LabelLists){if (label.Text.Equals(maco.ToString())){label.BackColor = Color.Red;}}}}private void 退出ToolStripMenuItem_Click(object sender, EventArgs e){Application.Exit();}private void 重置系统ToolStripMenuItem_Click(object sender, EventArgs e){DialogResult result = MessageBox.Show("是否重置系统?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Question);if (result == DialogResult.Yes){//所有电影的文件的名称(简单点,就是买完票之后的清单) 没有枚举了,直接用数组,方便点string[] allFilesName = new string[] { "地心引力%1200.txt", "地心引力%1500.txt", "碟中谍5%900.txt", "碟中谍5%1250.txt", "极乐空间%700.txt", "极乐空间%1220.txt", "泰坦尼克号%145.txt", "泰坦尼克号%214.txt", "星际穿越%100.txt", "星际穿越%223.txt", "遗落战境%120.txt", "遗落战境%234.txt" };//我要获取D盘下的所有文件的文件名,然后用for循环进行依次比对,比对成功打开文件,进行文件中数据的处理//到D盘下DirectoryInfo D = new DirectoryInfo("D:\\");//获取D盘下的文件FileInfo[] D_files = D.GetFiles();//获取每个文件的文件名 存到文件名数组中//文件名数组string[] getD_filesName = new string[D_files.Length];//文件全路径数组string[] getD_filesFullName = new string[D_files.Length];for (int i = 0; i < D_files.Length; i++){getD_filesName[i] = D_files[i].Name;getD_filesFullName[i] = D_files[i].FullName;}for (int i = 0; i < D_files.Length; i++){File.Delete(getD_filesFullName[i]);}this.Hide();//隐藏Form1 form = new Form1();form.Show();//showMessageBox.Show("重置成功");}}}
}我希望能得到更多的建议,如果你觉得哪里能够改进,请您花点时间告诉我,手机号:13955195045(发信息给我) QQ:1743703238 微博:杨润康Bla
影院购票系统 C#源代码相关推荐
- 影院购票系统座位信息锁定问题
电影院购票系统通常使用数据库来管理座位信息.当用户选择某个座位时,系统会将该座位的状态从"可用"改为"已锁定",并将座位的相关信息存储到数据库中.如果用户在一定 ...
- java影院购票系统开题报告,开题报告-网上电影院购票系统的设计与实现.doc
一.研究的目的.意义与应用前景等: 研究的目的和意义: 随着互联网技术的不断发展,各个行业都向信息化方向发展,原来的人工管理逐渐被计算机管理所替代.生活水平的提高使人们越来越注重精神层次的享受.而电影 ...
- 基于Jsp的在线电影院订票|影院购票系统
<基于Jsp+Servlet+MySQL在线电影院订票系统>该项目采用技术Jsp + Servlet + MySQL + LayUI.tomcat服务器.mysql数据库.项目含有源码.配 ...
- 基于SpringBoot在线电影订票|影院购票系统
<基于SpringBoot在线电影订票系统>该项目采用技术后台:Springboot.spring.springmvc.springdata.mysql数据库.前台:FreeMarker. ...
- spring boot毕业设计项目源码基于SpringBoot在线电影订票|影院购票系统
- 基于javaweb的电影院购票系统(java+ssm+jsp+bootstrap+layui+echarts+mysql)
基于javaweb的电影院购票系统(java+ssm+jsp+bootstrap+layui+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 ec ...
- SSM电影院购票系统
这个假期中,博主完成了一个SSM框架开发的电影院购票系统,界面上博主使用的是猫眼电影购票,以下是关于系统的介绍: 前端UI文件列表 演示视频网址: SSM影院购票系统演示视频 开发技术: 后端框架:S ...
- ssm电影院购票系统、
项目介绍: ssm电影院购票系统. 系统说明: 影院购票系统 项目引见 影院购票系统,本项目分为前台和后台,用户有普通用户和管理员,普通用户只可访问前台页面,管理员能够访问后台: 前台主要功用有电影分 ...
- 基于springboot电影购票系统(源代码+数据库)012
部分代码地址 https://gitee.com/ynwynwy/Movie-Ticket-Purchasing-public 基于springboot电影购票系统(源代码+数据库) 一.系统介绍 前 ...
最新文章
- SAP WM LQ02 为供应商寄售库存去K的时候,如果有Open TO单,则不能成功为物料去K?
- 阿里淘系程序员“开源”内部年度技术总结,还把P9大佬喊出来教你“打怪升级”...
- main() 函数解析(一)——Linux-0.11 剖析笔记(六)
- php本地环境搭建软件下载,用EasyPHP本地搭建PHP环境的步骤分享
- 爬取许嵩新歌《雨幕》弹幕,告诉你什么才是真正的创作!
- 移动app崩溃原因及场景
- api 定位 微信小程序 精度_聊聊微信小程序内置地图定位的精确性
- 01背包 模板1 2 总结
- 华为鸿蒙安全认证,手机系统哪家强,华为鸿蒙系统获得国际安全标准最高等级认证,强不强?...
- 通俗易懂!视觉slam第二部分——salm过程简介
- mysql日志恢复的时间格式_mysql binlog 日志恢复数据
- exchange 2010 允许 relay设定
- 每日一题/006/矩阵/设 n阶实对称矩阵 A满足 A^2=A,且 A 的秩为r,试求行列式 det(2E-A) 的值
- Notepad++查看、编辑二进制文件——安装附加组件HexEditor实现
- 机器学习实战:支持向量机回归预测财政收入
- Linux开发板调试 - NFS调试
- dell主板恢复出厂设置_DELL戴尔电脑BIOS怎么恢復初始状态
- IE浏览器不能使用window.open()的解决方案
- 使用photoshop2021对有阴影的背光摄影照片进行调色修改
- SCI论文写作的学习与总结