experiment @ lzptc ,2nd实训_ 《Java语言程序设计》专业实习任务

来源:互联网 发布:开放式网络课程 编辑:程序博客网 时间:2024/06/03 16:09

 Java语言程序设计》专业实习任务(二)

一、设计目的:

本次设计是对教材第7章~第17章的总结。涉及到的主要知识点有:GUI设计、事件处理、I/O处理和JDBC。设计的目的在于掌握Java的基本原理、设计方法和使用规则;利用Java提供的事务处理机制,合理选择类和类提供的方法,进行应用程序的初步设计。

二、设计题目:

㈠程序CDInfor.java完成的功能是:CD唱片信息管理。

假设有很多唱片,它们的信息都存放在CDInfor.txt文件中。文件中每张唱片的信息占一行,信息包括唱片编号、唱片名称、歌手姓名三项内容,信息之间用空格分开。运行界面如下所示。

 

1.   功能描述

①从文件中读出已有的唱片信息并显示在文本域中;但文本域不能进行输入。

②从文本框中输入需要添加的CD唱片的信息。

③当单击“增加”按钮时,将信息以追加的方式存入到文件中,并且刷新文本域里的内容。

④当单击“取消”按钮时,将正在录入的信息从文本框里清空,不再做任何处理。

2.   题目要求

①完成程序段①~⑤的编写。

②回答问题①~③。

3.   提示信息

FileWriter类有一个构造方法如下:

 FileWriterString filename , Boolean append

  功能:构造一个进行附加的FileWriter

FileWriter类的父类有一个方法如下:

  Voidwrite(String str)

  功能:写一个字符串

