实验设备管理系统设计——地大
- 格式:doc
- 大小:253.50 KB
- 文档页数:26
实验室设备管理系统详细设计一、系统需求:1.实验室设备信息管理:包括设备的基本信息、购买时间、购买价格、维修记录等。
2.设备借用管理:实验室人员可以通过系统进行设备借用申请和归还操作。
3.设备维修管理:记录设备维修记录,并能够查看设备当前的维修状态。
4.过期设备提醒:当设备使用寿命达到一定阈值时,系统能够自动提醒实验室管理人员进行设备维护或更换。
5.设备报废管理:实验室管理人员可以通过系统对设备进行报废处理。
6.数据统计分析:能够对设备的使用情况进行统计和分析,为实验室设备的科学管理提供数据支持。
二、数据库设计:1.设备表:包括设备编号、设备名称、设备型号、购买时间、购买价格、维修记录等字段。
2.借用记录表:包括设备借用编号、借用人员、借用时间、归还时间等字段。
3.维修记录表:包括设备编号、维修人员、维修时间、维修费用等字段。
4.报废记录表:包括设备编号、报废人员、报废时间等字段。
三、功能模块划分:1.设备信息管理模块:用于对实验室设备基本信息的增删改查操作。
2.设备借用管理模块:用于对设备借用申请、归还和借用记录的管理。
3.设备维修管理模块:用于对设备维修记录的管理和维修状态的查看。
4.设备报废管理模块:用于对设备报废处理的管理。
5.统计分析模块:用于对设备使用情况进行统计和分析,生成报表。
四、系统界面设计:1.登录界面:用户通过输入用户名和密码登录系统。
3.设备借用管理界面:显示设备借用列表,并提供借用申请、归还和查看借用记录的功能。
4.设备维修管理界面:显示维修记录列表,并提供录入维修记录和查看维修状态的功能。
5.设备报废管理界面:显示报废记录列表,并提供新增报废记录的功能。
6.统计分析界面:显示设备使用情况的统计图表和报表。
综上所述,实验室设备管理系统的详细设计包括系统需求分析、数据库设计、功能模块划分以及系统界面设计等方面。
通过合理的设计,该系统能够实现对实验室设备的全面管理和统计分析,提高设备利用率和管理效率,为实验室设备的科学管理提供强有力的支持。
实验室仪器设备管理系统设计概要:本文所介绍的实验室设备管理系统,突破了传统的设备管理方式,可在移动终端上对实验室设备进行管理,极大的方便了管理人员,也提高了管理效率,同时对仪器设备、低值耐用品、耗材进行全过程管理,并能快速统计,极大的推进了实验室设备管理的信息化建设,也有助于推进高校信息化建设的发展。
我们已经进入了云计算时代,我们的信息化建设,主要是数据中心和云端应用建设。
而有些单位、部门对信息化建设却不够重视,到如今还使用纸质材料, 笔头统计,手工计算等方式对设备进行管理,与时代脱节,改变这种现状是非常必要的。
一、现状随着宇波大学科学技术学院的快速发展,学院的实验室仪器设备越来越多,管理上越来越困难,同时,随着高校推进提高学生动手能力,实验室实行开放, 进出实验室的学生数量明显增加,仪器设备的使用时间和使用频率也相应增加,故障率和损坏率也越来越高,即使仪器设备正常使用,也存在消耗品和自身易耗件的损耗。
而我们学院设备管理部门现在使用的北化设备管理系统,却缺少对实验室仪器设备这方面的管理内容,我们只能用纸质材料、笔头统计、手工计算等方式对实验室仪器设备进行管理。
二、存在的一些问题(1)管理困难。
曲于设备的不断增加,仪器设备、易耗品、低值耐用品等变动的频繁,传统的纸质讣帐方式已经变的越来越困难,就算每次都认真的做好记录,如果真的要去查询某件设备使用、变更等情况时,就要翻阅大记录,耗费大量的时间、精力,而且结果还是一定全面、准确。
(2)统计困难。
对于仪器设备、低值品、耗材等变更、维修、报废、报失,要每条记录去查询、统讣,查询过程就比较困难,统计就是难上加难了。
领导不认可;实验室管理人员辛苦工作但效率太低,乂没有对应的统计图表,做了多少工作,领导很难看,也很难计算工作量,自然没法认可。
三、设计方案。
作品制作说明课题实验室设备管理系统系科电子工程系专业(方向)计算机应用技术(信息管理)班级微机085学号080203505姓名高玉侠完成日期2010-12-15指导教师闫鸿滨实验室设备管理系统作品简介本信息系统合理的借鉴先进的设备管理思想并结合学校实验室设备管理现状,通过对各系科设备管理情况的长期研究探索,以灵活、通用为主要设计思想,开发适合本校设备管理信息系统,实现了设备整个生命周期的计算机化管理,同时再与使用单位内部网络配合的基础上可以实现无纸化办公。
本系统将会提高办公效率和设备可靠性,减少工作人员的劳动强度,减少办公耗材,提高现代化管理水平。
企业面对市场竞争的巨大压力,要求企业创造新的利润源,这为企业如何配置有限资源,利用先进计算机技术不断开发出操作简便、界面友好、灵活、实用、安全,更具时效性的设备信息管理系统有着更高的要求。
引言部分:现在,科学技术的飞速发展把人类社会推向了一个崭新的时代——信息时代。
这已是无可争议的事实;信息对社会经济发展的巨大推动作用,使其与物质能源一起并列为现代社会的三大支柱,这已在全社会达到共识。
随着对信息作为一种资源来管理的需求日益加强,信息研究领域出现了一种新的管理思想和模式——信息管理。
计算机管理以其快捷高效的特点在很多领域已经取代了传统的手工管理方式,尤其是在繁复琐碎的物资设备管理中,计算机管理手段的这一优势更显得十分突出。
与传统管理方式相比较,设备管理系统能更加有效的进行信息管理。
设备管理系统应用数据库,对信息数据以数据库形式表示,更容易更新和管理。
传统的管理方式往往以表格的形式进行管理,一旦数据过于庞大,要对这些数据进行管理时,就要花费大量的时间,而且很容易出错。
由于现代信息化的普及化,因此现代信息化的设备管理模式很快取代了传统模式的管理方式。
第一章管理信息系统基础1.1开发平台开发工具: 2008数据库:Microsoft Access 2003支持的操作系统:Windows98/2000/XP/2003其它辅助软件:Microsoft Word等1.2系统开发背景设备管理系统是学校各系科实验室使用状况的信息管理系统,是连接学校各实验室设施的桥梁与纽带,起着核心作用。
课程设计报告实验室设备管理系统的设计与实现课程《数据库原理及应用》班级姓名学号指导教师时间:2012年5月21日至2012年5月25日指导教师对课程设计(论文)的评语(工作态度、任务完成情况、能力水平、设计说明书(论文)的撰写和图纸质量等):成绩指导教师签字年月日目录第一章开发背景........................................................................ 错误!未定义书签。
第二章功能描述........................................................................ 错误!未定义书签。
第三章业务流程分析................................................................ 错误!未定义书签。
第四章数据流程分析.. (7)4.1数据流程图 (7)4.2数据字典 (7)第五章概念模型设计 (9)第六章逻辑模型设计和优化 (11)第七章物理设计和实施 (12)第八章系统测试........................................................................ 错误!未定义书签。
第九章课程设计心得体会. (21)参考文献 (22)第一章开发背景现今实验室管理一般都以办公人员进行批次记录,其的繁索给具有强烈时间观念的办公人员带来了诸多不便,实验室设备管理缺少一种完善的设备管理软件,为了对设备基本情况管理方便,开发人员完成了全面的调查与分析,同时与目标用户进行了多次深入沟通,并在次基础上着手开发《实验室管理系统》软件。
通过课程设计,让学生能够全面了解数据库应用系统的整个开发过程,验证课堂教学中的理论,掌握数据库系统的基本概念,基本原理及应用技术,掌握SQL语言,真正实现实践检真理。
实验室设备管理系统的设计与实现实验室设备管理系统的设计主要包括系统的架构设计、功能模块设计、数据库设计。
实验室设备管理系统的架构设计应该基于B/S架构,采用多层结构模式,分为数据访问层、业务逻辑层、表示层。
其中,数据访问层主要负责与数据库进行交互,业务逻辑层负责处理系统的业务逻辑,表示层负责展示给用户。
实验室设备管理系统应该包括设备管理、库存管理、采购管理、维护管理、报表统计等模块。
每个模块应该具有相应的功能,例如设备管理模块应该包括设备信息管理、设备位置管理、设备借还管理、设备维修管理等。
数据库是实验室设备管理系统的核心,它应该包含以下信息:设备信息、人员信息、位置信息、库存信息、采购信息等。
数据库设计应该考虑到系统的扩展性、稳定性、安全性,合理设计表结构,建立索引,保证数据的一致性和完整性。
功能实现是实验室设备管理系统的关键环节,主要包括以下内容:实验室设备管理系统的开发应该采用Java语言和Spring框架,使用MyEclipse作为开发工具。
系统应该提供用户注册、登录功能,并能够根据用户的角色赋予相应的权限,实现权限管理。
设备管理模块应该能够添加、修改、删除设备信息,支持批量操作,可以根据关键字进行搜索,可以查看设备的详细信息,可以生成报表统计设备的利用率等。
库存管理模块应该能够实时更新库存信息,可以根据物品类型进行分类管理,可以设置库存预警,支持库存报表统计等。
采购管理模块应该能够根据采购需求生成采购订单,可以跟踪订单的执行情况,可以生成采购报表统计采购成本等。
维护管理模块应该能够记录设备的维护记录,可以设置维护计划,可以提醒用户进行预防性维护等。
报表统计模块应该能够根据用户的需求生成各种报表,如设备利用率报表、库存报表、采购报表等。
实验室设备管理系统在实现之后需要进行性能测试,以确保系统的稳定性和可用性。
性能测试应该从以下几个方面进行:通过模拟多用户并发访问系统,测试系统的响应时间和吞吐量,以评估系统的负载能力。
实验室设备管理系统实验在今天的实验中,我们首先通过系统进行了设备信息的录入,包括设备名称、型号、购买时间、保修期限等基本信息。
然后我们模拟了实验室中设备的借用和归还过程,通过系统可以轻松地记录设备的借用人员、借用时间以及归还时间。
接着,我们进行了设备维护记录的录入,包括设备的维护内容、维护时间、维护人员等信息。
同时,系统还可以生成设备的维护提醒,提醒实验室管理者对设备进行定期的维护和保养。
最后,我们还测试了系统的数据查询和统计功能,可以根据不同的条件查询设备的借用记录、维修记录等信息,并生成相关统计报表,方便实验室管理者对设备的使用情况进行分析和管理。
通过今天的实验,我们发现实验室设备管理系统具有很强的灵活性和可扩展性,可以根据实验室的具体需求进行定制,并能够帮助实验室管理者更好地管理和维护实验室设备。
希望在未来的实验中,我们可以进一步完善系统,并将其应用到实际的实验室管理中。
很好,让我们继续向实验室设备管理系统的实验深入进行。
在前面的实验中,我们已经了解了系统的录入、借还、维护记录的功能,接下来,我们将进一步测试系统的安全性和可靠性,以确保系统能够在实际应用中稳定运行。
首先,我们对系统的数据安全性进行了测试。
实验室设备管理系统中包含了大量的设备信息、借还记录和维护记录等敏感数据,因此数据的安全性至关重要。
我们模拟了系统中的数据备份和恢复操作,检查系统是否能够正确进行数据备份,并能够在需要时正确恢复数据。
通过测试,我们发现系统能够稳定地进行数据备份和恢复,保障了数据的安全性。
接着,我们测试了系统的用户权限管理功能。
实验室中常常有多个不同权限的用户,比如实验室管理员、普通员工等,他们对系统中的功能和数据访问权限是有所区别的。
我们通过模拟不同权限的用户登录系统,并测试他们在系统中所能进行的操作。
测试结果表明,系统对不同权限的用户进行了有效的权限管理,保障了系统的安全性。
此外,我们还对系统的稳定性进行了测试。
实验室仪器设备管理系统设计与实现引言实验室是科学研究和教学的重要场所,在实验室中经常使用各种仪器设备来进行实验和探索。
然而,随着实验室规模的扩大和仪器设备数量的增加,管理这些设备变得越来越困难。
为了提高实验室仪器设备的使用效率和管理水平,设计和实现一个实验室仪器设备管理系统是很有必要的。
系统需求分析功能需求1.仪器设备信息管理:对实验室中的仪器设备进行录入、修改、查询和删除操作,包括仪器设备的名称、型号、数量、购买日期、维护周期等信息。
2.借还管理:记录借出和归还的仪器设备信息,包括借出人、借出时间、预计归还时间等。
3.维护管理:提醒维护人员对仪器设备进行定期维护,记录维护的时间和内容。
4.报废管理:对报废的仪器设备进行处理,并记录处理的时间和方式。
5.统计分析:根据仪器设备的使用情况,进行数据统计和分析,如设备使用率、维护频率等。
非功能需求1.安全性:只有授权人员才能进行仪器设备信息的修改和删除操作,并对系统进行身份验证和权限控制。
2.可靠性:系统需要具备良好的稳定性和容错性,能够正常运行并处理大量的数据。
3.用户界面友好:系统界面简洁明了,操作简单易懂,方便用户进行操作。
系统设计架构设计本系统采用客户端-服务器架构,客户端通过web浏览器与服务器进行交互,服务器负责处理客户端的请求并返回相应的数据。
客户端和服务器之间通过HTTP协议进行通信。
数据库设计仪器设备表(devices)字段名数据类型说明id int 仪器设备IDname varchar(100) 仪器设备名称model varchar(100) 仪器设备型号quantity int 仪器设备数量purchase_date date 购买日期maintenance_cycle int 维护周期借还记录表(borrow_records)字段名数据类型说明id int 记录IDdevice_id int 仪器设备IDborrower varchar(100) 借出人borrow_date datetime 借出时间expect_return_date datetime 预计归还时间维护记录表(maintenance_records)字段名数据类型说明id int 记录IDdevice_id int 仪器设备IDmaintenance_date datetime 维护时间maintenance_content varchar(200) 维护内容报废记录表(scrap_records)字段名数据类型说明id int 记录IDdevice_id int 仪器设备IDscrap_date date 报废时间scrap_method varchar(100) 报废方式系统实现系统采用前后端分离的方式实现,后端使用Python编写基于Django框架的API接口,前端使用HTML、CSS和JavaScript编写页面。
实验设备管理系统设计系统需求:1.设备信息管理:记录设备的基本信息,包括设备名称、型号、生产厂家、购买日期、价格等信息。
2.设备借用管理:实验室成员可以通过系统进行设备的借用申请,包括借用的设备、借用时间等信息。
管理员可以审核借用申请并批准或拒绝。
3.设备归还管理:记录设备的归还情况,包括归还时间、归还状态等信息。
管理员可以验证设备的归还状态并更新设备的可用性。
4.设备维护管理:实验室成员可以通过系统报告设备的故障或需要维护的情况。
管理员可以记录维修情况并安排维修人员进行维护。
5.设备统计与分析:系统可以提供设备使用情况的统计报表,包括设备的借用次数、借用时长等信息。
管理员可以根据统计数据对设备的使用情况进行分析,以便于调整设备的配备和使用策略。
系统设计:1.数据库设计:设计一个设备信息表来存储设备的基本信息,包括设备名称、型号、生产厂家、购买日期、价格等数据。
同时设计一个设备借用表来记录设备的借用信息,包括借用设备、借用人、借用时间等。
还可以设计一个设备归还表和设备维护表来记录设备的归还和维护情况。
3.设备借用管理:实验室成员可以通过登录系统并填写借用申请来借用设备。
管理员可以查看借用申请并批准或拒绝。
一旦批准,系统会将该设备的可用状态更新为不可用,并生成借用记录。
4.设备归还管理:实验室成员归还设备时,可以通过系统进行归还操作。
管理员可以查看设备的归还状态并更新设备的可用性和归还时间。
如果设备有损坏或遗失,管理员可以记录相关信息。
5.设备维护管理:实验室成员可以通过系统报告设备的故障或需要维护的情况。
管理员可以记录维修情况并安排维修人员进行维护。
一旦设备维修完成,管理员可以将设备的可用状态更新为可用。
6.设备统计与分析:系统可以根据设备借用记录生成统计报表,包括设备的借用次数、借用时长等信息。
管理员可以根据统计数据对设备的使用情况进行分析,以便于调整设备的配备和使用策略。
总结:实验设备管理系统可以极大地提高实验室设备的利用率和管理效果,减少设备的损坏和漏用。
高校实验室设备管理系统的设计与开发摘要:高校实验室设备管理系统在高校实验室的设备管理和维护中起着重要作用。
本文提出了一个针对高校实验室设备管理的系统设计与开发方案。
该系统可以实现设备的登记、借用、归还和维修等功能,能够有效提高设备管理的效率和准确性,为高校实验室管理提供有力支持。
一、引言高校实验室设备是教学和科研的重要工具,设备管理对于确保实验室工作的正常运行和发挥设备的最大价值具有重要意义。
传统的纸质记录方式存在信息不及时、不便于查找和统计的缺点。
因此,设计和开发一个高校实验室设备管理系统是提高设备管理效率和准确性的必然选择。
二、需求分析1. 设备登记在系统中,管理员可以录入实验室的设备信息。
每个设备应具备唯一的编号、名称、型号、购置日期、购置价格等属性。
管理员可以根据需要对设备进行分类和分级,方便后续的查询和统计。
2. 设备借用实验室成员可以通过系统申请借用设备。
借用申请应包括借用人信息、借用时间段、借用理由等。
管理员可以审核借用申请,并授权借用人员使用设备。
借用设备的时间应有限制,过期未还的设备将自动进入逾期状态。
3. 设备归还借用人员应及时归还设备,并填写归还表单。
管理员在确认设备完好无损后,可以进行设备归还操作。
若设备有损坏或损失,应根据实际情况进行相应的处理。
4. 设备维修当设备出现故障需要维修时,借用人员可以通过系统提出维修申请。
管理员收到维修申请后,应尽快确定维修方案,并安排专业人员进行维修。
在设备维修期间,系统应记录设备的维修状态,并提醒维修人员及时完成维修工作。
5. 设备报废当设备达到使用寿命、无法继续使用或无法修复时,管理员可以进行设备报废操作。
报废的设备应进行登记,并进行相应的处理,如销毁或移交给有关单位。
三、系统设计与开发1. 系统架构系统采用前后端分离架构,前端使用Web技术进行开发,后端使用Java语言进行开发。
前端通过用户界面与用户交互,后端负责数据的处理和存储,实现系统的各项功能。
个人课程设计报告院系计算机与通信工程学院专业计算机(中加)学号20106126姓名角色 D日期2013/6/20个人课程设计报告一.项目概述1。
1编写目的因为现在各个高校内教学设备众多但自动管理水平相比过低,很多高校管理设备都采用在设备购进以后将设备的基本情况和相关信息登记存档。
存档以后,档案基本就没人记录与维护,至于以后设备的变迁或损坏都不会记录在设备档案中,即不能体现设备的即时状态.而有些即使有设备管理系统的单位,就算是能把设备的即时信息体现在设备档案上,但设备的缺陷处理及设备缺陷等功能没有实施,设备检修的备品备件情况和检修成本核算没有实现,整个学校教学设备管理信息化仍处于较低水平.将管理任务分成小块,落实到个人并能随时查询设备当前情况和历史情况,对设备的可靠性分析有直接作用,使管理人员从手工计算、统计工作中解脱出来。
同时基于实验室管理者对设备的的使用情况进行统计和更新提供轻松快捷的管理方式,利用计算机管理系统管理我校的实验设备势在必行,也方便广大用户可以随时随地的借用实验设备进行学习和研究。
该报告的读者对象为研发该软件者.1。
2任务每学年要对实验室设备使用情况进行统计、更新。
其中:(1)对于已彻底损坏的做报废处理,同时详细记录有关信息。
(2)对于由严重问题(故障)的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。
(3)对于急需修改但又缺少的设备,需以“申请表”的形式送交上级领导请求批准购买。
新设备购入后要立即进行设备登记(包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同时更新申请表的内容.(4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段等查询。
1。
3开发环境系统开发环境的选择对于系统的建立来说至关重要,它将决定着系统开发工作量的大小,系统的性能特点以及系统今后的维护工作难易等。
因此在开发系统之前,根据对系统所采用的技术、实现功能的评估,在选择开发环境时,主要考虑以下几个因素:扩展性,总成本,功能,是否容易开发与管理,另外开放性和互操作性也是需要考虑的一个重要方面,因为该系统是运行在Internet 上的,用户平台的差异决定了与其它系统的互操作性是不可避免的。
1. 设计课题内容实验设备管理系统设计实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等.主要功能:1、能够完成对设备地录入和修改.2、对设备进行分类统计.3、设备地破损耗费和遗损处理.4、设备地查询.2. 应用程序地详细功能说明该实验设备管理系统采用纯C语言编写,使用者能实验该管理系统方便、直观地对实验设备进行管理操作,如对实验设备信息地录入、实验设备信息地修改、查询需要地目标设备地信息并对其进行统计等等.程序分两大系统,一是管理系统,二是查询系统.在管理系统中1. 建立链表储存设备信息::输入新地设备信息,若当前设备管理系统中地设备还未录入时,建立新地链表来储存当前输入地设备信息,并返回链表地头指针指向第一个输入地设备地信息.2. 插入新地设备信息:输入新地设备信息,且当前设备管理系统中地链表非空,则将新地设备信息插入链表,并返回链表头指针.3. 修改设备信息:若对已有地设备地信息需要修改,则按设备编号进行查找,在成功找到该设备时,并选择需要修改地信息进行修改.4. 删除设备信息:若已有设备地信息错误或该设备不可用即已经报废,则要对该条信息进行删除处理.5. 对设备进行遗损处理:当设备将要报废或已报废时则删除该设备地相关信息,并通知.在查询系统中1. 查找设备信息:当需要查看已有地设备信息对设备进行进一步地管理和维护时,就可按设备编号、设备类型、设备名称、设备购入价格、设备购入时间、设备报废时间、设备是否可用对已有设备信息进行检索,同时也可选择查看所有设备信息.并且能在程序地根目录下地result.txt文件中查看信息.3. 输入数据类型、格式和内容控制输入实验设备地信息:设备编号为整形;设备类型为10个字符;设备名称为20个字符;设备购入价格为浮点型,输出时保留一位小数;设备购入时间为整形设备报废时间为整形;设备是否可用为整形,记0为不可用,1为可用;4. 主要模块地算法描述4.1 简单算法描述1.新地设备信息添加到链表2.删除错误和无用地设备信息3.查找所需相关类型信息地设备信息4.修改设备信息4.2 流程图显示建立带头节点地链表将新的设备信息插入链表删除节点操作的算法流程图5.结束语在课程设计中,我体会颇多,学到很多东西.我加强了对C地认识,复习了自己以前地知识,自己地逻辑思考能力也提高不少.从而对Microsoft Visual C++ 6.0开发环境又有了更深入地认识!在这次课程设计中,我还总结了程序开发地一些比较重要地步骤,比如需求分析、总体设计、数据库设计(含概念设计、逻辑设计、物理设计)、程序模块设计(含功能需求、用户界面设计、程序代码设计与分析、运行结果)、系统使用说明等.这次课程设计激发了我对编程地兴趣和热情,让我从一个只懂理论变成了能做一些小型程序地人,使我对编程更加热爱了.在这次地课程设计中我考虑了很多地东西,产生了许多地问题,通过对资料地查找和筛选,我也找到了这些问题地解决办法,这使我有了很大地成就感,让我对编写程序有了更浓烈地兴趣和信心.相信在以后地设计中我会提交出更加优秀地作品!6.课程设计源程序清单#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#include <windows.h>#define SIZE sizeof(struct ShiyanEquip)struct ShiyanEquip{int num;char type[10],name[20];double price;int btime;int otime;int able;struct ShiyanEquip * next;};//============================================================函数声明struct ShiyanEquip * NewList();struct ShiyanEquip * InsertNode( struct ShiyanEquip *head, struct ShiyanEquip *newin); void SearchNode( struct ShiyanEquip *head);void SearchNode_num( struct ShiyanEquip *head, int num);void SearchNode_type( struct ShiyanEquip *head, char type[]);void SearchNode_name( struct ShiyanEquip *head, char name[]);void SearchNode_price( struct ShiyanEquip *head, double price);void SearchNode_btime( struct ShiyanEquip *head, int btime);void SearchNode_otime( struct ShiyanEquip *head, int otime);void SearchNode_able( struct ShiyanEquip *head, int able);struct ShiyanEquip * Delete_num( struct ShiyanEquip *head, int num);void ChangeNode(struct ShiyanEquip *head,int num);void Dealwithpass( struct ShiyanEquip * head , int nowtime);struct ShiyanEquip * manage();void search(struct ShiyanEquip * head);static count=0;int main(void){struct ShiyanEquip * head=NULL;char chose;do{printf("********Wlecome to use my program ~********\n\n");printf("**********Here is the Menu **********\n");printf("*No.1:管理系统*\n");printf("*No.2:查询系统*\n");printf("*No.#:退出系统*\n");printf("*******************************************\n");scanf("%s",&chose);switch(chose){case '1':head=manage();break;case '2':search(head);break;case '#':system("cls");printf("********Thankyou for using my program ~********\n\n");exit(0);}}while (1);return 0;}//====================================================管理系统struct ShiyanEquip * manage(){char chose2;int num,nowtime;char type[10],name[20];double price;int btime;int otime;int able;struct ShiyanEquip * pcurr,* head;system("cls");do{system("cls");printf("********** 管理系统**********\n");printf("**No.1:建立新实验器材管理清单**\n");printf("**No.2:插入新地实验器材**\n");printf("**No.3:删除目标器材信息**\n");printf("**No.4:修改目标器材信息**\n");printf("**No.5:遗损处理**\n");printf("**No.#:返回上级菜单**\n");printf("********************************\n");scanf("%s",&chose2);switch(chose2){case '1':head=NewList();break;case '2':pcurr=(struct ShiyanEquip *)malloc(SIZE);printf("=输入实验器材地编号,类型,名称,价格,购入时间,报废时间,是否可用(0:报废;1:可用)=\n");scanf("%d%s%s%lf%d%d%d",&num,type,name,&price,&btime,&otime,&able);pcurr->num=num;strcpy(pcurr->type,type);strcpy(pcurr->name,name);pcurr->price=price;pcurr->btime=btime;pcurr->otime=otime;pcurr->able=able;head=InsertNode(head,pcurr);break;case '3':printf("=请输入要删除地实验器材地编号=:");scanf("%d",&num);head=Delete_num(head,num);break;case '4':printf("=请输入要修改地实验器材地编号=:");scanf("%d",&num);ChangeNode(head,num);break;case '5':printf("=请输入现在地日期=");scanf("%d",nowtime);Dealwithpass(head,nowtime);break;case '#':system("cls");return head;}}while ( 1);return head;}struct ShiyanEquip * NewList()//=====================================新建链表{int num;char type[10],name[20];double price;int btime;int otime;int able;struct ShiyanEquip * p,* head,* tail;head=tail=NULL;printf("录入实验器材地信息.....\n");printf("=输入实验器材地编号,类型,名称,价格,购入时间,报废时间,是否可用(0:报废;1:可用)=\n");scanf("%d%s%s%lf%d%d%d",&num,type,name,&price,&btime,&otime,&able);while ( num != 0){p=(struct ShiyanEquip *)malloc(SIZE);p->num=num;strcpy(p->type,type);strcpy(p->name,name);p->price=price;p->btime=btime;p->otime=otime;p->able=able;p->next = NULL;if (head == NULL)head = p;elsetail->next = p;tail = p;printf("=输入实验器材地编号,类型,名称,价格,购入时间,报废时间,是否可用(0:报废;1:可用)=\n");scanf("%d%s%s%lf%d%d%d",&num,type,name,&price,&btime,&otime,&able);}return head;}struct ShiyanEquip * InsertNode (struct ShiyanEquip * head,struct ShiyanEquip *newin) //插入节点{struct ShiyanEquip * pt1,* pt2;pt1=head;pt2=newin;if (head == NULL){head = pt2;head ->next = NULL;count++;}else{pt2 ->next = pt1 ->next;pt1 ->next = pt2;count++;}return head;}struct ShiyanEquip * Delete_num( struct ShiyanEquip * head,int num)//======删除节点{struct ShiyanEquip * pt1,* pt2;if ( head == NULL )return NULL;else{if ( head -> num == num){pt2 = head;head = head -> next;free(pt2);count--;return head;}else{pt1 = head;pt2 = head -> next;if (pt2 != NULL){if (pt2 -> num == num){pt1 -> next = pt2 -> next;free(pt2);count--;}else{pt1 = pt2;pt2 = pt1 -> next;}}}}return head;}void ChangeNode(struct ShiyanEquip *head,int num)//===================更改节点{char type[10],name[20];double price;int btime;int otime;int able;int flag=0,chose4;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");return;}for( pt = head; pt ; pt = pt -> next)if(pt->num == num){printf("====选择要修改地信息====\n");printf("=1.编号=\n");printf("=2.类型=\n");printf("=3.名称=\n");printf("=4.价格=\n");printf("=5.购入时间=\n");printf("=6.报废时间=\n");printf("=7.是否可用=\n");switch(chose4){case 1:printf("=请输入新地信息=");scanf("%d",&num);pt->num=num;break;case 2:printf("=请输入新地信息=");scanf("%s",&type);strcpy(pt->type,type);break;case 3:printf("=请输入新地信息=");scanf("%s",&name);strcpy(pt->name,name);break;case 4:printf("=请输入新地信息=");scanf("%lf",&price);pt->price=price;break;case 5:printf("=请输入新地信息=");scanf("%d",&btime);pt->btime=btime;break;case 6:printf("=请输入新地信息=");scanf("%d",&otime);pt->otime=otime;break;case 7:printf("=请输入新地信息=");scanf("%d",&able);pt->able=able;break;}}}//===========================================================查询系统void search(struct ShiyanEquip * head){int num;char type[10],name[20];double price;int btime;int otime;int able;char chose3;system("cls");do{system("cls");printf("********** 查询系统**********\n");printf("**No.1:按编号查找**\n");printf("**No.2:查找统一价格**\n");printf("**No.3:查找同一类型**\n");printf("**No.4:查找同一名称**\n");printf("**No.5:查找按购入日期**\n");printf("**No.6:查找按报废日期**\n");printf("**No.7:查找按是否可用**\n");printf("**No.8:显示全部器材信息**\n");printf("**No.#:返回上一级菜单**\n");printf("********************************\n");scanf("%s",&chose3);switch(chose3){case '1':printf("=请输入要查找地编号=");scanf("%d",&num);SearchNode_num(head,num);break;case '2':printf("=请输入想要查看地价格=");scanf("%lf",&price);SearchNode_price(head,price);break;case '3':printf("=请输入想要查找地类型=");scanf("%s",type);SearchNode_type(head,type);break;case '4':printf("=请输入想要查看地名称=");scanf("%s",name);SearchNode_name(head,name);break;case '5':printf("=请输入想要查看地购入时间=");scanf("%d",&btime);SearchNode_btime(head,btime);break;case '6':printf("=请输入想要查看地报废时间=");scanf("%d",&otime);SearchNode_otime(head,otime);break;case '7':printf("=请输入要查看是否可用地器材(0:报废;1:可用)=");scanf("%d",&able);SearchNode_able(head,able);break;case '8':SearchNode(head);break;case '#':system("cls");return;}}while ( 1);}void SearchNode_num( struct ShiyanEquip *head, int num)//按编号查找{FILE *fp;if (( fp = fopen("result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int flag=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next)if(pt->num == num){flag=1;printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}printf("=可以在文件result.txt中查看更多=\n");}if ( flag == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}void SearchNode_type( struct ShiyanEquip *head, char type[])//按类型查找{FILE *fp;if (( fp = fopen("result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int countS=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next)if (strcmp(pt->type,type) == 0){countS++;printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}}if ( countS == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}else{printf("=共查找到%d条信息=\n",countS);printf("=可以在文件result.txt中查看更多=\n");fprintf(fp,"=共查找到%d条信息=\n",countS);for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}void SearchNode_name( struct ShiyanEquip *head, char name[])//按名称查找{FILE *fp;if (( fp = fopen("result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int countS=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next)if (strcmp(pt -> name,name) == 0){countS++;printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}}if ( countS == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}else{printf("=共查找到%d条信息=\n",countS);printf("=可以在文件result.txt中查看更多=\n");fprintf(fp,"=共查找到%d条信息=\n",countS);for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}void SearchNode_price( struct ShiyanEquip *head, double price)//按价格查找{FILE *fp;if (( fp = fopen("result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int countS=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next)if(pt -> price == price){countS++;printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}}if ( countS == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}else{printf("=共查找到%d条信息=\n",countS);printf("=可以在文件result.txt中查看更多=\n");fprintf(fp,"=共查找到%d条信息=\n",countS);for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}void SearchNode_btime( struct ShiyanEquip *head, int btime)//按购入时间查找{FILE *fp;if (( fp = fopen("result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int countS=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next)if(pt -> btime == btime){countS++;printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}}if ( countS == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}else{printf("=共查找到%d条信息=\n",countS);printf("=可以在文件result.txt中查看更多=\n");fprintf(fp,"=共查找到%d条信息=\n",countS);for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}void SearchNode_able( struct ShiyanEquip *head, int able)//按是否可用查找{FILE *fp;if (( fp = fopen("result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int countS=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next)if(pt -> able == able){countS++;printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}}if ( countS == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}else{printf("=共查找到%d条信息=\n",countS);fprintf(fp,"=共查找到%d条信息=\n",countS);for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}void SearchNode_otime( struct ShiyanEquip *head, int otime)//按报废时间查找{FILE *fp;if (( fp = fopen("result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int countS=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next)if(pt -> otime == otime){countS++;printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}}if ( countS == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}else{printf("=共查找到%d条信息=\n",countS);printf("=可以在文件result.txt中查看更多=\n");fprintf(fp,"=共查找到%d条信息=\n",countS);for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}void SearchNode( struct ShiyanEquip *head)//====================查看所有设备信息{FILE *fp;if (( fp = fopen("all_result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int countS=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next){printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}}if ( countS == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}else{printf("=共查找到%d条信息=\n",countS);printf("=可以在文件all_result.txt中查看更多=\n");fprintf(fp,"=共查找到%d条信息=\n",countS);for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}//====================================================================void Dealwithpass( struct ShiyanEquip * head , int nowtime){struct ShiyanEquip *pt;for ( pt = head; pt ; pt = pt -> next)if ((pt->otime) < nowtime) {Delete_num(head,pt -> num);};}。
大学生实验室设备管理系统设计与实现论文首先,论文对实验室设备管理的现状进行了分析,发现存在设备借用不畅、设备维护不及时、设备报废不规范等问题,为了解决这些问题,设计了一套实验室设备管理系统。
系统的主要功能包括设备借用、设备归还、设备维护和设备报废等操作,同时还具备设备管理、用户管理、权限管理、数据统计和系统设置等功能。
其次,论文详细介绍了系统的需求分析,包括功能需求和非功能需求,对系统的各项功能进行了具体描述。
然后,论文对系统的设计进行了详细阐述,包括系统的架构设计、数据库设计和界面设计,保证系统具有高效、稳定和用户友好的特性。
然后,论文对系统的实现进行了详细介绍,系统采用了Java语言、Spring框架和MySQL数据库进行开发,保证系统具有良好的性能和可维护性。
最后,论文对系统进行了测试,包括功能测试、性能测试和安全测试等,保障系统的稳定运行和用户数据的安全性。
综上所述,本文设计的实验室设备管理系统能够有效解决大学生实验室设备管理存在的问题,系统具有较高的实用价值和推广价值,有利于提高实验室设备的利用率和管理效率,对于其他机构和企业也具有一定的借鉴意义。
设计和实施一个高效的实验室设备管理系统对于大学实验室来说至关重要。
这样的系统能够帮助实验室管理人员更好地管理设备的借用、归还和维护,从而提高实验室设备的使用效率和延长设备寿命。
本文所设计的实验室设备管理系统,基于现有的技术和经验,有效地解决了实验室设备管理面临的诸多问题,具有很大的应用和推广前景。
首先,本系统的核心功能是设备借用和归还。
在传统的实验室设备管理方式下,借用和归还程序通常繁琐且易出错。
通过系统化的借用和归还流程,实验室管理人员和学生可以在系统中准确地记录设备借用和归还的时间、地点和具体使用情况。
这不仅减少了管理人员的工作量,也提高了数据的准确性和可追溯性。
同时,系统也能提醒用户设备借用和归还的截止日期,使得借用和归还过程更加规范和便捷。
实验室设备管理系统的设计与实现一、需求分析1.系统用户:实验室管理员、实验室员工、设备管理员和系统管理员。
2.功能需求:-实验室设备信息的录入和管理,包括设备基本信息、设备状态、设备维护记录等。
-设备借用和归还管理,包括借用申请、审批和记录。
-设备维修管理,包括维修申请、维修人员指派、维修记录和维修完成通知。
-设备报废管理,包括报废申请、审批和记录。
-设备库存管理,包括设备入库和出库记录、库存盘点等。
-统计和报表功能,包括设备使用情况统计、维修次数统计等。
二、系统设计1.数据库设计:-设备表:包括设备编号、设备名称、设备型号、购买日期、购买价格、设备状态等字段。
-借用记录表:包括设备编号、借用人员、借用日期、预计归还日期等字段。
-维修记录表:包括设备编号、维修人员、维修开始日期、维修结束日期、维修费用等字段。
-报废记录表:包括设备编号、报废原因、报废日期等字段。
2.系统架构设计:- 前端:使用HTML、CSS和JavaScript实现用户界面,并与后端进行数据交互。
- 后端:使用Java或Python等编程语言实现系统的业务逻辑,包括数据处理、权限管理和业务流程控制等。
- 数据库:使用MySQL或Oracle等关系型数据库存储系统数据。
三、系统实现1.前端实现:-设计用户界面:根据需求分析的功能,设计并实现前端界面。
- 数据交互:使用Ajax等前端技术与后端进行数据交互,并实现数据的增删改查操作。
2.后端实现:-业务逻辑实现:根据需求分析的功能,实现相应的业务逻辑,包括设备管理、借用管理、维修管理、报废管理等。
-权限管理:根据用户类型和角色,实现用户权限的管理和控制。
-数据库操作:使用数据库连接池等技术与数据库进行数据交互,包括数据的查询、插入、更新和删除操作。
3.数据库实现:-数据库建表:根据数据库设计的表结构,使用SQL语句在数据库中创建相应的表。
-数据库连接和操作:使用数据库连接池等技术与数据库进行连接和操作,包括数据的查询、插入、更新和删除操作。
实验要求:实验设备信息包括:设备编号,设备种类(如:微机打印机扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
试设计一实验设备信息管理系统,使之能提供以下功能:(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的查询[提示](1)需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备编号设备种类设备购入日期正常设备(未报废的)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择。
(2)总体设计整个系统可设计为实验设备信息输入模块实验设备信息添加模块实验设备信息修改模块实验设备分类统计模块和实验设备查询模块。
(3)建立实验设备信息结构体,结构体成员包括设备编号设备种类设备名称设备价格设备购入日期是否报废报废日期。
Microsoft Visual C++ 6.0程序如下:#include "stdio.h"#include "stdlib.h"#include "string.h"struct shebei{char ID[10];char name[15];char kind[15];char over[15];char yesno[10];char time[10];char price[10];};typedef struct node{struct shebei data;struct node *next; //建立一个链表。
}Node;void Add(Node *equip) //添加记录{Node *p,*r,*s;char id[10]; //先用于输入ID,也用于判断是否跳出循环r=equip;s=equip->next; //使s为第一个有用的结点while(r->next!=NULL) //这个循环的作用是使r为最后一个有用的结点r=r->next; //将指针置于最末尾while(1){printf(">>>>>>>>>>提示:输入0则返回主菜单!\n");printf("\n请你输入设备ID号:");scanf("%s",id);if(strcmp(id,"0")==0) break;p=(Node *)malloc(sizeof(Node)); //申请空间strcpy(p->data.ID,id);printf("\n请输入设备名称:");scanf("%s",p->);printf("\n请输入设备种类:");scanf("%s",p->data.kind);printf("\n请输入报废日期:");scanf("%s",&p->data.over);printf("\n请输入设备是否报废:");scanf("%s",&p->data.yesno);printf("\n请输入设备购买时间:");scanf("%s",&p->data.time);printf("\n请输入设备价格:");scanf("%s",&p->data.price);printf(">>>>>>>>>>提示:已经完成一条记录的添加。
地质学实验示范中心仪器设备管理制度
1.实验室根据工作需要向系上申报仪器设备购置计划,并提交可行性报告,系上经过论证,同意后,送交学校设备处审批办理。
2.新到仪器设备由有关专业人员验收,严格按说明书安装仪器,认真调试。
验收时间从仪器开箱之日起,一般不能超过一星期。
验收合格后,在系仪器室登帐、建卡。
使用人员在帐、卡上签名;验收不合格,写出书面报告,交学校设备处处理。
3.各实验室要有专人管理本实验室仪器设备帐。
人员更换时,帐、物、卡要详细核对,若无问题,在仪器室办理交接手续。
4.各实验室的专业技术人员负责本实验室仪器设备的保养维修,并作维修保养记录。
自己解决不了的故障,应及时向实验室主任报告,不盲目修理。
妥善保管仪器设备的有关技术资料。
5.不准用实验室的仪器设备干私活。
在满足本系教学和科研任务的条件下,提倡坚外开展有偿服务。
所得收入按学校和系上有关规定处理。
6.科研经费所置仪器设备要遵守学校和系上有关的仪器设备管理制度和使用办法,仪器设备在仪器室登帐建卡后,
由该课题负责人或其指定的专人管理。
7.需要报废、淘汰的仪器设备,应及时办理有关手续,不能私自处理。
C语言课程设计院系:工程学院姓名:学号:20081001418班号:052081指导教师:日期:2010年8月-9月目录一.题目要求 (1)二.需求分析 (1)三.总体设计 (1)四.详细设计 (1)五.完整程序 (12)六.上机操作 (21)七.结束语 (24)一.题目要求实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期等。
试设计一实验设备信息管理系统,使之能提供以下功能: (1) 能够完成对设备的录入和修改 (2) 对设备进行分类统计 (3) 设备的查询二.需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的插叙需要提供查找操作,设备的查询可根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询;另外还要提供键盘式选择菜单以实现功能选择。
三.总体设计根据上面的需求分析,可以将这个系统的设计分为以下模块四.详细设计1.主函数[流程图][程序]main() /*********************主函数***********************************/ {int n ,w ,t ;for(t=0;t<1;t++) 1{do{puts("\t\t*******MENU*******\n\n");puts("\t\t 1.Enter new data");puts("\t\t 2.Addition data");puts("\t\t 3.Modify data");puts("\t\t 4.Statist ");puts("\t\t 5.Search");puts("\t\t 6.Exit");puts("\n\n\t\t*****************\n");printf("What do you want to do(1-6):");scanf("%d",&n);if(n<1||n>6) /*对选择的数字作出判断*/{ w=1;getchar();}else w=0;}while(w==1);switch(n){case 1:t=enter();break; /*输入模块*/case 2:t=enter(); break; /*追加模块*/case 3:t=modifty();break; /*修改模块*/case 4:t=total();break; /*统计模块*/case 5:t=search();break; /*搜索模块*/case 6:exit(0); /*退出*/}}2.各功能模块设计(1)输入模块[流程图][程序]/*********************输入模块*****************************/ 2int enter() /*输入模块*/{FILE *fp;EQ newequ;int i,j;int c;printf("**************************************\n");printf("Add new equiment\n");printf("**************************************\n");printf("How many equiments do you want to add?\n");scanf("%d",&i); /*输入要输入的设备个数*/for(j=0;j<i;j++){printf("------------------\n");printf("Input equipcode\n");scanf("%s",newequ.equipCode);printf("Input equiptype\n");scanf("%s",newequ.equipType);printf("Input equipname\n");scanf("%s",newequ.equipName);printf("Input equipPrice\n");scanf("%f",&newequ.equipPrice);printf("Input buyYear\n");scanf("%d",&newequ.buyYear);printf("Input buyMonth\n");scanf("%d",&newequ.buyMonth);printf("Input buyDay\n");scanf("%d",&newequ.buyDay);printf("Input scrap\n");scanf("%d",&newequ.scrap);printf("Input scrapYear\n");scanf("%d",&newequ.scrapYear);printf("Input scrapMonth\n");scanf("%d",&newequ.scrapMonth);printf("Input scrapDay\n");scanf("%d",&newequ.scrapDay);if((fp=fopen("test.txt","w"))==NULL) /*打开文件,输入保存*/{printf("Can not open file!\n");} 3fprintf(fp,"%s %s %s %f %d %d %d %d %d %d %d",newequ.equipCode,newequ.equipType,new equ.equipName,newequ.equipPrice,newequ.buyYear,newequ.buyMonth,newequ.buyDay,newequ. scrap,newequ.scrapYear,newequ.scrapMonth,newequ.scrapDay);fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0); /*任务结束选择是返回主菜单还是跳出*/}}(2)追加模块[流程图][程序]/*********************追加模块*****************************/int enter() /*追加模块*/{FILE *fp;EQ newequ;int i,j;int c;printf("**************************************\n");printf("Add new equiment\n");printf("**************************************\n");printf("How many equiments do you want to add?\n");scanf("%d",&i); /*输入要追加的设备个数*/for(j=0;j<i;j++) 4 {printf("------------------\n");printf("Input equipcode\n");scanf("%s",newequ.equipCode);printf("Input equiptype\n");scanf("%s",newequ.equipType);printf("Input equipname\n");scanf("%s",newequ.equipName);printf("Input equipPrice\n");scanf("%f",&newequ.equipPrice);printf("Input buyYear\n");scanf("%d",&newequ.buyYear);printf("Input buyMonth\n");scanf("%d",&newequ.buyMonth);printf("Input buyDay\n");scanf("%d",&newequ.buyDay);printf("Input scrap\n");scanf("%d",&newequ.scrap);printf("Input scrapYear\n");scanf("%d",&newequ.scrapYear);printf("Input scrapMonth\n");scanf("%d",&newequ.scrapMonth);printf("Input scrapDay\n");scanf("%d",&newequ.scrapDay);if((fp=fopen("test.txt","w"))==NULL) /*打开文件,输入保存*/{printf("Can not open file!\n");}fprintf(fp,"%s %s %s %f %d %d %d %d %d %d %d",newequ.equipCode,newequ.equipType,new equ.equipName,newequ.equipPrice,newequ.buyYear,newequ.buyMonth,newequ.buyDay,newequ. scrap,newequ.scrapYear,newequ.scrapMonth,newequ.scrapDay);fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c); 5 if(c==1)return(-1);if(c==2)return(0); /*任务结束选择是返回主菜单还是跳出*/}}(3)修改模块[需求分析]此模块可以根据客户需要对以记录在文件中的信息进行修改[流程图][程序]/*******************************修改模块*********************/int modifty() /*修改模块*/{EQ equ[50];char code[10];int i,j,c;FILE *fp;printf("*************************************\n");printf("Modifty for the equiment\n");printf("*************************************\n");printf("Please input the equipcode for modiftying\n");scanf("%s",code); /*输入要修改的设备编号*/printf("------------------------------------\n");if((fp=fopen("test.txt","r"))==NULL){ 6 printf("\nCan not open test!\n");}for(i=0;!feof(fp);i++){fscanf(fp,"%s %s %s %f %d %d %d %d %d %d %d",equ[i].equipCode,equ[i].equipType,equ[i].eq uipName,&equ[i].equipPrice,&equ[i].buyYear,&equ[i].buyMonth,&equ[i].buyDay,&equ[i].scrap, &equ[i].scrapYear,&equ[i].scrapMonth,&equ[i].scrapDay);if(strcmp(equ[i].equipCode,code)==0){printf("------------------\n");printf("Input new equipcode\n");scanf("%s",equ[i].equipCode);printf("Input new equiptype\n");scanf("%s",equ[i].equipType);printf("Input new equipname\n");scanf("%s",equ[i].equipName);printf("Input equipPrice\n");scanf("%f",&equ[i].equipPrice);printf("Input new buyYear\n");scanf("%d",&equ[i].buyYear);printf("Input new buyMonth\n");scanf("%d",&equ[i].buyMonth);printf("Input new buyDay\n");scanf("%d",&equ[i].buyDay);printf("Input new scrap\n");scanf("%d",&equ[i].scrap);printf("Input new scrapYear\n");scanf("%d",&equ[i].scrapYear);printf("Input new scrapMonth\n");scanf("%d",&equ[i].scrapMonth);printf("Input new scrapDay\n");scanf("%d",&equ[i].scrapDay);}} /*将修改后的信息写如文件中*/fclose(fp);j=i;if((fp=fopen("test.txt","w"))==NULL){printf("\nCan not open test!\n");} 7 for(i=0;i<j;i++){printf("\nwrite!\n");fprintf(fp,"%s %s %s %f %d %d %d %d %d %d %d",equ[i].equipCode,equ[i].equipType,equ[i].e quipName,equ[i].equipPrice,equ[i].buyYear,equ[i].buyMonth,equ[i].buyDay,equ[i].scrap,equ[i].sc rapYear,equ[i].scrapMonth,equ[i].scrapDay);}fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0);}(4)统计模块[需求分析]将已经输入的设备信息进行统计,并显示设备总数、价格总额等信息[[程序]int total(){int c;float sum=0;int count=0;float aver=0;char type[20];EQ equ;int i;FILE *fp;if((fp=fopen("test.txt","r"))==NULL){printf("\nWrong\n");} 8printf("please input equipType:\n");scanf("%s",type);for(i=0;!feof(fp);i++){fscanf(fp,"%s %s %s %f %d %d %d %d %d %d %d",equ.equipCode,equ.equipType,equ.equipName,&equ.equipPrice, &equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ.scrap,&equ.scrapYear,&equ.scra pMonth,&equ.scrapDay);printf("\nOK!\n");printf("%s,%s,%s,%f,%d,%d,%d, %d,%d,%d,%d\n",equ.equipCode,equ.equipType,equ.equipName,equ.equipPrice,equ. buyYear,equ.buyMonth,equ.buyDay,equ.scrap,equ.scrapYear,equ.scrapMonth,equ.scr apDay);if(strcmp(equ.equipType,type)== 0){count++;sum+=equ.equipPrice;aver=sum/count;}}fclose(fp);printf("----------Statist--Result-----------");printf("\n\nthe number of this type is:%d",count);printf("\n\nthe total sum of price is:%f",sum);printf("\n\nthe aver of total price is:%f",aver);printf("\nPress any key to exit......");getch();printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0);}(5)搜索模块9 [需求分析]该模块的功能是查找用户需要的对应记录,可以分别根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询。