实验室设备管理系统实验报告1

合集下载

实训室设备管理系统项目报告

实训室设备管理系统项目报告

实验室设备管理系统》项目报告一、系统简介随着计算机技术的迅猛发展以及Internet 进入商业和社会应用阶段,设备的种类、数量越来越多,如何利用先进的网络技术和日新月异的计算机设备来有效地收集、处理这些设备,建立以信息化为核心的管理体制,减轻管理人员和业务人员的数据处理负担,极大地提高设备管理效率和管理手段,己经成为当今社会的潮流。

设备管理系统是一个以人为主导,利用计算机硬件、软件、网络设备通信设备以及其他办公设备,进行信息的收集、更新和维护,以提高效率为目的的人机系统。

它具有管理信息系统的共性,同时也具有其特殊性。

二、设备管理系统组成部分设备资产及技术管理:建立设备信息库,实现设备前期的选型、采购、安装测试、转固;设备转固后的使用、闲置、报废,设备运行过程中的技术状态、维护、保养情况记录。

设备文档管理:设备相关档案的登录、整理以及与设备的挂接。

设备缺陷及事故管理:设备缺陷报告、跟踪、统计,设备紧急事故处理。

预防性维修:以可靠性技术为基础的定期维修、维护,维修计划分解,自动生成预防性维修工作单。

维修计划排程:根据日程表中设备运行记录和维修人员工作记录,编制整体维修、维护任务进度的安排计划,根据任务的优先级和维修人员工种情况来确定维修工人。

申请单的审核与跟踪:对用户申请单,进行审核、执行,并跟踪申请单状态。

备品、备件管理:建立备件台帐,编制备件计划,处理备件日常库存事务,根据备件最小库存量或备件重订货点自动生成采购计划,跟踪备件与设备的关系。

维修成本核算:凭借工作单上人员时间、所耗物料、工具和服务等信息,汇总维修、维护任务成本,进行实际成本与预算的分析比较。

缺陷分析:建立设备故障代码体系,记录每次故障发生的情况以进行故障分析。

统计报表:查询、统计各类信息,包括设备的三率报表、设备维修成本报表、设备状态报表、设备履历报表、备件库存周转率、供应商分析报表等。

三、用户角色分类四、软硬件环境需求五、系统质量需求六、设备管理系统ER图七、设备管理系统流程图八、界面设计实训室设备管理系统Equipment Management System设备管理系统Equipment Management Systeir九、项目心得体会3个月的项目实训对Java编程语言从低层次的认识到实实在在地使用在项目开发,期间是一个枯燥而又漫长的过程。

个人课程设计报告—实验室设备管理系统

个人课程设计报告—实验室设备管理系统

个人课程设计报告院系计算机与通信工程学院专业计算机(中加)学号姓名角色 E日期 2013/6/20个人课程设计报告一.项目概述1. 编写目的:因为现在各个高校内教学设备众多但自动管理水平相比过低,很多高校管理设备都采用在设备购进以后将设备的基本情况和相关信息登记存档。

存档以后,档案基本就没人记录与维护,至于以后设备的变迁或损坏都不会记录在设备档案中,即不能体现设备的即时状态。

而有些即使有设备管理系统的单位,就算是能把设备的即时信息体现在设备档案上,但设备的缺陷处理及设备缺陷等功能没有实施,设备检修的备品备件情况和检修成本核算没有实现,整个学校教学设备管理信息化仍处于较低水平。

将管理任务分成小块,落实到个人并能随时查询设备当前情况和历史情况,对设备的可靠性分析有直接作用,使管理人员从手工计算、统计工作中解脱出来。

同时基于实验室管理者对设备的的使用情况进行统计和更新提供轻松快捷的管理方式,利用计算机管理系统管理我校的实验设备势在必行,也方便广大用户可以随时随地的借用实验设备进行学习和研究。

该报告的读者对象为研发该软件者。

2.项目背景:开发软件的名称:实验室设备管理系统。

用户:实验室设备管理员。

实现软件的单位:各大学校。

软件使用ACCESS数据库存储数据。

3. 术语定义:Sbsys: shebei System,设备管理系统● Data Processing:数据处理● Transaction Processing:事务处理● Data Processsing Cycle:数据处理流程● MIS:管理信息系统4. 参考文献:《C#数据库精通》作者:王华杰清华大学出版社出版《C#程序设计教程》作者:李春葆清华大学出版社出版二.项目中本人参与和实现的部分数据结构设计1 逻辑结构设计1.1 数据库定义CREATE TABLE 设备信息(ID autoincrement(1,1) primary key,类别 varchar(20),设备名 varchar(20),型号 varchar(20),规格 varchar(20),单价 double,购置日期 date,生产厂家 varchar(30),经办人 varchar(10),状态 varchar(6))";CREATE TABLE 申请表(ID autoincrement(1,1) primary key,类别 varchar(20),设备名 varchar(20),型号 varchar(20),规格 varchar(20),单价 double,数量 int,申请日期 date,经办人 varchar(10),状态 varchar(6))";CREATE TABLE 修理清单(修理号 autoincrement(1,1) primary key,ID int,类别 varchar(20),设备名 varchar(20),型号 varchar(20),规格 varchar(20),修理费用 double,修理厂家 varchar(30),修理日期 date,经办人 varchar(10),状态 varchar(6))";1.2 配置文件①登入表输入:身份验证输出:身份验证数据结构:用户名+密码+登入权限②设备基本信息表输入:统计查询数据结构:类别+设备名称+设备编号+型号等③维修记录表输入:统计查询,维修输出:统计查询数据结构:设备名称+维修厂家+维修日期+维修费用等④新设备表输入:统计查询,购置输出:统计查询数据结构:设备名称+设备编号+型号+价格+数量等⑤申请表输入:统计查询,产成报表输出:统计查询,生成报表,购置/维修数据结构:设备名称+设备编号+型号+数量等1.3 全局变量表public static int shenfen = 0;//0为游客,1为专业人员,2为超级管理员string ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb;Jet OLEDB:Database Password=nicaibudao";string sqlcmd;OleDbCommand cmd;OleDbConnection conn;DataSet ds;DataTable[] dt = new DataTable[3];//0设备信息BindingSource bind;//数据源OleDbDataAdapter adapter;Form2 form2;Form3 form3;Form4 form4;Form5 form5; Form6 form6;int page=0;public int row_xz;//选中行2 物理结构设计定义了3个表,数据库库名data.mdb,与应用程序放在同一目录下。

实验室设备管理系统 课程设计报告

