科技创新项目--小程序设计(5)

小程序的按工作输入,延隔时间功能在12月8日就完成,后来想完成每日的资源统计功能,但一直没有idea。现在先把代码放上来啦。

数据输入方式:
在bin文件目录下一个叫“WorkTable.txt”中输入
格式为:
工作序号;工作名称;工作持续时间;前续工作的序号(用“,”隔开,即使只有一项也加上“,”);延隔时间;占用资源

运行效果:
在bin文件目录下一个叫“WorkTable.txt”中输入:
1;A;10;0,;0;12
2;B;10;1,;0;23
3;C;20;1,;0;44
4;D;30;1,;0;66
5;E;20;2,;0;7
6;F;20;3,;0;4
7;G;30;4,;0;56
8;H;30;5,;0;12
9;I;50;7,;0;33
9;I;50;6,;15;55
10;J;10;8,9,;0;23
8;H;30;6,;10;12

运行结果(控制台输出)
 工作编号  工作名称  最早开始时间  最晚开始时间  持续时间
 1  A  0  0  10
 2  B  10  60  10
 3  C  10  15  20
 4  D  10  10  30
 5  E  20  70  20
 6  F  30  35  20
 7  G  40  40  30
 8  H  60  90  30


对象结构:(成员变量皆为private,而由相应的属性进行操作)
   Program.cs:含有main方法,读取用户输入,调用处理,输出
   Vertex.cs:顶点类,储存工作信息。
class Vertex
    {
        
//顶点的结构变量
        private Hashtable _preVerIdSet;//用HashTable结构记录前工作,key为工作的id,value为延隔时间
        private ArrayList _nextVerIdArr;

        
//顶点的信息变量
        private int _verId;
        
private string _workName;
        
private int _esTime;
        
private int _lfTime;
        
private int _duration;
        
private int _resource;
        
private int _freeF;
        
private int _totalF;
}
   Network:网络图类,定义图相关的基本操作
class Network
    {
        
private Hashtable _vertexSet;
        
private ArrayList _dailyResourceArr;

        
public Network()
        
public Vertex GetVertex(object vertexId)
        
public int[] CountInDegree(Network network)
        
public bool IsExistVertex(Vertex v)
        
public void AddVertex(Vertex v)
        
public void DeleteVertex(Vertex v)
    }
   NetworkOperator:定义对网络图的复杂操作,包括拓扑排序,时间计算等
class NetworkOperator
    {
        
//初始化网络,建立网络图的储存结构
        public Network InitializeNetwork(ArrayList workList,int totalWork)
        
//给网络图的所有顶点的最早时间赋值,并找出关键路径
        public Stack CalculateVerEarTime(Network network)
        
//给网络图的所有顶点,边的最晚时间赋值
        public void CalculateVerLatTime(Network network)
        
//给网络图的所有边的时间差赋值
        public void CalculateTimeDiff(Network network)
        
//显示各工作相关信息
        public void GetResult(Network network)
    }



完整的代码:
Program.cs
Vertex.cs
Network.cs
NetworkOperator.cs

posted @ 2007-12-16 14:35  斌伯  阅读(455)  评论(3编辑  收藏  举报