XX学院
软件学院
课程设计报告
设计名称: 实验设备理系统
设计题目: 实验设备理系统
专业班级: 软件工程班
学生姓名:
学生成绩:
指导教师(职称):
课题工作时间: 2013年12月20日2014年1月8日
软件学院课程设计务书
学生姓 名
学 号
专业
班级
软件工程班
设计题
目
实验设备理系统
容概:
学年实验室设备情况进行统计更新中:
(1)已彻底损坏作报废处理时详细记录关信息
(2)严重问题(障)修理记录修理日期设备名修理厂家修理费责等
(3)急需缺少设备需申请表形式送交级领导请求批准购买新设备购入立进行设备登记(包括类设备名型号规格单价数量购置日期生产厂家购买等)时更新申请表容
(4)时现设备修理报废情况进行统计查询求够类时间段(某日期前)查询
文献资料:
Java面象程序设计耿祥义张跃编著清华学出版社
SQL Server 数库教程(2008版) 郑阿奇刘启芬顾韵华编民邮电出版社
设计求:
(1)工作专门员负责完成意
(2)件设备作入库登记时均系统类动序编号形成设备号设备报废时时修改相应设备记录领导认
(3)系统数存储少应包含:设备记录修理记录报废记录购买申请
(4)系统输入项少包含:新设备信息修理信息申请购买信息报废信息具体查询统计求
(5)系统输出项少包含:设备购买申请表修理报废注销设备资金统计表
工作期限:
设计工作2013年12月20日2014年01月08日止
指导教师: 院:
日 期:2014年01月06日
课程设计:实验室设备理系统
项目理:
阶段
时间
务
参员
产生文档
项目理
20131221
确定课题组织组员合理分工
分工明细项目进程表
需求分析
20131222
确定软件功需求性需求运行环境约束编制软件需求规格说明软件系统确认测试准
需求规格说明书
确认测试准
概设计
20131223
建立软件系统总体结构模块间关系定义功模块接口涉全局数库规定涉约束制定组装测试计划
概设计说明书
组装测试计划
数库设计
20131224
根概设计软件必须数库进行分析设计
数库设计说明书
详细设计
20131225
概设计产生功模块逐步细化形成干编程程序模块
模块测试方案
编码
20131226
20140101
根详细设计文档详细设计转化求编程语言数库语言程序程序进行调试程序单元测试验证程序模块详细设计文档致性
源程序清单
测试
单元测试
20140102
20140103
采白盒测试技术进行测试:
1 模块接口测试
2 模块局部数结构测试
3 模块边界条件测试
4 模块中独立执行通路测试
5 模块条错误处理通路测试
单元测试报告
综合测试
20140104
发现接口关种错误
综合测试报告
确认测试
20140104
检查软件否满足软件需求说明书中确认标准
确认测试报告
项目实施
20140104
20140104
完善程序流图
书写软件说明书户手册
项目开发总结报告
终户手册
二 软件需求分析
1 引言
11 编写目
需求说明书详细陈述实验设备理系统提供项功中包括户功性需求非功性需求户提供完整较详系统功运作蓝图时设计员提供完整设计约束便高质量设计编写代码完成系项目预期目标开发员提供参考
需求说明书预期读者项目理设计员开发员户等
12 背景
说明:
a开发软件系统名称:实验设备理系统
b项目务提出者:西安文理学院
c项目开发者:
d项目户:西安文理学院相关理员
e该软件系统系统机构基相互关系:西安文理学院财务理软件系统相应接口
13 定义
LEM实验室设备理系统(Laboratory Equipment Management)
2 务概述
21 目标
着高校规模扩实验室仓库增工理实验设备已变低效解决问题高校实验室设备理系统实现设备理动化
实验室设备理系统贯穿设备购进报废整流程理程帮助理员高效理整高校设备级领导提供审核监督理台
22 户特点
软件户: 西安文理学院相关理员
通常认:户具较高文化水学力具定计算机水验解整LEM系统工作流程注意事项时LEM系统基操作困难执行参考户手册情况需进行专业培训利系统
3 需求规定
31 功性需求规定
311 系统整体功层次图
312 业务流程分析
数流图:
流程详细说明:
(1) 仓库理员统计仓库中设备库存量找出库存量足设备填写购买申请表领导申请表进行审核审核通产生购买报表交购买员
(2) 购买员购买设备购买信息交购买登记员进行购买登记购买登记员查询申请审核表设备分配仓库
(3) 仓库理员购买设备进行入库登记出库登记
(4) 实验室理员负责报废设备进行报废登记处理找出维修设备填写维修申请表领导维修申请表进行审核通产生维修报表交维修员维修员设备送交某修理厂家进行维修
(5) 设备维修完交原实验室实验室理员进行维修登记
312 系统户列表
高校LEM面五类户:系统理员购买登记员仓库理员实验室理员级领导类户通高校LEM系统进行设备理交流该系统户提供功
1系统理员
1.注册系统户
2.注销系统户
3.数库维护
4.信息维护
2购买登记员
1. 购买员提交购买信息进行登记记录关设备基信息设备购买信息价格数量等
2.查询领导购买申请审核信息
3.根审核信息购买设备分配相应仓库关详单提交仓库理员
4.信息维护
3仓库理员
1. 根购买登记员提交详单进行入库登记
2. 根实验室理员提交详单进行出库登记
3. 查询统计仓库中设备库存量统计出库存量足设备
4. 根统计信息进行购买申请
5. 信息维护
4实验室理员
1. 理实验室中设备找出需维修设备进行维修申请
2. 维修设备进行报废记录
3. 查询统计实验室设备拥量统计出数量足设备产生详单提交仓库理员
4. 已维修完成设备根维修员提交维修单进行维修记录
5. 信息维护
5级领导
1. 查购买申请表申请进行审核审核产生购买订单交购买员
2. 查维修申请表申请进行审核审核产生维修订单交维修员
3. 信息维护
32 软件系统数字典
321数流条目
① 登陆信息
输入:设备理员
输出:身份验证1
描述:登陆信息户名+密码+登陆权限
② 查询信息
输入:合法员设备查询操作
输出:设备信息表
描述:查询信息设备名型号类购置日期
③ 维修信息
输入:需维修设备信息
输出:确定维修设备记录
描述:维修信息设备名+修理日期+修理厂家+修理费+负责
④ 新设备
输入:购买设备信息
输出:确定购买新设备记录
描述:新设备类+设备名+型号+规格+单价+数量等
⑤ 报废设备
输入:需报废设备信息
输出:报废设备记录
描述:报废设备类+设备名+型号等
⑥ 审核信息
输入:审核3
输出:级领导
描述:审核信息报废设备信息新设备购买记录
322加工条目
身份验证1统计查询21维修22购买23报废24生产报表31审核32
323文件条目
⑦ 登陆表
输入:身份验证1
输出:身份验证1
数结构:户名+密码+登陆权限
⑧ 设备基信息表
输入:统计查询21
数结构:类+设备名+型号+规格等
⑨ 维修记录表
输入:统计查询21维修22
输出:统计查询21
数结构:设备名+修理日期+修理厂家+修理费+责等
⑩ 新设备表
输入:统计查询21购买22
输出:统计查询21
数结构:类+设备名+型号+规格+单价+数量+生产厂家+购买等
⑪ 报废记录表
输入:报废24统计查询21生产报表31
输出:统计查询21生产报表31
数结构:类+设备名+型号等
⑫ 申请表
输入:统计查询21生产报表31
输出:统计查询21生产报表31购买23
数结构:设备名+型号+规格+数量+负责
33 非功新需求规定
331 精度
软件输入精度:
a输入数字信息精度保留数点两位
b输入公司单位名称必须全称简称者简写
e输入选信息时拉框容备选选择行输入
332 时间特性需求
该软件时间特性求:
a响应时间:7秒钟
b更新处理时间:6秒钟
333 灵活性
该软件灵活性求(需求发生某变化时该软件变化适应力):
a运行环境变化:实现跨台操作
b软件接口变化:设计元化接口实现软件接口间通信
c精度效时限变化:统修改数精度效时限数库容
334 性
系统性指:系统规定条件规定时间完成规定功力
影响性操作流程:
1 新增户时出现信息法提交情况
2 设备购买登记阶段出现设备信息法写入购买信息登记错误
系统LEM系统性求较高具体求:
1 全部录入信息纸质详单购买详单维修详单等准
2 数正确性需方核查
3 动种信息数进行备份
4 报表生成纸质电子报表相致
34 输入输出求
输入:
a 输入数数字信息符合输入精度求
b 输入选信息完全拉框完成
输出:
a 输出数符合输出精度求
b 输出数格式字体统
34障处理求
服务器死机时求服务器必须2时恢复数必须3时恢复
4 运行环境规定
41 设备
运行该软件需硬设备包括:
1 处理器型号:Intel Core2
2 存容量:100G
3 硬盘:120G
42 支持软件
1 操作系统:windows7操作系统版
2 数库:Sql Server 2008 R2版数库
3 MyEclipse开发工具
5文化政策需求
引起户文化突出现敏感应出现字眼图片符合国家基法律法规新国家营销市场战略相关政策国社会义政策相违背
三:软件设计
1实验室设备理系统模块结构图
2界面设计
(1) 登录界面
(2)意注册理员登录界面
3实验室设备理系统数设计
4理系统中3模块详细设计
① 级领导操作模块
②设备理员操作模块
③ 统功操作模块
5数库设计
1 模型图
2 ER图
3 物理实现
(1) 实体表
1 户表(UserInfo)
字段
类型
备注
uId
Varchar(15)
户名键
uName
Varchar(15)
姓名
uPasswd
Varchar(15)
密码
uPosition
Varchar(15)
身份键
2 仓库理员表(StoreManagerInfo)
字段
类型
备注
uId
Varchar(15)
户名键
sId
Varchar(15)
仓库编号外键约束仓库表
3实验室理员表(LabManagerInfo)
字段
类型
备注
uId
Varchar(15)
户名键
lId
Varchar(15)
仓库编号外键约束实验室表
4仓库表(StoreInfo)
字段
类型
备注
sId
Varchar(15)
仓库编号键
sName
Varchar(15)
仓库名称
sPlace
Varchar(15)
校区
5实验室表(LabInfo)
字段
类型
备注
lId
Varchar(15)
实验室编号键
lName
Varchar(15)
实验室名称
lPlace
Varchar(15)
校区
5设备表(EquipInfo)
字段
类型
备注
eId
Varchar(15)
设备编号键
eName
Varchar(15)
设备名称
eStandard
Varchar(15)
规格型号
eProCompany
Varchar(15)
生产厂商
eType
Varchar(15)
设备类型
6固定资产表(PropertyInfo)
字段
类型
备注
pId
Varchar(15)
固定资产编号键
eId
Varchar(15)
属设备编号外键约束设备表
lId
Varchar(15)
实验室编号外键约束实验室表
(2) 关系表
1 入库登记表(InInfo)
字段
类型
备注
eId
Varchar(15)
设备编号键外键约束设备表
sId
Varchar(15)
仓库编号键外键约束仓库表
iDate
DateTime
入库时间键
iNum
int
入库数量
2出库登记表(OutInfo)
字段
类型
备注
eId
Varchar(15)
设备编号键外键约束设备表
sId
Varchar(15)
仓库编号键外键约束仓库表
lId
Varchar(15)
实验室编号键外键约束实验室表
iDate
DateTime
出库时间键
iNum
int
出库数量
(3) 记录表
1购买申请表(BuyApplyInfo)
字段
类型
备注
baId
Varchar(15)
序列号键
eId
Varchar(15)
设备编号外键约束设备表
smName
Varchar(15)
申请外键约束仓库理员表
baDate
DateTime
申请时间
baNum
Int
申请数量
2维修申请表(MaintainInfo)
字段
类型
备注
maId
Varchar(15)
序列号键
pId
Varchar(15)
固定资产编号外键约束固定资产表
lmName
Varchar(15)
申请外键约束实验室理员表
maDate
DateTime
申请时间
3购买登记表(BuyInfo)
字段
类型
备注
bId
Varchar(15)
序列号键
eId
Varchar(15)
设备编号外键约束设备表
bPrice
Money
购买单价
bDate
DateTime
购买时间
bNum
Int
购买数量
4维修记录表(MaintainInfo)
字段
类型
备注
mId
Varchar(15)
序列号键
pId
Varchar(15)
固定资产编号外键约束固定资产表
mDate
DateTime
维修时间
5报废记录表(DiscardInfo)
字段
类型
备注
dId
Varchar(15)
序列号键
pId
Varchar(15)
固定资产编号外键约束固定资产表
dDate
DateTime
报废时间
6 购买审核表(BuyCheckInfo)
字段
类型
备注
bcId
Varchar(15)
序列号键
baId
Varchar(15)
申请序列号外键约束购买申请表
olName
Varchar(15)
审核外键约束级领导表
bcDate
DateTime
审核时间
7维修审核表(MaintainCheckInfo)
字段
类型
备注
mcId
Varchar(15)
序列号键
maId
Varchar(15)
申请序列号外键约束维修申请表
olName
Varchar(15)
审核外键约束级领导表
mcDate
DateTime
审核时间
四编码单元测试
1户登录界面:
package comniitgui_event
import comniitlogical*
import javaawt*
import javaawtevent*
import javaxswing*
public class Login extends JFrame {
**
*
*
private static final long serialVersionUID 1L
控件声明
private JLabel lPosition lName lPasswd lTitle
private JComboBox cbPosition cbName
private JPasswordField pfPasswd
private JButton bConfirm bCancel
private Container con
private JPanel[] pCon
private User info
public Login() {
super(户登录)
控件初始化
con getContentPane()
lPosition new JLabel(身 份:)
lName new JLabel(户名:)
lPasswd new JLabel(密 码:)
lTitle new JLabel(实验室设备理系统)
lTitlesetForeground(ColorRED)
pfPasswd new JPasswordField()
bConfirm new JButton(确定)
bCancel new JButton(取消)
String[] aPosition new String[] { 系统理员 仓库理员 实验室理员购买登记员 级领导 }
cbPosition new JComboBox(aPosition)
int index cbPositiongetSelectedIndex()
if (index 0) {
info new Administration()
} else if (index 1) {
info new StoreManager()
} else if (index 2) {
info new LabManager()
} else if (index 3) {
info new BuyManager()
} else {
info new OverLeader()
}
数组初始化
pCon new JPanel[5]
String[] cName infogetIdByPosition(info)
cbName new JComboBox(cName)
for (int i 0 i < pConlength i++)
pCon[i] new JPanel()
}
public void launch() {
控件添加
consetLayout(new GridLayout(5 1))
pCon[0]add(lPosition)
pCon[0]add(cbPosition)
pCon[1]add(lName)
pCon[1]add(cbName)
pCon[2]add(lPasswd)
pCon[2]add(pfPasswd)
pCon[3]add(bConfirm)
pCon[3]add(bCancel)
pCon[4]add(lTitle)
add(pCon[4])
for (int i 0 i < pConlength 1 i++)
conadd(pCon[i])
控件设置
pfPasswdsetEchoChar('*')
pfPasswdsetColumns(10)
setBounds(400 100 400 400)
setVisible(true)
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE)
添加监听器
cbPositionaddActionListener(new ListenAction())
bConfirmaddActionListener(new ListenAction())
bCanceladdActionListener(new ListenAction())
pfPasswdaddKeyListener(new ListenKey())
}
定义钮拉框处理器
class ListenAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (egetSource() bConfirm) {点击确定钮
infosetuId(cbNamegetSelectedItem()toString())
infosetuPasswd(new String(pfPasswdgetPassword()))
infosetuPosition(cbPositiongetSelectedItem()toString())
if (infologin(info)) {
new Main(info)launch()
setVisible(false)
pfPasswdsetText(null)
} else {
JOptionPaneshowMessageDialog(new Login() 户名密码身份错误)
pfPasswdsetText(null)
}
} else if (egetSource() cbPosition) {身份拉框改变时
int index cbPositiongetSelectedIndex()
if (index 0) {
info new Administration()
} else if (index 1) {
info new StoreManager()
} else if (index 2) {
info new LabManager()
} else if (index 3) {
info new BuyManager()
} else {
info new OverLeader()
}
String[] cName infogetIdByPosition(info)
刷新户名列表
cbNameremoveAllItems()
for (int i 0 i < cNamelength i++)
cbNameaddItem(cName[i])
} else {
Systemexit(0)
}
pfPasswdsetText(null)
}
}
定义键盘处理器
class ListenKey extends KeyAdapter {
@SuppressWarnings(staticaccess)
public void keyPressed(KeyEvent e) {
if (egetKeyText(egetKeyCode())compareToIgnoreCase(ENTER) 0) {
bConfirmdoClick()
}
}
}
}
}
2界面:
package comniitgui_event
import javaxswing*
import comniitlogical*
import javaawtevent*
public class Main extends JFrame {
**
*
*
private static final long serialVersionUID 1L
private JTabbedPane tp
private JPanel p[]
private User info
public Main() {
super(实验室设备理系统)
tp new JTabbedPane()
p new JPanel[8]
}
public Main(User info){
this()
thisinfoinfo
p[0] new UserManage()
p[1] new EquipIn()
p[2] new EquipOut()
p[3] new Register(info)
p[4] new Apply(info)
p[5] new Checks(info)
p[6] new Search()
p[7]new PasswdModyfy(info)
}
public void launch() {
tpaddTab(户理 p[0])
tpaddTab(设备入库 p[1])
tpaddTab(设备出库 p[2])
tpaddTab(设备登记 p[3])
tpaddTab(设备申请 p[4])
tpaddTab(审核申请 p[5])
tpaddTab(统计查询 p[6])
tpaddTab(信息维护 p[7])
if(info instanceof Administration){
tpsetEnabledAt(1 false)
tpsetEnabledAt(2 false)
tpsetEnabledAt(3 false)
tpsetEnabledAt(4 false)
tpsetEnabledAt(5 false)
tpsetEnabledAt(6 false)
}else if(info instanceof StoreManager){
tpsetEnabledAt(0 false)
tpsetEnabledAt(3 false)
tpsetEnabledAt(5 false)
tpsetSelectedIndex(1)
}else if(info instanceof LabManager){
tpsetEnabledAt(0 false)
tpsetEnabledAt(1 false)
tpsetEnabledAt(2 false)
tpsetEnabledAt(5 false)
tpsetSelectedIndex(3)
}else if(info instanceof BuyManager){
tpsetEnabledAt(0 false)
tpsetEnabledAt(1 false)
tpsetEnabledAt(2 false)
tpsetEnabledAt(4 false)
tpsetEnabledAt(5 false)
tpsetSelectedIndex(3)
}else if(info instanceof OverLeader){
tpsetEnabledAt(0 false)
tpsetEnabledAt(1 false)
tpsetEnabledAt(2 false)
tpsetEnabledAt(3 false)
tpsetEnabledAt(4 false)
tpsetSelectedIndex(5)
}
getContentPane()add(tp)
setSize(1280 780)
setVisible(true)
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
Systemexit(0)
}
})
}
}
3设备申请:
package comniitgui_event
import javaxswing*
import comniitlogical*
import javaawt*
import javaawtevent*
import comniitdata*
import javasql*
public class MaintainApply extends JPanel {
**
*
*
private static final long serialVersionUID 1L
private JLabel lpId
private JTextField tf
private JButton bApply bAgain bDelete
private JPanel pUp pDown
private JTable t
private JScrollPane jsp
private User user
private LabManager lm
private MaintainApplyData maInfo
public MaintainApply(User user) {
super(new BorderLayout())
thisuser user
lpId new JLabel(固定资产编号)
tf new JTextField()
tfsetColumns(15)
bApply new JButton(申请)
bAgain new JButton(重置)
bDelete new JButton(取消申请)
pUp new JPanel()
pDown new JPanel()
lm new LabManager()
maInfo new MaintainApplyData()
String[] head new String[] { 序列号 固定资产编号 申请 申请时间 }
Object[][] data lmgetMaintainApplyAll()
t new JTable(data head)
tsetRowHeight(25)
jsp new JScrollPane(t)
pUpadd(lpId)
pUpadd(tf)
pUpadd(bApply)
pUpadd(bAgain)
pDownadd(bDelete)
add(pUp BorderLayoutNORTH)
add(jsp BorderLayoutCENTER)
add(pDown BorderLayoutSOUTH)
添加监听器
bApplyaddActionListener(new ListenButton())
bAgainaddActionListener(new ListenButton())
bDeleteaddActionListener(new ListenButton())
}
处理器
class ListenButton implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (egetSource() bApply) { 申请钮
maInfosetpId(new Integer(tfgetText()))
maInfosetuId(usergetuId())
maInfosetDate(new Date(SystemcurrentTimeMillis()))
lmadd(maInfo)
bAgaindoClick()
} else if (egetSource() bAgain) { 重置钮
tfsetText(null)
} else if (egetSource() bDelete) { 删钮
int selectedIndex 1
for (int i 0 i < tgetRowCount() i++) {
if (tisRowSelected(i) true)
selectedIndex i
}
if (selectedIndex 1) {
JOptionPaneshowMessageDialog(null 请先选择某项)
return
} else {
int option JOptionPaneshowConfirmDialog(null 否确定删?
提示 JOptionPaneYES_NO_CANCEL_OPTION)
if (option JOptionPaneYES_OPTION) {
maInfosetId(new Integer(tgetValueAt(selectedIndex 0)
toString()))
lmdelete(maInfo)
}
}
}
刷新数表
remove(jsp)
String[] head new String[] { 序列号 固定资产编号 申请 申请时间 }
Object[][] data lmgetMaintainApplyAll()
t new JTable(data head)
tsetRowHeight(25)
tvalidate()
jsp new JScrollPane(t)
add(jsp BorderLayoutCENTER)
validate()
}
}
}
4设备入库:
package comniitgui_event
import javaawtBorderLayout
import javaawtCursor
import javaxswing*
import javaawt*
import comniitlogical*
import javaawtevent*
import javasqlDate
import comniitdata*
public class EquipIn extends JPanel {
**
*
*
private static final long serialVersionUID 1L
private JLabel leId lsId liNum lPara
private JTextField tfiNum
private JComboBox cbeId cbsId
private JButton bIn bAgain bDelete
private JPanel pUp pDown
private JScrollPane jsp
private JTable t
private StoreManager sma
private InData inInfo
public EquipIn() {
super(new BorderLayout()) 设置布局理器
控件初始化
leId new JLabel(设备编号)
lsId new JLabel(仓库编号)
liNum new JLabel(入库数量)
lPara new JLabel(参数设置)
lParasetForeground(ColorRED)
tfiNum new JTextField()
tfiNumsetColumns(10)
bIn new JButton(入库)
bAgain new JButton(重置)
bDelete new JButton(删)
pUp new JPanel()
pDown new JPanel()
sma new StoreManager()
inInfo new InData()
String[] eId smageteId()
String[] sId smagetsIdAll()
cbeId new JComboBox(eId)
cbsId new JComboBox(sId)
String[] head new String[] { 设备编号 仓库编号 入库时间 入库数量 }
Object[][] data smagetInAll()
t new JTable(data head)
tsetRowHeight(25)
jsp new JScrollPane(t)
添加控件
pUpadd(leId)
pUpadd(cbeId)
pUpadd(lsId)
pUpadd(cbsId)
pUpadd(liNum)
pUpadd(tfiNum)
pUpadd(bIn)
pUpadd(bAgain)
pUpadd(lPara)
pDownadd(bDelete)
add(pUp BorderLayoutNORTH)
add(jsp BorderLayoutCENTER)
add(pDown BorderLayoutSOUTH)
添加监听器
bInaddActionListener(new ListenButton())
bAgainaddActionListener(new ListenButton())
bDeleteaddActionListener(new ListenButton())
lParaaddMouseListener(new ListenMouse())
}
定义钮处理器
class ListenButton implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (egetSource() bIn) { 点击入库钮
inInfoseteId(cbeIdgetSelectedItem()toString())
inInfosetsId(cbsIdgetSelectedItem()toString())
inInfosetDate(new Date(SystemcurrentTimeMillis()))
inInfosetNum(new Integer(tfiNumgetText()))
smaadd(inInfo)
bAgaindoClick()
} else if (egetSource() bAgain) { 点击重置钮
tfiNumsetText(null)
} else if (egetSource() bDelete) { 点击删钮
int selectedIndex 1
for (int i 0 i < tgetRowCount() i++) {
if (tisRowSelected(i) true)
selectedIndex i
}
if (selectedIndex 1) {
JOptionPaneshowMessageDialog(null 请先选择某项)
return
} else {
int option JOptionPaneshowConfirmDialog(null 否确定删?
提示 JOptionPaneYES_NO_CANCEL_OPTION)
if (option JOptionPaneYES_OPTION) {
inInfoseteId((String) tgetValueAt(selectedIndex 0))
inInfosetsId((String) tgetValueAt(selectedIndex 1))
inInfosetDate((Date) tgetValueAt(selectedIndex 2))
smadelete(inInfo)
}
}
}
刷新数表
remove(jsp)
String[] head new String[] { 设备编号 仓库编号 入库时间 入库数量 }
Object[][] data smagetInAll()
t new JTable(data head)
tsetRowHeight(25)
tvalidate()
jsp new JScrollPane(t)
add(jsp BorderLayoutCENTER)
validate()
}
}
定义鼠标处理器
class ListenMouse extends MouseAdapter {
public void mouseEntered(MouseEvent e) {
lParasetCursor(new Cursor(CursorHAND_CURSOR))
}
public void mousePressed(MouseEvent e) {
new ParameterSet()
}
}
}
5户理
package comniitgui_event
import javaawtBorderLayout
import javaawtGridLayout
import javaawtevent*
import javaawt*
import javaxswing*
import comniitlogical*
public class UserManage extends JPanel {
**
*
*
private static final long serialVersionUID 1L
private JLabel[] lArray new JLabel[7]
private JButton[] bArray new JButton[3]
private JTextField[] tfArray new JTextField[2]
private JPasswordField[] pfArray new JPasswordField[2]
private JPanel[] pArray new JPanel[4]
private JComboBox cbPosition cbSL
private JScrollPane jsp
private JTable t
private Administration Admin
private StoreManager sma
private LabManager lm
public UserManage() {
super(new BorderLayout()) 设置布局理器
控件初始化
lArray[0] new JLabel(注册身份)
lArray[1] new JLabel(户名)
lArray[2] new JLabel(姓名)
lArray[3] new JLabel(密码)
lArray[4] new JLabel(确认密码)
lArray[5] new JLabel(编号)
lArray[6] new JLabel(参数设置)
bArray[0] new JButton(注册)
bArray[1] new JButton(重置)
bArray[2] new JButton(删)
for (int i 0 i < 2 i++) {
tfArray[i] new JTextField()
tfArray[i]setColumns(10)
pfArray[i] new JPasswordField()
pfArray[i]setColumns(10)
pArray[i] new JPanel()
}
pArray[2] new JPanel()
pArray[3] new JPanel(new GridLayout(2 1))
String[] position new String[] { 系统理员 仓库理员 实验室理员 购买登记员
级领导 }
cbPosition new JComboBox(position)
cbSL new JComboBox()
Admin new Administration()
sma new StoreManager()
lm new LabManager()
String[] head new String[] { 户名 姓名 身份 }
Object[][] data AdmingetAll()
t new JTable(data head)
tsetRowHeight(25)
jsp new JScrollPane(t)
属性设置
lArray[5]setVisible(false)
cbSLsetVisible(false)
lArray[6]setForeground(ColorRED)
控件添加
pArray[0]add(lArray[0])
pArray[0]add(cbPosition)
pArray[0]add(lArray[1])
pArray[0]add(tfArray[0])
pArray[0]add(lArray[2])
pArray[0]add(tfArray[1])
pArray[1]add(lArray[3])
pArray[1]add(pfArray[0])
pArray[1]add(lArray[4])
pArray[1]add(pfArray[1])
pArray[1]add(lArray[5])
pArray[1]add(cbSL)
pArray[1]add(bArray[0])
pArray[1]add(bArray[1])
pArray[1]add(lArray[6])
pArray[2]add(bArray[2])
pArray[3]add(pArray[0])
pArray[3]add(pArray[1])
add(pArray[3] BorderLayoutNORTH)
add(jsp BorderLayoutCENTER)
add(pArray[2] BorderLayoutSOUTH)
添加监听器
bArray[0]addActionListener(new ListenAction())
bArray[1]addActionListener(new ListenAction())
bArray[2]addActionListener(new ListenAction())
cbPositionaddActionListener(new ListenAction())
lArray[6]addMouseListener(new ListenMouse())
}
定义钮拉框动作处理器
class ListenAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
AdminsetuId(tfArray[0]getText())
AdminsetuName(tfArray[1]getText())
AdminsetuPasswd(new String(pfArray[0]getPassword()))
AdminsetuPosition(cbPositiongetSelectedItem()toString())
if (egetSource() bArray[0]) { 点击注册钮
if (tfArray[0]getText()equals()
|| new String(pfArray[0]getPassword())toString()
equals()) {
JOptionPaneshowMessageDialog(null 户名密码空)
bArray[1]doClick()
return
}
String[] strKey new String[] { AdmingetuId()
AdmingetuPosition() }
if (AdmingetKey()contains(strKey)) {
JOptionPaneshowMessageDialog(null 户已存)
bArray[1]doClick()
return
}
if (new String(pfArray[0]getPassword())equals(new String(
pfArray[1]getPassword()))) {
JOptionPaneshowMessageDialog(null 密码致)
bArray[1]doClick()
return
}
Adminadd(Admin)
if (cbPositiongetSelectedItem()equals(仓库理员)) {
smasetuId(tfArray[0]getText())
smasetsId(cbSLgetSelectedItem()toString())
Adminadd(sma)
} else if (cbPositiongetSelectedItem()equals(实验室理员)) {
lmsetuId(tfArray[0]getText())
lmsetlId(cbSLgetSelectedItem()toString())
Adminadd(lm)
}
bArray[1]doClick()
} else if (egetSource() bArray[1]) { 点击重置钮
tfArray[0]setText(null)
tfArray[1]setText(null)
pfArray[0]setText(null)
pfArray[1]setText(null)
} else if (egetSource() bArray[2]) { 点击删钮
int selectedIndex 1
for (int i 0 i < tgetRowCount() i++) {
if (tisRowSelected(i) true)
selectedIndex i
}
if (selectedIndex 1) {
JOptionPaneshowMessageDialog(null 请先选择某项)
return
} else {
int option JOptionPaneshowConfirmDialog(null 否确定删?
提示 JOptionPaneYES_NO_CANCEL_OPTION)
if (option JOptionPaneYES_OPTION) {
AdminsetuId((String) tgetValueAt(selectedIndex 0))
AdminsetuPosition((String) tgetValueAt(selectedIndex
2))
Admindelete(Admin)
}
}
} else if (egetSource() cbPosition) { 改变身份拉框时
if (cbPositiongetSelectedItem()equals(仓库理员)) {
lArray[5]setText(仓库编号)
lArray[5]setVisible(true)
cbSLsetVisible(true)
cbSLremoveAllItems()
String[] sId AdmingetsIdAll()
for (int i 0 i < sIdlength i++)
cbSLaddItem(sId[i])
} else if (cbPositiongetSelectedItem()equals(实验室理员)) {
lArray[5]setText(实验室编号)
lArray[5]setVisible(true)
cbSLsetVisible(true)
cbSLremoveAllItems()
String[] sId AdmingetlIdAll()
for (int i 0 i < sIdlength i++)
cbSLaddItem(sId[i])
} else {
lArray[5]setVisible(false)
cbSLsetVisible(false)
}
}
刷新数表
remove(jsp)
String[] head new String[] { 户名 姓名 身份 }
Object[][] data AdmingetAll()
t new JTable(data head)
tsetRowHeight(25)
tvalidate()
jsp new JScrollPane(t)
add(jsp BorderLayoutCENTER)
validate()
}
}
定义鼠标事件处理器
class ListenMouse extends MouseAdapter {
public void mouseEntered(MouseEvent e) {
lArray[6]setCursor(new Cursor(CursorHAND_CURSOR))
}
public void mousePressed(MouseEvent e) {
new ParameterSet()
}
}
}
6设备统计查询:
package comniitgui_event
import javaawt*
import javaawteventActionEvent
import javaawteventActionListener
import javaxswing*
import comniitdataInData
import comniitdataOutData
import comniitlogicalLabManager
import comniitlogicalStoreManager
public class Search extends JPanel {
**
*
*
private static final long serialVersionUID 1L
private JRadioButton rbStore rbLab rbeId rbSingleeId
private JComboBox cbStore cbLab cbeId
private JLabel lStore lLab leId
private JTable t
private JScrollPane jsp
private JPanel pUp pDown p
private StoreManager sma
private InData inInfo
public Search() {
super(new BorderLayout())
rbStore new JRadioButton(仓库库存统计 true)
rbLab new JRadioButton(实验室库存统计)
rbeId new JRadioButton(设备 true)
rbSingleeId new JRadioButton(单设备)
sma new StoreManager()
inInfo new InData()
cbStore new JComboBox(smagetsIdAll())
cbLab new JComboBox(smagetlIdAll())
cbeId new JComboBox(smageteId())
lStore new JLabel(仓库编号)
lLab new JLabel(实验室编号)
leId new JLabel(设备编号)
cbLabsetVisible(false)
lLabsetVisible(false)
leIdsetVisible(false)
cbeIdsetVisible(false)
pUp new JPanel()
pDown new JPanel()
p new JPanel()
pUpadd(rbStore)
pUpadd(lStore)
pUpadd(cbStore)
pUpadd(rbLab)
pUpadd(lLab)
pUpadd(cbLab)
pDownadd(rbeId)
pDownadd(rbSingleeId)
pDownadd(leId)
pDownadd(cbeId)
psetLayout(new GridLayout(2 1))
padd(pUp)
padd(pDown)
inInfosetsId(cbStoregetSelectedItem()toString())
String[] head new String[] { 设备编号 仓库编号 库存量 }
Object[][] data smagetCountKunCunAll(inInfo)
t new JTable(data head)
tsetRowHeight(25)
jsp new JScrollPane(t)
add(p BorderLayoutNORTH)
add(jsp BorderLayoutCENTER)
添加监听器
rbStoreaddActionListener(new ListenAction())
rbLabaddActionListener(new ListenAction())
rbeIdaddActionListener(new ListenAction())
rbSingleeIdaddActionListener(new ListenAction())
cbStoreaddActionListener(new ListenAction())
cbLabaddActionListener(new ListenAction())
cbeIdaddActionListener(new ListenAction())
}
定义处理器
class ListenAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (egetSource() rbStore) {
rbLabsetSelected(false)
} else if (egetSource() rbLab) {
rbStoresetSelected(false)
} else if (egetSource() rbeId) {
rbSingleeIdsetSelected(false)
} else if (egetSource() rbSingleeId) {
rbeIdsetSelected(false)
}
StoreManager sma new StoreManager()
LabManager lm new LabManager()
String[] head null
Object[][] data null
InData idInfo new InData()
OutData odInfo new OutData()
idInfoseteId(cbeIdgetSelectedItem()toString())
idInfosetsId(cbStoregetSelectedItem()toString())
odInfoseteId(cbeIdgetSelectedItem()toString())
odInfosetlId(cbLabgetSelectedItem()toString())
if (rbStoreisSelected()) {
lStoresetVisible(true)
cbStoresetVisible(true)
lLabsetVisible(false)
cbLabsetVisible(false)
rbLabsetSelected(false)
head new String[] { 设备编号 仓库编号 库存量 }
if (rbeIdisSelected()) {
leIdsetVisible(false)
cbeIdsetVisible(false)
rbSingleeIdsetSelected(false)
data smagetCountKunCunAll(idInfo)
} else {
leIdsetVisible(true)
cbeIdsetVisible(true)
rbeIdsetSelected(false)
data smagetCountKunCun(idInfo)
}
} else {
lStoresetVisible(false)
cbStoresetVisible(false)
lLabsetVisible(true)
cbLabsetVisible(true)
rbStoresetSelected(false)
head new String[] { 设备编号 实验室编号 库存量 }
if (rbeIdisSelected()) {
leIdsetVisible(false)
cbeIdsetVisible(false)
rbSingleeIdsetSelected(false)
data lmgetCountKunCunAll(odInfo)
} else {
leIdsetVisible(true)
cbeIdsetVisible(true)
rbeIdsetSelected(false)
data lmgetCountKunCun(odInfo)
}
}
刷新数表
remove(jsp)
t new JTable(data head)
tsetRowHeight(25)
tvalidate()
jsp new JScrollPane(t)
add(jsp BorderLayoutCENTER)
validate()
}
}
}
package shebeiguanli
*
*
Title实验室设备理系统报废记录查询页面
* @author gengdexin
*
import javaio*
import javanet*
import javasql*
import javalang*
import javaxsql*
import javaawt*
import javaawtevent*
import javaxswing*
import comborlandjbcllayout*
import comborlanddbswing*
public class Frame6 extends JFrame {
JPanel contentPane
JLabel jLabel1 new JLabel()
XYLayout xYLayout1 new XYLayout()
JLabel jLabel2 new JLabel()
JLabel jLabel3 new JLabel()
JTextField jTextField1 new JTextField()
JLabel jLabel4 new JLabel()
JTextField jTextField2 new JTextField()
JPanel jPanel1 new JPanel()
XYLayout xYLayout2 new XYLayout()
JScrollPane jScrollPane1 new JScrollPane()
JLabel jLabel5 new JLabel()
JTextField jTextField3 new JTextField()
public Frame6() {
enableEvents(AWTEventWINDOW_EVENT_MASK)
try {
jbInit()
}
catch(Exception e) {
eprintStackTrace()
}
}
private void jbInit() throws Exception {
contentPane (JPanel) thisgetContentPane()
contentPanesetLayout(xYLayout1)
thissetSize(new Dimension(600 500))
thissetTitle(实验室设备理系统)
thisaddHierarchyBoundsListener(new Frame6_this_hierarchyBoundsAdapter(this))
jLabel1setFont(new javaawtFont(SansSerif 0 25))
jLabel1setForeground(Colorred)
jLabel1setText(实验室设备理系统)
contentPanesetForeground(Colorblack)
jLabel2setFont(new javaawtFont(SansSerif 0 30))
jLabel2setText(设备报废记录查询)
jLabel3setFont(new javaawtFont(SansSerif 0 20))
jLabel3setText(设备名称)
jTextField1setText()
jLabel4setEnabled(true)
jLabel4setFont(new javaawtFont(SansSerif 0 20))
jLabel4setText(设备型号)
jTextField2setText()
jTextField2addActionListener(new Frame6_jTextField2_actionAdapter(this))
jPanel1setLayout(xYLayout2)
jLabel5setFont(new javaawtFont(SansSerif 0 25))
jLabel5setForeground(Colorred)
jLabel5setText(该报废设备详细信息)
jTextField3setText()
contentPaneadd(jLabel1 new XYConstraints(200 0 30050))
contentPaneadd(jLabel2 new XYConstraints(200 47 300 58))
contentPaneadd(jLabel3 new XYConstraints(47 102 101 42))
contentPaneadd(jTextField1 new XYConstraints(128 108 112 34))
contentPaneadd(jTextField2 new XYConstraints(361 107 109 36))
contentPaneadd(jPanel1 new XYConstraints(75 166 453 277))
jPanel1add(jScrollPane1 new XYConstraints(14 8 433 221))
jScrollPane1getViewport()add(jTextField3 null)
jPanel1add(jLabel5 new XYConstraints(112 240 1 1))
contentPaneadd(jLabel4 new XYConstraints(278 111 1 1))
}
protected void processWindowEvent(WindowEvent e) {
superprocessWindowEvent(e)
if (egetID() WindowEventWINDOW_CLOSING) {
Systemexit(0)
}
}
void Select() {
try {
String str1 str2
str1 jTextField1getText()
str2 jTextField2getText()
Connection con null
String url jdbcodbcshebeiguanli
String user
String password
ClassforName(sunjdbcodbcJdbcOdbcDriver)
con DriverManagergetConnection(urluserpassword)
Statement stmt concreateStatement()
PreparedStatement pstmt conprepareStatement(
use shebeiguanli select * from 报废记录 where 设备型号 and 设备名 )
pstmtsetString(2 str1)
pstmtsetString(1 str2)
ResultSet res pstmtexecuteQuery()
String id
String name
String guigedanjiadaychangjiapeonum
String outputarea 设备型号 + 设备名称 + 报废记录 + 责 +'\n'
if(resnext()){
do{
id resgetString(1)
name resgetString(2)
dayresgetString(5)
peoresgetString(7)
outputarea+ +id+ +name+ +day+ +peo+ +\n
jTextField3setText(outputarea)
}
while(resnext())
}
else{
jTextField3setText(存)
}
}catch (ClassNotFoundException e) {
Systemoutprintln(egetMessage())
}catch (SQLException edd) {
eddprintStackTrace()
Systemoutprintln(eddgetMessage())
}
}
void this_ancestorMoved(HierarchyEvent e) {
}
void jTextField2_actionPerformed(ActionEvent e) {
Select()
}
}
class Frame6_this_hierarchyBoundsAdapter extends javaawteventHierarchyBoundsAdapter {
Frame6 adaptee
Frame6_this_hierarchyBoundsAdapter(Frame6 adaptee) {
thisadaptee adaptee
}
public void ancestorMoved(HierarchyEvent e) {
adapteethis_ancestorMoved(e)
}
}
class Frame6_jTextField2_actionAdapter implements javaawteventActionListener {
Frame6 adaptee
Frame6_jTextField2_actionAdapter(Frame6 adaptee) {
thisadaptee adaptee
}
public void actionPerformed(ActionEvent e) {
adapteejTextField2_actionPerformed(e)
}
}
7设备申请:
package comniitgui_event
import javaawt*
import javaawtevent*
import javaxswing*
import javasqlDate
import comniitdataBuyApplyData
import comniitlogical*
public class BuyApply extends JPanel {
**
*
*
private static final long serialVersionUID 1L
private JLabel leId lNum
private JPanel pUp pDown
private JButton bApply bAgain bDelete
private JTable t
private JScrollPane jsp
private JComboBox cbeId
private JTextField tfNum
private User user
private StoreManager sma
private BuyApplyData baInfo
public BuyApply(User user) {
super(new BorderLayout()) 设置布局理器
thisuser user
控件初始化
leId new JLabel(设备编号)
lNum new JLabel(申请数量)
bApply new JButton(申请)
bAgain new JButton(重置)
bDelete new JButton(删)
sma new StoreManager()
baInfo new BuyApplyData()
String[] head new String[] { 序列号 设备编号 申请 申请时间 申请数量 }
Object[][] data smagetBuyApplyAll()
t new JTable(data head)
tsetRowHeight(25)
jsp new JScrollPane(t)
String[] eId smageteId()
cbeId new JComboBox(eId)
tfNum new JTextField()
tfNumsetColumns(15)
pUp new JPanel()
pDown new JPanel()
控件添加
pUpadd(leId)
pUpadd(cbeId)
pUpadd(lNum)
pUpadd(tfNum)
pUpadd(bApply)
pUpadd(bAgain)
pDownadd(bDelete)
add(pUp BorderLayoutNORTH)
add(jsp BorderLayoutCENTER)
add(pDown BorderLayoutSOUTH)
添加监听器
bApplyaddActionListener(new ListenButton())
bAgainaddActionListener(new ListenButton())
bDeleteaddActionListener(new ListenButton())
}
定义钮处理器
class ListenButton implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (egetSource() bApply) { 点击申请钮
baInfoseteId(cbeIdgetSelectedItem()toString())
baInfosetuId(usergetuId())
baInfosetDate(new Date(SystemcurrentTimeMillis()))
baInfosetbaNum(new Integer(tfNumgetText()))
smaadd(baInfo)
bAgaindoClick()
} else if (egetSource() bAgain) { 点击重置钮
tfNumsetText(null)
} else if (egetSource() bDelete) { 点击删钮
int selectedIndex 1
for (int i 0 i < tgetRowCount() i++) {
if (tisRowSelected(i) true)
selectedIndex i
}
if (selectedIndex 1) {
JOptionPaneshowMessageDialog(null 请先选择某项)
return
} else {
int option JOptionPaneshowConfirmDialog(null 否确定删?
提示 JOptionPaneYES_NO_CANCEL_OPTION)
if (option JOptionPaneYES_OPTION) {
baInfosetId(new Integer(tgetValueAt(selectedIndex 0)
toString()))
smadelete(baInfo)
}
}
}
刷新数表
remove(jsp)
String[] head new String[] { 序列号 设备编号 申请 申请时间 申请数量 }
Object[][] data smagetBuyApplyAll()
t new JTable(data head)
tsetRowHeight(25)
tvalidate()
jsp new JScrollPane(t)
add(jsp BorderLayoutCENTER)
validate()
}
}
}
8审核申请:
package comniitgui_event
import javaawt*
import javaawtevent*
import javasqlDate
import javaxswing*
import comniitdata*
import comniitlogical*
class MaintainCheck extends JPanel{
**
*
*
private static final long serialVersionUID 1L
private JLabel lLeftlRight
private JPanel pLeftpRightpCenterpCUppCDown
private JButton bUpbDown
private JTable tLefttRight
private JScrollPane jspLeftjspRight
private User user
public MaintainCheck(User user){
thisuseruser
lLeftnew JLabel(未审核列表)
lRightnew JLabel(已审核列表)
bUpnew JButton(通)
bDownnew JButton(通)
pLeftnew JPanel()
pRightnew JPanel()
pCenternew JPanel()
pCUpnew JPanel()
pCUpadd(bUp)
pCDownnew JPanel()
pCDownadd(bDown)
pCentersetLayout(new GridLayout(21))
pCenteradd(pCUp)
pCenteradd(pCDown)
OverLeader olnew OverLeader()
String[] headRightnew String[]{审核表序列号申请表序列号审核审核时间审核结果}
Object[][] dataRightolgetMaintainCheckAll()
tRightnew JTable(dataRightheadRight)
tRightsetRowHeight(25)
jspRightnew JScrollPane(tRight)
String[] headLeftnew String[]{序列号固定资产编号申请申请时间}
Object[][] dataLeftolgetMaintainApplyAll()
tLeftnew JTable(dataLeftheadLeft)
tLeftsetRowHeight(25)
jspLeftnew JScrollPane(tLeft)
pLeftsetLayout(new BorderLayout())
pRightsetLayout(new BorderLayout())
pLeftadd(lLeftBorderLayoutNORTH)
pLeftadd(jspLeftBorderLayoutCENTER)
pRightadd(lRightBorderLayoutNORTH)
pRightadd(jspRightBorderLayoutCENTER)
setLayout(new GridLayout(13))
add(pLeft)
add(pCenter)
add(pRight)
bUpaddActionListener(new ListenButton())
bDownaddActionListener(new ListenButton())
}
class ListenButton implements ActionListener{
public void actionPerformed(ActionEvent e){
int selectedIndex 1
for (int i 0 i < tLeftgetRowCount() i++) {
if (tLeftisRowSelected(i) true)
selectedIndex i
}
if (selectedIndex 1) {
JOptionPaneshowMessageDialog(null 请先选择某项)
return
} else {
int option JOptionPaneshowConfirmDialog(null
否确定审核申请? 提示 JOptionPaneYES_NO_CANCEL_OPTION)
if (option JOptionPaneYES_OPTION) {
MaintainCheckData info new MaintainCheckData()
infosetaId(new Integer(tLeftgetValueAt(selectedIndex 0)toString()))
infosetuId(usergetuId())
infosetDate(new Date(SystemcurrentTimeMillis()))
if(egetSource()bUp){
infosetResult(通)
}else if(egetSource()bDown){
infosetResult(通)
}
OverLeader olnew OverLeader()
oladd(info)
}
}
刷新
remove(jspLeft)
remove(jspRight)
OverLeader olnew OverLeader()
String[] headRightnew String[]{审核表序列号申请表序列号审核审核时间审核结果}
Object[][] dataRightolgetMaintainCheckAll()
tRightnew JTable(dataRightheadRight)
tRightsetRowHeight(25)
tRightvalidate()
jspRightnew JScrollPane(tRight)
String[] headLeftnew String[]{序列号固定资产编号申请申请时间}
Object[][] dataLeftolgetMaintainApplyAll()
tLeftnew JTable(dataLeftheadLeft)
tLeftsetRowHeight(25)
tLeftvalidate()
jspLeftnew JScrollPane(tLeft)
pLeftsetLayout(new BorderLayout())
pRightsetLayout(new BorderLayout())
pLeftadd(lLeftBorderLayoutNORTH)
pLeftadd(jspLeftBorderLayoutCENTER)
pRightadd(lRightBorderLayoutNORTH)
pRightadd(jspRightBorderLayoutCENTER)
setLayout(new GridLayout(13))
validate()
}
}
}
9信息维护(修改密码):
package comniitgui_event
import javaxswing*
import javaawt*
import javaawtevent*
import comniitlogical*
public class PasswdModyfy extends JPanel{
**
*
*
private static final long serialVersionUID 1L
private JLabel lOPasswdlNPasswdlCPasswd
private JPasswordField pfOPasswdpfNPasswdpfCPasswd
private JButton bModifybAgain
private JPanel[] pnew JPanel[4]
private User user
public PasswdModyfy(User user){
thisuseruser
lOPasswdnew JLabel(原密码)
lNPasswdnew JLabel(新密码)
lCPasswdnew JLabel(确认密码)
pfOPasswdnew JPasswordField()
pfOPasswdsetColumns(15)
pfNPasswdnew JPasswordField()
pfNPasswdsetColumns(15)
pfCPasswdnew JPasswordField()
pfCPasswdsetColumns(15)
bModifynew JButton(修改)
bAgainnew JButton(重置)
for(int i0i
p[0]add(lOPasswd)
p[0]add(pfOPasswd)
p[1]add(lNPasswd)
p[1]add(pfNPasswd)
p[2]add(lCPasswd)
p[2]add(pfCPasswd)
p[3]add(bModify)
p[3]add(bAgain)
setLayout(new GridLayout(41))
add(p[0])
add(p[1])
add(p[2])
add(p[3])
添加监听器
bModifyaddActionListener(new ListenButton())
bAgainaddActionListener(new ListenButton())
}
class ListenButton implements ActionListener{
public void actionPerformed(ActionEvent e){
if(egetSource()bModify){
usersetuPasswd(new String(pfNPasswdgetPassword()))
if(pfNPasswdgetPassword()toString()equals()){
JOptionPaneshowMessageDialog(null 密码空)
return
}
if(userlogin(user)){
JOptionPaneshowMessageDialog(null 原密码错误)
bAgaindoClick()
return
}
if(new String(pfNPasswdgetPassword())equals(new String(pfCPasswdgetPassword()))){
JOptionPaneshowMessageDialog(null 密码致)
bAgaindoClick()
return
}
if(userupdate(user)1){
JOptionPaneshowMessageDialog(null 密码修改成功您重新登录)
bAgaindoClick()
}
}else{
pfOPasswdsetText(null)
pfNPasswdsetText(null)
pfCPasswdsetText(null)
}
}
}
}
五:软件测试
1. 设计测试例
测试方案:
测试方案采黑盒法设计基测试方案黑盒法测试方案中采等价划分技术
测试模块:
⑴ 户登陆模块
⑵ 设备查询模块
⑶ 报废记录查询模块
⑷ 维修记录更新模块
⑸ 维修记录查询模块
⑹ 购买设备申请模块
⑺ 退出系统模块
2. 软件测试结果
例1
项目软件
实验室设备理系统
编制时间
20140102
功模块名
户登陆模块
例编号
户登录表
功特性
户身份验证
测试目
验证否输入合法信息允许合法登陆阻止非法登陆
测试数
户名 administration 密码admin 登陆权限系统理员
操作步骤
操作描述
数
期结果
实际结果
测试状态
1
输入户名密码登陆权限
户名administration 密码 admin 登录
显示进入页面
期结果
正常
2
输入户名密码登陆权限
户名 administration 密码0000000
密码错误
期结果
正常
项目软件
实验室设备理系统
编制时间
20140102
功模块名
设备查询模块
例编号
设备记录表
功特性
查询实验室设备情况
测试数
设备型号E002 设备名计算机 规格eeeeee 单价5000 购买日期20140102
生产厂商联想 数量1
操作步骤
操作描述
数
期结果
实际结果
测试状态
1
输入设备型号设备名
设备型号E002设备名计算机
设备型号E002 设备名计算机 规格eeeeee 单价5000 购买日期20140102
生产厂商联想 数量1
期结果
正常
2
输入设备型号设备名
设备名计算机
设备型号E003
记录
期结果
正常
例3
项目软件
实验室设备理系统
编制时间
20140103
功模块名
报废记录查询模块
例编号
报废记录表
功特性
查询实验室设备报废情况
测试数
设备编号 E002 设备名计算机 报废日期20140103
操作步骤
操作描述
数
期结果
实际结果
测试状态
1
输入设备编号设备名
设备编号E002设备名计算机 报废日期20140103
设备编号 E002 设备名计算机 报废日期20140103
期结果
正常
2
输入设备编号设备名
设备名计算机
设备编号 E003
记录
期结果
正常
例4
项目软件
实验室设备理系统
编制时间
20140104
功模块名
设备申请模块
例编号
申请表
功特性
查询求购买设备信息
测试数
设备名计算机 规格eeeeee 数量5 生产厂家联想
操作步骤
操作描述
数
期结果
实际结果
测试状态
1
输入设备名规格数量生产厂家
设备名计算机 规格eeeeee 数量5 生产厂家联想
数库申请表中添加记录
期结果
正常
六: 实验结
㈠实验容总结
次实验求动手设计完成实验室设备理系统求实验室设备进 行统计查询设备维修报废情况处理记录够申请购买新设备拨更新申请表等系统求户登陆具定权限执行相关操作设备需报废购买需级领导审核批准
两星期实验开始先该理系统进行需求分析出次实验理系统需设备理员级领导两角色画出系统顶层数流图配备相应数字典进入软件设计阶段理系统分成三模块:系统功模块设备理员操作模块级领导模块模块细分成具体操作模块设计系统ER图建立关系数表软件编码阶段设计系统功界面添加相应代码数库相连接实现系统功软件测试调试时测试数输入相应功界面测试系统否正常实现相应功时进行相应改进
㈡心体会
通实验室设备理系统设计认识软件开发程实际描述现实世界程现实世界软件模型转化程中核心程课程设计程中遇许问题需求分析阶段完全正确握住系统功描述设计数流图时出现问题学讨程中解决问题
次实验次难锻炼机会加深理知识理解丰富实践验整体程序开发具体软件设计全面掌握事工作坚实基础该系统许意方户界面设计够美观真正实现数库时候读取写入方便类型全部设varchar型等等时间仓促力限制进步改善次实验提高实际操作力前理升实践感性认识升理性认识真正做学
西安wen理学院软件学院
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档