实验室设备管理系统 课程设计报告
此需求说明书的预期读者为项目经理、设计人员、开发人员、用户等。
1.2 背景
说明: a.待开发的软件系统的名称:实验设备管理系统; b.本项目的任务提出者:西安文理学院; c.本项目的开发者:张兴华 陈琛 任小艳; d.本项目的用户:西安文理学院相关管理人员; e.该软件系统同其他系统或其他机构的基本的相互来往关系:与西安文理学 院财务管理软件系统有相应接口。
3.3.2 时间特性需求
对于该软件的时间特性要求为: a.响应时间:小于 7 秒钟; b.更新处理时间:小于 6 秒钟;
3.3.3 灵活性 该软件的灵活性的要求(即当需求发生某些变化时,该软件对这些变化的适 应能力): a.运行环境的变化:可以实现跨平台操作; b.同其他软件的接口的变化:设计多元化接口,以实现与其他软件接口之间 的通信; c.精度和有效时限的变化:统一修改数据精度、以及有效时限的数据库内容;
1.3 定义
LEM:实验室设备管理系统(Laboratory Equipment Management);
2. 任务概述 2.1 目标
随着高校规模的扩大,实验室及仓库的增多,人工管理实验设备已变得过于 低效现设备管理的自动化。
实验室设备管理系统将贯穿于设备从购进到报废的整个流程的管理过程,帮 助管理员高效地管理整个高校的所有设备,并给上级领导提供一个审核监督管理 的平台。
二、 软件需求分析
确认测试报告
项目开发总结报告 最终用户手册
1. 引言
1.1 编写目的
此需求说明书详细陈述了“实验设备管理系统”的所提供各项功能。其中包括 用户的功能性需求以及非功能性需求,为用户提供完整且较详尽的系统功能运作 蓝图。同时为设计人员提供一个完整的、可靠的设计约束,以便高质量地设计、 编写代码,完成系项目预期目标。还给开发人员提供了参考。

实验室设备管理程序报告

实验室设备管理程序报告

实验室设备管理程序报告《管理信息系统》课程设计报告书实验室设备管理程序姓名:李晓红 110541114马宁宁 110541120郭颖洁 110541107李俊宏 110541113顾乡 110541106专业:工商管理指导老师:褚衍昌所属学院:经济与管理学院二0一三年七月目录第1章绪论················错误!未定义书签。

1.1项目背景················错误!未定义书签。

1.2基本情况介绍··············错误!未定义书签。

1.3小组分工................错误!未定义书签。

第2.章系统分析...............错误!未定义书签。

2.1可行性分析...............错误!未定义书签。

2.2实验室设备管理信息系统的项目进程. (5)2.3业务流程图···············错误!未定义书签。

2.4数据流程图 (2)第3.章系统设计···············错误!未定义书签。

3.1功能结构图 (2)3.2.功能模块················错误!未定义书签。

C语言课程设计报告—实验设备管理系统

C语言课程设计报告—实验设备管理系统

C语言课程设计报告—实验设备管理系统C语言程序设计报告一课程设计的目的提高程序设计能力,检验课堂教学内容,掌握程序设计的基本方法和调试技能。

二课程设计报告正文1 课程设计题目的原文;实验设备信息包括:设备编号、设备种类(如:微机打印机扫描仪等等)、设备名称、设备价格、设备购入日期、是否报废、报废日期等。

试设计一实验设备信息管理系统,使之能提供以下功能:(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的查询2 需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备编号设备种类设备购入日期正常设备(未报废的)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择。

3总体设计与模块的划分整个系统可设计为实验设备信息输入模块实验设备信息添加模块实验设备信息修改模块实验设备分类统计模块和实验设备查询模块。

4 建立实验设备信息结构体,结构体成员包括设备编号设备种类设备名称设备价格设备购入日期是否报废报废日期。

实验设备管理系统设计实验实验实验实验实验功能设备设备设备设备设备选择信息信息信息分内查询输入添加修改统计模块模块模块模块模块4 详细设计A 主函数void main(){Node *equip;FILE *fp;int flag;Node *p,*q;printf("\t\t\t\t设备管理系统\n");equip=(Node*)malloc(sizeof(Node)); equip->next=NULL; 开始 p=equip;fp=fopen("设备管理系统","wb+");显示一系列功能选择 q=(Node*)malloc(sizeof(Node));if(fread(q,sizeof(Node),1,fp)) //将文件的内容放入接点中{N q->next=NULL; 输入n,判断m p->next=q; 是否是0到4, p=q; //将该接点挂入链表中}fclose(fp); //关闭文件根据n值调用各 while(1) 功能模块函数 {printf("***********************目录********************************");结束 printf("\n1添加记录\n");printf("\n2修改记录\n");printf("\n3显示记录\n");printf("\n4统计分类记录\n");printf("\n0*-EXIT-*\n");printf("请输入你要操作的序号:");scanf("%d",&flag);switch(flag){case 0: printf("\n>>>>>>>>>>提示:已经退出系统,ByeBye!\n");break; case 1: Add(equip); break; //增加记录case 2: Modify(equip); break;//修改记录case 3: Disp(equip); break;//显示记录信息case 4: Tongji(equip); break;//统计记录default: printf("\n>>>>>>>>>>提示:输入错误!\n"); break; }}}B 各功能模块设计(1)输入模块Struct shebei{ char ID[10]; char name[15]; char kind[15]; char over[15]; char yesno[10]; char time[10];char price[10];};(2)追加模块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){输入ID号,并将指针置于最末printf(">>>>>>>>>>提示:输入0则返回主菜单!\n");尾 printf("\n请你输入设备ID号:");scanf("%s",id);if(strcmp(id,"0")==0) break; p=(Node *)malloc(sizeof(Node)); //申请空间依次输入shebei 结构体内容,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. 培养实际操作能力和团队协作精神。

二、实验环境1. 操作系统:Windows 102. 管理系统:企业资源计划(ERP)系统3. 实验工具:数据库管理系统(如MySQL)三、实验内容1. 管理系统概述管理系统是一种集成了企业内部管理各个方面的软件系统,旨在提高企业内部管理效率,降低管理成本,实现企业资源的优化配置。

管理系统通常包括以下几个模块:(1)供应链管理(SCM)(2)客户关系管理(CRM)(3)人力资源管理(HRM)(4)财务管理(FM)(5)生产管理(PM)2. 管理系统的安装与配置(1)安装ERP系统1)准备安装环境,包括操作系统、数据库管理系统等。

2)下载ERP系统安装包,并解压。

