《固定资产管理系统(软件工程).doc》由会员分享,可在线阅读,更多相关《固定资产管理系统(软件工程).doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 软件工程实验报告设计题目: 固定资产管理系统 系 别: 信息工程学院 专 业: 信息工程 班 级: 0902班 学生姓名: 肖文名 学 号: 0120909300205 日期: 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) 用户界面采用控制台用户界面,包
5、含按键选项。(2) 软件平台软件运行于windows 2000 ,windows2007。2. 内部接口 (1)。登陆模块:系统刚启动时进入消息循环状态,实现用户登陆功能; (2)。资产管理模块:由主系统调用,由相应选择激活,之后进入选择循环状态; (3).资产查询模块:由系统调用,由相应选择激活,之后进入选择循环状态; (4).退出系统模块:由系统调用,正常退出系统; (5).购入资产模块:由资产管理子系统调用,由相应选择激活,之后进入选择循环状态; (6).购入记录:由购入资产模块调用,由相应选择激活,之后返回购入资产模块; (7)。资产维修模块:由资产管理子系统调用,由相应选择激活,之后
6、进入选择训环状态; (8)。维修记录模块:由资产维修模块调用,由相应选择激活,之后返回资产维修模块; (9)。资产外借模块:由资产管理子系统调用,由相应选择激活,之后进入选择循环状态; (10).外借记录模块:由资产外借模块调用,由相应选择激活,之后返回资产外借模块; (11)。资产报废模块:由资产管理子系统调用,由相应选择激活,之后进入选择循环状态; (12)。报废记录模块:由资产报废模块调用,由相应选择激活,之后返回资产报废模块; (13).总资产查询模块:由资产查询子系统调用,由相应选择激活,之后进入选择循环状态; (14).维修查询模块:由资产查询子系统调用,由相应选择激活,之后进入选
7、择循环状态; (15).报废查询模块:由资产查询子系统调用,由相应选择激活,之后进入选择循环状态; (16).外借查询模块:由资产查询子系统调用,由相应选择激活,之后进入选择循环状态; (17).返回主页模块:由资产查询子系统调用,由相应选择激活,之后返回主页。2。3数据结构设计由数据字典和功能的需求可以设计出这样的数据结构:链式数据结构.本系统对信息的处理都采用链表的结构来处理信息。2.4出错处理设计在资产查询,资产管理模块中,如果有违规操作就会显示提示信息,并且处理出错的操作。例如:在维修时需要输入资产的id,如果在总资产中没有这个id,那么就会提示“没有这个资产的信息并且返回到主页面.
8、2.5安全设计本系统采用密码验证的方式进入系统。以保证系统数据的安全,不让数据泄漏以及被违规修改。2。6维护设计系统严格按照设计规范进行设计,并保持各阶段文档的完整性,为以后对软件的维护打好基础.3 详细设计在以上工作的基础上,基本的设计已经完成.由此可以得出整个系统的工作流程:1系统启动,进入身份验证。2初始化系统,进入系统操作界面.3进入选择循环状态,通过选择驱动激活各模块,执行各任务.4一任务执行完毕后重新进入消息循环状态.5通过事件驱动退出系统。详细的数据流图见图3,层次图见图2. 4实现与调试分析4。1实现环境本系统在visual studio 2010开发环境下开发4。2语言选择
9、本系统使用C+编写4。3调试分析在编写系统的过程之中难免会遇到出错。使用蛮干法,回溯法和原因排除法等调试方法进行调试分析,最终纠正错误。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用户手册本系统界面功能清楚简单,用户可以根据界面提示完成相应操
11、作。具体操作:1 运行程序,会出现主菜单,用户输入密码(初始密码为”hello); 2密码正确输入,出现第二界面,三个主操作(资产管理,资产查询,退出系统);3输入对应编号,出现第三界面.选项资产管理对应功能有:资产购买,维修资产,报废资产,借出资产,返回主菜单(在每个非第一界面均有此功能);选项资产查询对应功能有:总资产查询,查询报废记录,查询维修记录,查询借出记录等。总之本系统的操作界面提示简单易懂,功能具体适合任何人员操作使用。8总结通过本次课程设计,本人掌握了软件工程的基本概念、基本原理、开发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准和规范等;通过固定资产系统的
12、设计,提高了对整个软件开发过程的能力,让能切实体会到软件工程在实践中的指导作用。通过课程设计,学会了按软件工程的要求完成规范的各项软件开发文档,对提高软件开发能力和项目管理能力有重要的现实意义。参考文献 1 张海藩. 软件工程导论。 北京:清华大学出版社,20042 陈 明。 实用软件工程基础。 北京:清华大学出版社,20033 殷人昆。 实用软件工程。 北京:清华大学出版社,2003 附录:includeiostreamincludestringincludeiomanipincludeusing namespace std;/-购入固定资产-typedef struct solid_sub
13、stance 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; string name; string pro_factur
14、y; 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_date; /报废日期 reject_substance next
15、;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 RejectFile;fstream LoanFile;void
16、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) ”生产厂家” setw(10) 生产日期” setw(10) ”购买日期” setw(10) 使用年限” setw(10) 购买价值” setw(10) 数量” endl; RepairFile。open(”维修资产信息。txt”, ios:inios::outios::
17、app); if (!RepairFile) cout”cannot open the file!n”;exit(1); RepairFile setw(10) ”资产编号 setw(10) 资产名称 setw(10) ”生产厂家” setw(10) 生产日期” setw(10) 购买日期 setw(10) ”维修花费 endl; RejectFile.open(”报废资产信息。txt, ios:inios:out); if (!RejectFile) cout ”cannot open file!n;exit(1); RejectFile setw(10) ”资产编号” setw(10) 资
18、产名称” 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 setw(10) ”资产编号” setw(10) ”资产名称” setw(10) 生产厂家” setw(10) ”生产日期” setw(10) 购买日期 setw(10) 使用年限” se
19、tw(10) next)pt = pt-next;ptnext = p;p-next = NULL;cout next; while ((p!=NULL) (pid != id)) p = pnext; if ((p!=NULL) & (pid = id) Repair_Substance p2 = RepSub; while (p2-next) p2 = p2-next; Repair_Substance *p1 = new Repair_Substance; cout ”输入需要的维修费用:; cin p1-repair_value; p1buy_date = pbuy_date; p1-
20、id = p-id; p1-name = pname; p1pro_date = p-pro_date; p1pro_factury = p-pro_factury; p2next = p1; p1-next = NULL; cout 该产品正在维修中。.。n; OperateRepairSubFile(p1); /将维修记录写入文件中 else cout id != id)) p3 = p; p = p-next; if (p!=NULL) & (pid = id)) Reject_Substance *p2 = RejSub; while (p2next) p2 = p2next; Rej
21、ect_Substance *p1 = new Reject_Substance; cout 输入报废的日期:”; cin p1reject_date; p1buy_date = p-buy_date; p1id = pid; p1name = pname; p1-pro_date = ppro_date; p1pro_factury = ppro_factury; p1use_age = p-use_age; p1value = p-value; p2-next = p1; p1-next = NULL; p3next = pnext; /将改产品从总资产中删除 cout 该产品已经报废!n
22、; OperateRejectSubFile(p1); /将报废记录写入文件中 else cout next; while (p!=NULL) & (pid != id) p = pnext; if (p!=NULL) & (pid = id) Loan_Substance *p2 = LoaSub; while (p2next) p2 = p2-next; Loan_Substance p1 = new Loan_Substance; cout p1loan_date; p1-buy_date = p-buy_date; p1id = p-id; p1name = pname; p1pro_
23、date = ppro_date; p1pro_factury = ppro_factury; p1value = p-value; p1use_age = puse_age; p2next = p1; p1next = NULL; cout 该产品已经外借!n”; OperateLoanSubFile(p1); /将出借记录写入文件中 else cout ”不存在该产品!n; system(pause); system(”cls”); return; system(pause”); system(”cls”);/-查询管理模块=/-1。查询总资产-void QuerySub(Buy_Subs
24、tance *BuySu) Buy_Substance p = BuySunext; 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 name setw(10) pro_factury setw(10) p
25、ro_date setw(10) p-buy_date use_age setw(10) pvalue setw(10) p-num next; system(”pause”); system(”cls);/-2。查询报废记录-void QueryReject(Reject_Substance RejSub) Reject_Substance *p = RejSubnext; if (!p) cout 还没有报废的固定资产!n;system(”pause”);system(”cls”);return; cout setw(10) 资产id setw(10) ”资产名字 setw(10) 生产商
26、家” setw(10) 生产日期” setw(10) 购买日期” setw(10) 使用年限” setw(10) 购买价值” setw(10) ”报废时间” name setw(10) p-pro_factury setw(10) ppro_date setw(10) p-buy_date setw(10) puse_age value setw(10) next; if (!p) cout 还没有维修的固定资产!n”; system(pause); system(cls”); return; cout setw(10) ”资产编号 setw(10) ”资产名称” setw(10) ”生产厂家
27、” setw(10) ”生产日期” setw(10) 购买日期” setw(10) ”维修费用” endl; while (p) cout setw(10) p-id setw(10) p-name setw(10) ppro_factury setw(10) pro_date setw(10) p-buy_date setw(10) p-repair_value next; system(”pause); system(cls);/-4。查询出借记录-void QueryLoan(Loan_Substance LoaSub)Loan_Substance p = LoaSubnext;if (
28、!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) pid name setw(10) ppro_factury setw(10) p-pro_date setw(10) pbuy_date setw(10) p-loan_date endl; p = pnext;system(”p
29、ause”);system(”cls);/-查询管理菜单-int QueryManageMenu()cout *nnn” 资产查询nnn” *nnn”;cout 1.查询总资产n” 2.查询报废记录n” 3。查询维修记录n” 4。查询出借记录nn; 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_Subst