资产管理程序设计实训报告Word格式.docx
《资产管理程序设计实训报告Word格式.docx》由会员分享,可在线阅读,更多相关《资产管理程序设计实训报告Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
(2)资产管理的功能又包括资产借出管理和资产信息管理。
(3)资产系统查询又包括资产信息查询、资产借出查询、资产归还查询。
(4)资产帮助功能。
资产借出:
将行政事业单位有占有权、使用权的资产做对外借出处理。
系统能够在库设备中选择要借出的设备,查看设备详细信息,确认后填写资产借出表。
包括借出资产编号、资产名称、资产型号,借出时间、借出数量、借出人等信息,方便以后对借出资产进行查询。
借出信息管理表中,又包括产品名称、产品类型、产品总量、产品价格、产品厂商、购买日期、出产日期、购买人等信息。
(7)资产归还:
接受方使用完设备后即归还所借设备。
系统根据借用清单查询详细信息,如果属实,则填写归还信息,核实无误后设备入库。
介于本系统的特点和研究的重点问题,本系统只实现详细企业的资产信息管理;
系统用户管理功能;
系统查询管理;
系统人员管理四个功能,并提供批处理管理功能。
2.2运行环境
2.2.1Java
Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。
Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface,简称API)构成。
Java分为三个体系JavaSE(Java2PlatformStandardEdition),JavaEE(Java2PlatformEnterpriseEdition),JavaME(Java2PlatformMicroEdition)。
Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。
2.2.2Tomcat
Tomcat是一个开源的JSP和Serlvet容器。
Tomcat可以将从客户端接收到的JSP脚本转化为Serlvet,并对Serlvet进行编译,运行,将最终的结果返回给客户端。
2.2.3Eclipse
Eclipse是Java开发领域一款优秀的集成开发环境(IDE),它不仅仅是Java的IDE,还可以是C语言的IDE,只要开发出相应语言的插件,Eclipse就可以成为任何语言的IDE。
Eclipse是一个开放源代码的软件开发项目,它专注于为高度集成的软件开发提供一个全功能的、具有商业品质的工业平台。
它有Eclipse项目、Eclipse工具项目和Eclipse技术项目3个项目组成,每一个项目有相应的项目管理委员会监督,并有相应的项目管理章程。
Eclipse平台是一个开放的可扩展的IDE,它是建造块和构造并运行集成软件开发工具的基础。
Eclipse平台允许工具建造独立开发与其他工具无缝集成的工具。
用户无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。
三、概要设计
系统概要设计,主要分以下四点进行分析。
使得系统设计思想更清晰,操作简单,更好的提高了功能的利用,提高系统的安全,可行性。
3.1设计思想
(1)系统分成几个相对独立的模块,但这些模块都进行集中式管理。
(2)分层的模块化程序设计思想,整个系统采用模块化结构设计。
作为应用程序有较强的可操作性和扩展性。
(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。
3.2设计原则
为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了如下原则:
(1)准确性原则:
对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如:
类型匹配,长度不超限等)。
(2)易操作原则:
要求设计的系统功能齐全,界面友好,操作方便,必要的地方进行提示。
(3)源程序可读性原则:
为了便于其他设计,维护人员读懂代码或以后的代码修改,软件升级维护,即可能做好代码注释工作。
(4)优化原则:
为了达到优化的目的,合理的运用窗口,菜单,对象等的继承,自定义用户对象,事件,函数,减少不必要的重复性代码,使程序简介明了,也方便了将来的维护。
(5)安全性原则:
可以为该系统的用户设置用户权限。
3.3数据结构设计
数据库的管理是整个系统的核心.我们选择了SQLyong,SQLyong数据库是一个高性能,多用户,关系型数据库管理模式,能够实现网络环境下的数据库之间的互连,互操作,具有数据容错,完整性检查和安全保密等功能,使整个网络数据库的结构更加合理。
SQLyong是业界著名的Webyong公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。
使用SQLyong可以快速直观地让用户通过网络来维护任何角落的远端的MySQL数据库。
3.3.1数据库的分析
数据库是长期存储在计算机内的,有组织的,可共享的数据集合,在一个信息管理系统中占非常重要的地位,它能够能充分满足各种信息的输入和输出。
通过收集基本数据、数据结构以及数据处理的流程,根据对相关信息的集和统计,以及对用户所关心和需要了解的信息的分析需要建立以下数据集:
在之前的需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们的关系。
集成了来自不同用户对现实信息描述所构成的外部视图,形成全局的概念模型,进而可以转换成数据库的模式。
本系统的操作多是对数据库的操作,诸如新闻模块实现添加、删除、修改和查询等。
因此数据库的结构设计是一个非常重要的环节,数据库设计的好坏将直接对应用系统的效率。
好的数据库结构设计可以提高数据的完整性和一致性,也便于提高数据存储,可使系统具有较高的响应速度,简化基于数据库的应用程序的设计实现。
本数据的具体链接会在下文进行介绍。
3.3.2数据库的设计
数据库结构设计使用的数据库管理系统以及系统开发工具设计出数据库以及各个数据表的结构。
本系统数据库开发汇集各种信息以供查询、存储和检索。
其优点在于它能使用数据表示图或自定义窗体收集信息。
它提供数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。
本系统数据库是一种关系型数据库工具,关系数据库是已开发的最通用的数据库。
(1)数据库描述功能:
定义数据库的全局逻辑结构(概念模式)、局部逻辑的结构(外模式)以及其它各种数据库对象;
(2)数据库管理功能:
包括系统控制、数据存储以及更新管理、数据安全性与一致性维护;
(3)数据库查询和操作功能:
能从数据库中检索住处或者改变信息;
(4)数据库建立与维护功能:
包括数据写入、数据库重建、数据库结构维护、恢复以及系统性能监视等。
此次设计根据数据的大小以及管理的便捷性选择MySql作为数据库管理系统,使用数据管理器创建数据库。
按照前面分析的系统,设计出系统数据库中的各个数据表如下:
表3-1资产信息表
列名
数据类型
可否为空
说明
assetsID
Int(10)
null
设备Id
assetsName
Varchar(10)
null
设备名称主键
assetsValue
设备价值
assetsType
设备类型
buyDate
Varchar(20)
购买日期
status
Varchar
(1)
设备状态
user
使用者
remark
备注
表3-2资产大类信息表
bigcode
char(10)
固定资产大类编号(主键)
name
Varchar(30)
固定资产大类名字
表3-3领用资产信息
borrowID
领用固定资产ID主键
Int(10)
设备ID外键
borrowDate
date
领用日期
borrower
Char(10)
领用者
functions
作用
Varchar(50)
表3-4归还资产信息
Int(11)
null
设备信息主键
领用信息外键
returnDate
归还日期
returner
归还者
remark
表3-5资产小类信息
code
小类编码主键
varchar(20)
大类编码
大类名字
表3-6用户信息
userID
用户ID(主键)
userName
varchar(10)
用户名字(外键)
password
用户密码
position
用户职位
role
角色
得到以上的数据项和数据结构以后,就可以设计出能够满足用户需求的各种设计,它们之间的关系为后面的逻辑结构设计打下基础,这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
这在以后的设计中的作用十分重要。
3.4运行设计
本系统运行后,首先启动初始化模块,显示前台界面陆,如果需要进入后台,可以进入后台页面,退出模块关闭数据库连接并退出系统。
各个模块运行时间均应控制在3-5秒内(其中大部分时间为响应用户的动作)。
4、详细设计
本系统能够实现人员信息管理,资产管理,资产领用信息管理,资产归还信息管理的相关增,删,查,改。
根据不同的用户,我们提供了不同的登录界面,用来方便管理员更有效的管理。
4.1前台页面
在此项目的设计过程中,我们拥有一个用户管理模块,拥有两个主要的功能,用户登录。
4.1.1登录页面
根据权限的不同,不同的模块拥有不同的登录账户和密码,用户根据自己的密码和账户,进行自己的权限以及进行相关的功能。
在此模块的设计中,主要是增添的按钮起作用,通过链接数据库,实现用户的登陆和注册。
如果用户输入的密码名错误则会弹出一个页面,显示错误。
图4-1登录页面
4.1.2资产查询页面
普通用户可以对固定资产设备进行查询来借用固定资产。
图4-2前台查询页面
4.1.3人员信息页面
管理员可以根据员工的变动进行增加、修改、删除、查询。
以上分别介绍了几个典型的系统维护模块界面的设计,其功能各不相同,同时还有其他一些页面在这里并没有进行介绍,应为这些余留页面的功能和上述介绍的界面功能类似。
五、测试
在完成了程序的编写工作后,接下来将进行软件的测试,这里说的软件,并不单单是指程序本身,还包括其他方面。
测试和开发一样,也是一项技术性很强的工作,有着很多的技巧。
软件测试是软件质量保证的主要活动之一,因此,测试的质量直接影响软件的质量。
5.1测试的定义及目的
软件测试就是在软件投入运行前,对软件的需求分析,设计规格说明和编码的最终复审,是保证软件质量的关键步骤。
如果要给软件测试下定义,可以这样将,软件测试是为了发现错误而执行程序的过程。
测试的目的在于将软件设计时设计者与程序开发者之间理解不一致的地方,功能与需求不一致的地方,不符合逻辑思维的情况都反映给质量控制部门,由质量控制部门调配需求部门统一作出一个明确解答,再由开发人员进行修改和补充。
测试的目标是以最少的时间和人力找出软件中潜在的各种错误和缺陷。
5.2测试的原则
对于相对复杂的产品或系统来说,Zero-Bug是一种理想,Good-Enough是我们的原则。
Good-Enough原则就是一种权衡投入/产出比的原则;
不充分的测试是不负责任的;
过分的测试是一种资源的浪费,同样也是一种不负责任的表现。
我们操作的困难在于,如何界定什么样的测试是不充分的,什么样的测试是过分的。
目前状况唯一可用的答案是:
制定最低通过标准和测试内容,然后具体问题具体分析。
5.3测试的方法
依据前面所说的测试对象,我们把测试划分为几个方面来进行测试。
5.3.1界面测试
界面测试是测试过程中比较简单直观的一种测试方法,只要细心地按界面要求核对就行了。
可这快往往是程序开发人员容易忽视和遗漏的地方,也是常常出Bug的地方。
下面是界面测试中经常出现的几种Bug:
错别字,即界面中的标题或者文本内容中出现了错别字。
这种Bug如果测试人员不细心,和难找出来,可能会出现在提示信息或界面中。
出现了一些根本读不懂的内容,一般多出现在程序的提示信息和一些较长的文本中。
这种情况基本上出现在拼起来显示的提示中,页面的简单陈述是通过变量拼组起来的,通过程序将字一个一个地输出出来。
通常是因为程序中的控制错误或是程序开发人员对程序没有进行认真的自测,导致出现这种Bug。
程序员自创的词语,虽然意思对,但不符合界面的标准及需求。
这种情况基本上是由于开发人员使用一些专业术语,并且混杂着自己的理解出现Bug,主要是由于开发过程中团队合作没又明确的分工,没有统一的规范用语。
标题相近的程序及模块,把标题弄混。
这种情况多是因为业务方面的定义名称很相似或很类似,并且业务实体方面也很类似,开发人员在开发过程中忽略了开发名称和模块,只单独地实现其功能。
5.3.2功能测试
顾名思义,功能测试主要是测试程序模块是否实现了设计中所有要求的功能。
功能测试中需要注意的有:
查询功能中,有按单一查询条件进行查询的,也有按多个查询条件组合查询的,这里要注意多个查询条件之间的关系,还有一些常识性的问题,比如按月查询,闰年中二月的天数。
录入功能中,需要注意的是前台设置的数值长度是否大于后台数值长度,以及前台与后台的数据结构是否相符,很多时候录入功能无法实现是由于这些原因。
还有就是必须录入的字段的设置是否有误。
测试删除功能中需要注意的是单击”删除”按钮后,一般会出现提示信息,询问是否确定删除。
通常情况下,我们单击”确认”按钮查看信息是否被删除掉了,而忽略了单击”取消”按钮后程序的反应,这时有可能的是没有删除,还有一种可能是即便单击了”取消”按钮,也一样删除了数据。
另外,在删除多条记录的时候,要注意连续选中的几条记录是否真正都被删除了,即如果再按照这种查询方式查询,是否还能查询出来。
有的时候需要在数据库中设一个标志位,而不是真正的物理删除。
所以在下一次查询中,可能还会被查询出来,这主要是因为在查询条件中没有将标志位考虑在内。
关于修改功能的测试,主要是看修改确认后是否数据真正已被修改了。
这是最基本的功能,需要注意的是看是否能把不应该修改的数据也修改成功了。
5.3.3需求测试
针对需求测试,是测试中很重要的一个环节。
因为需求是在软件设计,开发乃至软件测试中重要的依据。
要针对需求测试,首先就要对项目的需求和业务有一定的了解。
这些需求很多时候是在实现增,删,查,改这些基本功能之上,针对项目和相关业务所作的一些逻辑上的控制。
这就要求程序员在设计和编码的时候要去充分理解考虑需求。
5.3.4性能测试
性能测试在软件的质量保证中起着重要的作用。
。
通常我们把性能指标全部归结到硬件,操作系统和开发环境上,而忽略了代码本身性能上的考虑。
性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。
5.4测试中其他要注意的地方
时常有这样的情况发生,每个模块都能单独工作,但这些模块集成在一起之后却不能正常工作。
其主要原因是,模块相互调用时接口会引入许多新问题。
这就要求在进行程序设计和编码的时候要尽可能地从整体考虑。
错误本身出现在程序设计阶段,并非由于程序员编码造成的问题。
这就要求我们无论是在开发还是测试阶段,对需求或程序设计存在疑问,应及时提出,及时解决。
由于一些模块被修改了,对其他模块造成了影响而出现了新的Bug。
发现这些Bug要求我们对程序整体的结构有基本的了解,清楚模块之间的一些联系。
5.5公司资产信息管理系统的测试
在完成编码的工作以后,根据以上的方法和步骤进行了如下的测试:
界面测试:
反复点击页面上的菜单项和按钮,测试其反应情况,直到所有的控件都达到预期的效果。
功能测试:
对系统的几大功能模块逐一测试,尽最大可能发现起潜在的错误,
性能测试:
对系统不同功能模块给予不同的数据项,查看系统是否能够正确处理数据。
需求测试:
根据需求分析的内容,测试系统是否和当初的设计一样。
通过这几方面的测试,我及时修正了系统中存在的问题,很好的提高了系统的性能,达到了预期目标。
六、项目总结
经过几个星期来的努力,终于完成了本毕业设计。
从当初开始准备选题到最后一个功能模块的完成,经历了无数次的错误->
修改代码->
运行的过程,感觉到平时学的知识是多么的浅薄,书到用时方恨少,现在是体验的真真切切。
由于对mysql以及Eclipse的使用不熟悉,所以本次实验只选取的原计划中的几个模块进行编写代码实现。
设计过程中,许多问题由于对程序语言的不熟悉,参考了大量的Java书籍。
但通过本次实验,我也感受到了开源的方便,遇到什么问题,上网一查,就知道该怎么弄了,以前做个课程设计都是怕别人和我的一样,不愿意给别人看,现在知道了程序弄不出来是多么的着急,学习都是相互的,互相研究才能共同进步的。
在本系统实现的过程中遇到过很多的问题,下面一一记录下来,作为以后工作的参考。
第一个问题是数据库的问题,mysql从未接触过,首先在XX上查到其增删改查的标准化语句。
然后查询并下载了SQLyog,mysql的图形化设计工具。
第二个问题是java与mysql的连接问题,也是查阅了大量的资料之后,下载了连接的jar包mysql-connector-java-5.0.8.jar,并编写了连接类,在上文的数据库连接模块有提供代码myConnection。
第三个问题是excel表格的处理问题,首先在老师的帮助下查阅了相关资料,下载了excel处理的jar包jxl.jar。
然后写了相关的读写类封装对excel的读写。
还有一些其他的一些小问题,比如数据库数据类型的设计,数据长度的更改等。
这里非常感谢我曾在惠普实习时遇到的同事,他们给我提供了标准系统中正在使用的数据,本系统中使用的数据全部都是标准化的数据,这也为系统应用到实际提供了一个测试的机会。
通过本次实验,对数据库的编程有了一定深度的了解,提高了自身对数据库语言的进一步熟悉。
也培养了独立思考问题和自学能力的锻炼,使我意识到必须努力学习才能才工作中体现自己的价值,适应社会的需要。
7、附录
登录页面代码
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.sql.*;
importjava.sql.Statement;
importjava.sql.ResultSet;
importjavax.swing.JButton;
importjavax.swing.JLabel;
importjavax.swing.JTextField;
importjavax.swing.JPasswordField;
importjavax.swing.JPanel;
importjavax.swing.JFrame;
publicclassuser_landextendsJFrameimplementsActionListener{
staticConnectionconn=null;
staticStatementstat=null;
staticResultSetrs=null;
staticStringurl="
jdbc:
sqlserver:
//127.0.0.1:
1433;
DatabaseName=_Property"
;
staticStringuser="
sa"
staticStringpassword="
"
JPanelp1,p2,p3,p4,p5;
JLabellbl1,lbl2,lbl3,lbl4;
JTextFieldtxt_name;
JPasswordFieldtxt_pwd;
JButtonbtn1,btn2,btn3;
static{
try{
Class.forName("
com.microsoft.sqlserver.jdbc.SQLServerDriver"
);
}catch(Exceptione){
System.out.println("
加载驱动失败"
e.printStackTrace();
}
}
publicuser_land(){
this.setTitle("
固定资产及设备用户登录"
p1=newJPanel();