固定資產管理系統軟件工程_第1頁
固定資產管理系統軟件工程_第2頁
固定資產管理系統軟件工程_第3頁
固定資產管理系統軟件工程_第4頁
固定資產管理系統軟件工程_第5頁
已閱讀5頁,還剩23頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、軟件工程實驗報告設計題目: 固定資產管理系統 系 別: 信息工程學院 專 業: 信息工程 班 級: 0902班 學生姓名: 肖文名 學 號:日期: 2012年6月11日 指導教師: 張 琪 1 需求分析1.1系統現狀固定資產具有價值高,使用周期長、使用地點分散、管理難度大等特點。據此分析原系統主要問題有:1. 許多大規模企業組織擁有的固定資產數量大、種類多、使用周期長,因此使用人工管理將面臨固定資產的增加、減少、轉移、租賃、停用、封存、閑置、報廢等不易管理的問題。2. 固定資產的歷史操作和資產統計工作非常困難,容易導致資產流失和資產重復購置,花費不必要的資金。3.目前多數固定資產管理系統采用人

2、工手工方式錄入數據,不僅速度慢、還易產生錯誤。4.不能及時更新固定資產的清單,導致資產外泄,資金無故減少。1.2用戶需求分析根據用企業要求以及現代化管理的準則,要求新開發的固定資產管理系統能夠根據企業需要查詢有關固定資產管理各類信息,能夠查詢出任何時間的資產增加、減少、保管、使用、清理報廢情況,保證賬面和實物相符等。固定資產管理系統需要實現的功能如下:1.正確提出固定資產的折舊,計算固定資產的利用效果,以便于提高固定資產利用率,減少資產流失。2.能夠對固定資產進行統計分析,以便于財務部門進行管理。 3.能夠及時打印出各種各樣的報表,用于會計查帳或審核。4.作為一個正規的固定資產管理系統,需要有

3、身份的校驗,以及其他常用的輔助工具的設置。總之本系統能夠快速、方便、準確的管理企業的固定資產,可以用來實現:登記新購買的資產、記錄進行過維修的資產、記錄進行了報廢處理的資產以及對現有的資產進行統計和核查。1.3系統功能需求待開發的軟件功能需求:本系統主要內容包括固定資產的購買入庫,報廢,查詢等功能,可以將其分為檔案管理、資產管理以及查詢三個子模塊。1.4總體功能需求固定資產管理主要包括檔案管理、資產管理和資產查詢管理三個模塊(如圖1),每個模塊又可以細分為幾個小模塊,具體層次方框圖如下: 圖1 系統層次方框圖對系統功能解釋如下:1檔案管理:當新購入固定資產時會在系統中存檔,維修資產的時候會登記

4、維修記錄,如果有資產報廢和外界也要在系統中有記錄;2. 資產管理:該子系統主要負責對固定資產的購買,維修。如果有需要外界也可以發出外借的指令。對已經不能夠使用的資產施行報廢處理,并向有關部門發送報廢記錄;3. 查詢管理:主要負責對現有的總資產的查詢。對外借出的資產信息的查詢以及正在維護的信息查詢,對報廢損失的資產的查詢。由此可以得到系統的頂層數據流圖,如圖2: 圖2 系統頂層數據流圖進一步細化后得到數據流圖如下:圖3 細化后的數據流圖 2 概要設計2.1系統的層次圖系統層次圖如下: 圖4 系統層次圖2.2接口設計1.外部接口(1) 用戶界面采用控制臺用戶界面,包含按鍵選項。(2) 軟件平臺軟件

5、運行于windows 2000 ,windows2007。2. 內部接口 (1).登陸模塊:系統剛啟動時進入消息循環狀態,實現用戶登陸功能; (2).資產管理模塊:由主系統調用,由相應選擇激活,之后進入選擇循環狀態; (3).資產查詢模塊:由系統調用,由相應選擇激活,之后進入選擇循環狀態; (4).退出系統模塊:由系統調用,正常退出系統; (5).購入資產模塊:由資產管理子系統調用,由相應選擇激活,之后進入選擇循環狀態; (6).購入記錄:由購入資產模塊調用,由相應選擇激活,之后返回購入資產模塊; (7).資產維修模塊:由資產管理子系統調用,由相應選擇激活,之后進入選擇訓環狀態; (8).維修

