选择“操作”会初始化对应的“下一环节处理”,
选择“下一环节处理”会初始化“备选责任人”
//public delegate void EventHandler(object sender, EventArgs e); public event EventHandler PreSubmit; // 提交前事件触发 if (PreSubmit != null) { EventArgs ea = new EventArgs(); PreSubmit(this, ea); }
控件使用:
<!-- 注册用户组件 --> <%@ Register src="../../AspUC/Dispose/Dispose.ascx" tagname="Dispose" tagprefix="uc1" %> <div> <uc1:Dispose ID="Dispose1" runat="server" OnPreSubmit="SaveNetworkInfo"/> </div>
Dispose.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Dispose.ascx.cs" Inherits="OSP.Web.AspUC.Dispose.Dispose" %> <table style="table-layout:fixed;" id="opinionform"> <tr> <td class="leftform"> <table style=" table-layout:fixed;" > <tr> <td> <h2>处理意见</h2> </td> </tr> <tr> <td> <asp:TextBox ID="Comment" runat="server" TextMode="MultiLine" Rows="8"></asp:TextBox> </td> </tr> <tr> <td> <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">保存常用意见</asp:LinkButton> <asp:DropDownList ID="UsualComment" runat="server" onselectedindexchanged="UsualComment_SelectedIndexChanged" AutoPostBack="true"> </asp:DropDownList> <asp:LinkButton ID="LinkButton2" runat="server" onclick="LinkButton2_Click">删除意见</asp:LinkButton> </td> </tr> </table> </td> <td class="rightform"> <table style="table-layout:fixed;" > <tr> <td > <h2>选择操作</h2> </td> </tr> <tr> <td> <asp:ListBox ID="Action" runat="server" Rows="4" onselectedindexchanged="Action_SelectedIndexChanged" AutoPostBack="true"></asp:ListBox> </td> </tr> <tr> <td > <h2>下一环节处理(多选时请按ctrl键)</h2> </td> </tr> <tr> <td> <asp:ListBox ID="Activity" runat="server" Rows="4" SelectionMode="Multiple" onselectedindexchanged="Activity_SelectedIndexChanged" AutoPostBack="true"></asp:ListBox> </td> </tr> </table> </td> </tr> <tr> <td colspan="2" class="bottomform"> <table style="width:100%;"> <tr> <td colspan="3" > <h2>选择执行人</h2> </td> </tr> <tr> <td> <h2>备选责任人</h2> </td> <td> </td> <td> <h2>已选责任人</h2> </td> </tr> <tr> <td> <asp:ListBox ID="OptUser1" runat="server" Rows="5"></asp:ListBox> </td> <td style="width:70px;"> <table style=" table-layout:fixed;"> <tr align="center"> <td> <asp:Button ID="Button1" runat="server" Text=">>" Width="50px" onclick="Button1_Click" /> </td> </tr> <tr align="center"> <td> <asp:Button ID="Button2" runat="server" Text=">" Width="50px" onclick="Button2_Click"/> </td> </tr> <tr align="center"> <td> <asp:Button ID="Button3" runat="server" Text="<" Width="50px" onclick="Button3_Click"/> </td> </tr> <tr align="center"> <td> <asp:Button ID="Button4" runat="server" Text="<<" Width="50px" onclick="Button4_Click"/> </td> </tr> </table> </td> <td> <asp:ListBox ID="OptUser2" runat="server" Rows="5"></asp:ListBox> </td> </tr> </table> </td> </tr> <tr> <td colspan="2" align="center"> <div class="button2"> <asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="~/themes/default/images/btn_submit.gif" Width="50" Height="20" onclick="ImageButton2_Click"/> <asp:ImageButton ID="ImageButton3" runat="server" ImageUrl="~/themes/default/images/btn_close.gif" Width="50" Height="20" OnClientClick="window.returnValue=0;window.close();"/> </div> </td> </tr> </table>
Dispose.ascx.cs:
//属性 namespace OSP.Web.AspUC.Dispose { public partial class Dispose : System.Web.UI.UserControl { private BLL.WorkFlowBll workFlow = new BLL.WorkFlowBll(); #region 暴露属性 /// <summary> /// 提交前触发事件 外部设置 /// </summary> public event EventHandler PreSubmit; /// <summary> /// 提交后触发事件 外部设置 /// </summary> public event EventHandler PostSubmit; /// <summary> /// 环节参数:key=value;key=value... 外部设置 /// </summary> public string ActivityParam; /// <summary> /// 流程参数:key=value;key=value... 外部设置 /// </summary> public string ProcessParam; /// <summary> /// 下一环节名称 只读 /// </summary> public string NextActivityName { get { return Activity.SelectedItem.Text; } } /// <summary> /// 下一环节元数据 只读 /// </summary> public string NextActivityMetaData { get { return Activity.SelectedItem.Value; } } private decimal piid; public decimal ProcessInstanceId { get { return piid; } } #endregion
//页面加载 /// <summary> /// 页面加载 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { // 下一环节信息 string fullname = Page.Request.QueryString["fn"]; string sn = Page.Request.QueryString["sn"]; string originator = Page.Request.QueryString["ou"]; DataSet ds = null; if (string.IsNullOrEmpty(fullname)) { #region 流程过程审批 ds = workFlow.GetWorklistItem(sn, false); // 操作初始化 DataTable dta = ds.Tables["Action"]; Action.DataTextField = "Name"; Action.DataValueField = "Name"; Action.DataSource = dta; Action.DataBind(); #endregion } else { #region 流程发起选人 ds = XMLUtil.ConvertDataSet(workFlow.getNextActivityInfo(originator, fullname)); Action.Items.Add(new ListItem("开始","开始")); Action.SelectedIndex = 0; DataTable dta = ds.Tables["NextActivity"]; if (dta != null && dta.Rows.Count > 0) { Activity.Items.Add(new ListItem(dta.Rows[0]["ActName"].ToString(), dta.Rows[0]["MetaData"].ToString())); Activity.SelectedIndex = 0; DataTable dtu = ds.Tables["AvailableUser"]; if (dtu != null && dtu.Rows.Count > 0) { foreach(DataRow dr in dtu.Rows) { OptUser1.Items.Add(new ListItem(dtu.Rows[0]["UserName"].ToString(), dtu.Rows[0]["LoginID"].ToString())); } } } #endregion } this.ViewState["ds"] = ds; // 常用意见信息 DataSet dsoc = workFlow.getOftenComment(); UsualComment.Items.Add(new ListItem("-- 请选择 --", "0")); UsualComment.SelectedIndex = 0; if (dsoc.Tables["OftenComment"] != null) { foreach (DataRow dr in dsoc.Tables["OftenComment"].Rows) { UsualComment.Items.Add(new ListItem(dr["Comment"].ToString(), dr["CommentID"].ToString())); } } } }
//控件联动事件 #region 控件联动事件 /// <summary> /// 根据操作确定环节列表 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Action_SelectedIndexChanged(object sender, EventArgs e) { if (string.IsNullOrEmpty(Page.Request.QueryString["fn"])) { Activity.Items.Clear(); DataSet ds = (DataSet)this.ViewState["ds"]; if (Action.SelectedValue != null) { DataRow[] dr = null; if (ds.Tables["Action"] != null && (dr = ds.Tables["Action"].Select("Name='" + Action.SelectedValue + "'")).Length > 0) { dr = dr[0].GetChildRows(ds.Relations["Action_WFNextActivitys"]); if (dr.Length > 0) { DataRow[] d = dr[0].GetChildRows(ds.Relations["WFNextActivitys_NextActivity"]); foreach (DataRow dr2 in d) { Activity.Items.Add(new ListItem(dr2["ActName"].ToString(), dr2["MetaData"].ToString())); } OptUser1.DataSource = null; OptUser2.DataSource = null; OptUser1.DataBind(); OptUser2.DataBind(); } } } } } protected void Button1_Click(object sender, EventArgs e) { foreach (ListItem li in OptUser1.Items) { OptUser2.Items.Add(li); } OptUser1.Items.Clear(); } protected void Button2_Click(object sender, EventArgs e) { foreach (ListItem li in OptUser1.Items) { if (li.Selected) { OptUser2.Items.Add(li); } } foreach (ListItem li in OptUser2.Items) { OptUser1.Items.Remove(li); } OptUser1.SelectedIndex = -1; OptUser2.SelectedIndex = -1; } protected void Button3_Click(object sender, EventArgs e) { foreach (ListItem li in OptUser2.Items) { if (li.Selected) { OptUser1.Items.Add(li); } } foreach (ListItem li in OptUser1.Items) { OptUser2.Items.Remove(li); } OptUser1.SelectedIndex = -1; OptUser2.SelectedIndex = -1; } protected void Button4_Click(object sender, EventArgs e) { foreach (ListItem li in OptUser2.Items) { OptUser1.Items.Add(li); } OptUser2.Items.Clear(); } protected void Activity_SelectedIndexChanged(object sender, EventArgs e) { if (string.IsNullOrEmpty(Page.Request.QueryString["fn"])) { OptUser1.Items.Clear(); OptUser2.Items.Clear(); DataSet ds = (DataSet)this.ViewState["ds"]; if (Activity.SelectedValue != null) { string sql = "MetaData='" + Activity.Items[Activity.SelectedIndex].Value + "'"; for (int i = Activity.SelectedIndex + 1; i < Activity.Items.Count; i++) { if (Activity.Items[i].Selected) { sql += "or MetaData='" + Activity.Items[i].Value + "'"; } } DataRow[] dr = null; DataRow[] dr3 = null; if (ds.Tables["NextActivity"] != null && (dr = ds.Tables["NextActivity"].Select(sql)).Length > 0) { Dictionary<string, string> dir = new Dictionary<string, string>(); for (int j = 0; j < dr.Length; j++) { dr3 = dr[j].GetChildRows(ds.Relations["NextActivity_AvailableUsers"]); if (dr3.Length > 0) { DataRow[] d = dr3[0].GetChildRows(ds.Relations["AvailableUsers_AvailableUser"]); foreach (DataRow dr2 in d) { dir[dr2["LoginID"].ToString()] = dr2["UserName"].ToString(); } } } foreach (string key in dir.Keys) { OptUser1.Items.Add(new ListItem(dir[key], key)); } } } } } #endregion
// /// <summary> /// 提交审批 /// 提交前和后会触发相应事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ImageButton2_Click(object sender, ImageClickEventArgs e) { // 表单校验 if (OptUser1.Items.Count > 0 && OptUser2.Items.Count < 1) { ScriptManager.RegisterStartupScript(this, this.GetType(), "showMsg", "showMsg('请选择责任人!');", true); return; } if (Action.SelectedIndex < 0) { ScriptManager.RegisterStartupScript(this, this.GetType(), "showMsg", "showMsg('请选择操作!');", true); return; } if (Activity.SelectedIndex < 0) { ScriptManager.RegisterStartupScript(this, this.GetType(), "showMsg", "showMsg('请选择环节!');", true); return; } // 提交前事件触发 if (PreSubmit != null) { EventArgs ea = new EventArgs(); PreSubmit(this, ea); } #region 提交审批 // 下一环节信息 string fullname = Page.Request.QueryString["fn"]; string sn = Page.Request.QueryString["sn"]; string originator = Page.Request.QueryString["ou"]; string folio = Page.Request.QueryString["folio"]; string msg = ""; if (string.IsNullOrEmpty(fullname)) { string activityParam = "Outcome=k2sql:" + Action.SelectedValue; if (!string.IsNullOrEmpty(ActivityParam)) { activityParam += (";" + ActivityParam); } string processParam = ""; string userInfo = ""; if (OptUser2.Items.Count > 0) { userInfo = Activity.SelectedValue + "=k2sql:" + OptUser2.Items[0].Value; for (int i = 1; i < OptUser2.Items.Count; i ++) { userInfo += ",k2sql:" + OptUser2.Items[i].Value; } } processParam += userInfo; processParam += ";Route01=" + Activity.SelectedValue; if (!string.IsNullOrEmpty(ProcessParam)) { processParam += (";" + ProcessParam); } workFlow.finishWorkListItem(sn, Action.SelectedValue, activityParam, processParam, Comment.Text); msg = "审批成功!"; } else { string processParam = ""; string userInfo = ""; if (OptUser2.Items.Count > 0) { userInfo = Activity.SelectedValue + "=k2sql:" + OptUser2.Items[0].Value; for (int i = 1; i < OptUser2.Items.Count; i++) { userInfo += ",k2sql:" + OptUser2.Items[i].Value; } } processParam += userInfo; piid = Convert.ToDecimal(workFlow.startProcess(originator, fullname, folio, processParam)); msg = "流程发起成功!"; } #endregion // 提交后事件触发 if (PostSubmit != null) { EventArgs ea = new EventArgs(); PostSubmit(this, ea); } // 如果成功,关闭 ScriptManager.RegisterStartupScript(this, this.GetType(), "showMsg", "showMsg('" + msg + "');window.returnValue=1;window.close();", true); } protected void LinkButton2_Click(object sender, EventArgs e) { workFlow.deleOftenComment(UsualComment.SelectedValue); UsualComment.Items.Remove(UsualComment.Items[UsualComment.SelectedIndex]); UsualComment.SelectedIndex = 0; Comment.Text = ""; } protected void LinkButton1_Click(object sender, EventArgs e) { UsualComment.Items.Add(new ListItem(Comment.Text, workFlow.saveOftenComment(Comment.Text))); UsualComment.SelectedIndex = UsualComment.Items.Count - 1; } protected void UsualComment_SelectedIndexChanged(object sender, EventArgs e) { if (UsualComment.SelectedIndex != 0) { Comment.Text = UsualComment.SelectedItem.Text; } }
"常用意见数据源":
DataSet dsoc
//GetOftenComment.xml <?xml version="1.0" encoding="utf-8"?> <OftenComments> <Result>0</Result> <IsOK>true</IsOK> <OftenComment> <CommentID>22684FA6DD0B49B6B248E932666E4CB4</CommentID> <Comment>............hahahah3333同意</Comment> </OftenComment> <OftenComment> <CommentID>B1226234D35B4F7D9581C72D0DB03355</CommentID> <Comment>............hahahah</Comment> </OftenComment> <OftenComment> <CommentID>BE11D9B4767C44D196ABFC6DFF6C5CE2</CommentID> <Comment>............hahahah3333</Comment> </OftenComment> <Action>Get</Action> </OftenComments>
..
相关推荐
在启动阶段,项目经理通常会定义项目范围、创建项目章程并组建团队。在规划阶段,会制定详细的项目计划,包括时间表、预算和资源分配。执行阶段涉及实际的工作实施,而监控阶段则需跟踪进度、质量以及风险,确保项目...
- **.NET 架构**:微软提供的用于构建和运行应用程序的框架。 - **工作流技术**:用于自动化业务流程的技术。 - **1.8 软件工具** - **建模工具**:如 UML 建模工具。 - **软件开发工具**:如 IDE 集成开发环境...
多目标白鲸优化算法MOBWO:在多目标测试函数中的实证与应用分析,多目标白鲸优化算法MOBWO的实证研究:在九个测试函数中的表现与评估,多目标白鲸优化算法MOBWO 在9个多目标测试函数中测试 Matlab语言 程序已调试好,可直接运行,算法新颖 1将蛇优化算法的优良策略与多目标优化算法框架(网格法)结合形成多目标蛇优化算法(MOSO),为了验证所提的MOSO的有效性,将其在9个多目标测试函数 (ZDT1、ZDT2、ZDT3、ZDT4、ZDT6、Kursawe、Poloni,Viennet2、Viennet3) 上实验,并采用IGD、GD、HV、SP四种评价指标进行评价,部分效果如图1所示,可完全满足您的需求~ 2源文件夹包含MOBWO所有代码(含9个多目标测试函数)以及原始白鲸优化算法文献 3代码适合新手小白学习,一键运行main文件即可轻松出图 4仅包含Matlab代码,后可保证原始程序运行~ ,多目标白鲸优化算法(MOBWO); 测试函数; Matlab语言; 程序调试; 算法新颖; 多目标蛇优化算法(MOSO); IGD、GD、HV、SP评价指标; 代码学习; 轻松出图。,基于
海神之光上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
海神之光上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
内容概要:本文介绍了在中国石油勘探开发梦想云平台上定义REST API接口的基本规范,旨在提高接口质量,便于开发、测试和维护。主要内容包括REST API的基础概念,设计流程,URI、HTTP方法及响应状态码的运用,API文档的管理以及Swagger工具的应用,还详细阐述了API安全认证,特别是JWT的应用。通过这份文档能够帮助开发者理解和实施高质量的微服务架构。 适用人群:适用于参与或计划参与微服务项目的开发团队,尤其是那些致力于提升REST API接口质量和效率的专业技术人员。 使用场景及目标:文档的目标在于引导用户理解REST API接口设计的关键要素,如资源命名、方法选择等,并教会他们如何有效管理和保护这些API,确保其稳定性和安全性。通过实践本指南的原则,用户可以构建出更加健壮的分布式应用程序接口。 其他说明:此外,文中提供了大量关于API文档生成与维护的最佳做法,强调了文档更新须与代码同步,同时也探讨了API变更管理的有效方法。在安全方面,重点讲述了JWT的构成及其工作机制,展示了利用JWT实现高效认证的具体实例。
海神之光上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
内容概要:该文档详细介绍了基于双向长短期记忆(BiLSTM)神经网络与Adaboost集成学习的时间序列预测模型及其应用。文中阐述了项目背景,指出了传统LSTM在复杂数据下存在的局限,提出了通过BiLSTM增强前后依赖关系,并结合Adaboost优化模型精度与泛化能力的方法。全文涵盖了从数据预处理、特征提取到建模、评估、以及GUI设计在内的全过程,并展示了该模型在金融预测、气象预报、能源管理和生产调度等多个领域的广泛应用潜力。文章还包括对代码片段的具体解析、模型部署的考量及未来发展的展望。 适合人群:拥有基本的机器学习与神经网络基础的研究人员和技术开发者,尤其是那些正在寻找时间序列数据分析解决方案的专业人士。 使用场景及目标:1. 多个领域如金融市场、气象预测等的时间序列数据处理任务中;2. 解决传统单一神经网络可能出现的过拟合并优化模型的鲁棒性和准确性。 其他说明:除了详细讲解如何使用Matlab实施完整的BiLSTM和Adaboost集成外,文中还特别注意到了模型调优的重要性——通过超参数搜索、早停策略和其他正则化技巧以预防过拟合情况的发生。此外,文档还讨论了有关实时数据处理、模型安全性和可移植性的要点。附带完整的Matlab代码实现了从环境准备直到预测结果可视化的每一个步骤,使读者可以很容易地复现和定制整个工作流程。
海神之光上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
内容概要:Go 1.24 版本引入了多项关键改进,其中包括:泛型类型别名,允许类型别名携带类型参数,简化代码实现;弱指针避免对象因包含在缓存中而无法被释放的问题;改进了终结器,提供了新的运行时函数 AddCleanup 以增强对象清理的灵活性和可靠性。另外,Go 1.24 改善了 map 的默认实现,显著提升了其运行时性能。与此同时,开源项目 miniblog 是一个功能全面、易于理解的 Go 实战项目。该项目采用了类似 Kubernetes 的三层架构设计,涵盖了许多 Go 项目开发的最佳实践和技术栈,不仅有助于开发者理解 Go 项目的核心理念和实施方法,还能提供一系列开发脚手架工具、配套课程和支持材料,以便更轻松地开展实际项目。 适合人群:1年以上 Go 开发经验的研发人员或正在寻找优秀 Go 项目充实自己简历的技术人员。 使用场景及目标:该总结的目标是帮助有一定 Go 基础的知识分子迅速了解新特性及其实用价值。miniblog 项目特别适用于希望加深对 Go 实践认识的学习者,尤其是那些想要通过参与实际编码练习和深入理解 Go 内部工作机制的人群。通过这两个方面的内容学习可以帮助使用者更好地理解 Go 新增特性的应用前景和发展方向,并能够在实践中灵活应用。 其他说明:本文档不仅涵盖了新特性的技术和理论要点,同时也展示了如何通过动手实践强化技能的具体例子。阅读本文不仅可以学到最新的 Go 编程技巧,还将了解到实际开发过程中面临的挑战及其解决方案。此外,还提供了一份详细的安装指导,以及一些常见的操作指南。对于新手而言,可以通过提供的完整配套资料逐步建立起个人的知识体系;而对于资深开发者,则可以在更高层次上审视自身项目的架构设计,进而推动技术创新和个人职业发展。
CoW项目是基于大模型的智能对话机器人,支持微信公众号、企业微信应用、飞书、钉钉接入,可选择GPT3.5/GPT4.0/Claude/Gemini/LinkAI/ChatGLM/KIMI/文心一言/讯飞星火/通义千问/LinkAI,能处理文本、语音和图片,通过插件访问操作系统和互联网等外部资源,支持基于自有知识库定制企业AI应用。 功能如下: 1、 多端部署: 有多种部署方式可选择且功能完备,目前已支持微信公众号、企业微信应用、飞书、钉钉等部署方式 2、 基础对话: 私聊及群聊的消息智能回复,支持多轮会话上下文记忆,支持 GPT-3.5, GPT-4o-mini, GPT-4o, GPT-4, Claude-3.5, Gemini, 文心一言, 讯飞星火, 通义千问,ChatGLM-4,Kimi(月之暗面), MiniMax, GiteeAI 3、 语音能力: 可识别语音消息,通过文字或语音回复,支持 azure, baidu, google, openai(whisper/tts) 等多种语音模型 4、 图像能力: 支持图片生等
海神之光上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
CSDN Matlab武动乾坤上传的资料均是完整代码运行出的仿真结果图,可见完整代码亲测可用,适合小白; 1、完整的代码内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
海神之光上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
基于LabVIEW的滚动轴承故障诊断系统:一种振动信号采集与故障诊断的实用设计与实践验证,基于LabVIEW的滚动轴承高效故障诊断系统设计与应用研究,基于LabVIEW的滚动轴承故障诊断系统. 实现对滚动轴承工作状态的监测,提出了一种基于 Lab VIEW 的滚动轴承故障诊断系统的设计方案,给出了滚动轴承振动信号的采集与故障诊断方法,在 Lab VIEW 的诊断平台下进行信号处理与分析,然后结合滚动轴承故障诊断理论与信号分析结果来对该轴承运行状态进行判断。 最后利用旋转机械振动及故障模拟试验平台对该系统进行验证,验证结果体现了该系统具有可行性和适用性。 ,LabVIEW; 滚动轴承故障诊断系统; 振动信号采集; 故障诊断方法; 信号处理与分析; 验证测试; 可行性; 适用性,基于LabVIEW的滚动轴承故障诊断系统设计与验证
Javascript语言视频教程,涵盖Javascript语言基础和高级教程,零基础入门。
python在链表的前面-开头插入一个节点