3)运行安装程序,按照提示进行安装。

4)完成安装后,进入系统配置界面。

(2)配置数据库1)创建数据库。

2)配置数据库连接信息。

3)设置用户权限。

3. 管理系统功能模块操作(1)供应链管理模块1)创建供应商信息。

2)管理采购订单。

3)处理入库、出库业务。

(2)客户关系管理模块1)创建客户信息。

2)管理销售订单。

3)跟踪客户服务。

(3)人力资源管理模块1)创建员工信息。

2)管理招聘、培训、绩效考核等业务。

(4)财务管理模块1)管理会计科目。

2)编制财务报表。

3)进行成本核算。

(5)生产管理模块1)创建产品信息。

2)管理生产计划。

3)跟踪生产进度。

4. 实验总结本次实验通过安装、配置和使用ERP系统,掌握了管理系统的基本概念、功能模块操作和实际应用。

以下是实验过程中的收获:1. 理解了管理系统的基本概念和功能,为以后的实际应用奠定了基础。

2. 掌握了ERP系统的安装、配置和使用方法,提高了实际操作能力。

3. 通过团队协作完成实验任务,培养了团队协作精神。

4. 发现了ERP系统在实际应用中存在的问题,为今后改进和完善系统提供了参考。

实验设备管理系统程序报告(DOC 51页)

实验设备管理系统程序报告(DOC 51页)目录一、需求与功能分析第二章概要设计 (5)2.1总体设计52.2面向对象设计52.3运行界面设计6第三章详细设计 (7)3.1 系统设计与实现 (7)3.2 模块设计 (8)第四章测试分析 (10)第五章课程设计总结 (10)附录:程序代码(仅电子版需要、纸质版不需要)..................................................................................一、需求与功能分析1.1需求为了方便管理校内各种实验设备,能够翻遍快捷的录入查询各个实验设备的基本信息而编写了此程序实验设备管理系统设计实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。

1.2主要功能:1、能够完成对设备的录入和修改。

2、对设备进行分类统计。

4、设备的破损耗费和遗损处理。

4、设备的查询。

1.3功能需求1、可实现管理员登陆管理系统,游客查询系统。

2、对实验设备类型的管理。

3、对实验设备各项信息的录入和修改。

4、对实验设备的分类查询统计。