6、記錄模塊:由資產維修模塊調用,由相應選擇激活,之后返回資產維修模塊; (9).資產外借模塊:由資產管理子系統調用,由相應選擇激活,之后進入選擇循環狀態; (10).外借記錄模塊:由資產外借模塊調用,由相應選擇激活,之后返回資產外借模塊; (11).資產報廢模塊:由資產管理子系統調用,由相應選擇激活,之后進入選擇循環狀態; (12).報廢記錄模塊:由資產報廢模塊調用,由相應選擇激活,之后返回資產報廢模塊; (13).總資產查詢模塊:由資產查詢子系統調用,由相應選擇激活,之后進入選擇循環狀態; (14).維修查詢模塊:由資產查詢子系統調用,由相應選擇激活,之后進入選擇循環狀態; (15).報廢查詢

7、模塊:由資產查詢子系統調用,由相應選擇激活,之后進入選擇循環狀態; (16).外借查詢模塊:由資產查詢子系統調用,由相應選擇激活,之后進入選擇循環狀態; (17).返回主頁模塊:由資產查詢子系統調用,由相應選擇激活,之后返回主頁。2.3數據結構設計由數據字典和功能的需求可以設計出這樣的數據結構:鏈式數據結構。本系統對信息的處理都采用鏈表的結構來處理信息。2.4出錯處理設計在資產查詢,資產管理模塊中,如果有違規操作就會顯示提示信息,并且處理出錯的操作。例如:在維修時需要輸入資產的id,如果在總資產中沒有這個id,那么就會提示“沒有這個資產的信息”并且返回到主頁面。 2.5安全設計本系統采用密碼驗

8、證的方式進入系統。以保證系統數據的安全,不讓數據泄漏以及被違規修改。2.6維護設計系統嚴格按照設計規范進行設計,并保持各階段文檔的完整性,為以后對軟件的維護打好基礎。3 詳細設計在以上工作的基礎上,基本的設計已經完成。由此可以得出整個系統的工作流程:1系統啟動,進入身份驗證。2初始化系統,進入系統操作界面。3進入選擇循環狀態,通過選擇驅動激活各模塊,執行各任務。4一任務執行完畢后重新進入消息循環狀態。5通過事件驅動退出系統。詳細的數據流圖見圖3,層次圖見圖2。 4實現與調試分析4.1實現環境本系統在visual studio 2010開發環境下開發4.2語言選擇 本系統使用C+編寫4.3調試分

9、析在編寫系統的過程之中難免會遇到出錯。使用蠻干法,回溯法和原因排除法等調試方法進行調試分析,最終糾正錯誤。5測試分析5.1測試數據測試數據表如下:資產編號資產名稱生產廠家生產日期購買日期使用年限購買價格購買數量1001電腦惠普2010/2/62011/1/35500041002風扇美的2009/3/52011/6/972001801003飲水機南山2011/3/52014/6/53300221004空調海爾2011/5/92020/5/49700091005冰箱海爾2009/1/52024/5/915520010 5.2測試結果1.根據系統提示輸入下測試表中的測試數據 登陸系統,提示輸入密碼界

10、面如下(本系統初始密碼為”hello”):圖5 系統登陸界面 正確輸入密碼后進入主菜單: 圖6 主菜單界面 選1進入第二菜單,任選一功能,如輸入購買資產(1): 圖7 購買菜單界面 再購入其它資產,0返回主菜單,2查詢,1查詢總資產如下: 圖8 總資產查詢界面將資產1001號進行維修: 圖9 維修界面 將1002報廢: 圖10 報廢界面將1003外借: 圖11 借出資產界面 上述操作已進行后再查詢: 圖12 報廢資產記錄查詢借出資產查詢 圖13 借出資產記錄查詢界面維修查詢:圖14 資產維修記錄查詢界面7用戶手冊本系統界面功能清楚簡單,用戶可以根據界面提示完成相應操作。具體操作:1 運行程序,

