资源描述
湖南工业大学
课 程 设 计
资 料 袋
计算机和通信学院 学院(系、部) - 年第 1 学期
课程名称 数据结构 指导老师 文志诚 职称 讲师
学生姓名 孙浩 专业班级 软件工程1501班 学号
题 目
成 绩 起止日期 年 12 月 18 日~ 12 月 23 日
目 录 清 单
序号
材 料 名 称
资料数量
备 注
1
课程设计任务书
1
2
课程设计说明书
1
3
源程序(电子文档)
1
4
5
6
湖南工业大学
课程设计任务书
- 年第 1 学期
计算机和通信 学院(系、部) 软件工程 专业 1501 班级
课程名称: 数据结构
设计题目:
完成期限:自 年 12 月 18 日至 年 12 月 26 日共 1 周
内
容
及
任
务
一、设计任务及关键技术参数
使用java设计一个能够符合课程设计要求系统
二、设计任务
三、设计工作量
进
度
安
排
起止日期
工作内容
12.18
需求分析
12.19
概要设计
12.20-12.22
具体设计
12.23
调试分析、测试结果
主
要
参
考
资
料
指导老师(签字): 年 月 日
系(教研室)主任(签字): 年 月 日
数据结构程序设计(java语言)课程设计
设计说明书
学生成绩管理系统
起止日期: 年 12 月 18 日 至 年 12 月 23 日
学生姓名
孙浩
班级
软件工程1501班
学号
成绩
指导老师(签字)
计算机和通信学院
12 月 23 日
目 录
第1章 需求分析 1
1.1 介绍 1
1.2 系统开发背景 2
1.3 研究现实状况 2
第2章 概要设计 5
2.1系统开发环境和技术介绍 5
2.2系统需求分析 10
2.2.1总体功效分析 10
2.2.2关键功效分析 11
第3章 具体设计 16
3.1系统开发步骤 16
3.2系统模块设计 16
3.3 系统结构 17
3.3.1 系统模块结构图 17
3.3.2 系统步骤图 19
3.4 数据库设计 20
3.5 界面设计 20
第4章 调试分析 29
4.1程序逻辑调试 29
4.2系统界面调试 29
第5章 测试结果 48
5.1测试环境 48
5.2测试项目 48
5.2.1输入输出测试 48
5.2.2安全性测试 48
5.3 测试结果 49
第6章 用户使用说明 48
结 论 50
参考文件 51
附录 51
1 需求分析
1.1系统具体任务
该系统具体任务就是设计一个学生成绩数据库管理系统,由计算机来替换人工实施一系列诸如增加新学生成绩信息、删除学生成绩信息、学生资料、查询、修改等处理操作,以方便管理人员管理信息工作。
本设计以用户为中心,界面要美观大方,操作尽可能简单明了,且要有良好容错性,在用户出现误操作时能立即给出警告并修改。在现有技术和资金情况下完全能够设计出这套功效完善应用软件。
1.2 系统开发目标
建立学生成绩管理系统,采取计算机对学生成绩进行管理,深入提升办学效益和现代化水平。实现学生成绩信息管理工作步骤系统化、规范化和自动化。
1.3 系统环境需求
编程语言:JAVA
Java + Eclipse + SQL server数据库
开发工具:Eclipse SDK(英文版)
SQL (汉字版)
运行环境:Windows xp或windows 2概要设计
2.1总体功效需求
系统登录
包含管理员、老师和学生三种类型登录。
1.录入学生信息
(初始化)
在系统中不存在任何对象时,实现该功效。具体功效为:
1:检测文件系统/数据库中是否存在相关文件/表;
2:若不存在相关文件/表,则要求用户录入学生信息,并序列化或经过JDBC存放到文件/表;
3:若已存在相关文件/表,则反序列化或经过JDBC读取到程序中。
注意:学生纪录不许可反复,判定关键字为学号
2.添加学生统计
往已经有学生纪录添加新学生纪录。具体功效为:
1:要求用户从键盘输入一个或多个学生信息;
2:输入完成后序列化或JDBC存放到文件/表。
注意:学生纪录不许可反复,判定关键字为学号
3.删除学生统计
在已经有学生纪录中删除一个或多个学生纪录。具体功效为:
1:要求用户输入欲删除学生学号;
2:删除学生统计;
3:更新到文件/表。
4.修改学生统计
在已经有学生统计中修改某学生相关信息。具体功效为:
1:要求用户输入欲修改学生学号;
2:判定该学生是否存在于统计中;
3:若学生统计存在,提供修改学生信息功效。
5.查看学生统计
查看单个学生统计。具体功效为:
1:输入学生学号;
2:若该学生存在,打印该学生相关信息。
查看多个学生统计。具体功效为:
1:打印出全部学生统计;
2:能分别按学号、姓名、性别、年纪和分数进行排序。
6.退出系统
退出系统。
2.2初始化
步骤描述:
1:初始化系统实施对对象进行序列化
2: 反序列化取得对象
业务规则说明:
1:进入系统第一步必需序列化 。
2:取得反序列化对象,假如文件不存在兴建一个,单必需是需要对象类型。
2.3添加学生
步骤描述:
1:要求用户从键盘输入一个或多个学生信息;
2:输入完成后序列化到文件/表。
3:学生纪录不许可反复,判定关键字为学号
规则说明:
1:从菜单选择添加学生,取得容器对象 。
2:进入添加页面提醒添加属性。
3:性别限制男女。
4:科目成绩可变性。课程可自动调整
5:学号作为唯一标示符:
不能出现反复学号。
必需是数字组成。
6:添加完成后把容器对象序列化到文件
2.4删除学生统计
业务步骤描述:
1:要求用户输入欲删除学生学号;
2:删除学生统计;
3:更新到文件/表。
业务规则说明:
1:传输一个容器对象。
2:给定一个学生学号删除一个学生信息
2:遍历容器是否有输入学号学生信息。
假如存在,提醒是否删除。
假如没有重新输入。
3:假如删除成功返回一个容器对象,序列化到文件。
2.5修改学生统计
业务步骤描述:
1:要求用户输入欲修改学生学号;
2:判定该学生是否存在于统计中;
3:若学生统计存在,提供修改学生信息功效。
业务规则说明:
1:传输一个容器对象给修改方法。
2:给定一个欲修改学生学号
3:遍历容器是否有输入学号学生信息。
假如存在学生对象,继续下一步。
假如没有重新输入。
4:经过判定知道存在学生对象后遍历取得学生对象。
5:提醒要修改类容
提醒旧信息添加新信息
6:修改后取得容器对象,序列化到文件
2.6查看学生统计
业务步骤描述:
1:输入学生学号;
2:若该学生存在,打印该学生相关信息。
查看多个学生统计。具体功效为:
1:打印出全部学生统计;
2:能分别按学号、姓名、性别、年纪和分数进行排序。
业务规则说明:
1:输入选项取得查看方法,取得容器对象。
2:全部查看显示取得全部学生信息
3:查看特定学生。
输入学生学号;
判定学生是否存在
假如存在显示单个学生,假如不存在提醒不存在,重新输入。
学生成绩管理系统
登录
1.0
查询
2.0
编辑
3.0
存放
4.0
管理
6.0
打印
5.0
学生登录
1.1
人力资源管理者1.2
学生基础信息2.1
添加
3.1
删除
3.2
修改
3.3
系统管理6.1
管理员1.3
老师基础信息2.2
2.7退出系统
提醒是否退出
3系统分析
3.1系统开发步骤
HIPO图是美国IBM企业发明“层次图加输入/处理/输出图”英文缩写。依据系统模块层次结构可得到系统HIPO图,本软件HIPO图图4.1所表示。
图 4.1 系统HIPO图
模块是数听说明、可实施语句等程序对象集合。是能够单独被命名而且可经过名字来访问,比如,过程、函数、子程序、宏等等全部可作为模块。模块化就是将程序划分成若干个模块,每个模块完成一个子功效,把这些模块集合起来组成一个整体,能够完成指定功效满足问题要求。
模块化设计不仅降低了系统复杂性,使得系统轻易修改,而且推进了系统各个部分并行开发,从而提升了软件生产效率。
以下为成绩管理IPO表,图4.2所表示:
图 4.2 成绩管理IPO表
3.2系统模块设计
系统用例图
用例图关键用来图示化系统主事件步骤,它关键用来描述需求,即期望系统含有完成一定功效动作,通俗地了解用例就是软件功效模块,是设计系统分析阶段起点,设计人员依据需求来创建和解释用例图,用来描述软件应含有哪些功效模块和这些模块之间调用关系。
3.2 系统总体用例图
本系统包含三类角色:老师、管理员和学生。老师能够进行分报表,统计分数和更新分数操作,管理员能够查看分数和进行成绩总报表,学生能够查看个人成绩。同时系统还能够加载分数和保留分数。其系统总体用例图图2.1所表示:
图 3.1 系统总体用例图
3.3学生信息用例图
学生信息管理模块包含三类角色,可分别依据自己权限对个人信息进行增加、删除和修改等操作。其用例图图3.2所表示:
图 3.2 学生信息用例图
3.4管理员信息用例图
管理员信息管理模块包含两种角色,依据不一样权限能够添加管理员、查看管理员、删除管理员,还包含登录, 管理员信息用例图图3.3所表示:
图 3.3 管理员信息用例图
3.3系统结构
3.3.1系统模块结构图
模块分析
用户管理模块
添加用户,删除用户:
public void managementUser(String sa) {
interFram = new JInternalFrame(sa, true, true, true, true);
interFram.setBounds(0, 0, frm1.width, frm1.height);
interFram.validate();
interFram.setVisible(true);
jkjkjk = new 管理用户();
interFram.add(jkjkjk);
add(interFram, BorderLayout.CENTER);
添加用户
返回
添加用户
显示用户信息
是
否
开始
返回
删除用户
显示用户信息
图6.1 用户管理步骤图
增加学生信息模块
对学生信息进行增加::
public void addC(String sa) {
interFram = new JInternalFrame(sa, true, true, true, true);
interFram.setBounds(0, 0, frm1.width, frm1.height);
interFram.validate();
interFram.setVisible(true);
jkjkjk1 = new 信息();
interFram.add(jkjkjk1);
add(interFram, BorderLayout.CENTER);
}
stu 学生 extends JPanel {
private static final long serialVersionUID = -035L;
JTable table;
JScrollPane scroll;
String rili[][] = new String[100][3];
String str1, str2, str3;
Object name[] = { "学号", "学科", "成绩" };
Connection con;
int lyl, lwc;
Statement sql;
ResultSet rs;
图6.2 学生信息增加步骤图是否删除
是否添加
返回
返回
输入删除学生信息
输入添加信息
输入修改信息
显示删除信息
显示修改信息
是
否
是
否
开始
返回
显示添加信息
修改学生信息模块
对学生成绩及信息进行修改::
String rili[][] = new String[100][4];
JButton f = JButton("修改信息");
学生信息视图表() {
try {
con = DriverManager.getConnection("jdbc:odbc:qyl", "", "");
sql = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = sql.executeQuery("select * from 已修改视图 WHERE SNO = " + "'"+ qyl + "'");
int i = 0;
while (rs.next()) {
rili[i][0] = rs.getString(1);
rili[i][1] = rs.getString(2);
rili[i][2] = rs.getString(3);
rili[i][3] = rs.getString(4);
i++;
}
}
String oldvalue = table.getValueAt(table.getSelectedRow(),
table.getSelectedColumn()).toString();
int row = table.getSelectedRow();
int column = table.getSelectedColumn();
if(column==0){
System.out.println(oldvalue);
System.out.println(row+"\t"+column);
System.out.println(rili[row][column+2]);
int n = JOptionPane.showConfirmDialog(jk, "您选择删除"
+ rili[row][1]+"("+rili[row][2]+"\b)"+"成绩\n是否继续?", "提醒对话框",
JOptionPane.YES_NO_OPTION);
if (n == JOptionPane.YES_OPTION) {
System.out.println(rili[row][1]);
String del = "DELETE FROM SC WHERE CNO = " +"'"+rili[row][1]+"'" ;
图6.3修改学生成绩步骤图
综合查询模块
class 查询 extends JPanel {
private static final long serialVersionUID = -47372494L;
JTable table;
JScrollPane scroll;
String rili[][] = new String[100][5];
Object name[] = { "学号", "姓名", "性别", "年纪", "系别" };
int lht, lyl, lwc;
Connection con;
String oldvalue = null;
Statement sql;
String str1, str2, str3, str4, str5;
ResultSet rs;
存放过程及触发器:
l 触发器:删除S表中数据以后SC表中对应数据也被删除
CREATE TRIGGER delS_SC ON S
FOR DELETE
AS declare @SNO_DEL char(12)
select @SNO_DEL =SNO from deleted
delete from SC
where SNO=@SNO_DEL
l 触发器:更新S表中SNO后SC表中也对应改变
CREATE TRIGGER UptateS_SC ON S
FOR UPDATE
AS IF UPDATE(SNO)
BEGIN
DECLARE @SNO_NEW CHAR(12),@SNO_OLD CHAR(12)
SEL
ECT @SNO_NEW = SNO FROM INSERTED
SELECT @SNO_OLD =SNO FROM DELETED
UPDATE SC SET SNO =@SNO_NEW WHERE SNO =@SNO_OLD
END
l 触发器:删除C表中信息后SC表中对应信息也会被删除掉
CREATE TRIGGER delC_SC ON C
FOR DELETE
AS declare @CNO_DEL char(2)
select @CNO_DEL =CNO from deleted
delete from SC
where CNO=@CNO_DEL
l 触发器:更新C表中信息后SC表中对应信息也会伴随改变
CREATE TRIGGER UptateC_SC ON C
FOR UPDATE
AS IF UPDATE(CNO)
BEGIN
DECLARE @SNO_NEW CHAR(12),@SNO_OLD CHAR(12)
SELECT @SNO_NEW = CNO FROM INSERTED
SELECT @SNO_OLD =CNO FROM DELETED
UPDATE SC SET CNO =@SNO_NEW WHERE CNO =@SNO_OLD
END
l 触发器:删除T表中老师信息后TC表中对应信息也会别删掉
CREATE TRIGGER delT_TC ON T
FOR DELETE
AS declare @SNO_DEL char(12)
select @SNO_DEL =TNO from deleted
3.3.2系统步骤图
系统程序步骤图
管理员登录模块
管理员登录步骤是:假如管理员存在,则直接输入账号密码,系统判定账号密码是否正确,假如输入不正确,重新输入,直到输入正确以后才能够进入系统;当管理员不存在时,作者选择注册,依据个人具体情况输入个人信息,系统将会判定输入信息是否正确,直到输入信息正确以后才注册成功,然后输入注册账号密码登录系统,系统仍会判定账号密码是否正确,直到输入正确账号密码才会进入系统。其步骤图图5.1所表示:
图 5.1 管理员登录步骤图
成绩管理模块
成绩管理步骤是:管理员输入账号密码以后,系统判定输入账号密码是否正确,不正确,重新输入直到正确才能够进入后台管理系统,选择成绩管理,选择要进行审核成绩,进行编辑修改,以后再深入审核,确定成绩是否录用,假如是存放成绩,则会显示在系统前台首页。其步骤图图4.2所表示:
图5.2 成绩管理步骤图
5.2 系统过程设计
过程设计任务不是具体地编写程序,而是要设计出程序“蓝图”,程序员依据这个蓝图写出实际代码。所以,过程设计结果基础上决定了最终程序代码质量。
在软件生命周期中,实际上对于长久使用软件系统而言,人读程序时间可能比写程序时间还要长得多。所以,衡量程序质量不仅要看它逻辑是否正确,性能是否满足要求,更关键是要看它是否轻易阅读和了解。过程设计目标不仅仅是逻辑上正确地实现每个模块功效,更关键是设计出处理过程应该尽可能简明易懂。结构程序设计技术是实现上述目标关键技术,所以是过程设计逻辑基础。
N-S图是一个符合结构化程序设计标准图形描述工具,又称之为盒图。它有以下特点:
1) 功效域明确,能够从盒图上一眼就看出来。
2)不可能任意转移控制。
3)很轻易确定局部和全程数据作用域。
4)很轻易表明嵌套关系,也能够表示模块层次结构。
系统前台N-S图,图5.3所表示:
图 5.3 系统前台N-S图
PAD 是问题分析图(Problem Analysis Diagram)英文缩写,它用二维树形结构图来表示程序控制流,是一个用结构化程序设计思想表现程序逻辑结构图形工具,将这种图翻译成程序代码比较轻易。
PAD图关键优点以下:
(1)使用表示结构化控制PAD符号所设计出来程序肯定是结构化程序。
(2)PAD图描述程序结构十分清楚。
图中最左面竖线是程序根本,即第一层结构。伴随程序层次增加,PAD图逐步向右延伸,每增加一个层次,图形向右扩展一条竖线,PAD图中竖线总条数就是程序层次数。
(3)用 PAD 图表现程序逻辑易读、易懂、易记。 PAD图是二维树形结构图形,程序从图中最左竖线上端结点开始实施,自上而下,从左到右次序实施,遍历全部结点。
(4)有利于提升软件可靠性和软件生产率。轻易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而能够省去人工编码工作,有利于提升软件可靠性和软件生产率。
(5)既可用于表示程序逻辑,也可用于描述数据结构。
(6)PAD 图符号支持自顶向下、逐步求精方法使用。
开始设计者能够定义一个抽象程序,伴随设计工作深入而使用 def 符号逐步增加细节,直至完成具体设计,系统前台PAD图,图5.4所表示:
图 5.4 系统前台PAD图
3.4数据库设计
数据库表设计
逻辑结构设计任务是把概念结构设计阶段设计好E-R图转换成和选择DBMS产品所支持数据模型相符合逻辑结构。E-R图所需处理问题是怎样确定实体和实体间关系,怎样确定这些关系模式属性和码。数据库中两实体间1:n联络转换为一个和n端对应关系模式合并关系模式方法是将联络属性和1端码加入n端作为属性,主码为n端实体主码。以下为本系统中部分表简单介绍。
1、管理员基础信息表包含管理员编号、管理员姓名、管理员密码,设计时注意AdminID设为主键,如表3.1所表示:
表 4.1 管理员基础信息表
字段名
数据类型
说明
AdminID
Int
管理员编号
Name
Varchar(10)
管理员姓名
Password
Varchar(10)
管理员密码
2、学生基础信息表包含信息是学生编号、学生姓名、学生性别、学生年纪、家庭住址、联络电话等信息,设计时注意ID字段设为主键,设为Int类型,如表3.2所表示:
表 4.2 学生基础信息表
字段名
数据类型
说明
ID
Int
学生编号
Name
Varchar(10)
学生姓名
Sex
Char(10)
性别
Age
Int
年纪
Address
Varchar(50)
家庭住址
Phone
Char(15)
联络电话
3、老师基础信息表包含老师编号、老师姓名、老师年纪、家庭住址、联络电话、所教科目等信息,设计时注意ID字段设为主键,设为Int类型,如表4.3所表示:
表 4.3 老师基础信息表
字段名
数据类型
说明
ID
Int
老师编号
OName
Varchar(10)
老师姓名
Age
Int
年纪
Address
Varchar(50)
家庭住址
Phone
Char(15)
联络电话
Object
Varchar(15)
所教科目
4、成绩基础信息表包含学生编号、科目类型、任课老师、所得分数,ID设为主键,如表4.4所表示:
表 4.4 成绩基础信息信息表
字段名
数据类型
说明
ID
Int
学生编号
OType
Varchar(10)
科目类型
OName
Varchar(10)
任课老师
Grade
int
所得分数
3.1
4系统测试
首优异入NETBEANS,打开工程person.dsw,然后进入源程序,接着选择Build下Execute person.exe即可,也能够不打开工程,直接双击person文件夹下debug或release子文件夹下person.exe文件即可运行程序。
1. 系统登录界面,图7.1-7.3所表示。
图 7.1
图 7.2
图 7.3
2.系统主界面,图7.4所表示。
图 7.4
3.增加学生信息界面,图7.5所表示。
图 7.5
4.修改学生信息界面,图7.6所表示。
图 7.6
5.查找学生信息界面,图7.7所表示。
图 7.7
5结论
本系统依据开发要求关键应用于教育系统,完成对日常教育工作中学生成绩档案数字化管理。开发本系统可使学院教职职员减轻工作压力,比较系统地对教务、教学上各项服务和信息进行管理,同时,能够降低劳动力使用,加紧查询速度、加强管理,和国家各部门相关信息化步伐,使各项管理愈加规范化。
现在,学校工作繁杂、资料重多,即使各类管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,现在还没有一套完整、统一系统。所以,开发一套适和大众、兼容性好系统是很有必需。
本系统在开发过程中,注意使其符合操作业务步骤,并努力争取系统全方面性、通用性,使得本系统不只适适用于一家教育机构。在开发方法选择上,选择了生命周期法和原型法相结合方法,遵照系统调查研究、系统分析、系统设计和系统实施四个关键阶段进行设计,而在具体设计上,采取了演化式原型法,伴随用户使用及对系统了解不停加深,对某一部分或几部分进行重新分析、设计、实施。
继C++以后学习Java 程序设计语言会感觉很轻松,因为Java 和C++语法类似,并把C++中部分较低级和较难以了解功效全部去掉了,如多继承、指针等,同时Java增强了部分功效,如“+”运算符重载。对于初学Java人而言,难点是 Java中 引用、初始化一个类过程等。总来说,Java 其易于学习、高效率实施方法、平台无关性、分布式和高安全性及其丰富API文档和类库等特点全部说明Java 是程序设计语言伟大进步表现。
能够说这么说,此次课程设计综合考察了我们对Java程序设计知识掌握熟练程度和实际利用能力。其间,包含到了Java 中绝大多数知识点,如Java图形用户界面设计、Java异常处理机制、Java中多线程程序设计、Java输入输出流等。
程序实现关键在于功效合理划分和各个包或类之间通讯问题,只要分析清楚这两点,剩下就是按部就班写代码了。所以设计是关键。
功效实现了,再就是怎样对程序进行性能优化问题。如有类需要多个对象实例,这时我们就能够使用Singleton模式产生唯一对象实例,如“文件分割※合并器”中MyWindowListener类;文件操作中加入缓冲机制;对和图像能够使用使用双缓冲区等等。
学习Java,我推荐使用 “六步走”方法,循序渐进:
第一步是安装好JDK,写一个Hello World。 其实JDK学习没有那么简单,相关JDK有两个问题是很轻易一直困扰Java程序员地方:一个是CLASSPATH问题,其实从原理上来说,是要搞清楚JREClassLoader是怎样加载Class;另一个问题是package和import问题,怎样来寻求类路径问题。把这两个问题探索清楚了,就扫除了学习Java和使用JDK最大障碍。推荐看一下王森《Java深度历险》,对这两个问题进行了深入探讨。 第二步是学习Java语法。第三步是学习Java面向对象编程语言特征地方。比如继承,结构器,抽象类,接口,方法多态,重载,覆盖,Java异常处理机制。第四步就是熟悉Java类库。第五步,Java Web 编程。第六步,J2EE编程。
总而言之,作为一门程序设计语言,Java 学习务必需做到多看多写多想多请教。
多看,看高手、大师程序,借鉴其解题思绪和程序架构;多写,学习程序设计很关键就是要自己亲自动手写代码,切忌犯眼高手低弊病,而且这么记忆很深刻;多想,程序调试中出现部分“莫明其妙”问题,为何会这么而不是那样;多请教:程序设计说到底是要根本搞清设计该语言人思想,碰到问题想不通应该请教同学、老师等。这么可达成事半功倍目标。
6参考文件
1. 黄晓东﹒JAVA课程设计案例精编(第二版)[M]中国水利电出版社,
2. 徐迎晓﹒JAVA语法及网络应用设计。清华大学出版社。
3. 技术交流网站CSDN:网址:
4. 技术交流网站博客园:网址:
4. 技术交流网站博客园:网址:
7附件:
源代码:import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.lang.*;
public class Students.java extends Applet implements ActionListener
{
Vector StuInf=new Vector();
StudentInf SI;
String xm;
String bj;
int i,j,xh,cj;
static int mid;
Label prompt1=new Label("学生成绩管理系统");
Label prompt2=new Label(" 用户:");
Label prompt3=new Label(" 密码:");
Label prompt4=new Label(" 班级:");
Label prompt5=new Label(" 成绩:");
TextField input1=new TextField(8);
TextField input2=new TextField(8);
TextField input3=new TextField(8);
TextField input4=new TextField(8);
Button btn1=new Button("登录");
Button btn2=new Button("增加");
Button btn3=new Button("修改");
Button btn4=new Button("删除");
public void init()
{
setLayout(new GridLayout(6,3));
add(new Label());
add(prompt1);
add(new Label());
add(prompt2);
add(input1);
add(new Label());
add(prompt3);
add(input2);
add(btn1);
add(prompt4);
add(input3);
add(new Label());
add(prompt5);
add(input4);
add(new Label());
add(btn2);
add(btn3);
add(btn4);
prompt4.setVisible(false);
prompt5.setVisible(false);
input3.setVisible(false);
input4.setVisible(false);
btn2.setVisible(false);
btn3.setVisible(false);
btn4.setVisible(false);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
btn4.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="登录")
{
String a,b;
a=input1.getText();
b=input2.getText();
input1.setText("");
if((a.equals("12")==true)&&(b.equals("12")==true))
{
prompt2.setText(" 姓名:");
prompt3.setText(" 学号:");
prompt4.setVisible(true);
prompt5.setVisible(true);
input3.setVisible(true);
input4.setVisible(true);
btn2.setVisible(true);
btn3.setVisible(true);
btn4.setVisible(true);
btn3.setEnabled(false);
btn4.setEnabled(false);
btn1.setLabel("查询");
input1.setText("登录成功");
input1.selectAll();
}
else
input2.setText("用户名或密码错");
}
if(e.getAction
展开阅读全文