




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程实验报告设计题目设计题目: 固定资产管理系统 系系 别:别: 信息工程学院 专专 业:业: 信息工程 班班 级:级: 0902 班 学生姓名学生姓名: 肖文名 学学 号号: 0120909300205 日期日期: 2012 年 6 月 11 日 指导教师: 张张 琪琪 21 需求需求分析分析1.11.1 系统现状系统现状固定资产具有价值高,使用周期长、使用地点分散、管理难度大等特点。据此分析原系统主要问题有:1.许多大规模企业组织拥有的固定资产数量大、种类多、使用周期长,因此使用人工管理将面临固定资产的增加、减少、转移、租赁、停用、封存、闲置、报废等不易管理的问题。2. 固定资产的历史
2、操作和资产统计工作非常困难,容易导致资产流失和资产重复购置,花费不必要的资金。3.目前多数固定资产管理系统采用人工手工方式录入数据,不仅速度慢、还易产生错误。4.不能及时更新固定资产的清单,导致资产外泄,资金无故减少。1.2 用户需求用户需求分析分析根据用企业要求以及现代化管理的准则,要求新开发的固定资产管理系统能够根据企业需要查询有关固定资产管理各类信息,能够查询出任何时间的资产增加、减少、保管、使用、清理报废情况,保证账面和实物相符等。固定资产管理系统需要实现的功能如下:1.正确提出固定资产的折旧,计算固定资产的利用效果,以便于提高固定资产利用率,减少资产流失。2.能够对固定资产进行统计分
3、析,以便于财务部门进行管理。 3.能够及时打印出各种各样的报表,用于会计查帐或审核。4.作为一个正规的固定资产管理系统,需要有身份的校验,以及其他常用的辅助工具的设置。总之本系统能够快速、方便、准确的管理企业的固定资产,可以用来实现:登记新购买的资产、记录进行过维修的资产、记录进行了报废处理的资产以及 3固定资产管理系统档案管理子系统查询管理子系统资产管理子系统购入记录报废记录维修记录外借记录购买资产资产维修资产报废资产外借查询总资产查询外借资产查询维修资产查询报废资产对现有的资产进行统计和核查。1.3 系统功能需求系统功能需求待开发的软件功能需求:本系统主要内容包括固定资产的购买入库,报废,
4、查询等功能,可以将其分为档案管理、资产管理以及查询三个子模块。1.4 总体功能需求总体功能需求固定资产管理主要包括档案管理、资产管理和资产查询管理三个模块(如图 1) ,每个模块又可以细分为几个小模块,具体层次方框图如下: 图 1 系统层次方框图对系统功能解释如下:1档案管理:当新购入固定资产时会在系统中存档,维修资产的时候会登记维修记录,如果有资产报废和外界也要在系统中有记录;2. 资产管理:该子系统主要负责对固定资产的购买,维修。如果有需要外界也可以发出外借的指令。对已经不能够使用的资产施行报废处理,并向有关部门发送报废记录; 4管理员身份验证密码反馈信息请求判断操作请求确定信息购货请求提
5、示信息,修改库存可购货信息库存修改档案档案管理请求合理不合理请求查询类型查询请求查询结果 提示信息类型管理员固定资产管理系统财务部购买记录资产信息出借记录保费维修记录3. 查询管理:主要负责对现有的总资产的查询。对外借出的资产信息的查询以及正在维护的信息查询,对报废损失的资产的查询。由此可以得到系统的顶层数据流图,如图 2: 图 2 系统顶层数据流图进一步细化后得到数据流图如下:图 3 细化后的数据流图 52 2 概要设计概要设计2.1 系统的层次图系统的层次图系统层次图如下:固定资产管理系统登陆退出系统资产查询资产管理购入资产资产维修资产外借资产报废返回主页总资产查询维修查询报废查询外借查询
6、返回主页购入记录维修记录外借记录报废记录 图 4 系统层次图2.2 接口设计接口设计1.外部接口(1) 用户界面采用控制台用户界面,包含按键选项。(2) 软件平台软件运行于 windows 2000 ,windows2007。2.内部接口 (1).登陆模块:系统刚启动时进入消息循环状态,实现用户登陆功能; 6 (2).资产管理模块:由主系统调用,由相应选择激活,之后进入选择循环状态; (3).资产查询模块:由系统调用,由相应选择激活,之后进入选择循环状态; (4).退出系统模块:由系统调用,正常退出系统; (5).购入资产模块:由资产管理子系统调用,由相应选择激活,之后进入选择循环状态; (6
7、).购入记录:由购入资产模块调用,由相应选择激活,之后返回购入资产模块; (7).资产维修模块:由资产管理子系统调用,由相应选择激活,之后进入选择训环状态; (8).维修记录模块:由资产维修模块调用,由相应选择激活,之后返回资产维修模块; (9).资产外借模块:由资产管理子系统调用,由相应选择激活,之后进入选择循环状态; (10).外借记录模块:由资产外借模块调用,由相应选择激活,之后返回资产外借模块; (11).资产报废模块:由资产管理子系统调用,由相应选择激活,之后进入选择循环状态; (12).报废记录模块:由资产报废模块调用,由相应选择激活,之后返回资产报废模块; (13).总资产查询模
8、块:由资产查询子系统调用,由相应选择激活,之后进入选择循环状态; (14).维修查询模块:由资产查询子系统调用,由相应选择激活,之后进入选择循环状态; (15).报废查询模块:由资产查询子系统调用,由相应选择激活,之后进入选择循环状态; (16).外借查询模块:由资产查询子系统调用,由相应选择激活,之后进入选择循环状态; (17).返回主页模块:由资产查询子系统调用,由相应选择激活,之后返回主 7页。2.3 数据结构设计数据结构设计由数据字典和功能的需求可以设计出这样的数据结构:链式数据结构。本系统对信息的处理都采用链表的结构来处理信息。2.4 出错处理设计出错处理设计在资产查询,资产管理模块
9、中,如果有违规操作就会显示提示信息,并且处理出错的操作。例如:在维修时需要输入资产的 id,如果在总资产中没有这个 id,那么就会提示“没有这个资产的信息”并且返回到主页面。 2.5 安全设计安全设计本系统采用密码验证的方式进入系统。以保证系统数据的安全,不让数据泄漏以及被违规修改。2.6 维护设计维护设计系统严格按照设计规范进行设计,并保持各阶段文档的完整性,为以后对软件的维护打好基础。3 详细设计详细设计在以上工作的基础上,基本的设计已经完成。由此可以得出整个系统的工作流程:1系统启动,进入身份验证。2初始化系统,进入系统操作界面。3进入选择循环状态,通过选择驱动激活各模块,执行各任务。
10、84一任务执行完毕后重新进入消息循环状态。5通过事件驱动退出系统。详细的数据流图见图 3,层次图见图 2。 4 4实现与调试分析实现与调试分析4.1实现环境实现环境本系统在 visual studio 2010 开发环境下开发4.2语言选择语言选择 本系统使用 C+编写4.3调试分析调试分析在编写系统的过程之中难免会遇到出错。使用蛮干法,回溯法和原因排除法等调试方法进行调试分析,最终纠正错误。5 5测试分析测试分析5.1测试测试数据数据测试数据表如下:资产编号资产名称生产厂家生产日期购买日期使用年限购买价格购买数量1001电脑惠普2010/2/62011/1/35500041002风扇美的20
11、09/3/52011/6/972001801003饮水机南山2011/3/52014/6/53300221004空调海尔2011/5/92020/5/49700091005冰箱海尔2009/1/52024/5/915520010 95.2测试结果测试结果1.根据系统提示输入下测试表中的测试数据 登陆系统,提示输入密码界面如下(本系统初始密码为”hello” ):图 5 系统登陆界面 正确输入密码后进入主菜单: 图 6 主菜单界面 选 1 进入第二菜单,任选一功能,如输入购买资产(1): 10 图 7 购买菜单界面 再购入其它资产,0 返回主菜单,2 查询,1 查询总资产如下: 图 8 总资产查
12、询界面将资产 1001 号进行维修: 11 图 9 维修界面 将 1002 报废: 图 10 报废界面将 1003 外借: 12 图 11 借出资产界面 上述操作已进行后再查询: 图 12 报废资产记录查询借出资产查询 13 图 13 借出资产记录查询界面维修查询:图 14 资产维修记录查询界面7用户手册用户手册本系统界面功能清楚简单,用户可以根据界面提示完成相应操作。具体操作:1运行程序,会出现主菜单,用户输入密码(初始密码为”hello” ) ; 2密码正确输入,出现第二界面,三个主操作(资产管理,资产查询,退 14出系统) ;3输入对应编号,出现第三界面。选项资产管理对应功能有:资产购买
13、,维修资产,报废资产,借出资产,返回主菜单(在每个非第一界面均有此功能) ;选项资产查询对应功能有:总资产查询,查询报废记录,查询维修记录,查询借出记录等。总之本系统的操作界面提示简单易懂,功能具体适合任何人员操作使用。8总结总结通过本次课程设计,本人掌握了软件工程的基本概念、基本原理、开发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准和规范等;通过固定资产系统的设计,提高了对整个软件开发过程的能力,让能切实体会到软件工程在实践中的指导作用。通过课程设计,学会了按软件工程的要求完成规范的各项软件开发文档,对提高软件开发能力和项目管理能力有重要的现实意义。参考文献参考文献 1
14、 张海藩. 软件工程导论. 北京:清华大学出版社,20042 陈 明. 实用软件工程基础. 北京:清华大学出版社,20033 殷人昆. 实用软件工程. 北京:清华大学出版社,2003 15附录附录:#include#include#include#includeusing namespace std;/-购入固定资产-typedef struct solid_substance string id; /资产编号 string name; /资产名称 string pro_factury; /生产厂家 string pro_date; /生产日期 string buy_date; /购买日期 s
15、tring use_age; /使用年限 int value; /购买价值 int num; /购买的数量 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;/-报废的固定资产-type
16、def 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;Reject_Substance;/-出借的资产- 16typedef struct loan_substance string id; string name; string pro_factury; string pro
17、_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 OpenFile()SolidFile.open(固定资产信息.txt, ios:in|ios:out|ios:app); if (!SolidFile) coutcannot open file!n;exit(1);
18、 SolidFile setw(10) 资产编号 setw(10) 资产名称 setw(10) 生产厂家 setw(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) 生产日期
19、setw(10) 购买日期 setw(10) 维修花费 endl; RejectFile.open(报废资产信息.txt, ios:in|ios:out); if (!RejectFile) cout cannot open file!n; 17exit(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:ou
20、t); if (!LoanFile) cout cannot open file!n;exit(1); LoanFile 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) 18 p = p-next; if (p!=NULL) & (p-
21、id = id) Repair_Substance *p2 = RepSub; while (p2-next) p2 = p2-next; Repair_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;
22、OperateRepairSubFile(p1); /将维修记录写入文件中 else cout next; while (p!=NULL) & (p-id != id) p3 = p; p = p-next; if (p!=NULL) & (p-id = id) 19 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-i
23、d = 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-next = p-next; /将改产品从总资产中删除 cout 该产品已经报废!n; OperateRejectSubFile(p1); /将报废记录写入文件中 else cout next; while (p!=NULL) & (p-id != id) p =
24、p-next; if (p!=NULL) & (p-id = id) Loan_Substance *p2 = LoaSub; 20 while (p2-next) p2 = p2-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-
25、use_age = p-use_age; p2-next = p1; p1-next = NULL; cout 该产品已经外借!n; OperateLoanSubFile(p1); /将出借记录写入文件中 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) 数量 21 end
26、l; 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) num next; system(pause); system(cls);/-2.查询报废记录-void QueryReject(Reject_Substance *&RejSub) Reject_Substance *p = RejSub-next; if (!p) cout 还没有报废的固定资产!n;s
27、ystem(pause);system(cls);return; cout setw(10) 资产 id 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_date setw(10) use_age setw(10) value setw(10) reje
28、ct_date next; system(pause); system(cls);/-3.查询维修记录-void QueryRepair(Repair_Substance *&RepSub) 22 Repair_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; whil
29、e (p) cout setw(10) id setw(10) name setw(10) pro_factury setw(10) pro_date setw(10) buy_date setw(10) repair_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
30、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) loan_date next;system(pause);system(cls);/-查询管理菜单-int QueryManageMenu()cout *nnn 资产查询nnn *nnn;cout 1.查询总
31、资产n 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() coutn; switch(n) case 0: system(cls); return; case 1: QuerySub(BuyS
32、ub); break; case 2: QueryReject(RejSub); break; case 3: QueryRepair(RepSub); break; 24 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;
33、cout p-name; cout p-pro_factury; cout p-pro_date; cout p-buy_date; cout p-use_age; cout p-value; cout p-num; BuyRecord(BuySu, p); OperateSolidSubFile(p); /写入文件/-2.资产维修-void RepairSub(Repair_Substance *&RepSub, Buy_Substance *&BuySub)string id; cout id; RepairRecord(RepSub, BuySub, id);/-3.资产
34、报废-void RejectSub(Reject_Substance *&RejSub, Buy_Substance *&BuySub) string id; cout id; RejectRecord(RejSub, BuySub, id); 25/-4.资产出借-void LoanSub(Loan_Substance *&LoaSub, Buy_Substance *&BuySub) string id; cout id; LoanRecord(LoaSub, BuySub, id);/-资产管理主界面-int ManageMenu()cout *nnn 资
35、产管理nnn *nnn;cout 1.购买资产n 2.维修资产n 3.报废资产n 4.借出资产n 0.返回主菜单nn; return 1;/-资产管理主调程序-void Manage(Buy_Substance *&BuySu, Repair_Substance *&RepSub, Reject_Substance *&RejSub, Loan_Substance *&LoaSub) int n; while (ManageMenu() cout n; switch(n) case 0: system(cls); return; case 1: BuySub(B
36、uySu); break; case 2: RepairSub(RepSub, BuySu); break; 26 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; cout 1.资产管理n 2.资产查询n 0.退出nn; return 1;/-登陆界面-int LogMenu() cout *nn 固定资产管理系统nn *nn; return 1;void Log() string password = hello; /初始密码 string _password = ; while (LogMenu() cout_password; if (passwo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校消防测试题及答案
- 行政考核法律试题及答案
- 《植物病虫害防治》课后习题及答案
- 矿产运输风险管理与保险合同
- 抖音平台用户信用评价与内容分发服务协议
- 新疆消防面试试题及答案
- 新疆公务员复试题目及答案
- 生物识别身份核验系统项目合作市场拓展与业务拓展协议
- 临床带教工作总结发言稿模版
- 云端数据迁移备份安全检测与优化补充协议
- 二轮复习3:阿氏圆反演变换秒杀
- 中层干部管理能力提升课件
- 二手房买卖意向合同协议
- 餐饮员工手册和规章制度
- 初中数学90学时培训总结三篇
- 2024年南京市鼓楼区小升初英语考试题库及答案解析
- 2018年年历表(农历节日A4打印版)
- 2024年度管理评审会
- 2024ABB ConVac真空接触器安装说明书
- 卫星通信与移动通信技术融合与应用
- 医院死亡证明培训课件
评论
0/150
提交评论