11、會出現主菜單,用戶輸入密碼(初始密碼為”hello”); 2密碼正確輸入,出現第二界面,三個主操作(資產管理,資產查詢,退出系統);3輸入對應編號,出現第三界面。選項資產管理對應功能有:資產購買,維修資產,報廢資產,借出資產,返回主菜單(在每個非第一界面均有此功能);選項資產查詢對應功能有:總資產查詢,查詢報廢記錄,查詢維修記錄,查詢借出記錄等。總之本系統的操作界面提示簡單易懂,功能具體適合任何人員操作使用。8總結通過本次課程設計,本人掌握了軟件工程的基本概念、基本原理、開發軟件項目的工程化的方法和技術及在開發過程中應遵循的流程、準則、標準和規范等;通過固定資產系統的設計,提高了對整個軟件開發

12、過程的能力,讓能切實體會到軟件工程在實踐中的指導作用。通過課程設計,學會了按軟件工程的要求完成規范的各項軟件開發文檔,對提高軟件開發能力和項目管理能力有重要的現實意義。參考文獻 1 張海藩. 軟件工程導論. 北京:清華大學出版社,20042 陳 明. 實用軟件工程基礎. 北京:清華大學出版社,20033 殷人昆. 實用軟件工程. 北京:清華大學出版社,2003 附錄:#include<iostream>#include<string>#include<iomanip>#include<fstream>using namespace std;/-購

13、入固定資產-typedef struct solid_substance string id; /資產編號 string name; /資產名稱 string pro_factury; /生產廠家 string pro_date; /生產日期 string buy_date; /購買日期 string use_age; /使用年限 int value; /購買價值 int num; /購買的數量 solid_substance *next; /下一個資產的指針Buy_Substance;/-經過維修的固定資產-typedef struct repair_substance string id;

14、 string name; string pro_factury; string pro_date; string buy_date; int repair_value; /維修費用 repair_substance *next;Repair_Substance;/-報廢的固定資產-typedef struct reject_substance string id; string name; string pro_factury; string pro_date; string buy_date; string use_age; int value; /購買價值 string reject_d

15、ate; /報廢日期 reject_substance *next;Reject_Substance;/-出借的資產-typedef struct loan_substance string id; string name; string pro_factury; string pro_date; string buy_date; string use_age; int value; string loan_date; /出借日期 loan_substance *next;Loan_Substance;/=fstream SolidFile;fstream RepairFile;fstream

16、 RejectFile;fstream LoanFile;void OpenFile()SolidFile.open("固定資產信息.txt", ios:in|ios:out|ios:app); if (!SolidFile) cout<<"cannot open file!n"exit(1); SolidFile <<setw(10) <<"資產編號" <<setw(10) <<"資產名稱" <<setw(10) <<"

17、生產廠家" <<setw(10) <<"生產日期" <<setw(10) <<"購買日期" <<setw(10) <<"使用年限" <<setw(10) <<"購買價值" <<setw(10) <<"數量" <<endl; RepairFile.open("維修資產信息.txt", ios:in|ios:out|ios:app); if

18、 (!RepairFile) cout<<"cannot open the file!n"exit(1); RepairFile <<setw(10) <<"資產編號" <<setw(10) <<"資產名稱" <<setw(10) <<"生產廠家" <<setw(10) <<"生產日期" <<setw(10) <<"購買日期" <<s

19、etw(10) <<"維修花費" <<endl; RejectFile.open("報廢資產信息.txt", ios:in|ios:out); if (!RejectFile) cout <<"cannot open file!n"exit(1); RejectFile <<setw(10) <<"資產編號" <<setw(10) <<"資產名稱" <<setw(10) <<"生

