使用十字鍊表和多重集合進行資源配置子系統的製作方法
2023-05-07 21:04:06
專利名稱:使用十字鍊表和多重集合進行資源配置子系統的製作方法
技術領域:
本發明涉及項目管理軟體中的資源配置。
背景技術:
項目管理中的資源平衡問題是一個疑難問題,先後出現過圖解法和公式判斷法,無 論使用圖解法還是公式判斷法都會出現如下的問題如果使用的網絡比較簡單,同時需 要進行平衡的資源數量很少,那麼圖解法和公式判斷法都是可以使用的。因為即使資源 日曆已確定,但修改起來比較方便。如果使用的網絡圖比較複雜,並且需要進行平衡的 資源數量非常多,那麼圖解法和公式判斷法就不再適合,因為這種事後調平衡的方法涉 及的資源太多,要修改的資源日曆也太多,因而資源的供需矛盾也就增多。為了克服目 前項目管理軟體在資源配置方面的不足,我們提出了資源配置的新思路,並使用十'f鏈
表和多重集合把這一新思路變為現實。
發明內容
為了克服目前項目管理軟體在資源配置方面的局限性,本發明提供的資源配置新方法能 有效地避免資源發生衝突的情況,做到配置資源有條不紊,對提高資源的利用率大有幫助。
本發明解決其技術問題所採用的技術方案是選用十字鍊表作為網絡圖的數據結構,選 用結構、單鍊表和多重集合作為資源配置的數據結構。資源配置應該從資源本身入手,不 要等到事後平衡,要在配置資源時就朝著資源平衡的目標努力,只有這樣才能從根本上 解決資源平衡的問題。無論是人力資源,還是稀缺設備資源,我們都給他們配上日曆, 只有當每個資源日曆儘量均勻使用時,資源平衡問題才能得到徹底解決。正確的方法是 第一,確保資源庫和資源配置庫的透明操作;第二,確保提供當時的網絡圖參數;第三, 確保對資源庫和資源配置庫靈活的査詢方法。這樣做不僅使資源配置有了明確的目標, 而且又可避免資源配置與資源短缺的矛盾。 一、資源配置的數據結構
數據結構在算法設計中佔有很重要的位置,如果數據結構設計得不合理,會使以後 的軟體修改遇到障礙。 1.日曆數據結構 typedef struct calendar { int years ;〃年 int months;//月
Set days;〃閂 multiset〈int〉 hours[32];〃小時 } calendar;
該日曆數據結構能滿足人力資源對日曆數據結構的要求,在日曆數據結構中使用了 集和多重集,正是由於集和多重集的使用,才使得資源日曆的輸入、修改和刪除得以方 便地操作。
2. 人力資源庫的數據結構 typedef struct rlzyk {
AnsiString name, tel, sex, age, d印,kind, level: //姓名,電話,性另U ,
出生年月,工作單位,工種,技術等級
float pay, fee,7/工時費,加班費
list〈calendar> zycalendar; //資源日曆
} rlzyk;
該人力資源庫的數據結構中的工時費和加班費欄位的設置為精確的成本預算提供了 可能。
3. 人力資源配置庫的數據結構
typedef struct syr丄zy {
AnsiString rmme, dep, sex, eige, tel, kind,丄evcl, sygx; //姓名,工作單
位,性別,出生年份,電話,工種,技術等級,使用工序
float pay, fee; 〃工時費,加班費
int jobtop, jobbottom;〃工作上限,工作下限
list sycalendar; 〃使用資源日曆 } syrlzy;
該人力資源配置庫的數據結構中的丄作上限和工作下限欄位的設置為精確的成本預 算提供了可能。
4. 設備材料配置庫的數據結構 typedef struct sbcl {
AnsiString n歷e, code, type, unit, sygx;〃名稱,代碼,型號,單位,
使用工序
int price, number;〃單價,數量
} sbcl;
5. 資源數據結構 typedef struct resource {
list〈rlzyk〉 1"1271^113^//人力資源庫 list〈syrlzy〉 syrlzylist; 〃人力資源配置庫
list〈sbcl〉 sclist;//設備材料配置庫 rssourc6;
6.網絡圖的十字鍊表數據結構 typedef struct ArcBox { int period., //period代表工期
struct ArcBox 本hlink,氺tlink;
AnsiString name, tailvexname, headvexname, es, Is;//es 代表 工序的最早開始時間,ls代表工序的最遲開始時間,tailvexn咖e代表 該工序的尾節點的名稱,headvexname代表該工序的頭節點的名稱,name 代表該工序的名稱 } ArcBox;//工序結點
typedef struct VexNode {
AnsiString name;// name代表該節點的名稱
float a,b;/Ai代表該節點的最早開始時間,b代表該節點的最遲結束時間 POINT pt;〃pt代表網絡圖中節點的坐標 ArcBox *firstin,氺firstout; } VexNode;〃節點結點
typedef struct OLXr鄰h {
listXVexNode〉 xlist; 〃表頭列表
int vexnum,arcnum;〃網絡圖中當前的節點數和工序數
AnsiStringpjstart;〃 CPM網絡圖中的源點開始時間 }0LGraph;〃CPM網絡圖的十字鍊表數據類型
二、資源配置的算法 人力資源庫的輸入模塊的算法如下所示 input調入或創建人力資源庫 begin
while (終止條件不滿足)do begin
if輸入類型="基本信息" begin
輸入姓名、性別、出生年月和工作單位 輸入工種和技術等級
輸入電話
輸入工時費和加班費
end
end
if輸入類型="日曆信息"
if日曆信息類型="年月" 選擇年份和月份
end
if日曆信息類型="日期" 雙擊"某一日期"
end
if日曆信息類型="時間"
在時間框輸入相應的時間
end
end
end
關閉人力資源庫
end
人力資源庫的查詢、修改和刪除模塊的算法如下所示
i叩ut調入人力資源庫 begin
while (終止條件不滿足)do begin
〃査詢
if查詢類型="基本信息"
while (滿足輸入查詢條件)do begin
點擊"上一同志"或"下一同志"按鈕
end
end
if査詢類型="日曆信息"
if日曆信息類型="年月"
點擊"上一年月"或"下一年月"按鈕
end
if日曆信息類型="日期" 6
單擊"某一日期"
end
end
〃修改,要想修改必須先査詢到
while (滿足輸入査詢條件)do
begin
點擊"上一同志"或"下一同志"按鈕 對目標進行修改並保存
end
end
if修改類型二 "日曆信息" begin
if日曆信息類型="年月" 單擊"增加年月"按鈕
end
if日曆信息類型="日期" 雙擊"某一日期"
end
if日曆信息類型="時間" 修改時間並保存
end
end
end
〃刪除,要想刪除必須先查詢到
點擊"刪除資源"按鈕
end
if刪除類型二 "日曆信息" begin
if日曆信息類型="年月"
單擊"刪除年月"按鈕
end
if日曆信息類型- "日期"
雙擊"某一日期"
end
end
end
end
關閉人力資源庫
end
人力資源配置庫的輸入模塊的算法如下所示
input調入人力資源庫
調入或創建人力資源配置庫 調入網絡圖
begin
while (終止條件不滿足)do begin
if輸入類型="基本信息" begin
輸入姓名、性別、出生年月和工作單位
輸入工種和技術等級
輸入電話
選擇使用工序
輸入工時費和加班費
選擇工作上限和工作下限
end
end
if輸入類型="日曆信息"
if曰歷信息類型="年月" 選擇年份和月份
end
if日曆信息類型="日期" 雙擊"某一日期"
end
if日曆信息類型="時間"
在時間框輸入相應的時間
end
end
end
關閉人力資源庫
關閉人力資源配置庫
關閉網絡圖
end
人力資源配置庫的查詢、修改和刪除模塊的算法如下所示-input調入人力資源庫
調入人力資源配置庫
調入網絡圖
begin
while (終止條件不滿足)do begin
〃查詢
if查詢類型="基本信息"
while (滿足輸入査詢條件)do begin
點擊"上一同志"或"下一同志"按鈕
end
end
if查詢類型="有關工序信息" 點擊"顯示工序有關信息"
end
if查詢類型="日曆信息"
if日曆信息類型="年月"
點擊"上一年月"或"下一年月"按鈕
end
if日曆信息類型="日期" 單擊"某一日期"
end
end
〃修改,要想修改必須先查詢到
while(滿足輸入査詢條件)do
begin
點擊"上一同志"或"下一同志"按鈕 9
對目標進行修改並保存
end
end
if修改類型="日曆信息" begin
if日曆信息類型="年月"
單擊"增加年月"按鈕
end
if日曆信息類型="日期" 雙擊"某一日期"
end
if日曆信息類型="時間" 修改時間並保存
end
end
end
〃刪除,要想刪除必須先查詢到 點擊"刪除資源"按鈕
end
if刪除類型="日曆信息" begin
if日曆信息類型="年月"
單擊"刪除年月"按鈕
end
if曰歷信息類型="日期" 雙擊"某一日期"
end
end
end
end
關閉人力資源庫
關閉人力資源配置庫
關閉網絡圖 end
本發明的有益效果是,能有效地避免資源發生衝突的情況,做到配置資源有條不紊,對 提高資源的利用率大有幫助。
圖l是使用十字鍊表和多重集合進行資源配置子系統流稃圖。
具體實施例方式
使用十字鍊表和多重集合進行資源配置子系統是在Windows XP作業系統下使用 C++Builder 6.0開發設計的。它的系統功能結構如說明書附圖中的圖1所示,在"對網 絡圖進行資源配置"模塊中提供了資源平衡的配置方法,該方法考慮了資源R歷,打破了常 規的做法,即在配置資源時就朝著平衡方向努力,徹底解決了資源平衡與資源短缺的矛盾, 取消或大大降低了資源平衡的調整時間,提高了管理效率。
權利要求
1.一種使用十字鍊表和多重集合進行資源配置的方法,包括(1)用於對網絡圖進行資源配置的步驟;其特徵是所述使用十字鍊表和多重集合進行資源配置的方法還包括(1)在對網絡圖進行資源配置的步驟中,通過對每個資源進行均衡配置從而達到網絡圖整體資源配置的均衡。
全文摘要
一種使用十字鍊表和多重集合進行資源配置的方法,如說明書附圖中的圖1所示,它選用十字鍊表作為網絡圖的數據結構,選用結構、單鍊表和多重集合作為求解資源配置的數據結構。資源配置應該從資源本身入手,不要等到事後平衡,要在配置資源時就朝著資源平衡的目標努力,無論是人力資源,還是稀缺設備資源,我們都給他們配上日曆,只有當每個資源日曆儘量均勻使用時,資源平衡問題才能得到徹底解決。該方法打破了常規的做法,徹底解決了資源平衡與資源短缺的矛盾,取消或大大降低了資源平衡的調整時間,提高了管理效率。
文檔編號G06Q10/00GK101114357SQ200710143640
公開日2008年1月30日 申請日期2007年8月16日 優先權日2007年8月16日
發明者乞建勳, 周遠成 申請人:周遠成