private void jButton
来源:互联网 发布:批处理编程 编辑:程序博客网 时间:2024/05/22 14:33
* 根据成绩表查询某个人的各科成绩
* 创建时间:2014-02-23 13:26
*/
//查询个人的各科成绩(课程名 成绩)
private void jButton13ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String Sno = jTextField11.getText();
boolean flag = false;
Vector data = new Vector();
for (int k = 0; sc[k] != null; k++) {
Vector row = new Vector();
if (sc[k].GetSno()。equals(Sno)) {
flag = true;
int k1 = 0;
while (course[k1] != null) {
if (course[k1].GetCno()。equals(sc[k].GetCno())) {
row.add(course[k1].GetCname());
row.add(sc[k].GetGrade());
data.add(row);
}
k1 += 1;
}
}
}
if (!flag) {
JOptionPane.showMessageDialog(this, "该同学暂时还没有选课成绩或不存在在该同学");
}
Vector title = new Vector();
title.add("课程名");
title.add("成绩");
DefaultTableModel dtm = new DefaultTableModel(data, title);
jTable4.setModel(dtm);
jTextField11.setText("");
}
/**
* 查询该课程的选课学生信息
* 创建时间:2014-02-23 14:22
*/
//查询课程已选人的信息
private void jButton14ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
DefaultTableModel dtm = new DefaultTableModel();//
String Cname = jTextField12.getText();
String Cno = null;
boolean flag = false;
int k1 = 0;
//由课程名从course中得到Cno
while (course[k1] != null) {
if (course[k1].GetCname()。equals(Cname)) {
Cno = course[k1].GetCno();
}
k1 += 1;
}
if (Cno == null) {
JOptionPane.showMessageDialog(this, "不存在该课程");
return;
}
Vector data = new Vector();
for (int k = 0; sc[k] != null; k++) {
if (sc[k].GetCno()。equals(Cno)) {
int k2 = 0;
flag = true;
//由课程名从course中得到Cno
Vector row = new Vector();
while (student[k2] != null) {
if (student[k2].GetSno()。equals(sc[k].GetSno())) {
row.add(student[k2].GetSno());
row.add(student[k2].GetSname());
row.add(student[k2].GetSsex());
row.add(student[k2].GetSdept());
data.add(row);
}
k2 += 1;
}
}
}
if (!flag) {
JOptionPane.showMessageDialog(this, "该课程暂时无人选");
return;
}
Vector title = new Vector();
title.add("学号");
title.add("姓名");
title.add("性别");
title.add("专业");
dtm = new DefaultTableModel(data, title);
jTable5.setModel(dtm);
jTextField12.setText("");
}
(七)、对数据的验证代码
public class Helper {
/**
* 功能:完成对学生学号的正确性检验
* 创建时间 2014-02-23 21:42
* @param Sno
*/
public static boolean checkSno(String Sno){
boolean flag=true;
char temp[]=Sno.toCharArray();
for(int i=0;i<temp.length;i++)< p="">
{
if(temp[i]<'0'||temp[i]>'9')
{
flag=false;break;
}
}
return flag;
}
/**
* 功能;完成对学号唯一性的检验
* 创建时间:2014-02-23 22:01
*/
public static boolean onlySno(Student []s,String Sno){
boolean flag=true;
for(int k=0;s[k]!=null;k++){
if(s[k].GetSno()。equals(Sno))
{
flag=false;break;
}
}
if(Sno==null)
{
flag=false;
}
return flag;
}
/**
* 功能:完成对学生表中年龄的正确性检验
* @param Sage
*/
public static boolean checkSage(String Sage)
{
boolean flag=false;
int temp=Integer.parseInt(Sage);
if(temp!=0&&temp>0&&temp<150){
flag=true;
}
return flag;
}
/**
* 功能:完成对选课表学分的正确性验证
* @param Ccredit
* @return
*/
public static boolean checkCcredit(String Ccredit){
boolean flag=false;
double temp=Double.parseDouble(Ccredit);
if(temp>0&&((temp+"")。length()-(temp+"")。indexOf(".")-1)==1){
flag=true;
}
return flag;
}
/**
* 功能:完成对选课表的课程号的唯一性验证
* @param Cno
* @return
*/
public static boolean onlyCno(Course []c,String Cno)
{
boolean flag=true;
for(int k=0;c[k]!=null;k++)
{
if(c[k].GetCno()。equals(Cno))
{
flag=false;break;
}
}
if(Cno==null)
{
flag=false;
}
return flag;
}
/**
* 功能:完成对选课表的课程名的唯一性验证
* @param c
* @param Cname
* @return
*/
public static boolean onlyCname(Course []c,String Cname)
{
boolean flag=true;
for(int k=0;c[k]!=null;k++)
{
if(c[k].GetCname()。equals(Cname))
{
flag=false;break;
}
}
if(Cname==null){
flag=false;
}
return flag;
}
/**
* 功能:完成成绩表的对学号的存在性验证
* 创建时间:2014-02-24 15:29
*/
public static boolean existSno(Student s[],String Sno)
{
boolean flag=false;
for(int k=0;s[k]!=null;k++)
{
if(s[k].GetSno()。equals(Sno))
{
flag=true;break;
}
}
return flag;
}
/**
* 功能:完成成绩表的对课程号的存在性验证
* 创建时间:2014-02-24 15:35
*/
public static boolean existCno(Course c[],String Cno){
boolean flag=false;
for(int k=0;c[k]!=null;k++)
{
if(c[k].GetCno()。equals(Cno)){
flag=true;break;
}
}
return flag;
}
/***
* 功能:完成成绩表的成绩值的合格性验证
* 创建时间:2014-02-24 15:40
*/
public static boolean checkGrade(String Grade)
{
boolean flag=false;
double temp=Double.parseDouble(Grade);
if(temp>=0&&temp<=100&&((temp+"")。length()-(temp+"")。indexOf(".")-1)==1){
flag=true;
}
return flag;
}
/***
* 检测该生的该课程是否只有一个成绩
* 创建时间:2014-03-11 23:02
*/
public static boolean checkOnlyOneSC(SC sc[],String sno,String cno)
{
boolean flag=true;
for(int k=0;sc[k]!=null;k++)
{
if(sc[k].GetSno()。equals(sno)&&sc[k].GetCno()。equals(cno)){
flag=false;break;
}
}
return flag;
}
四、使用说明
//对学生表的单独操作说明如下:
1、可直接对学生表进行插入,但是学号不能重复,且学号为只能数字。
2、点击修改时先从表格选中要修改的行,再点击修改,只能对除学号以外的信息修改,然后修改变为保存字样。
点击保存后出现提示,是则修改,提示修改成功。否则放弃修改,将界面恢复为主界面(第一张图)
3、删除时也要先从表格中选定要删除的行,让后点击删除,是则删除,否则返回界面
4、查找时直接点击查找按钮,弹出一个文本框,提示只能按学号查找。
若存在该同学,则将该学生信息显示到主界面,若不存在,则提示不存在该同学。
//对课程表的单独操作说明如下:
1、添加时课程号不能重复,课程名也不能重复,学分只能是以为小数。
2、修改也要先选定,在进行修改,只能修改课程的学分。与学生表操作类似。
3、删除操作在选定后直接删除即可,附加判断,是否真的删除,是则删,不是则返回;
4、查找时直接点击查找按钮,弹出一个文本框,输入课程名,按课程名查找。若找到,则显示信息到主界面,找不到则提示不存在。
//对成绩表的综合操作
1、插入时要判断该学生号和课程号是否在Student.txt和COurse.txt文件中存在。还有成绩是不是在0~100之间,若其中有一个条件不满足,则插入不会成功。
2、修改时只能对成绩进行修改。然后点击保存,是则保存,不是则返回。
3、删除时从表格中选中后删除即可。
//综合查询部分
//查询个人所有课程成绩
1、文本框中输入学生学号,点击查询,可以查到该生所有课程成绩
//查询某门科目的选课学生信息
输入课程名后查询,讲查询结果添加到表格中,若不存在在该课程,则会提示课程不存在。
五、设计总结
本次课程设计其实从寒假就看到任务书,但是一直没有下定决心去做,所以以前有好多时间可以去准备的,但是没有付诸于实践。开学后经过老师的详细安排,自己也之前了解过数据库的基本知识,所以一下子想到了要实现的功能,以及要控制的数据,报括学号,课程号的唯一性,成绩,年龄的参照完整性,还有可控数据的处理。虽然还是有好多问题没有得意解决,但是的确学到了好多东西,一直是我感觉到,学着去做一个大的东西,分析清楚他的各种功能,然后一点一点的查找,学习,这种学习方法真的很好。就拿这次课程设计来说,老师提出了好多界面化。考虑到用户体验,于是我就想用java做,但是好多东西之前根本不知道,更不用说用了。就开始网上搜索,查找资料,等一系列学习途径,一个一个问题解决,各个击破。最终做出了还可以操作的简单界面,但是好多控制都没有加上去,好多该处理的问题都出来了,途中遇到了很棘手的问题,就是删除某一项数据,然后添加时他会给你返回"该学生学号已经存在","该课程号已经存在"等错误,经过仔细分析,原来是我把文件中的数据的确是删除了,但是没有对存储结构里的数据惊醒更新,也就是对象数组里那些值还是存在的,而我所添加的判断正是又对象数组里的值进行处理,故而提醒新添加的数据时已经存在的。
还有就是我的综合查询,差一个学生的各科成绩,表格中就给我重复列出各科成绩信息,并且一个考场信息不止重复一次,搞得我真是烦啊,最后才发现,前面添加之后,我的对象数组是静态的,由于对他的操作是放在类外,对后面的没有初始化,所以给我出错。
还有就是这次的课程设计从开始设计到初步完成,再到细化到各个功能,我都是先做了设计步骤的。今天完成那些功能,用怎么样的方法去完成,我都写了详细的文档,所以做的时候思路清晰,遇到问题都能很快的处理掉,还有数据的存储结构,还有完整性控制我都重新建了两个类。这样操作方便,容易找到错误,测试也很方便。所以我有了一个完整的设计思想,以及一定的设计理念,这样对我以后用其他语言,开发其他的项目,都是很好的参考。
- private void jButton
- private void initializeTable()
- JButton
- private void InitializeComponent()啥意思
- private void resize(int newCapacity)
- private void FrmMyWindowsLive_Load 只运行一次
- private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
- android 的 private native void _start() throws IllegalStateException的函数
- 关于private final修饰符(private final void inf(){})
- JButton示例
- JButton style
- JButton Cell
- 装饰Jbutton
- 图形界面 ----JButton
- private
- private
- private
- private
- JS统计还可以输入多少字数
- * 函数功能:读取txt文件到jTable2中
- 黑马程序员笔记——Java集合类二
- shell之重定向
- 匿名方法 与 Lambda 表达式
- private void jButton
- 微软为Windows全球发展计划招募APP开发者
- 【笔试】超大文件里的数据去重排序;将log中MAC地址提取出来;取出数据库表T里第20行到29行的数据;如何判断一个二叉树B是不是二叉树A的子树?
- linux 统计文件字段并排序
- spring security <http> 配置介绍
- 删除数组的重复元素
- 思前想后,还是开通了自己的博客
- Spring 入门, Spring 是什么,好处,体系结构
- Powershell使用哈希表