20、產廠家" <<setw(10) <<"生產日期" <<setw(10) <<"購買日期" <<setw(10) <<"使用年限" <<setw(10) <<"購買價值" <<setw(10) <<"報廢日期" <<endl; LoanFile.open("出借資產信息.txt", ios:in|ios:out); if (!LoanFi

21、le) cout <<"cannot open file!n"exit(1); LoanFile <<setw(10) <<"資產編號" <<setw(10) <<"資產名稱" <<setw(10) <<"生產廠家" <<setw(10) <<"生產日期" <<setw(10) <<"購買日期" <<setw(10) <<

22、"使用年限" <<setw(10) <<"購買價值" <<setw(10) <<"出借日期" <<endl;void OperateSolidSubFile(Buy_Substance *p);void OperateRepairSubFile(Repair_Substance *p);void OperateRejectSubFile(Reject_Substance *p);void OperateLoanSubFile(Loan_Substance *p);/-檔案管理

23、模塊=/-1.記錄購入信息-void BuyRecord(Buy_Substance *&BuySub, Buy_Substance *&p)Buy_Substance *pt = BuySub;while (pt->next)pt = pt->next;pt->next = p;p->next = NULL;cout <<"購買成功!n"system("pause");system("cls");/-2.記錄維修資產信息-void RepairRecord(Repair_Subst

24、ance *&RepSub, Buy_Substance *&BuySub, string id)Buy_Substance *p = BuySub->next; while (p!=NULL) && (p->id != id) p = p->next; if (p!=NULL) && (p->id = id) Repair_Substance *p2 = RepSub; while (p2->next) p2 = p2->next; Repair_Substance *p1 = new Repair_Subs

25、tance; cout <<"輸入需要的維修費用:" cin >>p1->repair_value; p1->buy_date = p->buy_date; p1->id = p->id; p1->name = p->name; p1->pro_date = p->pro_date; p1->pro_factury = p->pro_factury; p2->next = p1; p1->next = NULL; cout <<"該產品正在維修中.n&

26、quot; OperateRepairSubFile(p1); /將維修記錄寫入文件中 else cout <<"不存在該產品!n" system("pause"); system("cls"); return; system("pause"); system("cls");/-3.報廢資產記錄-void RejectRecord(Reject_Substance *&RejSub, Buy_Substance *&BuySub, string id) Buy_Sub

27、stance *p, *p3; p3 = BuySub; p = BuySub->next; while (p!=NULL) && (p->id != id) p3 = p; p = p->next; if (p!=NULL) && (p->id = id) Reject_Substance *p2 = RejSub; while (p2->next) p2 = p2->next; Reject_Substance *p1 = new Reject_Substance; cout <<"輸入報廢的日期:&

28、quot; cin >>p1->reject_date; p1->buy_date = p->buy_date; p1->id = p->id; p1->name = p->name; p1->pro_date = p->pro_date; p1->pro_factury = p->pro_factury; p1->use_age = p->use_age; p1->value = p->value; p2->next = p1; p1->next = NULL; p3->n

29、ext = p->next; /將改產品從總資產中刪除 cout <<"該產品已經報廢!n" OperateRejectSubFile(p1); /將報廢記錄寫入文件中 else cout <<"不存在該產品!n" system("pause"); system("cls"); return; system("pause"); system("cls");/-4.出借記錄-void LoanRecord(Loan_Substance *&

30、LoaSub, Buy_Substance *&BuySub, string id) Buy_Substance *p = BuySub->next; while (p!=NULL) && (p->id != id) p = p->next; if (p!=NULL) && (p->id = id) Loan_Substance *p2 = LoaSub; while (p2->next) p2 = p2->next; Loan_Substance *p1 = new Loan_Substance; cout <

31、<"輸入外借的日期:" cin >>p1->loan_date; p1->buy_date = p->buy_date; p1->id = p->id; p1->name = p->name; p1->pro_date = p->pro_date; p1->pro_factury = p->pro_factury; p1->value = p->value; p1->use_age = p->use_age; p2->next = p1; p1->next

