有代码 信管一班 蓝俊杰 单位仪器设备基本信息管理软件设计
- 格式:doc
- 大小:409.50 KB
- 文档页数:56
任何一个社会组织和企业公司在发展过程中都会产生大量的数据,这些数据的组织存储、分析统计有利于提高企业的发展,有利于提高企业的效率。
这些数据的组织和存储就是数据模型,就是数据库应用系统开发的任务。
数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理模式,并据此建立数据库及其应用环境,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
随着现代企业规模的不断扩大,仪器仪表数量也相应的增加,有关仪器仪表的各种信息量也成倍增加,设计一个合理的仪器仪表管理系统已迫不及待,为此本课程设计设计了一个仪器仪表管理系统以供大型企业使用,但只设计了部分主要功能,详细细节还需完善。
第1章.概述 (3)1.1.项目背景 (3)1.2.编写目的 (3)1.3.软件设计 (3)1.4.开发环境 (4)第2章.需求分析 (5)1.1.系统目标设计 (5)1.2.本系统的开发设计思想 (5)1.3.数据流图 (5)1.4.数据字典 (6)第3章.概念结构设计 (12)第4章.逻辑结构设计 (15)第5章.软件功能设计 (18)第6章.界面设计 (19)第7章.小结 (21)第8章.参考文献 (22)第1章、概述1.1、项目背景:随着现代企业规模的不断扩大,仪器仪表数量也相应的增加,有关仪器仪表的各种信息量也成倍增加,面对着庞大的信息量,在大型企业里,传统的人工方式管理会导致仪器仪表管理上的混乱,人力与物力过多浪费,仪器仪表管理费用的增加,从而使企业的负担过重,影响整个企业的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的仪器仪表管理系统,对仪器仪表进行集中统一的管理。
另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。
提高仪器仪表管理工作效率,做到信息的规范管理,科学统计和快速查询,让仪器仪表更好的为企业单位人员所使用。
实验室设备管理系统软件设计规格说明书10级计算机科学系计算机科学与技术(网络工程)组长:小组成员:软件设计规格说明书1.引言1.1编写目的软件设计的任务是将软件需求变换成为软件的具体设计方案。
概要设计根据软件需求导出软件的体系结构;详细设计给出软件模块的内部过程描述。
该文档是设计结果的详细描述,也是程序员编写程序的功能依据。
1.2项目背景开发软件名称:实验室设备管理系统。
项目开发者:闽江学院计算机科学系“实验室设备管理系统”开发小组:用户单位:闽江学院1.3 定义实验室设备管理系统对于现代实验室而言,是能否发挥其教学科研的作用的至关重要技术平台。
对于用户和实验室管理员来说,是能否方便快速获取信息的关键。
所以,实验室设备管理系统应该能够为用户提供充足的信息和快捷方便的操作手段。
1.4 参考资料⏹钱乐秋等,《软件工程》,青还大学出版社;⏹张害藩,《软件工程导论》(第四版),清华大学出版社;⏹王珊等,《数据库原理及设计》,清华大学出版社;赵池龙等,《软件工程实践教程》,电子工业出版社。
2.需求概述(1)所有工作由专门人员负责完成。
(2)每件设备在做入库登记时均由系统按类别加自动顺序号编号,形成设备号;设备报废时要及时修改相应的设备记录,且有领导认可。
(3)本系统的数据存储至少包括:设备记录、修理记录、报废记录、申请购买记录。
(4)本系统的输入项至少包括:新设备信息、修理信息、申请购买信息、具体查询统计要求。
(5)本系统的输出项至少包括:设备购买申请表、修理/报废设备资金统计表。
2.1目标本系统主要是针对学校实验室的设备进行管理,目的是使设备日常的管理更加方便以及统计设备使用、维修和报废的各种情况,还有就是查询和生成报表的功能。
通过详细的用户调查。
在现行的业务处理流程和数据流图的基础上,就可以确定目标系统提出完整、准确、清晰、具体的要求。
在经过多方了解和调查后基本清楚了设备信息管理的功能需求。
2.2用户的特点本软件的最终用户是面向管理员(实验室设备管理员和其它管理人员),他们只需具备一定的计算机应用基础,可以比较熟练操作计算机。
1.问题描述。
本次数据结构设计要求完成的任务是实现购买员购买到设备仪器,借用人借用设备仪器并且归还,当仪器出现问题需要报废处理时进行报废这一系列管理系统。
2.系统目标和基本原则2.1 仪器设备数据库设计简介目前,各个实验室都对仪器设备管理都实行了信息化管理,仪器设备管理中主要涉及到的任务有3个方面:入库,报废,借还。
本课程设计将设计一个实验室的仪器设备管理系统,通过此课程设计将初步了解到如何设计一个完整的管理信息系统.在设备仪器管理中涉及要求大致如下:实验室对设备仪器进行入库登记和维护,当报废时应办报废手续。
借出时,由借用人填写借条,办理借用手续如前所述,当前实验室,当归还时应归还借条并办归还手续1.入库采购员到生产厂家购入指定数量规格型号的仪器设备,放入仓库,并由管理员管理以及对仪器设备进行相应的入库登记。
记录下入库的时间,采购人,经费来源仪器设备的数量等等。
2.报废当设备仪器由于人为损坏或者使用期限已到而不能继续使用,则要做相应的报废处理,并做报废登记手续,记录下报废的仪器设备的名称,规格,型号,数量,报废原因和报废日期等等。
3.借用当有关单位或者个人要借用该实验室的仪器设备时,需要进行相应的借用登记。
并记录下借用人或者单位,借用的仪器的规格型号数量,借用的日期,归还日期以及批准人等。
2.2 数据需求根据系统的需求,首先将要记录的信息分类,要记录的信息如:入库单:(代码、院内编号、名称、规格、型号、单价、数量、金额、生产厂、购入单位、采购员、管理员、入库日期、经费来源、批准人)报废单:(代码、院内编号、名称、规格、型号、单价、数量、报废原因、批准人、管理员、报废日期)借条:(代码、院内编号、名称、规格、型号、单价、数量、借用日期、拟还时间、借用人、批准人、管理员、设备状况)2.3 事务需求经过实际考察、咨询和分析,高等院校图书管理系统主要应该具有以下功能模块:(1)入库信息部分要求如下1.根据入库单可以得出以下信息,可以知道采购员的信息采购的仪器设备的信息(包括名称、规格、型号、单价、数量,金额等);采购的信息(采购的时间等)以及入库时的信息等等。
课程设计课程名称程序设计课程设计班级与班级代码2011级信息管理1班专业信息管理指导教师:胡玉平学号:姓名:蓝俊杰提交日期: 2012 年 6 月 23 日广东商学院教务处制姓名蓝俊杰课程设计成绩评语:优指导教师(签名)年月日说明:指导教师评分后,课程设计交院(系)办公室保存。
课程设计报告正文的内容及排版要求标题:单位仪器设备基本信息管理软件设计1 系统功能要求:(一级标题:黑体、四号)内容:单位仪器设备基本信息管理软件设计:采用结构体数组或文件形式存储每种设备的信息,每个仪器设备应包含如下几方面的信息:设备编号、设备名称、设备单价、购进年代、生产厂家、该设备数量、可用性。
软件由主函数(含欢迎界面)+下列5个功能模块组成:(1)购进功能(被购进设备数量增x);(2)显示已有设备;(3)报废功能(对“可用性”信息为“否”的设备报废,被报废设备数减x);(3)查找功能(需指定设备号或设备名);(5)统计功能(统计每种设备可用数、不可用数);(6)退出程序的运行。
2 系统总体设计思想(1)开发与设计的总体思想内容示例:单位仪器设备基本信息管理软件算法说明:STEP1 预处理,定义结构体STEP2 进入欢迎界面STEP3 选择某一种功能STEP4 根据提示输入一个数字STEP5 对于输入的数字编辑关于购进、报废、查找、统计功能的函数STEP6 如果输入的字母表示退出,退出系统(2)系体模块结构图3 系统详细设计思想(1)函数的描述内容包括:分模块(函数)简述其功能;函数中使用的各变量的类型及作用等(可参考材P155的写法)。
1.显示所有设备信息函数函数原型:void show (void)功能:显示内存里的记录信息参数:void返回值:void工作方式:从头部开始逐个显示记录内容。
要求:报告是否有记录及记录条数和内容。
2.购进设备函数函数原型:void addfacility (void)功能:增加记录参数:void返回值:void工作方式:从尾部开始逐个追加记录。
基于UML的仪器设备管理信息系统的设计作者:陈长全来源:《电子技术与软件工程》2015年第04期本文结合海南经贸职业技术学院数字化校园基础平台建设工程的实际需要,依据软件工程理论和方法,结合统一建模语言(UML)软件开发模型,基于UML设计了一套仪器设备管理信息系统,旨在降低设备管理人员工作量,提高工作效率,更好地整合各类设备资源,充分发挥资源效益。
【关键词】仪器设备管理建模 UML 信息系统1 开发背景近年来,我国高等教育事业发展迅速,各级政府投入教育的财政支出逐年增加,高等院校的固定资产规模不断扩大,其种类、数量成倍翻番;其构成日趋复杂,管理难度不断加大。
在硬件投入、办学条件改善上,许多高校不遗余力,想方设法,但与之形成鲜明对比的是高校对仪器设备的管理则重视不够,管理投入经费很少。
有的院校虽然制订了相应的管理办法和规章制度,但没有先进的计算机管理系统辅助,久而久之,管理手续和制度大打折扣,很难得到严格执行,导致设备入库、借还、调剂、出库、报废等环节混乱不堪,无法有效发挥设备的使用效能;有的甚至家底不清,重复建设,造成资源严重浪费。
2011年,海南经贸职业技术学院先后申报成功海南省和国家骨干院校建设单位,经过近三年的建设,学院固定资产,特别是教学、科研仪器设备投资大幅增长。
仪器设备投入极大地改善了办学条件,增强了整体实力,但同时也增大了管理难度。
规模庞大的设备资产如果还是采用传统的管理方式和方法,将使管理人员不堪重负,疲于应付。
目前,该院仪器设备管理平台还是基于单机版的管理系统,存在诸多不足,如设备资源闲置、利用率不高;资源共享不够;信息更新不及时;无法提供科学的决策参考等。
在此背景下,依托该院数字化校园基础平台建设工程,本文拟设计一套适合该院实际需求的仪器设备管理信息系统,旨在降低管理人员工作量,提高工作效率,更好地整合各类设备资源,充分发挥资源效益。
2 系统建模建模是人们在实际应用中常用而且具有重要作用的一种技术,如在建造一座大楼前,先规划出大楼蓝图;在制造飞机前,先画出设计图;在画一幅油画前,先勾勒出画的轮廓等,软件系统开发也应先建立系统模型。
仪器设备的管理及控制程序文件一、目的为了确保仪器设备的正常运行,提高其使用效率和准确性,保障实验、检测、生产等工作的顺利进行,特制定本管理及控制程序文件。
二、适用范围本程序文件适用于本公司所有仪器设备,包括但不限于研发设备、生产设备、检测设备等。
三、职责分工1、设备管理部门负责制定和修订仪器设备的管理及控制程序文件。
建立仪器设备的总台账,对设备进行统一编号和分类管理。
组织设备的采购、验收、安装调试等工作。
制定设备的维护保养计划,并监督实施。
负责设备的维修、报废等管理工作。
2、使用部门负责本部门仪器设备的日常使用和管理。
按照操作规程正确使用设备,填写使用记录。
配合设备管理部门做好设备的维护保养工作。
发现设备故障及时报告设备管理部门。
3、采购部门根据设备管理部门的采购需求,负责仪器设备的采购工作。
确保所采购的设备符合质量要求和技术标准。
4、财务部门负责仪器设备的资产核算和财务管理。
四、仪器设备的采购1、需求提出使用部门根据工作需要,填写《仪器设备采购申请表》,详细说明设备的名称、规格型号、技术参数、用途、预计价格等信息,经部门负责人审核后提交设备管理部门。
2、采购计划设备管理部门根据各部门的采购需求,结合公司的发展规划和资金预算,制定仪器设备采购计划,经公司领导审批后实施。
3、供应商选择采购部门通过市场调研、询价、招标等方式,选择符合要求的供应商,并对其进行资质审查和信誉评估。
4、采购合同签订采购部门与供应商签订采购合同,明确设备的名称、规格型号、技术参数、价格、交货期、质量保证、售后服务等条款。
5、设备验收设备到货后,设备管理部门组织使用部门、采购部门等相关人员进行验收。
验收内容包括设备的外观、包装、随机附件、技术资料、性能指标等。
验收合格后,填写《仪器设备验收报告》,并办理入库手续。
五、仪器设备的台账管理1、设备管理部门建立仪器设备总台账,内容包括设备编号、名称、规格型号、生产厂家、购置日期、原值、使用部门、存放地点等。
实验室仪器设备管理系统设计与实现引言实验室是科学研究和教学的重要场所,在实验室中经常使用各种仪器设备来进行实验和探索。
然而,随着实验室规模的扩大和仪器设备数量的增加,管理这些设备变得越来越困难。
为了提高实验室仪器设备的使用效率和管理水平,设计和实现一个实验室仪器设备管理系统是很有必要的。
系统需求分析功能需求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. 功能与特点2.1 远程控制仪器设备的控制与管理程序可以通过网络远程控制仪器设备。
用户可以通过计算机或移动设备内的界面,对仪器设备进行远程开关、参数设置、状态监测等操作。
这种远程控制的方式大大提高了设备的可操作性和效率。
2.2 实时监测该程序可以实时监测仪器设备的各种状态参数。
用户可以通过界面上的数据显示,了解设备的工作状态、温度、压力、流速等信息,及时发现异常情况并进行处理。
这样可以避免因设备故障或性能下降导致的生产中断或质量问题。
2.3 故障诊断通过仪器设备的控制与管理程序,用户可以进行故障诊断。
系统会根据设备的错误码和故障信息,提供相应的故障排除指导。
用户可以根据系统的提示,进行故障处理,减少维修时间和成本。
2.4 定时维护与保养程序还可以提供定时维护与保养功能。
用户可以根据设备的使用情况和维护需求,设置定期维护计划。
系统会提醒用户进行设备的维护和保养工作,以延长设备的使用寿命和保证设备的正常运行。
2.5 数据记录与分析仪器设备的控制与管理程序还可以进行数据记录与分析。
系统会自动记录设备的运行日志、故障日志、维护信息等数据。
用户可以通过界面上的查询与分析功能,获取设备使用情况的统计数据,为设备的维护和管理提供参考。
3. 程序的基本架构与模块设计仪器设备的控制与管理程序通常采用分布式架构,拥有以下基本模块:3.1 用户管理模块该模块负责用户的注册、登录、权限验证等功能。
用户可以通过该模块进行身份验证,并根据不同的权限级别进行操作。
3.2 设备控制模块该模块实现对仪器设备的远程控制。
用户可以通过该模块进行设备开关、参数设置、状态监测等操作。
控制指令通过网络传输到对应的设备,实现远程操作。
3.3 数据监测模块该模块负责实时监测设备的状态参数。
高等学校仪器设备管理基本信息集1994-07-04 发布 1995-01-01 实施1、主题内容和适用范围本标准规定了高等学校仪器设备管理信息交换标准,适用于各高等学校建立仪器设备管理信息系统和教育系统内的信息交换。
2、编制原则和结构本信息集由三个部分组成:A、基本信息基本信息是以管理对象为主体的信息项,为了便于查阅,按内容分成若干类,按类分段列出,每个信息项具有编号,拼音名,汉字名,类型,长度,说明等六个栏目。
⑴编号为该信息项的特征号,长度为六位字符:第一位为字母,代表所属信息集如:S-仪器设备管理信息集第二位为字母,代表属于那个部分A-基本信息B-辅助信息C-代码表第三、四位为二位数字,代表该信息项属于那一类第五、六位为二位数字,为每一类下的顺序号⑵拼音名是与汉字名对应的拼音字头缩写,为了避免出现重码,个别项不一定完全遵守汉字和拼音字头的对应关系。
⑶汉字名为该信息项的名称,实际上是经压缩后不超过五个汉字的简称。
⑷类型为该信息项的数据类型,本信息集只使用字符型和数字型两种类型。
C-字符型N-数字型⑸长度为该信息项内容占有的字符数(一个汉字占二个字符)。
⑹说明为该信息项的补充描述。
B、辅助信息辅助信息是配合基本信息设置的,即与基本信息密切有关的管理信息,分类列入辅助信息。
C、代码表本信息集采用了三种代码。
第一种是国家技术监督局已经颁发的国家标准,如世界各国和地区名称代码;第二种是国家教委条件装备司所用代码,如《高等学校仪器设备分类编码手册》;第三种是本信息集制定的代码。
代码表中列出了第一种、第二种代码的名称和代号,以及第三种代码的名称和内容。
3、本标准的管理本标准由国家教委教育管理信息中心负责管理。
4、信息集目录•SA.基本信息oSA01. 基本情况类oSA02. 规格类oSA03. 价格类oSA04. 附件类oSA05. 使用管理类oSA06. 精密贵重仪器设备使用类oSA07. 大、中、小型计算机使用类•SB.辅助信息oSB01. 系、所、中心类oSB02. 实验室级别类oSC.代码表▪SC01. 经费科目代码▪SC02. 现状代码▪SC03. 使用方向代码▪SC04. 资产分类代码与国家教委条件装备司所用高等学校仪器设备分类代码对照▪SC99. 本信息集采用的国家标准、国家教委条件装备司所用代码SA. 基本信息SB. 辅助信息SC. 代码表与国家教委条件装备司所用仪器设备分类代码对照。
二○一五~二○一六学年第一学期电子与信息工程系课程设计报告书课程名称:程序设计基础实践班级:学号:姓名:指导教师:二○一五年十二月1..实验室设备信息管理系统功能(1). 每一条记录包括实验室的设备编号、设备名称、设备型号、设备价格、设备购买日期信息。
(2). 实验设备信息录入:可以一次完成诸多条记录的录入。
(3). 实验设备信息更改:可实现对实验设备信息更改的信息进行适当的修改。
(4). 报废设备信息删除:对实验损毁设备信息予以删除。
(5). 实验设备信息查询:本系统提供两种查询实验设备的方法:1.按器材名称查询.2.按器材编号查询.从而完成按实验设备的查找查找功能,并显示。
(6). 实验设备信息排序:根据实验设备的编号进行排序,以实现实验设备的有序全局查看。
实验设备信息显示功能:完成全部学生记录的显示。
(7). 简单帮助:提供实验室负责人简单的信息。
(8). 保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:\。
(9). 读取功能:将保存在文件中的学生记录读取出来。
(10). 有一个清晰美观界面来调用各个功能2.设计内容2.1 程序的总体设计整个系统除了主函数外,另外还有11个函数,实现以下功能:实验室设备录入功能、显示功能、查找功能、排序功能、读出与写入取功能。
各个函数的详细设计说明分别如下:2.2 数据结构使用C语言创建的结构体如下:/*定义数据结构*/{; 编号[20]; 名称[20]; 型号[20]; 价格[20]; 购买日期};3 详细设计3.1实验设备管理系统主程序模块设计控制整个程序的运行,通过主函数模块分别调用各个模块,实现各项功能,流程如图1所示。
通过进入分支结构从而调用执行不同的函数,以实现菜单选择的功能。
程序如下:(){;2;();("");(1){/*主菜单*/("\n\n\n\n\n\t\ 苏州科技学院实验器材管理系统\n\n");("\t\t\t 1. 实验设备信息录入\n");("\t\t\t 2. 实验设备信息更改\n");("\t\t\t 3. 报废设备信息删除\n");("\t\t\t 4. 实验设备信息查询\n");("\t\t\t 5. 实验设备信息排序\n");("\t\t\t 6. 帮助\n");("\t\t\t 7. 退出\n");("\n\t\******\n");("\n\n\n 请选择(1-7):");("");();("");(){1:();;2:();;3:;4:("\n\n\n\n\n\t请选择(1/2) → 1.按器材名称查询\n"); (" 2.按器材编号查询\n\n\n");(""2);(2){1:();;2:();;};5:();();;6:("\n\n\n\n\n\n\t\t\**电子与通信工程学院实验室**\n\n");("\t\t\t\t 负责人:\n\n");("\t\t\t\t 办公室:201 \n\n");("\t\t\t\t :8 \n\n");("\t\t\**************\n\n");("\t\t\t\t\ →\n\n");;7:;}("");("");();}}N 其运行界面如下:3.2一些辅助函数通过设备编号返回数组下标(( []))显示系统所提供的全部功能选择输入0-7,通过判断据n值调用各功能模块函数结束开始通过(([i])0) 进行比较,从而反馈回对应设备的数组下标。
第一版使用指南南京蓝江科技信息有限公司目录第一章系统概要1.1 软件的卓越特性1.2 软件的应用环境1.3 四位一体模式与多版本组合设计1.4 开放的结构设计与出色的选择性能第二章系统安装与基本操作2.1 系统安装2.2 系统启动2.3 系统工程退出2.4 操作注册第三章LJMIS1.0 设备管理信息系统主要功能3.1 菜单结构3.2 菜单功能3.3 系统操作顺序规定3.4 系统管理3.5 系统流程3.6 预防维护3.7 工单管理3.8 库存管理3.9 报表输出第一章系统概要由南京蓝江科技信息有限公司(LANGJIANG TECHNOLOGE CO.,LTD,)开发制作的[设备管理信息系统],得到了设备管理协会专家的全面指导,融合了蓝江公司多年软件开发实践和众多企业设备管理的丰富经验。
该软件的主要任务是实现《“九五”全国设备管理工作纲要》提出的建立设备物质形态与价值形态相统一的设备管理信息系统目标,为企业的设备管理现代化工作提供一个先进实用的软件。
1.1软件的卓越特性设备管理信息系统具有一个好的设备管理软件应具备的各种特性:【】按设备管理的工作模式进行结构设计,为企业提供一个规范化的计算机管理体系。
【】具有开放的体系结构,以充分满足企业工作变动与制度改革的需要。
【】突出设备管理的主体内容,切实解决设备管理工作中重要的、繁琐的事务处理工作,强大的差异处理能力,保证数据信息的完整性与准确性。
【】兼顾设备管理的国家规范和企业实际工作的应用特性。
【】保证设备的物质形态与价值形态管理相统一。
【】先进技术与简易操作的完美结合。
1.2软件的应用环境【】和当前流行的财务,ERP及其他常用系统都预先留有接口,并可支持客户机/服务器体系结构的网络应用。
1.3 开放的结构设计与出色的选择性能中国企业处在转换经营机制的变革之中,设备管理的机构、人员、职责、甚至管理对象都频繁地发生着变化,为了保证已投入使用的软件不因这些变化而受到影响,我们运用先进的开放性技术,设计了开放的系统结构,尽可能增强您的选择性:【】管理元素自定义:全部基本的管理要素,如部门设置、设备类别、类型、事故原因、点检分类、财务分类、折旧科目、备件类别等,完全由用户按照企业的工作习惯自行定义,要素发生变化时,修改这些要素就行了,而软件还会象修改前一样运行自如。
设备管理系统程序设计1. 引言设备管理系统是指对企业或组织中的设备进行统一管理、维护和监控的系统。
通过设备管理系统,可以实现设备的可控性和可维护性,提高设备的利用率和维护效率,降低设备故障率,从而提高企业的生产效率和经济效益。
本文将介绍设备管理系统的程序设计,包括系统的需求分析、系统架构设计、数据库设计、界面设计和系统实现等方面的内容。
2. 需求分析2.1 功能需求设备管理系统的功能需求主要包括:1.设备信息管理:对设备进行登记、查看、修改和删除等操作。
2.设备状态监控:实时监控设备的状态,包括运行状态、故障状态等。
3.设备维护管理:对设备进行维护计划的制定和执行,并记录维护过程和结果。
4.设备报修管理:接收设备报修申请,并分配维修任务。
5.设备报废管理:对设备进行报废流程管理,包括报废申请、审核和执行等。
6.设备借还管理:对设备的借出和归还进行管理,包括借出申请、借出归还确认等。
2.2 非功能需求设备管理系统的非功能需求主要包括:1.系统安全性:对系统进行身份验证和权限管理,确保只有授权人员才能进行相关操作。
2.系统稳定性:保证系统的稳定运行,不易崩溃或出现错误。
3.界面友好性:界面简洁明了,操作简单方便。
4.数据一致性:对输入的数据进行有效性检查,确保数据的一致性和准确性。
3. 系统架构设计设备管理系统的架构设计主要包括前端、后端和数据库三个部分。
3.1 前端设计前端设计主要负责用户界面的展示和用户交互。
可以采用Web前端技术进行设计,如HTML、CSS和JavaScript等,以实现跨平台和响应式布局。
前端设计应遵循用户友好的原则,通过简洁明了的界面和直观的操作方式,提供良好的用户体验。
3.2 后端设计后端设计主要负责处理前端请求和逻辑处理。
可以采用后端开发语言进行设计,如Java、Python或Node.js等。
后端设计应遵循分层架构的原则,将业务逻辑、数据访问和接口封装成不同的模块,提高代码的可维护性和可扩展性。
课程设计课程名称程序设计课程设计班级与班级代码2011级信息管理1班专业信息管理指导教师:***学号:************名:***提交日期:2012 年 6 月23 日广东商学院教务处制姓名蓝俊杰课程设计成绩评语:指导教师(签名)年月日说明:指导教师评分后,课程设计交院(系)办公室保存。
课程设计报告正文的内容及排版要求标题:单位仪器设备基本信息管理软件设计1 系统功能要求:(一级标题:黑体、四号)内容:单位仪器设备基本信息管理软件设计:采用结构体数组或文件形式存储每种设备的信息,每个仪器设备应包含如下几方面的信息:设备编号、设备名称、设备单价、购进年代、生产厂家、该设备数量、可用性。
软件由主函数(含欢迎界面)+下列5个功能模块组成:(1)购进功能(被购进设备数量增x);(2)显示已有设备;(3)报废功能(对“可用性”信息为“否”的设备报废,被报废设备数减x);(3)查找功能(需指定设备号或设备名);(5)统计功能(统计每种设备可用数、不可用数);(6)退出程序的运行。
2 系统总体设计思想(1)开发与设计的总体思想内容示例:单位仪器设备基本信息管理软件算法说明:STEP1 预处理,定义结构体STEP2 进入欢迎界面STEP3 选择某一种功能STEP4 根据提示输入一个数字STEP5 对于输入的数字编辑关于购进、报废、查找、统计功能的函数STEP6 如果输入的字母表示退出,退出系统(2)系体模块结构图3 系统详细设计思想(1)函数的描述内容包括:分模块(函数)简述其功能;函数中使用的各变量的类型及作用等(可参考材P155的写法)。
1.显示所有设备信息函数函数原型:void show (void)功能:显示内存里的记录信息参数:void返回值:void工作方式:从头部开始逐个显示记录内容。
要求:报告是否有记录及记录条数和内容。
2.购进设备函数函数原型:void addfacility (void)功能:增加记录参数:void返回值:void工作方式:从尾部开始逐个追加记录。
要求:将新记录追加在记录尾部,并对记录进行计数。
3.显示所有设备信息函数函数原型:void showTable(void)功能:输出表头信息参数:void返回值:void工作方式:输出一行表头信息。
要求:输出一行表头信息。
4.报废设备函数函数原型:void removefacility (void)功能:把所选的仪器报废,被报废设备数减x。
参数:void返回值:void工作方式:根据给定的关键字,查找符合的记录并将报废的设备删除。
要求:将报废的设备数减去。
5.显示所有设备信息函数函数原型:int findRecord(char* target, int targetType, int from)功能:查找指定的记录参数:char* target:欲查找记录的某一项与target相同返回值:int targetType:表明通过哪项来查找,0为编号,1为名称。
int from:从第from个记录开始找。
工作方式:根据给定的关键字,查找符合记录的序号。
要求:找不到则返回-1.6.查询指定设备的信息函数函数原型:void seekfacility (void)功能:查询指定设备的信息参数:void返回值:void工作方式:可以按照编号、名称来查询要求:打印查询到的设备的信息7.修改设备信息函数原型:void modifyfacility (void)功能:修改指定设备的信息参数:void返回值:void工作方式:修改设备的信息要求:报告是否有记录及记录条数和内容8、文件存储操作函数函数原型:int saveRecords (void)功能:把信息存储进指定文件中参数:int返回值:void工作方式:输入文件名字并保存要求:有空间存储9、文件读取操作函数函数原型:int loadRecords (void)功能:从指定文件中读取出的记录参数:int返回值:void工作方式:输入已经存在的文件名字来读取文件中的信息要求:已经存在文件可供读取10.主函数函数原型:int main()功能:控制程序参数:void返回值:void要求:管理菜单命令并完成初始化11.菜单处理函数函数原型:void select(void)功能:处理选择的菜单命令参数:void返回值:void工作方式:根据命令,调用相应函数要求:给出结束信息12.菜单选择函数函数原型:int menu_select( )功能:接收用户选择的命令代码参数:void返回值:int工作方式:返回命令代码的整数值要求:只允许选择规定键,如果输入不合要求,则提醒用户重新输入13.结束程序运行函数函数原型:void quit(void)功能:结束程序运行参数:void返回值:void工作方式:根据要求决定在退出前是否将修改的记录存入文件要求:结束运行之前,询问是否对修改的记录进行存储14.头文件函数原型:device.h功能:声明函数原型,包含文件及自定义宏和数据结构参数:void返回值:void要求:报告是否能正常打开文件执行存入操作及存入记录的条数15、文件(2)主要函数流程图1.void addfacility(void)2. void select(void)3. void show(void)4. int findRecord(char* target, int targetType, int from)5. void removfacility(void)6. void modifyfacility (void)调试结果:(1)欢迎界面:输入密码(2)功能选择菜单(3)购进新设备功能而在于设备数量大于100台和小于100台的处理上,大于100台则直接输入可用设备的数目,而对于小于100台,则逐台输入每台的可用性不可用性。
(4)显示已有设备(5)报废设备报废功能也可以按照名字和编号来报废,报废前还会打印出将要被报废的设备信息再一次询问操作者是否要删除该设备。
(6)查找设备按编号查找按设备名称查找(7)保存设备信息(8)读取设备信息本人在程序设计中感想本人在程序设计的课程设计中感受到:很多的函数设计与学生管理系统还是有挺大的差别的。
通过设置密码可改变背景和字体颜色的设计,让我懂得了 C语言还是有很多我没有了解到的地方,通过互联网上的资源我们可以懂得的更多。
而遇到不懂的地方就要耐心的读懂,实在不懂的就要谦虚地问同学和老师,例如在程序设计过程中scanf语句与getchar()语句混搭容易出现跳句,需要不断的修改来完善。
将保存文件语句和读取文件语句穿插也需要注意,当记录为0时直接调用saveRecord()语句是保存不了的,所以需要再修改。
通过实验让我更加深刻学习到了C语言的好处。
5 结束语C语言的程序设计实验的成功实验,靠得不仅仅是自己的努力,还有同学的帮助,当然最重要的还是老师的耐心解答。
参考文献[1] 谭浩强,C程序设计(第二版),北京:清华大学出版社,2001.1(左对齐,宋体,五号)[2] 陈朔鹰,C语言程序设计习题集,北京:人民邮电出版社,2003.6facility.h#ifndef H_STUDENT_HH //如果没有定义H_STUDENT_HH,继续执行#define H_STUDENT_HH//定义H_STUDENT_HH,可避免重复编绎#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <string.h>//头文件包含#define INITIAL_SIZE 5 // 数组初始大小#define INCR_SIZE 5 // 数组每次增加的大小//可根椐系统使用需要的常量定义struct facility_info {char number[20]; //设备编号char name[20]; //设备名称char manufactory[20]; //设备生产厂家char year[20]; //设备购进年代float getnumbers; //设备购进数目float usable; //可用设备float price; //设备单价};typedef struct facility_info SBInfo;//定义一个类型名SBInfo代表定义的结构体shebei_infoextern int numStus; // 记录的设备数extern SBInfo* records; // 记录设备信息的数组指针extern int arraySize; // 数组大小extern char savedTag;//共享的全局变量定义void select(void);int menu_select(void);void addfacility(void);void modifyfacility(void);void show(void);void seekfacility(void);void removefacility(void);void quit(void);void showTable(void);int findRecord(char* target, int targetType, int from);int getIndex(float sum);int saveRecords(void);int loadRecords(void);void copyRecord(SBInfo* hum, SBInfo* orc);//函数申明,注意()里必须包含对应函数形参类型#endif // H_STUDENT_HHfacility.c#include "facility.h"#include<conio.h>/*************************** 初始化**************************/int numStus = 0; // 记录的学生数SBInfo *records = NULL; // 记录学生信息的数组int arraySize; // 数组大小char ch1[15],ch2[15]={"JJ"};char savedTag = 0; // 信息是否已保存的标志,1为未保存,0为已保存/*************************** 主函数**************************/int main(){system("color 9");// 初始化数组records =(SBInfo*)malloc(sizeof(SBInfo)*INITIAL_SIZE);//给数组分配StuInfo分配INITIAL_SIZE个记录空间大小if (records == NULL){printf("memory fail!");exit(-1);//如果内存空间不够分配,退出程序}arraySize = INITIAL_SIZE;printf("************************************************************************* \n");printf(" * callmeJJ SINGLEJJ BIRTHDAY * \n");printf(" * lovelove ** handsome 19920929 * \n");printf("* ** **** ** *\n");printf("* ** *** ** *\n");printf("* ** QQ:496798140** ** *\n");printf("* ** 嘿我是蓝俊杰** ** *\n");printf("* ** QQ QQ QQ** ** ** ** *\n");printf("* 手机:150 QQ QQ QQ673798 673798 *\n");printf("* 15593798 QQ QQ QQ*** *** *\n");printf("** * \n");printf(" ** ** \n");printf(" ** 欢迎使用仪器设备基本信息管理程序 ** \n");printf(" ** ** \n");printf(" ** 设计者蓝俊杰1251101121 ** \n");printf(" ** ****** ** \n");printf(" ** ****** ** \n");printf(" ** *** ***** ** \n");printf(" ************************ * ************************* \n");printf(" *********************** ************************* \n");printf(" ****** \n");printf(" ****** \n");printf("\n");for(;;){printf("\n 进入系统的密码是:");gets(ch1);if(strcmp(ch1,ch2)==0)break;else printf("\n SORRY!密码错啦T_T!\n");}printf("\n\t\t欢迎使用设备管理系统!\t\n");select();}/*************************** 菜单处理函数**************************/void select(void){for ( ; ; ) {switch(menu_select()){case 1:addfacility();break;case 2:seekfacility();break;case 3:removefacility();break;case 4:modifyfacility();break;case 5:show();break;case 6:saveRecords();break;case 7:loadRecords();break;case 8:quit();}}}/**************************** * 菜单选择函数menu_select****************************/int menu_select( ){char s[2];int cn=0;printf("\n");printf ( "\t1. 购进设备\n" );printf ( "\t2. 查找设备\n" );printf ( "\t3. 报废设备\n" );printf ( "\t4. 修改设备信息\n" );printf ( "\t5. 显示设备信息\n" );printf ( "\t6. 保存设备信息\n" );printf ( "\t7. 读取设备信息\n" );printf ( "\t8. 退出程序\n" );printf ( "\n\t左边数字对应功能选择,请选1-8 :" );for(; ;){gets(s);cn = atoi (s);if(cn<1|| cn>8 ) printf("\n\t输入错误,重选1-8:");else break;}return cn;}/****************************************结束运行,退出**参数量void***************************************/void quit(void){char str[5];if (savedTag==1){printf("\n 是否保存记录?(Y/n)\n"); printf(" 选择: ");gets(str);if(str[0]!='n'&&str[0]!='N')saveRecords();}free(records);printf("\n ByeBye啦啦啦啦~ \n\n");exit(0);}facility_add_sum.c#include "facility.h"/********************* 打印表头********************/float getnumbers,usenumbers_1,usenumbers_2;float unusable,usable;void showTable(void){printf("\n\t编号\t名称\t厂家");printf("\t年代\t单价\t数量\t可用数\n");}/************************ 显示所有的设备信息***********************/void show(void){int i;if (numStus == 0){printf("\n 没有可供显示的记录!\n");return;}showTable();if(getnumbers<=100){for (i=0; i<numStus; i++){// 打印设备的信息printf("\t%s\t%s\t%s\t%s\t%.2f\t%.f\t%.f\n",recor ds[i].number,records[i].name,records[i].manufactory ,records[i].year,records[i].price,records[i].getnum bers,records[i].usable);}}else if(getnumbers>100){for (i=0; i<numStus; i++){// 打印设备的信息printf("\t%s\t%s\t%s\t%s\t%.2f\t%.f\t%.f\n",recor ds[i].number,records[i].name,records[i].manufactory ,records[i].year,records[i].price,records[i].getnum bers,records[i].usable);}}}/****************************** 在当前表的末尾增加新的信息* 结果:records中将记录新的信* 息,如果数组大小不够,会重* 新申请数组空间*****************************/void addfacility(void){char str[10];float unusable,usable;int j;float getnumbers,usenumbers_1;float price;if(numStus==0)printf("\n 原来没有记录,现在建立新表\n");elseprintf("\n 下面在当前表的末尾增加新的信息\n");while(1)//()中为1表示无条件反复循环{printf(" 您将要添加一组信息,确定吗?(Y/n)");gets(str);if (str[0]=='n' || str[0]=='N') // 不再添加新的信息break;if (numStus >= arraySize) // 现在的数组空间不足,需要重新申请空间{records =realloc(records,(arraySize+INCR_SIZE)*sizeof(SBInfo ));//新空间大小变为(arraySize+INCR_SIZE)记录大小,即在原来基础上增加INCR_SIZE个记录大小if (records == NULL){printf("memory failed!");exit(-1);}arraySize = arraySize+INCR_SIZE; //arraySize 修改为新空间可保存的记录数}printf("\n 请输入设备编号:");gets(records[numStus].number);printf(" 请输入设备名称:");gets(records[numStus].name);printf(" 请输入设备购进年代:");gets(records[numStus].year);printf(" 请输入设备生产厂家:");gets(records[numStus].manufactory);printf(" 请输入设备单价:");gets(str);price = (float)atof(str);records[numStus].price=price;printf(" 购进设备数量是否大于100台?(Y/N)");gets(str);if (str[0]=='y' || str[0]=='Y'){printf("\n 请输入购进设备数量:");gets(str);getnumbers = (float)atof(str);records[numStus].getnumbers=getnumbers;printf(" 可用设备的数量有:");gets(str);usenumbers_1= (float)atof(str);records[numStus].usable=usenumbers_1;}else if(str[0]=='n' || str[0]=='N'){printf(" 请输入购进设备数量:");gets(str);getnumbers = (float)atof(str);records[numStus].getnumbers=getnumbers;unusable=0 ;usable=0;for(j=1;j<=getnumbers;j++){ printf("第%d台设备的可用性为: (设备不可用请输入0,设备可用请输入1) : ",j);gets(str);if (str[0] == '0'){unusable=unusable+1;}else if(str[0]=='1'){usable=usable+1;}}records[numStus].usable=usable;unusable=0;usable=0;}numStus++; //输入一设备记录后,设备数加1 }printf("\n 现在一共有%d条设备信息\n",numStus);savedTag = 1;}facility_Modify_remove.c#include "facility.h"/************************************************** ************* 查找指定的记录* 参数:target:欲查找记录的某一项与target相同* targetType:表明通过哪一项来查找,0为设备编号,1为设备名称* from:从第from个记录开始找* 返回:找到的记录的序号,若找不到则返回-1*************************************************** ***********/int findRecord(char* target, int targetType, int from) {int i;for(i=from;i<numStus;i++){if((targetType==0&&strcmp(target,records[i].number) ==0)||(targetType==1&&strcmp(target,records[i].name)==0)) return i;// 如果找到符合条件的记录,返回记录号i}return -1;//如果没有找到,返回-1}/********************************* 查询指定设备的信息* 可以按照设备编号或名称来查询********************************/void seekfacility(void){char str[5];char target[20];int type;int count;int i;if(numStus==0){printf("\n 没有可供查询的记录\n");return;}while(1) {printf("\n 请输入查询的方式:(直接输入回车键则结束查询)\n");printf(" 1. 按设备编号查找\n");printf(" 2. 按设备名称查找\n");printf("\n 选择:");gets(str);if (str[0] == '1'){printf("\n 请输入欲查找的设备编号:");gets(target);type = 0;} else if (str[0] == '2'){printf(" 请输入欲查找的设备名称:");gets(target);type = 1;}else break;i = findRecord(target,type,0);//,从0号记录起查找,查询项type,查询目标数据项targetif(i>=0){// 打印查询到的设备的信息showTable();}count = 0;while(i != -1){count++;//查询到的设备数加1printf("\t%s\t%s\t%s\t%s\t%.2f\t%.f\t%.f\n",recor ds[i].number,records[i].name,records[i].manufactory ,records[i].year,records[i].price,records[i].getnum bers,records[i].usable);//输出i记录的各个数据项i = findRecord(target,type,i+1);//从i+1条记录起查找下一条符合条件的记录}if (count==0) printf("\n 没有符合条件的设备!\n");else printf("\n 一共找到了%d种设备的信息\n\n",count);}}/************************* 删除指定的记录************************/void removefacility(void){char str[5];char target[20];int type;int i,j;if(numStus==0){printf("\n 没有可供删除的记录\n");return;}while(1) {printf("\n 请输入如何找到欲报废的设备:(直接输入回车键则结束移除操作)\n");printf(" 1. 按设备编号\n");printf(" 2. 按设备名称\n");printf("\n 选择:");gets(str);if (str[0] == '1'){printf("\n 请输入该设备的编号:");gets(target);type = 0;} else if (str[0] == '2'){printf(" 请输入该设备的名称:");gets(target);type = 1;}else break;i = findRecord(target,type,0);if (i==-1) printf("\n 没有符合条件的设备!\n");while(i != -1){showTable();printf("\t%s\t%s\t%s\t%s\t%.2f\t%.f\t%.f\n",recor ds[i].number,records[i].name,records[i].manufactory ,records[i].year,records[i].price,records[i].getnum bers,records[i].usable);printf("\n 真的要删除该设备吗?(y/N)");gets(str);if(str[0]=='Y'||str[0]=='y'){numStus--;for (j=1;j<numStus;j++){copyRecord(&records[j+1],&records[j]);}}i=findRecord(target,type,i+1);}}savedTag = 1;//删除一条记录后,保存标志变为1,表示未保存}/****************************************** 将src指向的一条记录复制给dest指向的记录*****************************************/void copyRecord(SBInfo* hum, SBInfo* orc){strcpy(orc->number,hum->number);strcpy(orc->name,hum->name);strcpy(orc->year,hum->year);strcpy(orc->manufactory,hum->manufactory);orc->price = hum->price;orc->usable = hum->usable;orc->getnumbers = hum->getnumbers;/************************** 修改指定设备的信息*************************/void modifyfacility(void){char str[5];char target[20];int type;int i,j;floatgetnumbers,usenumbers_1,usenumbers_2,usable,unusabl e;float price;int count = 0;if(numStus==0){printf("\n 没有可供修改的记录\n");return;}while(1) {printf("\n 请输入想要修改的设备记录的方式:(直接输入回车键则结束移除操作)\n");printf(" 1. 按设备编号\n");printf(" 2. 按设备名称\n");printf("\n 选择:");gets(str);if (str[0] == '1'){printf("\n 请输入该设备的编号:");gets(target);type = 0;} else if (str[0] == '2'){printf(" 请输入该设备的名称:");gets(target);type = 1;} else break;i=findRecord(target,type,0);if (i==-1) printf("\n 没有符合条件的设备!\n");while(i != -1){showTable();printf("\t%s\t%s\t%s\t%s\t%.2f\t%.f\t%.f\t%.f\n", records[i].number,records[i].name,records[i].manufa ctory,records[i].year,records[i].price,records[i].g etnumbers,records[i].usable);printf("\n 确定要修改该设备的信息吗?(Y/N)");gets(str);if (str[0]=='y' || str[0]=='Y'){printf("\n 下面请重新输入该设备的信息:\n");printf("\n 请输入设备编号:");gets(records[i].number);printf(" 请输入设备名称:");gets(records[i].name);printf(" 请输入设备购进年代:");gets(records[i].year);printf(" 请输入设备生产厂家:");gets(records[i].manufactory);printf(" 请输入设备单价:"); gets(str);price = (float)atof(str);records[i].price=price;printf("购进设备数量是否大于100台?(Y/N)\n");gets(str);if (str[0]=='y' || str[0]=='Y'){printf(" 请输入购进设备数量:");gets(str);getnumbers = (float)atof(str);records[i].getnumbers=getnumbers;printf(" 可用设备的数量有:");gets(str);usenumbers_1= (float)atof(str);records[i].usable=usenumbers_1;printf(" 不可用设备的数量有:");gets(str);usenumbers_2= (float)atof(str);}else if(str[0]=='n' || str[0]=='N'){printf(" 请输入购进设备数量:");gets(str);getnumbers = (float)atof(str);records[i].getnumbers=getnumbers;unusable=0;usable=0;for(j=1;j<=getnumbers;j++){ printf("第%d台设备的可用性为:“0”设备不可用,“1”设备可用: ",j);gets(str);if (str[0] == '0'){unusable=unusable+1;}else if(str[0]=='1'){usable=usable+1;}}records[i].usable=usable;unusable=0;usable=0;}i=findRecord(target,type,i+1); }else break;}}savedTag = 1;}。