1、软件工程实验报告设计题目: 固定资产管理系统 系 别: 信息工程学院 专 业: 信息工程 班 级: 0902班 学生姓名: 肖文名 学 号: 5 日期: 6月11日 指引教师: 张 琪 1 需求分析1.1系统现状固定资产具备价值高,使用周期长、使用地点分散、管理难度大等特点。据此分析原系统重要问题有:1. 许多大规模公司组织拥有固定资产数量大、种类多、使用周期长,因而使用人工管理将面临固定资产增长、减少、转移、租赁、停用、封存、闲置、报废等不易管理问题。2. 固定资产历史操作和资产记录工作非常困难,容易导致资产流失和资产重复购买,耗费不必要资金。3.当前多数固定资产管理系统采用人工手工方式录入
2、数据,不但速度慢、还易产生错误。4.不能及时更新固定资产清单,导致资产外泄,资金无端减少。1.2顾客需求分析依照用公司规定以及当代化管理准则,规定新开发固定资产管理系统可以依照公司需要查询关于固定资产管理各类信息,可以查询出任何时间资产增长、减少、保管、使用、清理报废状况,保证账面和实物相符等。固定资产管理系统需要实现功能如下:1.对的提出固定资产折旧,计算固定资产运用效果,以便于提高固定资产运用率,减少资产流失。2.可以对固定资产进行记录分析,以便于财务部门进行管理。 3.可以及时打印出各种各样报表,用于会计查帐或审核。4.作为一种正规固定资产管理系统,需要有身份校验,以及其她惯用辅助工具设
3、立。总之本系统可以迅速、以便、精确管理公司固定资产,可以用来实现:登记新购买资产、记录进行过维修资产、记录进行了报废解决资产以及对既有资产进行记录和核查。1.3系统功能需求待开发软件功能需求:本系统重要内容涉及固定资产购买入库,报废,查询等功能,可以将其分为档案管理、资产管理以及查询三个子模块。1.4总体功能需求固定资产管理重要涉及档案管理、资产管理和资产查询管理三个模块(如图1),每个模块又可以细分为几种小模块,详细层次方框图如下: 图1 系统层次方框图对系统功能解释如下:1档案管理:当新购入固定资产时会在系统中存档,维修资产时候会登记维修记录,如果有资产报废和外界也要在系统中有记录;2.
4、资产管理:该子系统重要负责对固定资产购买,维修。如果有需要外界也可以发出外借指令。对已经不可以使用资产施行报废解决,并向关于部门发送报废记录;3. 查询管理:重要负责对既有总资产查询。对外借出资产信息查询以及正在维护信息查询,对报废损失资产查询。由此可以得到系统顶层数据流图,如图2: 图2 系统顶层数据流图进一步细化后得到数据流图如下:图3 细化后数据流图 2 概要设计2.1系统层次图系统层次图如下: 图4 系统层次图2.2接口设计1.外部接口(1) 顾客界面采用控制台顾客界面,包括按键选项。(2) 软件平台软件运营于windows ,windows。2. 内部接口 (1).登陆模块:系统刚启
5、动时进入消息循环状态,实现顾客登陆功能; (2).资产管理模块:由主系统调用,由相应选取激活,之后进入选取循环状态; (3).资产查询模块:由系统调用,由相应选取激活,之后进入选取循环状态; (4).退出系统模块:由系统调用,正常退出系统; (5).购入资产模块:由资产管理子系统调用,由相应选取激活,之后进入选取循环状态; (6).购入记录:由购入资产模块调用,由相应选取激活,之后返回购入资产模块; (7).资产维修模块:由资产管理子系统调用,由相应选取激活,之后进入选取训环状态; (8).维修记录模块:由资产维修模块调用,由相应选取激活,之后返回资产维修模块; (9).资产外借模块:由资产管
6、理子系统调用,由相应选取激活,之后进入选取循环状态; (10).外借记录模块:由资产外借模块调用,由相应选取激活,之后返回资产外借模块; (11).资产报废模块:由资产管理子系统调用,由相应选取激活,之后进入选取循环状态; (12).报废记录模块:由资产报废模块调用,由相应选取激活,之后返回资产报废模块; (13).总资产查询模块:由资产查询子系统调用,由相应选取激活,之后进入选取循环状态; (14).维修查询模块:由资产查询子系统调用,由相应选取激活,之后进入选取循环状态; (15).报废查询模块:由资产查询子系统调用,由相应选取激活,之后进入选取循环状态; (16).外借查询模块:由资产查
7、询子系统调用,由相应选取激活,之后进入选取循环状态; (17).返回主页模块:由资产查询子系统调用,由相应选取激活,之后返回主页。2.3数据构造设计由数据字典和功能需求可以设计出这样数据构造:链式数据构造。本系统对信息解决都采用链表构造来解决信息。2.4出错解决设计在资产查询,资产管理模块中,如果有违规操作就会显示提示信息,并且解决出错操作。例如:在维修时需要输入资产id,如果在总资产中没有这个id,那么就会提示“没有这个资产信息”并且返回到主页面。 2.5安全设计本系统采用密码验证方式进入系统。以保证系统数据安全,不让数据泄漏以及被违规修改。2.6维护设计系统严格按照设计规范进行设计,并保持
8、各阶段文档完整性,为后来对软件维护打好基本。3 详细设计在以上工作基本上,基本设计已经完毕。由此可以得出整个系统工作流程:1系统启动,进入身份验证。2初始化系统,进入系统操作界面。3进入选取循环状态,通过选取驱动激活各模块,执行各任务。4一任务执行完毕后重新进入消息循环状态。5通过事件驱动退出系统。详细数据流图见图3,层次图见图2。 4实现与调试分析4.1实现环境本系统在visual studio 开发环境下开发4.2语言选取 本系统使用C+编写4.3调试分析在编写系统过程之中难免会遇到出错。使用蛮干法,回溯法和因素排除法等调试办法进行调试分析,最后纠正错误。5测试分析5.1测试数据测试数据表
9、如下:资产编号资产名称生产厂家生产日期购买日期使用年限购买价格购买数量1001电脑惠普/2/6/1/35500041002电扇美/3/5/6/972001801003饮水机南山/3/5/6/53300221004空调海尔/5/9/5/49700091005冰箱海尔/1/52024/5/915520010 5.2测试成果1.依照系统提示输入下测试表中测试数据 登陆系统,提示输入密码界面如下(本系统初始密码为”hello”):图5 系统登陆界面 对的输入密码后进入主菜单: 图6 主菜单界面 选1进入第二菜单,任选一功能,如输入购买资产(1): 图7 购买菜单界面 再购入其他资产,0返回主菜单,2查
10、询,1查询总资产如下: 图8 总资产查询界面将资产1001号进行维修: 图9 维修界面 将1002报废: 图10 报废界面将1003外借: 图11 借出资产界面 上述操作已进行后再查询: 图12 报废资产记录查询借出资产查询 图13 借出资产记录查询界面维修查询:图14 资产维修记录查询界面7顾客手册本系统界面功能清晰简朴,顾客可以依照界面提示完毕相应操作。详细操作:1 运营程序,会浮现主菜单,顾客输入密码(初始密码为”hello”); 2密码对的输入,浮现第二界面,三个主操作(资产管理,资产查询,退出系统);3输入相应编号,浮现第三界面。选项资产管理相应功能有:资产购买,维修资产,报废资产,
11、借出资产,返回主菜单(在每个非第一界面均有此功能);选项资产查询相应功能有:总资产查询,查询报废记录,查询维修记录,查询借出记录等。总之本系统操作界面提示简朴易懂,功能详细适合任何人员操作使用。8总结通过本次课程设计,本人掌握了软件工程基本概念、基本原理、开发软件项目工程化办法和技术及在开发过程中应遵循流程、准则、原则和规范等;通过固定资产系统设计,提高了对整个软件开发过程能力,让能切实体会到软件工程在实践中指引作用。通过课程设计,学会了按软件工程规定完毕规范各项软件开发文档,对提高软件开发能力和项目管理能力有重要现实意义。参照文献 1 张海藩. 软件工程导论. 北京:清华大学出版社,2 陈
12、明. 实用软件工程基本. 北京:清华大学出版社,3 殷人昆. 实用软件工程. 北京:清华大学出版社, 附录:#include#include#include#includeusing namespace std;/-购入固定资产-typedef struct solid_substance string id; /资产编号 string name; /资产名称 string pro_factury; /生产厂家 string pro_date; /生产日期 string buy_date; /购买日期 string use_age; /使用年限 int value; /购买价值 int num
13、; /购买数量 solid_substance *next; /下一种资产指针Buy_Substance;/-通过维修固定资产-typedef struct repair_substance string id; 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 nam
14、e; string pro_factury; string pro_date; string buy_date; string use_age; int value; /购买价值 string reject_date; /报废日期 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; st
15、ring loan_date; /出借日期 loan_substance *next;Loan_Substance;/=fstream SolidFile;fstream RepairFile;fstream RejectFile;fstream LoanFile;void OpenFile()SolidFile.open(固定资产信息.txt,ios:in|ios:out|ios:app); if (!SolidFile) coutcannot open file!n;exit(1); SolidFile setw(10) 资产编号 setw(10) 资产名称 setw(10) 生产厂家 s
16、etw(10) 生产日期 setw(10) 购买日期 setw(10) 使用年限 setw(10) 购买价值 setw(10) 数量 endl; RepairFile.open(维修资产信息.txt,ios:in|ios:out|ios:app); if (!RepairFile) coutcannot open the file!n;exit(1); RepairFile setw(10) 资产编号 setw(10) 资产名称 setw(10) 生产厂家 setw(10) 生产日期 setw(10) 购买日期 setw(10) 维修耗费 endl; RejectFile.open(报废资产信
17、息.txt,ios:in|ios:out); if (!RejectFile) cout cannot open file!n;exit(1); RejectFile setw(10) 资产编号 setw(10) 资产名称 setw(10) 生产厂家 setw(10) 生产日期 setw(10) 购买日期 setw(10) 使用年限 setw(10) 购买价值 setw(10) 报废日期 endl; LoanFile.open(出借资产信息.txt,ios:in|ios:out); if (!LoanFile) cout cannot open file!n;exit(1); LoanFile
18、 setw(10) 资产编号 setw(10) 资产名称 setw(10) 生产厂家 setw(10) 生产日期 setw(10) 购买日期 setw(10) 使用年限 setw(10) 购买价值 setw(10) 出借日期 next)pt = pt-next;pt-next = p;p-next = NULL;cout 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; R
19、epair_Substance *p1 = new Repair_Substance; cout 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; OperateRepairSubFile(p1); /将维修记录写入文献中 else cout next; while (p!=NULL) &
20、 (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 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_factu
21、ry; p1-use_age = p-use_age; p1-value = p-value; p2-next = p1; p1-next = NULL; p3-next = p-next; /将改产品从总资产中删除 cout 该产品已经报废!n; OperateRejectSubFile(p1); /将报废记录写入文献中 else cout next; while (p!=NULL) & (p-id != id) p = p-next; if (p!=NULL) & (p-id = id) Loan_Substance *p2 = LoaSub; while (p2-next) p2 = p
22、2-next; Loan_Substance *p1 = new Loan_Substance; cout 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 = NULL; cout 该产品已经外借!n; OperateLoanSubFile(p1); /将
23、出借记录写入文献中 else cout next; if (!p) cout 还没有固定资产!n; system(pause); system(cls); return; cout setw(10) 资产编号 setw(10) 资产名称 setw(10) 生产厂家 setw(10) 生产日期 setw(10) 购买日期 setw(10) 使用年限 setw(10) 购买价值 setw(10) 数量 endl; while (p) cout setw(10) id setw(10) name setw(10) pro_factury setw(10) pro_date setw(10) buy_
24、date setw(10) use_age setw(10) value setw(10) num next; system(pause); system(cls);/-2.查询报废记录-void QueryReject(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) 生产商家 setw(10) 生产日期 setw(10
25、) 购买日期 setw(10) 使用年限 setw(10) 购买价值 setw(10) 报废时间 endl; while (p) cout setw(10) id setw(10) name setw(10) pro_factury setw(10) pro_date setw(10) buy_date setw(10) use_age setw(10) value setw(10) reject_date next; system(pause); system(cls);/-3.查询维修记录-void QueryRepair(Repair_Substance *&RepSub) Repair
26、_Substance *p = RepSub-next; if (!p) cout 还没有维修固定资产!n; system(pause); system(cls); return; cout setw(10) 资产编号 setw(10) 资产名称 setw(10) 生产厂家 setw(10) 生产日期 setw(10) 购买日期 setw(10) 维修费用 endl; while (p) cout setw(10) id setw(10) name setw(10) pro_factury setw(10) pro_date setw(10) buy_date setw(10) repair_
27、value next; system(pause); system(cls);/-4.查询出借记录-void QueryLoan(Loan_Substance *&LoaSub)Loan_Substance *p = LoaSub-next;if (!p) cout没有外借固定资产!n; system(pause); system(cls); return;cout setw(10) 资产编号 setw(10) 资产名称 setw(10) 生产厂家 setw(10) 生产日期 setw(10) 购买日期 setw(10) 使用年限 endl;while (p) cout setw(10) id
28、 setw(10) name setw(10) pro_factury setw(10) pro_date setw(10) buy_date setw(10) loan_date next;system(pause);system(cls);/-查询管理菜单-int QueryManageMenu()cout *nnn 资产查询nnn *nnn;cout 1.查询总资产n 2.查询报废记录n 3.查询维修记录n 4.查询出借记录n 0.返回主界面nn; return 1;/-查询管理主调模块-void QueryManage(Buy_Substance *&BuySub,Repair_Sub
29、stance *&RepSub, Reject_Substance *&RejSub,Loan_Substance *&LoaSub) int n; while (QueryManageMenu() coutn; 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); system(cls); /-资产管理模块=/-1.购买资产-void BuySub(Buy_Substance *&BuySu) Buy_Substance *p = new Buy_Substance; cout 按提示输入需购固定资产信息:n; cout p-id; cout p-name; cout p-pro_factury;
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100