32、 = NULL; cout <<"該產品已經外借!n" OperateLoanSubFile(p1); /將出借記錄寫入文件中 else cout <<"不存在該產品!n" system("pause"); system("cls"); return; system("pause"); system("cls");/-查詢管理模塊=/-1.查詢總資產-void QuerySub(Buy_Substance *&BuySu) Buy_Substa

33、nce *p = BuySu->next; if (!p) cout <<"還沒有固定資產!n" system("pause"); system("cls"); return; cout <<setw(10) <<"資產編號" <<setw(10) <<"資產名稱" <<setw(10) <<"生產廠家" <<setw(10) <<"生產日期"

34、 <<setw(10) <<"購買日期" <<setw(10) <<"使用年限" <<setw(10) <<"購買價值" <<setw(10) <<"數量" <<endl; while (p) cout <<setw(10) <<p->id <<setw(10) <<p->name <<setw(10) <<p->pro

35、_factury <<setw(10) <<p->pro_date <<setw(10) <<p->buy_date <<setw(10) <<p->use_age <<setw(10) <<p->value <<setw(10) <<p->num <<endl; p = p->next; system("pause"); system("cls");/-2.查詢報廢記錄-void Que

36、ryReject(Reject_Substance *&RejSub) Reject_Substance *p = RejSub->next; if (!p) cout <<"還沒有報廢的固定資產!n"system("pause");system("cls");return; cout <<setw(10) <<"資產id" <<setw(10) <<"資產名字" <<setw(10) <<&quo

37、t;生產商家" <<setw(10) <<"生產日期" <<setw(10) <<"購買日期" <<setw(10) <<"使用年限" <<setw(10) <<"購買價值" <<setw(10) <<"報廢時間" <<endl; while (p) cout <<setw(10) <<p->id <<setw(1

38、0) <<p->name <<setw(10) <<p->pro_factury <<setw(10) <<p->pro_date <<setw(10) <<p->buy_date <<setw(10) <<p->use_age <<setw(10) <<p->value <<setw(10) <<p->reject_date <<endl; p = p->next; system

39、("pause"); system("cls");/-3.查詢維修記錄-void QueryRepair(Repair_Substance *&RepSub) Repair_Substance *p = RepSub->next; if (!p) cout <<"還沒有維修的固定資產!n" system("pause"); system("cls"); return; cout <<setw(10) <<"資產編號" <

40、<setw(10) <<"資產名稱" <<setw(10) <<"生產廠家" <<setw(10) <<"生產日期" <<setw(10) <<"購買日期" <<setw(10) <<"維修費用" <<endl; while (p) cout <<setw(10) <<p->id <<setw(10) <<p->

41、name <<setw(10) <<p->pro_factury <<setw(10) <<p->pro_date <<setw(10) <<p->buy_date <<setw(10) <<p->repair_value <<endl; p = p->next; system("pause"); system("cls");/-4.查詢出借記錄-void QueryLoan(Loan_Substance *&

42、LoaSub)Loan_Substance *p = LoaSub->next;if (!p) cout<<"沒有外借的固定資產!n" system("pause"); system("cls"); return;cout <<setw(10) <<"資產編號" <<setw(10) <<"資產名稱" <<setw(10) <<"生產廠家" <<setw(10) <&l

43、t;"生產日期" <<setw(10) <<"購買日期" <<setw(10) <<"使用年限" <<endl;while (p) cout <<setw(10) <<p->id <<setw(10) <<p->name <<setw(10) <<p->pro_factury <<setw(10) <<p->pro_date <<setw(10)

44、 <<p->buy_date <<setw(10) <<p->loan_date <<endl; p = p->next;system("pause");system("cls");/-查詢管理菜單-int QueryManageMenu()cout <<" *nnn"<<" 資產查詢nnn"<<" *nnn"cout <<" 1.查詢總資產n"<<&

