介绍这是本人毕业设计的项目,一直想将其整理成文,可一不小心4年就过去了(这个时间又可以读个大学了)。现在给自己定一个目标,一个月时间里将项目的所有关键点都整理出来。不然真怕一眨眼又一个4年过去了,而代码依然躺在硬盘里。项目取名MathAssist,使用vs2008。分成四个子项目 ...
介绍
这是本人毕业设计的项目,一直想将其整理成文,可一不小心4年就过去了(这个时间又可以读个大学了)。现在给自己定一个目标,一个月时间里将项目的所有关键点都整理出来。不然真怕一眨眼又一个4年过去了,而代码依然躺在硬盘里。
项目取名MathAssist,使用vs2008。分成四个子项目:
- MathAssistLibrary 提供一个接口,以便实现用dll拓展的插件机制
- SuperCalculator 实现任意大数计算的插件
- 命令证明 实现简单逻辑命题证明的插件
- MathAssist 主程序,会扫描并加载其路径下所有符合条件的dll
其主程序可以从插件中扫描可用的命令,也可以显示插件中可用的窗体。如下是主程序界面,其加载了两个插件:“superCalculator”和“命令证明”。它们分别提供命令cal prove。
点击菜单项"插件"的子菜单后可以分别打开两个插件中实现的窗口。如下图
分别实现了大数计算和逻辑命题的证明。
在这篇前言中就先只介绍插件机制的实现吧,大数计算和逻辑命题的证明就留给后面的系列。
插件机制的实现
MathAssistLibrary接口的定义
在MathAssistLibrary项目中只定义了两个接口: ICommand, IForm,分别用于提供命令行功能和窗口功能。
1 /// <summary>命令接口</summary> 2 public interface ICommand 3 { 4 /// <summary>命令名称</summary> 5 get='_blank'>string Name { get; } 6 7 /// <summary>执行命令</summary> 8 /// <param name="cmd">命令参数</param> 9 /// <returns>返回的结果</returns>10 string Excute( string cmd );11 12 /// <summary>对命令的使用作相应的说明</summary>13 string Describe { get; }14 }15 /// <summary>获得插件的窗体</summary>16 public interface IForm17 {18 /// <summary>窗体名</summary>19 string Text { get; }20 21 /// <summary>窗体对象</summary>22 Form GetForm { get; }23 }
原标题:C#实现任意大数的计算和简单逻辑命题的证明——前言
关键词:C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。