5、对实验设备的遗损处理二、概要设计2.1总体设计程序总体共分为4个类:1、菜单类2、设备类型类3、设备类4、管理员类9.struct ShiyanEquip * type(DeviceTipe *a)//设备类型菜单三、详细设计3.1系统设计与实现接口设计:1.int menu1(device *p,struct ShiyanEquip *head,DeviceTipe *a,manager *b)[功能] 调用管理模式主菜单并指向管理模式各项分菜单2.int menu2(device *p,struct ShiyanEquip *head,DeviceTipe *a)[功能] 调用游客模式主菜单并指向游客模式各项分菜单3.struct ShiyanEquip * entering(device *p) [功能] 指向设备类中的新建,载入和添加函数并完成相应函数功能4.struct ShiyanEquip *entering2(device *p) [功能] 指向设备类中的载入函数并完成函数功能5.struct ShiyanEquip * change(device *p) [功能] 指向设备类中的修改和删除函数并完成相应函数功能6.struct ShiyanEquip * query(device *p) [功能] 指向设备类中的分类查询和全部查询函数并完成相应函数功能7.struct ShiyanEquip * statistic(device*p)[功能] 指向设备类中的分类统计函数并完成相应三类的统计8.struct ShiyanEquip * account(manager *b)[功能] 指向管理员类中的修改函数完成修改账户及密码的功能9.struct ShiyanEquip * type(DeviceTipe *a)[功能] 指向设备类型类中的各个函数并完成有关设备类型的全部功能3.2模块设计设备类型类:设备类:四、测试分析【测试中发现的问题及解决方案】1.缺少必要的文字描述(已解决)2.输出的格式问题(已解决)3.不能删除唯一一项数据的问题(已解决)4.设备操作中缺失最后一行的问题(已解决)5.不能返回上一级菜单的问题(已解决)6.价格统计时不能确定准确比较的问题(已解决)【对最终成果的评价】整体来说比较满意,是最近辛苦努力的伟大成果,但是有如下几点有待改进1.可以进行汉字输入但是不能进行汉字查询的问题2.管理员账号不能随意登出的问题3.设备类中没有使用private导致保密性不强的问题五、源程序#include<iostream>#include<fstream>#include<conio.h>#include<stdio.h>#include<iomanip>#include<windows.h>using namespace std;class DeviceTipe //定义设备类型类{private:char sblx[20][20]; //设备类型public:void shuru(); //设备类型的输入void tianjia(); //设备类型的添加void shanchu(); //设备类型的删除void show(); //设备类型的输出显示void xieru(); //设备类型的写入void duqu(); //设备类型的读取};//=================================== ===========================//=================================== ===========================class device //定义设备类{public:typedef struct infom{char idnum[10]; //编号char kind[10]; //类型char name[10]; //名称char price[10]; //价格char purda[10]; //购买日期char exist[10]; //是否报废char damda[10]; //报废日期struct infom *next;}Infom;Infom* head;DeviceTipe wcs;Infom* write() //设备的创建写入{fstream the("aaa.txt",ios::out|ios::app); Infom *p1,*p2;head=NULL;wcs.duqu();wcs.show();p1=p2=(Infom *)malloc(sizeof(Infom));cout<<"请输入编号种类名称价格购买日期是否报废报废日期(空格键断开/按0键结束输入):"<<endl;cin>>p1->idnum>>p1->kind>>p1->name>>p1->price>>p1->purda>>p1->exist>>p1->damda;the<<p1->idnum<<' '<<p1->kind<<' '<<p1->name<<' '<<p1->price<<' '<<p1->purda<<' '<<p1->exist<<' '<<p1->damda<<endl;p1->next=NULL;while(1){if(head==NULL)head=p1;if(head!=NULL)p2->next=p1;p2=p1;p1=(Infom *)malloc(sizeof(Infom)); cin>>p1->idnum;if(*(p1->idnum)=='0'){free(p1);break;}cin>>p1->kind>>p1->name>>p1->price>>p1->purda>>p1->exist>>p1->damda;the<<p1->idnum<<' '<<p1->kind<<' '<<p1->name<<' '<<p1->price<<' '<<p1->purda<<' '<<p1->exist<<' '<<p1->damda<<endl;}p2->next=NULL;the.close();cout<<"写入成功"<<endl;load();return head;}//=================================== ===========================Infom* load() //从文档中读取数据{int n,a;char tran[7][80];int b;Infom *p1,*p2;fstream t("aaa.txt");head=NULL;p1=p2=(Infom*)malloc(sizeof(Infom));if(t.getline(tran[0],80,'\n')==NULL) {cout<<"载入失败"<<endl;return 0;}for(n=0,a=0;tran[0][n]!=' ';n++){p1->idnum[a]=tran[0][n];a++;}p1->idnum[a]='\0';for(a=0,n=n+1;tran[0][n]!=' ';n++) {p1->kind[a]=tran[0][n];a++;}p1->kind[a]='\0';for(a=0,n=n+1;tran[0][n]!=' ';n++) {p1->name[a]=tran[0][n];a++;}p1->name[a]='\0';for(a=0,n=n+1;tran[0][n]!=' ';n++) {p1->price[a]=tran[0][n];a++;}p1->price[a]='\0';for(a=0,n=n+1;tran[0][n]!=' ';n++) {p1->purda[a]=tran[0][n];a++;}p1->purda[a]='\0';for(a=0,n=n+1;tran[0][n]!=' ';n++) {p1->exist[a]=tran[0][n];a++;}p1->exist[a]='\0';for(a=0,n=n+1;tran[0][n]!='\0';n++) {p1->damda[a]=tran[0][n];a++;}p1->damda[a]='\0';p1->next=NULL;for(b=1;t.getline(tran[b],80,'\n')!=NULL;b++) {if(head==NULL)head=p1;elsep2->next=p1;p2=p1;p1=(Infom*)malloc(sizeof(Infom));for(n=0,a=0;tran[b][n]!=' ';n++){p1->idnum[a]=tran[b][n];a++;}p1->idnum[a]='\0';for(a=0,n=n+1;tran[b][n]!=' ';n++){p1->kind[a]=tran[b][n];a++;}p1->kind[a]='\0';for(a=0,n=n+1;tran[b][n]!=' ';n++) {p1->name[a]=tran[b][n];a++;}p1->name[a]='\0';for(a=0,n=n+1;tran[b][n]!=' ';n++) { p1->price[a]=tran[b][n];a++;}p1->price[a]='\0';for(a=0,n=n+1;tran[b][n]!=' ';n++) {p1->purda[a]=tran[b][n];a++;}p1->purda[a]='\0';for(a=0,n=n+1;tran[b][n]!=' ';n++){p1->exist[a]=tran[b][n];a++;}p1->exist[a]='\0';for(a=0,n=n+1;tran[b][n]!='\0';n++){p1->damda[a]=tran[b][n];a++;}p1->damda[a]='\0';}p2->next=p1;p1->next=NULL;if(b==1)head=p1;cout<<"载入成功"<<endl;return head;}//=================================== ===========================void acquire(Infom* head) //分类查询数据{char choose;cout<<"请选择查询方式:"<<endl; cout<<"1. 编号"<<endl; cout<<"2. 名称"<<endl; cout<<"3. 类型"<<endl; cout<<"4. 价格"<<endl; cout<<"5. 购买日期"<<endl; cout<<"6. 是否报废"<<endl; cout<<"7. 报废日期"<<endl; cout<<"0. 结束查询"<<endl;choose=getch();switch(choose){case '1':acqu(choose);break;case '2':acqu(choose);break;case '3':acqu(choose);break;case '4':acqu(choose);break;case '5':acqu(choose);break;case '6':acqu(choose);break;case '7':acqu(choose);break;case '0':break;}}void acquire2(Infom* head) //查询全部数据{Infom* t=head;if(t==NULL)cout<<"对不起,信息不存在"<<endl;else{cout<<" 编号种类名称价格购买日期是否报废报废日期"<<endl;for(;t->next!=NULL;){cout<<setfill('')<<setw(10)<<t->idnum<<' '<<setfill('')<<setw(10)<<t->kind<<' '<<setfill('')<<setw(10)<<t->name<<' '<<setfill(' ')<<setw(10)<<t->price<<' '<<setfill(' ')<<setw(10)<<t->purda<<' '<<setfill(' ')<<setw(10)<<t->exist<<' '<<setfill(' ')<<setw(10)<<t->damda<<endl;t=t->next;}cout<<setfill('')<<setw(10)<<t->idnum<<' '<<setfill('')<<setw(10)<<t->kind<<' '<<setfill('')<<setw(10)<<t->name<<' '<<setfill('')<<setw(10)<<t->price<<' '<<setfill('')<<setw(10)<<t->purda<<' '<<setfill('')<<setw(10)<<t->exist<<' '<<setfill('')<<setw(10)<<t->damda<<endl;}}void acqu(char choose) //分类查询的内容支持{Infom* t=head;char *s;int a=0;char xyz[10];cout<<"请输入查询内容:";cin>>xyz;for(;t->next!=NULL;){switch(choose){case'1':s=t->idnum;break;case'2':s=t->name;break;case'3':s=t->kind;break;case'4':s=t->price;break;c ase'5':s=t->purda;break;case'6':s=t->exist;break;c ase'7':s=t->damda;break;}if(strcmp(s,xyz)==0){if(a==0)cout<<" 编号种类名称价格购买日期是否报废报废日期"<<endl;cout<<setfill('')<<setw(10)<<t->idnum<<' '<<setfill('')<<setw(10)<<t->kind<<' '<<setfill('')<<setw(10)<<t->name<<' '<<setfill('')<<setw(10)<<t->price<<' '<<setfill('')<<setw(10)<<t->purda<<' '<<setfill('')<<setw(10)<<t->exist<<' '<<setfill('')<<setw(10)<<t->damda<<endl;a++;}t=t->next;}switch(choose){case'1':s=t->idnum;break;case'2':s=t->name;break;case'3':s=t->kind;break;case'4':s=t->price;break;case'5':s=t->purda;break;c ase'6':s=t->exist;break;c ase'7':s=t->damda;break;}if(strcmp(s,xyz)==0){if(a==0)cout<<" 编号种类名称价格购买日期是否报废报废日期"<<endl;cout<<setfill('')<<setw(10)<<t->idnum<<' '<<setfill('')<<setw(10)<<t->kind<<' '<<setfill('')<<setw(10)<<t->name<<' '<<setfill('')<<setw(10)<<t->price<<' '<<setfill('')<<setw(10)<<t->purda<<' '<<setfill('')<<setw(10)<<t->exist<<' '<<setfill('')<<setw(10)<<t->damda<<endl;a++;}if(a==0)cout<<"对不起,您查询的信息不存在"<<endl;}//=================================== ===========================void add() //添加新内容{fstream the("aaa.txt",ios::out|ios::app);Infom *p1,*p2;head=NULL;wcs.duqu();wcs.show();p1=p2=(Infom *)malloc(sizeof(Infom));cout<<"请输入编号种类名称价格购买日期是否报废报废日期(空格键断开/按0键结束输入):"<<endl;cin>>p1->idnum>>p1->kind>>p1->name>>p1->price>>p1->purda>>p1->exist>>p1->damda;the<<p1->idnum<<' '<<p1->kind<<' '<<p1->name<<' '<<p1->price<<' '<<p1->purda<<' '<<p1->exist<<' '<<p1->damda<<endl;p1->next=NULL;while(1){if(head==NULL)head=p1;if(head!=NULL)p2->next=p1;p2=p1;p1=(Infom *)malloc(sizeof(Infom)); cin>>p1->idnum;if(*(p1->idnum)=='0'){free(p1);break;}cin>>p1->kind>>p1->name>>p1->price>>p1->purda>>p1->exist>>p1->damda;the<<p1->idnum<<' '<<p1->kind<<' '<<p1->name<<' '<<p1->price<<' '<<p1->purda<<' '<<p1->exist<<' '<<p1->damda<<endl;}p2->next=NULL;the.close();cout<<"添加成功"<<endl;load();}//=================================== ===========================void undo(Infom* head) //删除{struct infom *p1,*p2;char num[10];char aaa[10]="0";char choose;wcs.duqu();wcs.show();cout<<"请输入要删除的编号(空格键断开\按0键结束):"<<endl;while(1){cin>>num;if(strcmp(num,aaa)==0)break;if(head==NULL)cout<<"您使用的地址不存在"<<endl;else{p1=head;for(;strcmp(p1->idnum,num)!=0&&p1->next !=NULL;){p2=p1;p1=p1->next;}if(strcmp(p1->idnum,num)==0){if(p1==head){head=p1->next;free(p1);}else{p2->next=p1->next;p1->next=NULL;free(p1);}}elseif(strcmp(p1->idnum,num)!=0&&p1->next== NULL)cout<<"该内容不存在"<<endl;}}cout<<"输入'1'储存,输入'0'放弃"<<endl;choose=getch();switch(choose){case '1':save(head);break;case '0':break;}if(choose=='1'){cout<<"删除成功"<<endl;load();}}//=================================== ===========================int save(Infom* head) //将现数据进行保存{unlink("aaa.txt");fstream The("aaa.txt",ios::out|ios::app);Infom *p1;p1=head;if(p1==NULL)return 0;for(;p1->next!=NULL;){The<<p1->idnum<<' '<<p1->kind<<' '<<p1->name<<' '<<p1->price<<' '<<p1->purda<<' '<<p1->exist<<' '<<p1->damda<<endl;p1=p1->next;}The<<p1->idnum<<' '<<p1->kind<<' '<<p1->name<<' '<<p1->price<<' '<<p1->purda<<' '<<p1->exist<<' '<<p1->damda<<endl; The.close();return 0;}//=================================== ===========================void revise(Infom* head) //修改数据{char num[10];Infom *p1;char choose;char x;wcs.duqu();wcs.show();cout<<"请输入更改项目的编号:"<<endl;cin>>num;p1=head;for(;strcmp(p1->idnum,num)!=0&&p1->next !=NULL;){p1=p1->next;}if(p1->next==NULL&&strcmp(p1->idnum,num)!=0)cout<<"不存在此编号"<<endl;else{cout<<"请选择修改内容:"<<endl;cout<<"1. 编号"<<endl;cout<<"2. 名称"<<endl;cout<<"3. 类型"<<endl;cout<<"4. 价格"<<endl;c out<<"5. 购买日期"<<endl;c out<<"6. 是否报废"<<endl;c out<<"7. 报废日期"<<endl;c out<<"0. 结束修改"<<endl;choose=getch();cout<<"请输入修改内容:"<<endl;switch(choose){case '1':cin>>p1->idnum;break;case '2':cin>>p1->name;break;case '3':cin>>p1->kind;break;case '4':cin>>p1->price;break;case '5':cin>>p1->purda;break;case '6':cin>>p1->exist;break;case '7':cin>>p1->damda;break;case '0':break;}}cout<<"输入'1'储存,输入'0'放弃"<<endl;x=getch();switch(x){case '1':save(head);break;case '0':break;}}//=================================== ===========================void classify(Infom* head) //对数据的分类统计{char choose;cout<<"请选择统计内容:"<<endl;cout<<"1. 类型"<<endl;cout<<"2. 价格"<<endl;cout<<"3. 是否报废"<<endl; cout<<"0. 结束统计"<<endl;choose=getch();switch(choose){case '1':clasK(head) ;break;case '2':clasP(head) ;break;case '3':clasE(head) ;break;case '0':break;}}void clasK(Infom* head) //类型的分类统计{char a[20][10];int b[20]={1};int x;int y;int i;Infom *p1;p1=head;for(x=0,strcpy(a[0],p1->kind);p1->next!=NUL L;){p1=p1->next;for(y=0;y<=x;y++){if(strcmp(p1->kind,a[y])==0){b[y]++;break;}}if(y==x+1){x++;b[x]++;strcpy(a[x],p1->kind);}for(i=0;i<=x;i++){cout<<"类型:"<<a[i]<<' '<<"数量:"<<b[i]<<endl;}}void clasP(Infom* head) //价格的分类统计{int b[3]={0};int x;int y;int i;char trans[10];char de[10]="000005000";char deg[10]="000010000";Infom *p1;p1=head;for(;p1->next!=NULL;){x=strlen(p1->price);for(i=0,y=0;i<9;i++){if(i>=(9-x)){trans[i]=p1->price[y];y++;}elsetrans[i]='0';}if(strcmp(trans,de)<=0)b[0]++;if(strcmp(trans,de)>0&&strcmp(p1->price,de g)<0)b[1]++;if(strcmp(trans,deg)>=0)b[2]++;p1=p1->next;}x=strlen(p1->price);for(i=0,y=0;i<9;i++){if(i>=(9-x)){trans[i]=p1->price[y];y++;}elsetrans[i]='0';}if(strcmp(trans,de)<=0)b[0]++;if(strcmp(trans,de)>0&&strcmp(trans,deg)<0 )b[1]++;if(strcmp(trans,deg)>=0)b[2]++;p1=p1->next;cout<<"价格小于等于5000:" <<' '<<"数量:"<<b[0]<<endl;cout<<"价格大于5000小于10000:"<<' '<<"数量:"<<b[1]<<endl;cout<<"价格大于等于10000:" <<' '<<"数量:"<<b[2]<<endl;}void clasE(Infom* head) //是否报废的统计{char a[20][10];int b[20]={1};int x;int y;int i;Infom *p1;p1=head;for(x=0,strcpy(a[0],p1->exist);p1->next!=NUL L;){p1=p1->next;for(y=0;y<=x;y++){if(strcmp(p1->exist,a[y])==0){b[y]++;break;}}if(y==x+1){x++;b[x]++;strcpy(a[x],p1->exist);}}for(i=0;i<=x;i++){cout<<"是否报废:"<<a[i]<<' '<<"数量:"<<b[i]<<endl;}}};//==============================================================//=================================== ===========================int i,n=0; //设备类型类的函数实现部分void DeviceTipe::xieru(){ofstream fout("sblx.txt");char (*p)[20];p=sblx;for(i=0;i<n;i++){fout<<*(p+i)<<endl;}fout<<flush;fout.close();}//=================================== ===========================void DeviceTipe::duqu(){ifstream file;file.open("sblx.txt");char (*p)[20];p=sblx;i=0;do{file>>*(p+i);i++;}while(p[i][0]!='\0');for(i=0;p[i][0]!='\0';i++);n=i;file.close();}//=================================== ===========================void DeviceTipe::shuru(){char (*p)[20];p=sblx;system("cls");cout<<"请输入设备类型个数:"<<endl; cin>>n;cout<<"请依次输入设备类型名称"<<endl;for(i=0;i<n;i++){cin>>*(p+i);}}//=================================== ===========================void DeviceTipe::tianjia(){char (*p)[20];p=sblx;int k;system("cls");cout<<"请输入要添加的设备类型个数"<<endl;cin>>k;cout<<"请依次输入设备类型名称"<<endl; for(i=n;i<n+k;i++){cin>>*(p+i);}n=n+k;}//=================================== ===========================void DeviceTipe::shanchu(){char (*p)[20];char w[20];p=sblx;int x=0;int j;int r;cout<<"请输入要删除的设备类型"<<endl; cin>>w;for(i=0;i<n;i++){if(strcmp(w,*(p+i))==0)for(j=i;j<n;j++){strcpy(*(p+j),*(p+j+1));x=1;。

