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