24小时热门版块排行榜    

Znn3bq.jpeg
查看: 230  |  回复: 0
当前主题已经存档。

agri521

木虫 (著名写手)

[交流] 【转贴】基于模型的决策支持系统软构件设计在VS2005上的实现

软构件以其语言和操作系统的无关性、跨平台的软件复用和简便快捷的系统维护机制等特点而越来越得到软件开发者的青睐,是将来软件开发的主流模式。作物系统模拟是利用系统分析方法和计算机模拟技术,作物生长发育规律及其与环境和技术的动态关系进行定量描述和预测的过程。所以基于作物模型的决策支持系统的构件化结构设计,为系统开发提供了便利。本文就当前决策支持系统开发中常用到的组析编制,进行详细的讲解,为刚接触系统的工作者提供参考。本文是以VS2005为平台,用C#语言编写组件。
      
      组件的编写可分为组件编写和组件测试2个步骤。假定我们要编写一个计算小麦干物质积累的组件WheatAccu。
一、制作一个组件
1.首先建立一个新类库工程文件
选择文件->新建->项目->Visual C#项目->类库,指定类库名称及保存位置,然后点击OK。
2.工程文件及其包含的文件
由解决方案浏览器可看到工程文件中的已经包含2个C#的类:AssemblyInfo.cs和Class1.cs。Class1.cs是我们一步要改写的,AssemblyInfo.cs是配置信息文件。
3.namespace WheatAccu(名称空间 WheatAccu)
在主窗口调用组件时,涉及到namespace,是组件编写的一个重点。双击Class1.cs,就会看到namespace WheatAccu。
生成上述工程文件就可以在bin/debug目录里面找到WheatAccu.dll,它就是组件。但此时的组件没有任何功能,下面我们将进一步的完善它。
4.加入一个方法
从“视图”中打开“类视图”,我们看到的Class1没有任何方法和属性。现在我们给它加上一个方法和一个属性。
点中Class1,右击,选择添加->添加 方法...
这时会弹出VISUAL C#的方法制作向导窗口。你可以在此向导的帮助下,为你的组件加入方法的名称、访问类型、返回值、参数,甚至是注释。用Add和Remove按钮可以方便的从参数列表中增加或删除参数。
5.加入一个属性
重复加入方法的过程,在同样的位置,打开C#的属性向导,按照下图为组件加入一个属性。
那么此时的Class1已经具有计算干物质积累的功能,这些功能是由若干个函数组成的。
6.为Class添加代码
4和5中的方法和属性加入也可直接通过添加代码实现。Class1最好改为能体现组件功能名称,如为WheatAccumulation(这是因为Class1是缺省名称,容易造成混乱,在主窗口调用组件时候可能会出问题)。
7.生成DLL
编译工程文件生成组件,该组件会在工程文件的bin\debug目录里,文件扩展名是DLL。
组件的部分代码:
name WheatAccu;
{
using System;
public class WheatAccumulation
{
…………..//代码省略
{
}
注意:组件中是不能出现Main()方法的。

二.测试DLL
组件一般是在主窗口设计好的情况下进行的,假定小麦生长模型系统已经设计好,下面将展示如果添加组件到系统中。
1.为Namespace(名称空间)添加引用
打开项目->添加引用,浏览到刚才生成的DLL,然后按OK。添加引用向导将会把引用加到当前的工程文件的类里。
2.调用WheatAccu名称空间,创建WheatAccu对象,并且调用它的方法和属性
按照下面的步骤就可以方便的调用方法和属性。
(1)使用namespace,使用WheatAccu;
(2)创建WheatAccu对象;
WheatAccu WAccu = new WheatAccu ();
(3)调用方法和属性;
下面是部分程序代码:
namespace WheatGrow;
{
using System;
using WheatAccu;
public class WheatGrowAcculation
{
public WheatGrowAcculation ()
{
}
public static int Main(string[] args)
{
WheatAccu WAccu = new WheatAccu ();
…………..//代码省略
}
}
}

按下F5来测试一下我们刚才编写的组件吧。

[ Last edited by laizuliang on 2007-8-27 at 08:48 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 agri521 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 v9tggjlwd0 2026-05-15 4/200 2026-05-17 08:11 by 11n4dfd8yn
[考博] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 7hlccowb3h 2026-05-15 4/200 2026-05-17 07:46 by 11n4dfd8yn
[找工作] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 l7k6xnh0yc 2026-05-14 6/300 2026-05-17 07:31 by 11n4dfd8yn
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 l7k6xnh0yc 2026-05-14 8/400 2026-05-17 07:26 by 11n4dfd8yn
[公派出国] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +6 l7k6xnh0yc 2026-05-14 6/300 2026-05-17 07:16 by 11n4dfd8yn
[考博] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +6 l7k6xnh0yc 2026-05-14 6/300 2026-05-17 07:11 by 11n4dfd8yn
[基金申请] 精华III评审感受-评审感受-评审感受 +16 ferrarichen 2026-05-11 20/1000 2026-05-17 01:10 by 南开小綦
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 ky2p12rrjj 2026-05-15 3/150 2026-05-17 00:45 by ue3ir18jc3
[公派出国] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 x0mp7owy2b 2026-05-15 4/200 2026-05-17 00:35 by ue3ir18jc3
[找工作] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 l7k6xnh0yc 2026-05-14 4/200 2026-05-16 23:10 by ue3ir18jc3
[高分子] 本人最近太闲了,谁有问题可以提,每天会统一回复 +9 一切都是空工 2026-05-12 20/1000 2026-05-16 19:52 by Equinoxhua
[找工作] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 ky2p12rrjj 2026-05-15 3/150 2026-05-16 18:35 by j6b2pdz07o
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 x0mp7owy2b 2026-05-15 4/200 2026-05-16 17:45 by j6b2pdz07o
[考博] 光量子物理方向 博士招生 1人(2026.09) +3 sandyworld 2026-05-15 3/150 2026-05-16 17:11 by zznnnj
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +5 cjf4bx70cj 2026-05-14 6/300 2026-05-16 16:17 by 0i5p09z61n
[硕博家园] 考博自荐 +3 科研狗111 2026-05-13 4/200 2026-05-16 11:45 by 科研狗111
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 l7k6xnh0yc 2026-05-14 6/300 2026-05-16 11:29 by h3oerqvkv9
[文学芳草园] 裁员滚滚,退居二线 +4 J_wei 2026-05-10 4/200 2026-05-16 10:52 by zh10246
[考博] 西南大学考核制博士 +4 lijunjie84 2026-05-11 7/350 2026-05-15 23:20 by 同仁堂教主
[文学芳草园] 风把牡丹吹跑了 +5 myrtle 2026-05-12 9/450 2026-05-15 15:27 by myrtle
信息提示
请填处理意见