实验室设备管理系统概要设计报告

目录目录 (1)1引言 (2)1.1编写目的 (2)1.2背景 (2)1.3定义 (2)1.4参考资料 (2)2总体设计 (3)2.1需求规定 (3)2.2运行环境 (3)2.3基本设计概念和处理流程 (3)2.4功能需求与程序的关系 (4)2.5人工处理过程 (4)2.6尚未问决的问题 (4)3接口设计 (5)3.1 外部接口 (5)3.1.1 用户界面 (5)3.1.2 软件接口 (5)3.1.3 硬件接口 (5)3.2 内部接口 (5)3.1用户接口 (5)4运行设计 (6)4.1运行模块组合 (6)4.2运行控制 (6)4.3运行时间 (6)5系统数据结构设计 (6)5.1逻辑结构设计要点 (6)5.2物理结构设计要点 (7)5.3数据结构与程序的关系 (8)6系统出错处理设计 (8)6.1出错信息 (8)6.2补救措施 (8)6.3系统维护设计 (8)概要设计说明书1引言1.1编写目的1.1.1为开发人员、维护人员、客户之间提供共同的协议而创立基础,对实验室设备管理系统软件功能的实现作概要描叙。

1.1.2本说明书的预期读者为分析人员、测试人员、用户文档编写者、项目管理人员。

