第一章需求分析1、系统需求描述:实验室设备管理系统是利用Eclipse 作为开发工具、SQLServer2000 作为数据库的系统。
管理员可以对实验室设备信息进行查询及相关实验室设备的使用情况查看。
管理员可以根据本人用户名和密码登录系统。
在信息系统中,后台数据库存储的地位相当重要,数据库的设计不但对数据的操作速度有影响,还直接关系到软件系统的质量和生存周期。
本系统采用了SQL数据库book,book库中包括设备基本信息表、维修记录表、新设备表、申请表、报废记录表。
系统首先必须维护实验室中详细资料的数据表,程序能对该表进行写入和读出数据的操作,相应的。
系统还要管理员信息表,记录管理员的资料,检验管理员的登陆,管理员的权限等。
要求实现如下功能:⑴所有工作由专门人员负责完成,其他人不得任意使用;⑵对于已彻底损坏的作报废处理,同时详细记录有关信息;⑶对于有严重问题(故障)的要即使修理,并记录修理日期、设备名、修理厂家、修理费、责任人等;⑷对于急需但又缺少的设备需以“申请表”的形式送交上级领导请求批准购买。
新设备购入后要立即进行设备登记(包括类别、设备名、型号、规格、单价、数量、购置日期、生产厂家、购买人等),同时更新申请表的内容;⑸随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段(某日期之前)查询。
本管理系统通过计算机对实验设备进行自动管理,设备管理员可以直接在计算机实现实验设备的信息管理,并在一定程度上实现自动化,改善了工作运行效率和效果。
2、系统数据流图(功能模型DFD )0 层数据流图如下:登录信息审核信息高级管理员处理结果<审核结果管理员丿图0层数据流图1层数据流图:处理结果报废报废申请管 理 员 管理 咼级 管理 员高 级 管理 员实验备管 统室设 理系员审核结果2审核信息处理要求3审核结果申请审核查询记录查询信息统计查询维修记录A维修设备审核结果1登录信息新设备审核信息身份验证报废设备管 理 员 2层数据流图图1层数据流图审核_ ) —审核批准3维修丿购买申请管 登录信息r、申请/维修/报废 理气/查询操作员身份验证< j购买)图2层数据流图总数据流图:图总数据流图3、系统数据模型E-R图实体和属性的定义。
E-R模型的“联系”用于刻画实体之间的关联。
一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。
若有联系,进一步确定是1:N,M:N,还是1:1等,还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系等等。
实验室设备信息E-R图,如下图所示:W) CW)眄实验室设备信息〔生产L家〕住产厂商]㈣买人保储时间〕區否贵重设备)图实验室设备信息E-R图图查询设备E-R图报废设备E-R图,如下图所示:管理员® (电话号码图管理员E-R图图总体E-R图4、系统行为模型(状态转换图)图登录的状态图第二章概要设计1、实验室设备管理系统模块结构图图1实验室设备管理系统结构图2、管理系统模块功能,接口的描述1、高级管理员操作模块(1)模块名称:购买审核模块。
(2)模块功能:对因其他原因的需要进行增加设备情况来进行相应的操作。
(3)模块背景描述:对因其他原因的需要进行增加设备情况来进行相应操作。
(4)接口:申请处理接口2、设备管理员操作模块(1)模块名称:设备管理模块。
(2)模块功能:对一些损坏的设备进行调查并采取更换设备或进行维修等操作。
对一些已经损坏并不能进行维修的设备进行移除和作废处理等操作。
(3)模块背景描述:用户必须是设备管理员才能填写设备管理表,只有授权的设备管理员才有资格对正式的设备管理表进行增加、修改、删除、查询和系统维护等操作。
(4)接口:修理处理接口、报废处理接口3、查询管理模块(1)模块名称:查询管理模块。
(2)模块功能:对实验室中的设备进行查询,了解设备状况。
(3)模块背景描述:对实验室中的设备进行查询,了解设备状况(4)接口:查询处理接口3、数据库设计1、逻辑结构设计表设备信息表(Equip)第三章详细设计在本系统中有如下几个大型的模块。
它们分别是:用户登陆管理模块、设备管理员操作模块(设备查询管理模块、设备维修管理模块、设备购买管理模块、设备报废管理模块)和高级管理员管理模块。
1、用户登录管理模块功能描述在整个实验室设备管理系统中,用户管理是所有系统的第一大关,它可以用来区别用户的管理权限,不同的管理权限给予的功能是不同的,用户登陆后才可进行相关的操作。
模块伪代码取得程序上窗体上的用户名、密码栏的文本信息分别将取得的信息存入NAM和口PASSWORD变量中打开数据库中的用户信息表,用sName变量与列名为用户名的列项进行比较IF查到了与NAME目同的项,判断PASSWOR D否相等不相等则返回错误,要求重新输入相等则取得登陆权限用来判断用户身份,给予相关权限。
ELSE则返回错误,要求重新输入模块流程图如下:甲操作界面结束':图用户登录管理模块流程图数据库相关信息列名数据类型长度允许空用户名varchar50not n ull密码varchar50not n ull登陆权限char10not n ull2、设备查询管理模块程序开始&取得设备名称显示设备信息显示没有相关信息图设备查询管理模块流程图功能描述在整个系统中用来查询设备的作用,可以确定相关设备是否已有,确定设备的各项属性。
该模块应该是所有功能中所需权限最低的。
模块伪代码取得窗体上设备的名称文本栏信息sName =取得的文本栏信息,打开数据库,打开设备基本信息表用sName变量与列名为设备名的列的项进行比较IF查到了与sName变量相同的项取得该项的各项属性,并在窗体上显示出来ELSE在窗体上显示“没用找相关设备” o数据库相关信息模块流程图如右打开数据库查询是否表设备信息基本表3、设备维修管理模块功能描述在整个系统中用来记录或查询设备的维修管理的,可以确定相关设备在哪维修,维修日期,维修费和责任人。
模块伪代码判断是记录还是查询IF为记录在窗体上显示各种维修信息的文本框取得各个文本框的内容打开数据库,打开维修记录表,写入维修记录表在程序窗体上显示已记录ELSE在窗体上显示请输入设备名,并显示一个文本框sName =文本框内容打开数据库,打开维修记录表用sName对维修记录表的设备名列的项进行比较IF找到相关项与sName相等,将该项的相关信息显示到程序的窗体上ELSE在程序窗体上显示“没有找到相关设备”数据库相关信息表维修记录表列名数据类型长度允许空列名设备型号varchar10not n ull设备名varchar20not n ull维修日期datetime8n ull维修厂家varchar30n ull维修费用float8n ull责任人varchar10n ull4、设备购买管理模块模块流程图如下:提示输入需要购买设备的信息否是否信息输入完全是F写入数据库中的申请表中提示已息写入图设备购买管理模块流程图功能描述在整个系统中用来购买设备的作用,可以对于急需但又缺少的设备需以“申请表”的形式送交上级领导请求批准购买。
模块伪代码在窗体上显示所需购买设备的相关信息文本栏 将窗体上的相关信息存入变量 打开数据库,打开数据库中的申请表 将各项变量写入申请表中新建的项的各个值中 在窗体中显示申请表已提交。
数据库相关信息表申请表5、设备报废管理模块功能描述在整个系统中对于已彻底损坏的设备作报废处理记录和查询 模块伪代码模块流程图如下:图设备报废管理模块流程图判断是查询还是记录报废设备IF为查询则在窗体上显示出报废信息文本框将文本框的内容存入各个变量打开数据库,打开报废记录表将相关变量写入报废记录表的新建项的各个项目Return报废记录已写入IF为查询则将窗体上的报废时间或者报废设备栏数据写入变量打开数据库,打开报废记录表IF为按设备名查询则在列名为设备名的列用变量查询IF有项与变量相同则返回该项的相关信息到程序窗体上显示ELSE返回“无此类设备报废”IF为按报废时间查询则在列名为报废日期的列用变量查询IF有项小于变量则返回该项的相关信息到程序上显示ELSE返回“无此类设备报废”数据库相关信息表报废记录表6、高级管理员管理模块模块流程图如下:图功能描述在整个系统用于上级领导管理申请表的查看和审查。
模块伪代码打开数据库打开数据库的申请表的表查看有没有项IF有新的项将项中的各项信息在程序的窗体上显示然后等用户判断是否批准购买并购买了IF用户点击批准(已购买)按钮则在申请表中删除该项并在窗体上显示设备名等设备相关信息文本框将窗体上的相关信息存入各个变量中打开数据库的设备基本信息表将各个变量写入设备基本信息表在窗体上显示“新设备已更新”退出高级管理员管理模块流程图ELSE关闭数据库的申请表在程序上显示“申请表暂压”ELSE在程序窗体上显示“没有新的申请表”数据库相关信息第四章编码1、用户登录界面:privatevoid jbInit() throws Exception { contentPane = (JPanel) (); ( new Log_password_actionAdapter( this )); ( xYLayout1 );( new Dimension(500, 400)); ( " 实验室设备管理系统 " ); ( new "SansSerif" , 0, 25));( " 欢迎进入实验室设备管理系统 " ); ( new "SansSerif" ( " 姓名 " ); ( "" );( new "SansSerif", 0, 20));, 0, 20));( " 密码 " ); ( " 提交 " ); }2、主界面:( new Color(210, 0, 0));设备查询 .setFont( new "SansSerif", 0, 20));设备查询 .setText( " 设备查询 " );设备信息 .setFont( new "SansSerif", 0, 20));设备信息 .setText( " 设备信息查询 " );设备信息 .addActionListener( newFrame9_ 设备信息 _ActionAdapter(this 设备申请 .setFont( new "SansSerif" , 0, 20));设备申请 .setText( " 设备申请 " );设备申请 .addActionListener( newFrame9_ 设备申请 _actionAdapter(this 申请登记 .setFont( new "SansSerif" , 0, 20));申请登记 .setText(" 申请登记 " );申请登记 .addActionListener( newFrame9_ 申请登记 _ActionAdapter( this ));));));( new Dimension(600, 500)); ( " 实验室管理系统 " );( new "SansSerif" , 0, 40)); privatevoid jbInit() throws Exception {contentPane ( xYLayout1= (JPanel)(); );( " 实验室管理系统" );( new "Dialog" , 0, 11));( new "SansSerif" , 0, 20)); ( false );( " 维修记录" );( new "SansSerif" , 0, 20)); ( " 维修记录登记" );( new Frame9_jMenuItem7_actionAdapter(( new "SansSerif" , 0, 20));( " 报废记录" );( new "SansSerif" , 0, 20));( " 设备报废登记" );( new Frame9_jMenuItem8_actionAdapter( 设备查询.addSeparator();( new "SansSerif" , 0, 20));( " 维修记录查询" );( new Frame9_jMenuItem1_actionAdapter(( new "SansSerif" , 0, 20));( " 设备报废查询" );( new Frame9_jMenuItem3_actionAdapter(( new "SansSerif" , 0, 40));( " 欢迎进入" );( new "SansSerif" , 0, 40));( " 实验室设备管理系统" );( " 退出系统" );( new "SansSerif" , 0, 20));( " 退出" );}3、设备查询:void Select() {try {String str1, str2;str1 = ();str2 = ();Connection con = null ;"jdbc:odbc:shebeiguanli" this )); this )); this )); this ));String url =String user =String password =III!( "" );con = (url,user,password);Statement stmt =(); PreparedStatement pstmt = ("use shebeiguanli select * from " );(2, str1); 设备基本信息where 设备型号=? and 设备名=?(1, str2);ResultSet res = ();String id;String name;String guige,danjia,day,changjia,peo,num;String outputarea= " 设备型号"购买日期" +" 生产厂家" +" ()){ 单价" +" ifdo{id = (1);name = (2);guige = (3);danjia = (4);day=(5);changjia = (6);peo=(7);num=(8);outputarea+= " " +id+ " "I!数量设备名称" + "+" 责任人+name+ " " +guige+I!I!I! I!" +day+ " " +changjia+ " " +peo+ " " +num+(outputarea);I! " +"\n"else } while ());{( " 不存在" );}} catch (ClassNotFoundException e) { } catch (SQLException edd) {() ;}4、维修记录:privatevoid contentPane jbInit() throws Exception { = (JPanel) ();( xYLayout1 );规格" +" +'\n' ;+danjia+ "( new Dimension(500,500));( " 实验室设备管理系统( new "SansSerif"" );, 0, 25));( " 实验室设备管理系统" );( new "SansSerif", 0, 30));( true );( " 维修记录" );( new "SansSerif", 0, 12));( " 设备型号" );( new "SansSerif", 0, 12));( " 设备名" );( new "SansSerif", 0, 12));( " 维修日期" );( new "SansSerif", 0, 12));( " 维修厂家" );( new "SansSerif", 0, 12));( " 维修费用" );( new "SansSerif", 0, 12));( " 责任人" );( new "SansSerif", 0, 25));( " 提交" );}5、设备报废记录:privatevoid jbInit() throws contentPane= (JPanel) ();( xYLayout1 );( new Dimension(500,500));( " 实验室设备管理系统" );( new "SansSerif" , 0, 25));( " 实验室设备管理系统" );( new "SansSerif" , 0, 30));( true );( " 报废记录" );( new "SansSerif" , 0, 12));( " 设备型号" );( new "SansSerif" , 0, 12));( " 设备名" );( new "SansSerif" , 0, 12));( " 报废日期" );( new "SansSerif" , 0, 12));Exception {( " 责任人" );( new "SansSerif" , 0, 25));( " 提交" );}6、设备申请:privatevoid jbInit() throws contentPaneException {= (JPanel) ();( xYLayout1 );( new Dimension(500,500));( " 实验室设备管理系统" );( new "SansSerif" , 0, 25));( " 实验室设备管理系统" );( new "SansSerif" , 0, 30));( true );( " 设备申请记录" );( new "SansSerif" , 0, 12));( " 设备名" );( new "SansSerif" , 0, 12));( " 规格" );( new "SansSerif" , 0, 12));( " 申请日期" );( new "SansSerif" , 0, 12));( " 数量" );( new "SansSerif" , 0, 12));( " 申请人" );( new "SansSerif" , 0, 25));( " 提交" );}总结本次系统开发我是完全把它当成一个项目来完成的,严格按照软件工程的软件开发思想,经过了问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试等几个阶段最后到系统实现。