4.   程序清单(Caculate.java

import java.awt.*;

import javax.swing.*;

import java.io.*;

import java.awt.event.*;

 

public class CDInfor extends JFrameimplements ActionListener {

  //定义输入输出流对象

 

  //问题1: BufferedReader类定义输入流,是要利用该类的什么功能(方法)?

 BufferedReader in;  

 FileWriter out;

 

  //定义容器

 JPanel jPanel1 = new JPanel();

 JPanel jPanel2 = new JPanel(new GridLayout(4,1));

 JPanel jPanel3 = new JPanel();

  JPaneljPanel5 = new JPanel();

 JPanel jPanel4 = new JPanel();

 JPanel jPanel6 = new JPanel();

 JScrollPane jScrollPane1 = new JScrollPane();

 

  //定义组件并初始化

 JTextArea jTextArea1 = new JTextArea("",10,25);//10行,20

 GridLayout gridLayout1 = new GridLayout();

 JTextField jTextField1 = new JTextField(10);   //10

 JTextField jTextField2 = new JTextField(10);   //10

 JTextField jTextField3 = new JTextField(10);   //10

 JLabel jLabel1 = new JLabel("唱片编号:");

 JLabel jLabel2 = new JLabel("唱片名称:");

 JLabel jLabel3 = new JLabel("歌手姓名:");

 JButton jButton1 = new JButton("增加");

 JButton jButton2 = new JButton("取消");

 String str;

 

   public CDInfor() {

    try {

    setDefaultCloseOperation(EXIT_ON_CLOSE);

    jbInit();

     }

    catch (Exception exception) {

    exception.printStackTrace();

    }

  }

 

 

 public void jbInit()

    {

     Container cp = getContentPane();

     cp.setLayout(new BorderLayout());

 

     //加载组件

     jButton1.addActionListener(this);

     jButton2.addActionListener(this);

 

     //将文本域放到滚动容器里,当内容多时,可以自动形成滚动条

     jTextArea1.setEditable(false);

     jScrollPane1.getViewport().add(jTextArea1);

 

     jPanel3.add(jLabel1);         jPanel3.add(jTextField1);

 

     jPanel4.add(jLabel2);         jPanel4.add(jTextField2);

 

      jPanel5.add(jLabel3);         jPanel5.add(jTextField3);

 

     jPanel6.add(jButton1);        jPanel6.add(jButton2);

 

     //加载容器

     jPanel1.add(jScrollPane1);

     jPanel2.add(jPanel3);   jPanel2.add(jPanel4);   jPanel2.add(jPanel5);    jPanel2.add(jPanel6);

     jPanel2.setPreferredSize(new Dimension(10, 150));

     cp.add("Center",jPanel1) ;     cp.add("South",jPanel2);

 

     //问题2:设置try_catch结构的目的是什么?

     try

      {

        //完成语句①:初始化输入流对象(以CDInfor.txt为数据源)

        

        //完成语句②:初始化输出流对象(参考提示信息)

        

        //完成语句③:行读文件,将结果写到文本域里

        

      }

     catch (IOException ex){};

   }

 

     public void actionPerformed(ActionEvent e)

      {

       //按下“增加”按忸后的操作:

      if(e.getSource()==jButton1)

        {

          //完成程序④:提取信息并添加到文本域里

         

          //完成程序⑤:将记录添加到文件末尾并刷新数据流

          //问题3:刷新数据流的作用是什么?

          try {

          

          }

          catch (Exception ex) {}

        }

 

       //按下“增加”按忸和“取消“按钮都要完成的操作:

       jTextField1.setText("");      

 jTextField2.setText("");

 jTextField3.setText("");

      }

 

    public static void main(String[] args) throws Exception

     {

      CDInfor kk = new CDInfor();

      kk.setSize(350,350);

      kk.setTitle("Please caculat:");

      kk.setVisible(true);

   }

}

 

假设StudentManager.java完成的功能是:学生信息管理。

学生信息存放在数据库Student.mdb中,信息包括:学号、姓名、性别、年龄、专业。

 

系统包括查询、添加、删除、更新和退出系统五个功能。主界面运行如下:

 

1.功能描述

①单击“查询”按钮,可以查询数据库中的学生信息,并将学生信息显示在JPanel中。运行界面如下:

 

②单击“增加”按钮,可以为数据库表中添加一条学生信息。运行界面如下:

 

要求:学号必须是数字字符串,长度不能大于10;姓名长度不能大于10,专业长度不能大于25

③单击“删除”按钮,可以删除数据库表中的学生信息。运行界面如下:

 

⑷单击“更新”按钮,可以更新数据库表中指定学号的学生信息。运行界面如下:

 

要求:学号必须是数字字符串,长度不能大于10;姓名长度不能大于10,专业长度不能大于25

⑸单击“退出系统”按钮,从整个应用系统中退出。

2.题目要求

①根据题目要求建立数据库。

②完成程序段⑴~⒃的编写,使其系统各功能模块能够正常运行。

③回答问题①~⑧。

3.提示信息

Statement createStatement(int resultSetType,

                         int resultSetConcurrency)

                          throws SQLException

resultSetType:结果集类型,它是 ResultSet.TYPE_FORWARD_ONLYResultSet.TYPE_SCROLL_INSENSITIVE ResultSet.TYPE_SCROLL_SENSITIVE 之一;

resultSetConcurrency:并发类型;它是 ResultSet.CONCUR_READ_ONLY ResultSet.CONCUR_UPDATABLE 之一;

update语句:update 表名 set 字段名=,字段名=,……where 条件

4.程序清单

StudentManager.java

package sms;

 

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.Toolkit;

 

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

 

import java.awt.Color;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

 

public class StudentManager extends  JFrame{

 

  private  JLabel lbl1;

  private  JButton selBtn,addBtn,delBtn,updBtn;

  private  JButton exitBtn;

  private  JPanel panel ;

 

  public  StudentManager (){

         super("学生管理系统");

        

         //     定义出现的组件:由上而下,自左致右

         lbl1= new JLabel("学生管理系统",JLabel.CENTER);

         lbl1.setFont(newFont("黑体",Font.BOLD,35));         

        

         selBtn= new JButton("查询");

         addBtn= new JButton("添加");

         delBtn= new JButton("删除");

         updBtn= new JButton("更新");

         exitBtn=new  JButton("退出系统");

        

         //     定义容器

         panel= new JPanel();          

        

         //为容器设置布局,并将组件添加到容器中

         FlowLayout  flow = new FlowLayout();

         panel.setLayout(flow);

         panel.add(selBtn);

         panel.add(addBtn);

         panel.add(delBtn);

         panel.add(updBtn);

         panel.add(exitBtn);

        

         //为按钮添加监听事件

         selBtn.addActionListener(new  ButtonEvent());

         addBtn.addActionListener(new  ButtonEvent());

         delBtn.addActionListener(new  ButtonEvent());

         updBtn.addActionListener(new  ButtonEvent());

         exitBtn.addActionListener(new ActionListener(){

                //完成语句⑴:退出应用系统的功能

         });

        

         //applet设置布局,并将组件添加到applet

         GridLayout  grid = new GridLayout(2,1);

         this.setLayout(grid);

         this.add(lbl1);

         this.add(panel);

        

         //设置applet的大小

         this.setSize(400,300);

         this.setVisible(true);

//问题1Toolkit的作用是什么?

         Toolkittool = this.getToolkit();

         Dimensiondim = tool.getScreenSize();

         this.setLocation(dim.width/3,dim.height/3);

         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

         validate();

  }

 

  publicstatic void main(String[] args){

         newStudentManager();

  }

}

DatabaseConnection.java

package sms;

 

//完成语句⑵:导入该类中操作数据库的相关类包

 

public class DatabaseConnection {

 

  publicstatic Connection  getConnection(StringdataSource , String user , String password){

         Connectionconn = null;

         try{

                String driverName ="sun.jdbc.odbc.JdbcOdbcDriver";

                //完成语句⑶:加载数据库驱动

         }catch (ClassNotFoundException e) {

                e.printStackTrace();

         }   

         try{      

                //完成语句⑷:通过getConnection()方法的参数获取数据库连接赋给conn

         }catch (SQLException e) {

                e.printStackTrace();

         }           

         returnconn;

  }

}

③SelFrame.java

package sms;

 

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.FocusEvent;

import java.awt.event.FocusListener;

 

//完成语句⑸:导入该类中操作数据库的相关类包

 

import javax.swing.*;

 

public class SelFrame extends JFrameimplements ActionListener,FocusListener {

 

  privateConnection  conn = null;

  privateStatement   stmt = null;

  privateResultSet   rs = null;      

  privateint  recordCount=0;

 

  JLabellbl1 = null;

  JLabellbl2 = null;

 

  JTextFieldtf1 = null;

  JTextFieldtf2 = null;

 

  JButton  selBtn= null;

 

  JPanelp1 = null;

  JPanelp2 = null;

  JPanelp3 = null;

  JPanelresultPanel = null;

  JScrollPanescroll = null;

  JPanelsplit = null;

  JPanel[]p3_1=null;

 

  JTextField[]tf3_1 = null;

  JTextField[]tf4_1 = null;

  JTextField[]tf5_1 = null;

  JTextField[]tf6_1 = null;

  JTextField[]tf7_1 = null;

  publicstatic int test=1;

 

  publicSelFrame(){

         super("学生信息查询");

         //定义组件:从上到下,从左到右

         lbl1= new JLabel("姓名:",10);

         lbl2= new JLabel("专业:",10);

        

         tf1= new JTextField(20);

         tf2= new JTextField(20);

        

         selBtn=newJButton("查询");

         selBtn.addActionListener(this);

        

         JLabellbl3 = new JLabel("学号",JLabel.CENTER);

         JLabellbl4 = new JLabel("姓名",JLabel.CENTER);

         JLabellbl5 = new JLabel("年龄",JLabel.CENTER);

         JLabellbl6 = new JLabel("性别",JLabel.CENTER);

         JLabellbl7 = new JLabel("专业",JLabel.CENTER);

        

         p1= new JPanel (new FlowLayout());

         p1.add(lbl1);

         p1.add(tf1);

         p1.add(lbl2);

         p1.add(tf2);

 

         p2= new JPanel (new GridLayout(2,1));

         p2.add(p1);

         p1.add(selBtn);

        

         p3= new JPanel (new GridLayout(1,5));

         p3.add(lbl3);

         p3.add(lbl4);

         p3.add(lbl5);

         p3.add(lbl6);

         p3.add(lbl7);

        

         BorderLayout  border = new BorderLayout();

         this.setLayout(border);

         this.add(p2,BorderLayout.NORTH);

//完成语句⑹:当点击窗口的关闭按钮时只销毁该窗口,并不退出应用系统

         setSize(750,600);

         setLocation(150,50);

         setVisible(true);

         validate();

  }

  publicvoid actionPerformed(ActionEvent e) {

        

         conn= DatabaseConnection.getConnection("jdbc:odbc:StudentDsn","", "");

        

         try{

                String  txt1,txt2,condition = "";

                txt1=tf1.getText();               

                txt2=tf2.getText();

               

                if(txt1!=null && !txt1.equals(""))

                       condition= " where sname like '%"+txt1+"%' ";

                if(txt2!=null && !txt2.equals(""))

                       if(condition.equals(""))

                              condition= " where  major like'%"+txt2+"%' ";

                       else             

                              condition=condition + " and major like '%"+txt2+"%' ";

                Stringsql = "select * from stu " + condition;

 

stmt =conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);

               

//完成语句⑺:提交sql语句,并将返回的记录集放在rs

//完成语句⑻:获取记录集中的记录条数,放在整形变量recordCount

 

                GridLayoutgl=new GridLayout(recordCount,1);                                    

                if(resultPanel!=null){

                       resultPanel.removeAll();//问题2:该语句的功能是什么?

                }

                else{

                       resultPanel= new JPanel(gl);//问题3:该条语句什么时候执行?

                }

               

                //问题2test变量的作用是什么?

                if(test==1){

                       scroll= new JScrollPane(resultPanel);

                       split= new JPanel(new BorderLayout());

                       split.add(p3,BorderLayout.NORTH);

                       split.add(scroll,BorderLayout.CENTER);

                      

                       this.add(split,BorderLayout.CENTER);

                       test++;

                }

               

                                    

                p3_1= new JPanel[recordCount];

                tf3_1= new JTextField[recordCount];

                tf4_1= new JTextField[recordCount];

                tf5_1= new JTextField[recordCount];

                tf6_1= new JTextField[recordCount];

                tf7_1= new JTextField[recordCount];

               

                rs.beforeFirst();//问题4:该条语句可不可以用rs.first()代替?为什么?

                inti = 0;

               

                while(rs.next()){

                       tf3_1[i]= new JTextField(rs.getString(1));

                       tf4_1[i]= new JTextField(rs.getString(2));

                       tf5_1[i]= new JTextField(rs.getString(3));

                       tf6_1[i]= new JTextField((rs.getString(4).equals("M"))?"":"");

                       tf7_1[i]= new JTextField(rs.getString(5));

                       tf3_1[i].setHorizontalAlignment(JTextField.CENTER);

                       tf4_1[i].setHorizontalAlignment(JTextField.CENTER);

                       tf5_1[i].setHorizontalAlignment(JTextField.CENTER);

                       tf6_1[i].setHorizontalAlignment(JTextField.CENTER);

                       tf7_1[i].setHorizontalAlignment(JTextField.CENTER);

                       tf3_1[i].setEditable(false);

                       tf4_1[i].setEditable(false);

                       tf5_1[i].setEditable(false);

                       tf6_1[i].setEditable(false);

                       tf7_1[i].setEditable(false);

                      

//完成语句⑼:为文本框们添加监听器

                      

                       p3_1[i]= new JPanel (new GridLayout(1,5));

                       p3_1[i].add(tf3_1[i]);

                       p3_1[i].add(tf4_1[i]);

                       p3_1[i].add(tf5_1[i]);

                       p3_1[i].add(tf6_1[i]);

                       p3_1[i].add(tf7_1[i]);

                       resultPanel.add(p3_1[i]);

                       i++;

                }

                resultPanel.repaint();//问题5:该条语句可不可以取消?为什么?

                this.validate();//问题6:该条语句可不可以取消?为什么?

                }catch (SQLException e1) {

                e1.printStackTrace();

         }

         finally{

                //完成语句⑽:关闭数据库操作时占用的各种资源

         }

 

  publicvoid focusGained(FocusEvent e) {

         //完成语句⑾:当文本框获得焦点时,文本框为红色

  }

  publicvoid focusLost(FocusEvent e) {

         //完成语句⑿:当文本框失去焦点时,文本框为白色

  }

 

}

 

④AddFrame.java

package sms;

 

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.sql.Connection;

import java.sql.SQLException;

import java.sql.Statement;

 

import javax.swing.Box;

import javax.swing.ButtonGroup;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JRadioButton;

import javax.swing.JTextField;

 

public class AddFrame extends JFrame  implements ActionListener{

 

  privateConnection  conn;

  privateStatement   stmt;    

 

  JLabellbl1 = null;

  JLabellbl2 = null;

  JLabellbl3 = null;

  JLabellbl4 = null;

  JLabellbl5 = null;

 

  JTextFieldtf1 = null;

  JTextFieldtf2 = null;

  JTextFieldtf4 = null;

  JTextFieldtf5 = null;

 

  JRadioButtonman = null;

  JRadioButtonwoman = null;

  ButtonGroupsex = null;

 

  JButton  addBtn = null;

        

  JPanelp1 = null;

 

  BoxbaseBox,boxV1,boxV2,boxH1;

 

  publicAddFrame(){

         super("添加学生信息");

         //定义组件:从上到下,从左到右

         lbl1= new JLabel("学号:");

         lbl2= new JLabel("姓名:");

         lbl3= new JLabel("性别:");

         lbl4= new JLabel("年龄:");

         lbl5= new JLabel("专业:");

        

         tf1= new JTextField(20);

         tf2= new JTextField(20);

         tf4= new JTextField(20);

         tf5= new JTextField(20);

        

         man= new JRadioButton("",true);

         woman= new JRadioButton("");

        

         sex= new ButtonGroup();           

         sex.add(man);

         sex.add(woman);

        

         addBtn=newJButton("添加");

         addBtn.addActionListener(this);

        

         boxV1= Box.createVerticalBox();

         boxV1.add(lbl1);

         boxV1.add(Box.createVerticalStrut(8));

         boxV1.add(lbl2);

         boxV1.add(Box.createVerticalStrut(8));

         boxV1.add(lbl3);

         boxV1.add(Box.createVerticalStrut(8));

         boxV1.add(lbl4);

         boxV1.add(Box.createVerticalStrut(8));

         boxV1.add(lbl5);

        

         boxH1= Box.createHorizontalBox();

         boxH1.add(man);

         boxH1.add(Box.createHorizontalStrut(10));

         boxH1.add(woman);

        

         boxV2= Box.createVerticalBox();

         boxV2.add(tf1);

         boxV2.add(Box.createVerticalStrut(8));

         boxV2.add(tf2);

         boxV2.add(Box.createVerticalStrut(8));       

         boxV2.add(boxH1);

         boxV2.add(Box.createVerticalStrut(8));

         boxV2.add(tf4);

         boxV2.add(Box.createVerticalStrut(8));

         boxV2.add(tf5);

        

         baseBox= Box.createHorizontalBox();

         baseBox.add(boxV1);

         baseBox.add(Box.createHorizontalStrut(10));

         baseBox.add(boxV2);

        

         p1= new JPanel (new FlowLayout());        

         p1.add(baseBox);

         p1.add(addBtn);

        

         this.add(p1);

         this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

         setSize(300,250);

         Toolkittool = this.getToolkit();

         Dimensiondim = tool.getScreenSize();

         this.setLocation(dim.width/3+50,dim.height/3+50);

         setVisible(true);

         validate();

  }

 

  publicvoid actionPerformed(ActionEvent e) {

         //完成语句⒀:获取数据库连接

         try{

                String  txt1,txt2,txt3,txt4,txt5,sql;

                txt1=tf1.getText().trim();

                txt2=tf2.getText().trim();

                if(man.isSelected())txt3="M";

                elsetxt3="F";

                txt4=tf4.getText().trim();

                txt5=tf5.getText().trim();

               

                sql= "insert into stu(sno,sname,age,sex,major) values (";

                if(txt1.length()<=10 && Util.isNotEmpty(txt1) &&Util.isDigits(txt1)){

                       sql= sql + "'"+txt1+"','";

                       if(txt2.length()<=10 && Util.isNotEmpty(txt2)){

                              sql= sql + txt2+"',";

                              if(txt4.length()<=2 && Util.isNotEmpty(txt4) &&Util.isDigits(txt4)){

                                     sql= sql + Integer.parseInt(txt4)+",'";

                                     sql= sql + txt3+"','";

                                     if(txt5.length()<=25&& Util.isNotEmpty(txt5))

                                            sql= sql + txt5+"'";

                                     else{

                                            JOptionPane.showMessageDialog(this,"专业输入有误:0<长度<=25!");

                                            return;

                                     }                                       

                              }

                              else{

//完成语句⒁:弹出消息对话框,内容是:年龄输入有误:0<长度<=2且是数字字符!

                                     return;

                              }

                       }

                       else{

                              JOptionPane.showMessageDialog(this,"姓名输入有误:0<长度<=10!");

                              return;

                       }

                }

                else{

                       JOptionPane.showMessageDialog(this,"学号输入有误:0<长度<=10且是数字字符!");

                       return;

                }

                sql= sql + ")";

                intcnt = 0;

//完成语句⒂:创建提交sql语句的对象,并将sql语句的执行结果赋给整型变量cnt

                if(cnt>0)

                       JOptionPane.showMessageDialog(this,"成功添加"+cnt+"条学生记录!");

                else

                       JOptionPane.showMessageDialog(this,"添加学生记录失败!");

         }catch (SQLException e1) {

                e1.printStackTrace();

         }

finally{

                       try{

                              if(stmt!=null)stmt.close();

                              if(conn!=null)conn.close();

                       }

                       catch(SQLException e1) {

                              e1.printStackTrace();

                       }

                }

  }    

}

 

DelFrame.java

package sms;

 

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.GridLayout;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

 

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

 

public class DelFrame extends JFrame  implements ActionListener{

 

  privateConnection  conn = null;

  privateStatement   stmt = null;

 

  JLabellbl1 = null;

  JLabellbl2 = null;

 

  JTextFieldtf1 = null;

  JTextFieldtf2 = null;

 

  JButton  delBtn = null;

 

  JPanelp1 = null;

  JPanelp2 = null;

 

  publicDelFrame(){

         super("学生信息删除");

         //定义组件:从上到下,从左到右

         lbl1= new JLabel("学号:",10);

         lbl2= new JLabel("专业:",10);

        

         tf1= new JTextField(20);

         tf2= new JTextField(20);

        

         delBtn=newJButton("删除");

         delBtn.addActionListener(this);

        

         p1= new JPanel (new FlowLayout());

         p1.add(lbl1);

         p1.add(tf1);

         p1.add(lbl2);

         p1.add(tf2);

 

         p2= new JPanel (new FlowLayout());

         p2.add(p1);

         p2.add(delBtn);

        

         this.setLayout(newGridLayout(3,1));

         this.add(p2);

         this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

         setSize(550,300);

         Toolkittool = this.getToolkit();

         Dimensiondim = tool.getScreenSize();

         this.setLocation(dim.width/3,dim.height/3);

         setVisible(true);

         validate();

  }

  publicvoid actionPerformed(ActionEvent e) {

         intresult ;

//完成语句⒃:弹出确认对话框,内容是:确定要删除吗?标题是:确认删除

         if(result == JOptionPane.YES_OPTION){

                conn= DatabaseConnection.getConnection("jdbc:odbc:StudentDsn","", "");

                try{

                       String  txt1,txt2,condition = "";

                       txt1=tf1.getText();

                       txt2=tf2.getText();

                       if(txt1!=null && !txt1.equals(""))

                              condition= " where sno like '%"+txt1+"%' ";

                       if(txt2!=null && !txt2.equals(""))

                              if(condition.equals(""))

                                     condition= " where  major like'%"+txt2+"%' ";

                              else             

                                     condition=condition + " and major like '%"+txt2+"%' ";

                       Stringsql = "delete from stu" + condition;

                       System.out.println(sql);

                       stmt= conn.createStatement();

                       intcnt = stmt.executeUpdate(sql);

                       if(cnt>0)

                              JOptionPane.showMessageDialog(this,"成功删除"+cnt+"条学生记录!");

                       else

                              JOptionPane.showMessageDialog(this,"删除学生记录失败!");

                }catch (SQLException e1) {

                       e1.printStackTrace();

}

finally{

                       try{

                              if(stmt!=null)stmt.close();

                              if(conn!=null)conn.close();

                       }

                       catch(SQLExceptione1) {

                              e1.printStackTrace();

                       }

                }

  }    

}

 

⑥参考SelFrame.javaAddFrame.javaDelFrame.javaUpdFrame.java的代码补充完整,完成学生信息的更新功能。

Util.java

package sms;

 

public class Util {

//问题7:方法isNotEmpty()的功能是什么?

  publicstatic boolean isNotEmpty(String str){

         if(str!=null && !str.equals(""))

                returntrue;

         returnfalse;

  }

//问题8:方法isDigits ()的功能是什么?

  publicstatic boolean isDigits(String str){

         char[]arr=str.toCharArray();

         inti;

         for(i=0;i<str.length();i++)

                if(!Character.isDigit(arr[i]))

                       returnfalse;

         returntrue;                         

  }

}

 

㈢附加题:改善日历记事系统。

三、设计要求:

1.前两道题必做,第三题选做。

2.积极查阅相关教材、资料,独立完成。

四、实习报告撰写内容和要求

(一)内容

1.      系统环境(硬件环境、软件环境)

2.      设计内容:

        ①设计题目

②完成题目要求

③运行结果(根据自己的运行情况复制一幅)

  另外:第㈡题需要将CDInfor.txt文件用写字板打开,复制最终的结果画面。

 

3.      设计难点及解决办法

4.      创新及技巧:根据自己的设计过程进行汇总,如果没有就不用写。

5.      心得体会

(二)要求

1.        统一书写在实习报告上。

2.      认真填写实习报告,程序要写完整,补充程序段要做特殊标记。

3.      实习报告内容:封面、课程设计任务书、设计报告。

五、设计时间:一周(第18周)。具体时间参考实验室安排表。

六、说明:

①考勤占评分的20%(提前完成的同学需要找老师登记),程序调试占评分的40%,设计报告占评分的40%严禁抄袭、复印课程设计报告,否则相同报告均以零分计。

②设计中,要提前编制下次调试的程序,计划好每次上机的内容,积极、高效、独立地完成这次设计任务。对没有准备的同学,禁止上机。

③固定机位,将文件保存在自己的文件夹里,避免误操作或其他同学使用时丢失。