1.2背景说明:a.待开发软件系统的名称:实验室设备管理系统b.项目的任务提出者:第五组项目开发者:第五组用户:福建师范大学闽南科技学院实验室实现软件单位:福建师范大学闽南科技学院实验室1.3定义概要设计的基本目的是:概括地说,系统应该如何实现?这阶段的重要任务是设计软件的结构,也就是要确定系统中每个程序是有哪些模块组成的,以及这些模块相互间的关系。

1.4参考资料《软件工程导论》张海藩清华大学出版社实验室设备管理系统可行性研究报告第五组实验室设备管理系统需求分析报告第五组2总体设计2.1需求规定主要的输入输出项目:新设备信息、修理信息、申请购买信息、报废信息、具体查询统计要求;对实验室设备使用情况进行统计、更新。

2.2运行环境运行环境:windows 2000 以上2.3基本设计概念和处理流程处理流程图:系统的软件结构图:2.4功能需求与程序的关系本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:2.5人工处理过程人员对数据的查询2.6尚未问决的问题各个模块的数据字典和流程图,本概要设计中未能体现,但在详细设计中都会完成。

模拟设备管理实验报告

一、实验目的1. 理解操作系统设备管理的基本原理和过程。

2. 掌握独占设备的分配与回收算法。

3. 通过模拟实验,加深对设备管理策略和数据结构应用的理解。

二、实验环境1. 操作系统:Windows 102. 编程语言:C++3. 开发工具:Visual Studio 2019三、实验内容1. 设计一个模拟设备管理系统的程序,包括设备类表、设备表、进程队列等数据结构。

2. 实现设备分配、设备回收、查找等功能。

3. 模拟进程对设备的请求,观察设备分配与回收的过程。

四、实验步骤1. 定义数据结构```cppstruct Equipment {int id; // 设备IDint process_id; // 占用设备的进程IDbool is_allocated; // 设备是否已分配};struct EquipmentClass {int id; // 设备类IDint count; // 设备类数量int first_device_id; // 设备类第一个设备的IDint second_device_id; // 设备类第二个设备的ID};struct Process {int id; // 进程IDint equipment_id; // 请求的设备IDbool is_satisfied; // 进程是否满足};```2. 实现设备分配函数```cppbool allocate(int process_id, int equipment_id) {// 查找设备类for (int i = 0; i < equipment_classes.size(); i++) {if (equipment_classes[i].id == equipment_id) {// 查找空闲设备for (int j = 0; j < equipment_classes[i].count; j++) { if (equipment[j].is_allocated == false) {equipment[j].process_id = process_id;equipment[j].is_allocated = true;processes[process_id].is_satisfied = true;return true;}}break;}}processes[process_id].is_satisfied = false;return false;}```3. 实现设备回收函数```cppvoid reclaim(int process_id) {for (int i = 0; i < equipment.size(); i++) {if (equipment[i].process_id == process_id) { equipment[i].process_id = -1;equipment[i].is_allocated = false;break;}}}```4. 实现查找函数```cppbool find(int process_id) {for (int i = 0; i < equipment.size(); i++) {if (equipment[i].process_id == process_id) {return true;}}return false;}```5. 模拟进程请求设备```cppvoid simulate() {// 创建进程for (int i = 0; i < 5; i++) {processes[i].id = i;processes[i].equipment_id = i % 3 + 1; // 请求设备类ID为1、2、3}// 分配设备for (int i = 0; i < 5; i++) {allocate(processes[i].id, processes[i].equipment_id);}// 回收设备reclaim(1);reclaim(3);// 查找设备for (int i = 0; i < 5; i++) {if (find(processes[i].id)) {cout << "Process " << processes[i].id << " has equipment " << processes[i].equipment_id << endl;} else {cout << "Process " << processes[i].id << " does not have equipment" << endl;}}}```五、实验结果与分析通过模拟实验,我们可以观察到设备分配与回收的过程。