45、quot; 2.查詢報廢記錄n"<<" 3.查詢維修記錄n"<<" 4.查詢出借記錄n"<<" 0.返回主界面nn" return 1;/-查詢管理主調模塊-void QueryManage(Buy_Substance *&BuySub, Repair_Substance *&RepSub, Reject_Substance *&RejSub, Loan_Substance *&LoaSub) int n; while (QueryManageMenu()

46、cout<<"輸入選項:" cin >>n; switch(n) case 0: system("cls"); return; case 1: QuerySub(BuySub); break; case 2: QueryReject(RejSub); break; case 3: QueryRepair(RepSub); break; case 4: QueryLoan(LoaSub); break; default: cout <<"輸入錯誤!n" system("pause"

47、); system("cls"); /-資產管理模塊=/-1.購買資產-void BuySub(Buy_Substance *&BuySu) Buy_Substance *p = new Buy_Substance; cout <<"按提示輸入需購固定資產的信息:n" cout <<"資產編號:" cin >>p->id; cout <<"資產名稱:" cin >>p->name; cout <<"生產廠家:&qu

48、ot; cin >>p->pro_factury; cout <<"生產日期:" cin >>p->pro_date; cout <<"購買日期:" cin >>p->buy_date; cout <<"使用年限:" cin >>p->use_age; cout <<"購買價格:" cin >>p->value; cout <<"需要的數量:" c

49、in >>p->num; BuyRecord(BuySu, p); OperateSolidSubFile(p); /寫入文件/-2.資產維修-void RepairSub(Repair_Substance *&RepSub, Buy_Substance *&BuySub)string id; cout <<"輸入要維修的資產id:" cin >>id; RepairRecord(RepSub, BuySub, id);/-3.資產報廢-void RejectSub(Reject_Substance *&Re

50、jSub, Buy_Substance *&BuySub) string id; cout <<"輸入要報廢的資產id:" cin >>id; RejectRecord(RejSub, BuySub, id);/-4.資產出借-void LoanSub(Loan_Substance *&LoaSub, Buy_Substance *&BuySub) string id; cout <<"輸入要維修的資產id:" cin >>id; LoanRecord(LoaSub, BuySub,

51、 id);/-資產管理主界面-int ManageMenu()cout <<" *nnn"<<" 資產管理nnn"<<" *nnn"cout <<" 1.購買資產n"<<" 2.維修資產n"<<" 3.報廢資產n"<<" 4.借出資產n"<<" 0.返回主菜單nn" return 1;/-資產管理主調程序-void Manage(Buy_Su

52、bstance *&BuySu, Repair_Substance *&RepSub, Reject_Substance *&RejSub, Loan_Substance *&LoaSub) int n; while (ManageMenu() cout <<"輸入選項:" cin >> n; switch(n) case 0: system("cls"); return; case 1: BuySub(BuySu); break; case 2: RepairSub(RepSub, BuySu);

53、 break; case 3: RejectSub(RejSub, BuySu); break; case 4: LoanSub(LoaSub, BuySu); break; default: cout <<"輸入錯誤!n" system("pause"); system("cls"); /-管理系統主界面-int MainMenu()cout <<" *nnn"<<" 歡迎使用固定資產管理系統nnn"<<" *nnn" cou

54、t <<" 1.資產管理n" <<" 2.資產查詢n" <<" 0.退出nn" return 1;/-登陸界面-int LogMenu() cout <<" *nn" <<" 固定資產管理系統nn" <<" *nn" return 1;void Log() string password = "hello" /初始密碼 string _password = "" w

55、hile (LogMenu() cout<<"請輸入密碼:" cin >>_password; if (password = _password) break; cout <<"密碼錯誤,請重新輸入!n" system("pause"); system("cls"); /-主函數-int main() int n; Buy_Substance *BuySub = new Buy_Substance; Repair_Substance *RepSub = new Repair_Substance; Reject_Substance *RejSub = new Reject_Substance; Loan_Subs

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論