管理系统实验报告模板

实验名称:管理系统实验一、实验目的1. 理解管理系统的基本概念和功能。

2. 掌握管理系统的设计和实现方法。

3. 培养学生运用计算机技术解决实际问题的能力。

二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 数据库:MySQL 5.74. 编程语言:C#三、实验内容1. 管理系统的需求分析2. 管理系统的系统设计3. 管理系统的功能实现4. 管理系统的测试与优化四、实验步骤1. 需求分析(1)收集用户需求,确定管理系统的功能模块。

(2)分析功能模块之间的关系,绘制系统功能模块图。

2. 系统设计(1)选择合适的数据库,设计数据库表结构。

(2)设计系统界面,包括登录界面、主界面、各个功能模块界面。

(3)编写系统功能模块的代码。

3. 功能实现(1)实现用户登录功能,包括用户注册、登录验证。

(2)实现数据录入、查询、修改、删除功能。

(3)实现权限管理功能,包括用户角色分配、权限设置。

(4)实现系统日志功能,记录用户操作日志。

4. 测试与优化(1)进行功能测试,确保各个功能模块正常运行。

(2)进行性能测试,优化系统运行效率。

(3)进行安全性测试,确保系统安全可靠。

五、实验结果与分析1. 实验结果(1)成功实现了管理系统的各个功能模块。

(2)系统界面友好,操作简单易用。

(3)系统运行稳定,性能良好。

2. 实验分析(1)在需求分析阶段,充分考虑了用户需求,确保了系统功能的完整性。

(2)在系统设计阶段,合理选择了数据库和编程语言,提高了系统性能。

(3)在功能实现阶段,遵循了良好的编程规范,保证了代码的可读性和可维护性。

(4)在测试与优化阶段,对系统进行了全面的测试,确保了系统的稳定性和安全性。

六、实验总结1. 通过本次实验,掌握了管理系统的基本概念和功能。

2. 学会了运用计算机技术解决实际问题的方法。

3. 提高了编程能力和团队协作能力。

七、实验报告评分标准1. 实验内容完整,步骤清晰,符合实验要求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科实验报告课程名称:软件工程导论实验项目:实验室设备管理系统实验地点:实验楼210专业班级:软件1319 学号:********** 学生姓名:***指导教师:***2015年05 月21 日一、实验目的和要求1.系统简介某大学每学年都需要对实验室设备使用情况进行统计、更新。

其中:(1)对于已彻底损坏的实验设备做报废处理,同时详细记录有关信息。

(2)对于有严重问题(故障)的需要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。

(3)对于急需使用但实验室目前又缺乏的设备,需以“申请表”的形式送交上级领导请求批准购买。

新设备购入后要立即进行设备登记(包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同时更新申请表的内容。

(4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段等条件进行查询。

2.技术要求及限制条件(1)所有工作由专门人员负责完成,其他人不得任意使用。

(2)每件设备在做入库登记时均由系统按类别加自动顺序号编号,形成设备号;设备报废时要及时修改相应的设备记录,且有领导认可。

(3)本系统的数据存储至少包括:设备记录、修理记录、报废记录、申请购买记录。

(4)本系统的输入项至少包括:新设备信息、修理信息、申请购买信息、具体查询统计要求。

(5)本系统的输出项至少包括:设备购买申请表、修理/报废设备资金统计表。

二、实验内容和原理可行性分析报告可行性研究主要是初步确定项目的规模和目标,确定项目的约束和限制。

对于项目的功能和性能方面的要求进行简要的概述。

详见组长田彦博的实验报告。

需求规格说明书需求规格说明书主要是进一步定制实验室设备管理系统软件开发的细节问题,便于用户与开发商协调工作。

在此主要绘制了系统的数据流图、相应的数据字典、E-R图、以及系统的功能图,对于各个方面的需求进行了详细的阐述。

详见组长田彦博的实验报告。

概要设计说明书概要设计说明书是为了说明整个实验室设备管理系统的体系架构,以及需求用例的各个功能点在架构中的体现。

在此主要绘制了系统流程图、总体结构和模块的外部设计,而且对于数据库中逻辑结构方面也进行了详细的设计。

详见组长田彦博的实验报告。

详细设计说明书------设备报废管理模块(一)、引言1.1编写目的:此详细设计说明书是为了说明整个实验室设备管理系统(laboratory equipment management system)各个层次中的每个程序(每个模块或子程序)的实际考虑,为程序员编写程序提供依据。

1.2项目背景:●项目的委托单位:学校;●项目的开发单位:自由小组。

●项目的主管部门:学校信息化管理中心。

1.4参考资料:[1]李爱萍.《软件工程》(第1版),人民邮电出版社[2]自编《软件工程实验指导书》[3]李东生等编著《软件工程——原理、方法和工具》[4]张海藩编著,软件工程导论,北京:清华大学出版社,2003 第4版(二)、任务概述2.1功能:设备报废管理模块:对于已经损坏的设备在符合报废标准的情况下做报废处理,并且能及时修改相应的设备记录,能查询到已经报废的设备号及设备名称等详细信息。

2.2输入和输出项目:设备报废管理模块:输入:已损坏设备的设备号,设备名称;输出:报废设备资金统计表以及报废设备的设备号,报废原因,报废日期,所属实验室,报废意见,责任人签名等详细信息。

2.3算法和程序逻辑:设备报废管理模块:1.模块伪代码:判断是查询还是记录报废设备IF 为记录则在窗体上显示出报废信息文本框将文本框的内容存入各个变量打开数据库,打开报废记录表将相关变量写入报废记录表的新建项的各个项目Return 报废记录已写入EndifIF 为查询则将窗体上的报废时间或者报废设备栏数据写入变量打开数据库,打开报废记录表If 为按设备名查询则在列名为设备名的列用变量查询IF 有项与变量相同则返回该项的相关信息到程序窗体上显示ELSE返回“无此类设备报废”EndifEndifIF 为按报废时间查询则在列名为报废日期的列用变量查询IF 有项小于变量则返回该项的相关信息到程序上显示ELSE返回“无此类设备报废”EndifEndifEndif2. 算法流程图:3.盒图(N-S ):开始是 是否为记录 否输入报废相关信息输入报废设备号及名称输出查询结果打开数据库报废记录表,并进行记录 提示已经写入数据库结束4.问题分析图(PAD ):2.4数据库逻辑设计:设备报废管理模块数据类型及定义见表一。

表2.5存储分配:实验室设备的所有信息都存在数据库中,权限信息的所有资料也仍在数据库中。

系统启动界面,友好用户欢迎及与管理系统主系统界面的程序设计尚未需要设计到数据查询等功能,因此可以不分配存储空间。

而其他系统,子程序都需要涉及到数据库的查询,添加等操作,因此需要存储分配。

2.6限制条件:操作系统限制: windows98及以上内存要求:256MB以上CPU:P4及以上硬盘:空余600MB空间2.7测试要点:黑盒测试:也称功能测试或者数据驱动测试。

是根据软件的规格对软件进行的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像是一个黑盒子。

软件测试人员以用户的角度,通过各种输入和观察软件的各种输出结果来发现软件存在的缺陷,而不关心程序具体如何实现的一种测试方法。

在黑盒测试方案中,采用等价划分技术设计。

白盒测试:也称结构测试或者逻辑驱动测试。

白盒测试与黑盒测试不同,测试人员将程序视作一个透明的白盒子,测试人员了解程序的内部结构和处理过程,以检查处理过程的细节为基础,要求对程序的结构特性做到一定程度的覆盖,对程序中的所以逻辑路径进行测试,并检验内部控制结构是否有错,确定实际的运行状态与预期的状态是否一致。

在白盒测试方法中,采用路径覆盖。

三、主要仪器设备●硬件:惠普6470b笔记本CPU:Intel 酷睿i5 3230M、内存:4GB(4GB×1) DDR3、硬盘:500GB●软件:Java语言编译器、Access 2007、Visio 2007Eclipse:3.8.0、JDK:1.6.0_45四、操作方法与实验步骤编码部分1.设备报废管理模块package实验室;import java.awt.BorderLayout;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;public class LaboratoryDelate extends JPanel implements ActionListener{Connection con;Statement sql;JTextField t1, t2, t3, t4, t5, t6;JButton b;Box baseBox, bv1, bv2;LaboratoryDelate() {try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} catch (ClassNotFoundException e) {}try {con= DriverManager.getConnection("jdbc:odbc:laboratory", "", "");sql = con.createStatement();} catch (SQLException ee) {}setLayout(new BorderLayout());b = new JButton("报废");b.setBackground(Color.cyan);b.addActionListener(this);t1 = new JTextField(8);t1.addActionListener(this);t2 = new JTextField(16);t3 = new JTextField(16);t4 = new JTextField(16);t5 = new JTextField(16);t6 = new JTextField(16);t2.setEditable(false);t3.setEditable(false);t4.setEditable(false);t5.setEditable(false);t6.setEditable(false);JPanel p1 = new JPanel(), p2 = new JPanel(); p1.add(new JLabel("输入要报废的设备号"));p1.add(t1);p1.add(b);bv1 = Box.createVerticalBox();bv1.add(new JLabel("设备型号"));bv1.add(Box.createVerticalStrut(8));bv1.add(new JLabel("设备名"));bv1.add(Box.createVerticalStrut(8));bv1.add(new JLabel("报废日期"));bv1.add(Box.createVerticalStrut(8));bv1.add(new JLabel("实验室"));bv1.add(Box.createVerticalStrut(8));bv1.add(new JLabel("责任人"));bv1.add(Box.createVerticalStrut(8));bv2 = Box.createVerticalBox();bv2.add(t2);bv2.add(Box.createVerticalStrut(8));bv2.add(t3);bv2.add(Box.createVerticalStrut(8));bv2.add(t4);bv2.add(Box.createVerticalStrut(8));bv2.add(t5);bv2.add(Box.createVerticalStrut(8));bv2.add(t6);bv2.add(Box.createVerticalStrut(8)); baseBox = Box.createHorizontalBox(); baseBox.add(bv1);baseBox.add(Box.createHorizontalStrut(10)); baseBox.add(bv2);p2.add(baseBox);add(p1, "North");add(p2, "Center");setSize(350,300);setBackground(Color.LIGHT_GRAY);}public void actionPerformed(ActionEvent e) {if (e.getSource() == t1) {try {delete();} catch (SQLException ee) {}} else if (e.getSource() == b) {try {delete();} catch (SQLException ee) {}int n = JOptionPane.showConfirmDialog(this, "确定要报废该设备吗?", "确定", JOptionPane.YES_NO_OPTION);if (n == JOptionPane.YES_OPTION) {try {String s1 = "'" + t1.getText().trim() + "'";String temp = "DELETE FROM student WHERE id=" + s1;con= DriverManager.getConnection("jdbc:odbc:laboratory", "","");sql.executeUpdate(temp);JOptionPane.showMessageDialog(this, "报废处理成功!", "提示对话框",RMATION_MESSAGE);con.close();} catch (SQLException ee) {}} else if (n == JOptionPane.NO_OPTION) {}}}public void delete() throws SQLException {String type, name, date, laboratory, managementer;con = DriverManager.getConnection("jdbc:odbc:laboratory", "", "");type = t1.getText().trim();ResultSet rs = sql.executeQuery("SELECT * FROM laboratory where laboratory='"+ type + "'");if (rs.next()) {type = rs.getString("type");name = rs.getString("name");date = rs.getString("date");laboratory = rs.getString("laboratory");managementer = rs.getString("managementer");t2.setText(type);t3.setText(name);t4.setText(date);t5.setText(laboratory);t6.setText(managementer);// break;// }} else {JOptionPane.showMessageDialog(this, "没有该设备!", "提示对话框",RMATION_MESSAGE);}con.close();}}设备报废模块界面如图1所示。

相关文档
最新文档