课程设计目录

  • 一、问题描述
  • 二、基本要求
  • 三、需求分析
  • 四、概要设计
    • 1、类之间的调用关系
    • 2、学生信息模块
    • 3、系统管理模块
    • 4、详细设计
      • ①主程序LoginGUI的代码
      • ②程序View的代码
      • ③程序Student的代码
      • ④程序ConnectSQLServer的代码
  • 五、调试分析
  • 六、用户使用说明
    • 1、登录
    • 2、添加
    • 3、查询
    • 4、修改
    • 5、删除
    • 6、退出
  • 七、测试结果
  • 八、课程设计总结
  • 九、参考文献
  • 十、源码下载

一、问题描述

如何实现一个功能简单的学生信息管理系统,能够对学生信息(包括照片)进行添加、删除、修改和查询等操作。

二、基本要求

实现一个功能简单的学生信息管理系统,该系统具有按照账户名密码登录功能,登录后,可以添加,删除,修改、查询(显示学生相片)学生信息,添加学生信息时,要求能添加学生的相片信息(实现相片文件的上传和下载功能)。

三、需求分析

程序设计的任务是实现对学生信息的管理。用户名和密码都默认设置为0,用户名或密码输入错误会弹出“用户名或密码输入不正确”的对话框。在用户名和密码输入正确后进入学生信息管理系统,然后进行添加、修改、删除等操作。在添加操作里面可以上传和下载照片,这是File类型的。输入的其他学号、姓名、性别、电话、QQ和专业都是String类型,输出的也是String类型。点击确认后会弹出“添加成功”。

四、概要设计

1、类之间的调用关系

2、学生信息模块

3、系统管理模块

4、详细设计

①主程序LoginGUI的代码

主要实现了系统的登录窗口和登录之后进入的信息管理窗口,还有增删改查功能。

package 学生信息管理系统;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;public class LoginGUI{private JFrame jf;//水平boxprivate Box center=Box.createVerticalBox();//学号的JPanelprivate JPanel idPanel=new JPanel();//密码的JPanelprivate JPanel passwordPanel=new JPanel();private JLabel lUserId=new JLabel("用户名");private JTextField tUserId=new JTextField(15);private JLabel lPassword=new JLabel("密   码");private JPasswordField tPassword=new JPasswordField(15);//按钮的JPanelprivate JPanel buttonPanel=new JPanel();private JButton bLogin=new JButton("登录");private JButton bCancel=new JButton("取消");//设置运行时窗口的大小Dimension faceSize=new Dimension(350,150);//获得屏幕的大小Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();public void init(){jf=new JFrame("学生信息管理系统");//设置JFrame的名称jf.setTitle("登录");//将lUserId,tUserId放在idPanel中,idPanel默认水平放置idPanel.add(lUserId);idPanel.add(tUserId);passwordPanel.add(lPassword);passwordPanel.add(tPassword);center.add(idPanel);center.add(passwordPanel);buttonPanel.add(bLogin);buttonPanel.add(bCancel);//登录按钮的监听器bLogin.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String userId=tUserId.getText();String password=String.valueOf(tPassword.getPassword());//开启接受数据的线程if(userId.trim().equals("")||userId==null||password.trim().equals("")||password==null){JOptionPane.showMessageDialog(jf,"用户名或密码不能为空!","提示",JOptionPane.WARNING_MESSAGE);}else{if(userId.equals("0")&&password.equals("0")){new StudentManageView().init();}else{loginFailure();}}}});//取消按钮的监听器bCancel.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.exit(0);}});center.add(buttonPanel);jf.add(center);jf.pack();//设置JFame运行时的大小jf.setSize(faceSize);//设置JFame运行时的位置jf.setLocation((int)(screenSize.width-faceSize.getWidth())/2,(int)(screenSize.height-faceSize.getHeight())/2);//设置JFrame不可最大化jf.setResizable(false);//设置JFrame单机X时结束程序jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置JFrame可见jf.setVisible(true);}public void loginFailure(){JOptionPane.showMessageDialog(jf, "用户名或密码输入不正确!","提示",JOptionPane.WARNING_MESSAGE);}public static void main(String args[])throws Exception{new LoginGUI().init();}
}
class MyJTable extends JTable{/*** */private static final long serialVersionUID = -3083638370004874364L;public MyJTable(TableModel dm){super(dm);}//设置表格不可编辑public boolean isCellEditable(int rowIndex,int columnIndex){return false;}
}
class StudentService{private Student[] students=new Student[50];//添加学生信息public void insert(Student s){for(int i=0;i<students.length;i++){if(students[i]==null){students[i]=s;System.out.println("添加成功!");break;}}}//删除学生信息public int delete(String userId){int flag=0;for(int i=0;i<students.length;i++){if(students[i]!=null){if(students[i].getUserId().equals(userId)){students[i]=null;System.out.print("删除成功!");flag=1;break;}}}return flag;}//修改学生信息public void update(Student s){String userId=s.getUserId();for(int i=0;i<students.length;i++){if(students[i]!=null){if(students[i].getUserId().equals(userId)){students[i].setId(s.getId());students[i].setName(s.getName());students[i].setSex(s.getSex());students[i].setAge(s.getAge());students[i].setPhone(s.getPhone());students[i].setQq(s.getQq());students[i].setMajor(s.getMajor());}}}}//按学号查询public Student selectById(String userId){for(Student s:students){if(s!=null){if(s.getUserId().equals(userId)){return s;}}}return null;}//查询所有学生信息public Student[] selectAll(){return students;}
}class StudentManageView {//设置上传照片的按钮private JButton upload=new JButton("上传照片");private JFrame jf=new JFrame("学生信息管理系统");Dimension faceSize=new Dimension(800,600);private Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();//按学号查询private JPanel pSelect=new JPanel();private JLabel lSelect=new JLabel("学号");private JTextField tSelect=new JTextField(15);private JButton bSelect=new JButton("查询");//查询结果放在一个JTableprivate MyJTable table;private DefaultTableModel tableModel;private JScrollPane tableScrollPane;private Object[] tableTitle={"学号","姓名","性别","年龄","手机号","QQ","专业"};private Object[][]tableData={new Object[]{""}};//对学生信息进行管理的添加、删除、修改按钮private JPanel buttonPanel=new JPanel();private JButton insert=new JButton("添加");private JButton delete=new JButton("删除");private JButton update=new JButton("修改");//单机添加、修改时弹出的对话框private JDialog dialog=new JDialog(jf,"学生管理");private Box box=Box.createVerticalBox();private JPanel pPhoto=new JPanel(new FlowLayout(FlowLayout.LEFT));private JPanel pId=new JPanel(new FlowLayout(FlowLayout.LEFT));private JPanel pName=new JPanel(new FlowLayout(FlowLayout.LEFT));private JPanel pSex=new JPanel(new FlowLayout(FlowLayout.LEFT));private JPanel pAge=new JPanel(new FlowLayout(FlowLayout.LEFT));private JPanel pPhone=new JPanel(new FlowLayout(FlowLayout.LEFT));private JPanel pQq=new JPanel(new FlowLayout(FlowLayout.LEFT));private JPanel pMajor=new JPanel(new FlowLayout(FlowLayout.LEFT));private JLabel lPhoto=new JLabel("头 像");private JLabel lId=new JLabel("学 号");private JLabel lName=new JLabel("姓 名");private JLabel lSex=new JLabel("性 别");private JLabel lAge=new JLabel("年 龄");private JLabel lPhone=new JLabel("手 机");private JLabel lQq=new JLabel("Q Q");private JLabel lMajor=new JLabel("专 业");private ImageIcon icon=new ImageIcon(new ImageIcon("D:/Saved Pictures/520.jpg").getImage().getScaledInstance(30,30,3));private JLabel tPhoto=new JLabel(icon);private JTextField tId=new JTextField(15);private JTextField tName=new JTextField(15);private ButtonGroup bSex=new ButtonGroup();private JRadioButton boy=new JRadioButton("男");private JRadioButton girl=new JRadioButton("女");private JTextField tAge=new JTextField(15);private JTextField tPhone=new JTextField(15);private JTextField tQq=new JTextField(15);private JTextField tMajor=new JTextField(15);private JPanel pButton=new JPanel();private JButton confirm=new JButton("确认");private JButton cancel=new JButton("取消");private StudentService service=new StudentService();//用于标记是添加还是修改private String id;void init(){pSelect.add(lSelect);pSelect.add(tSelect);pSelect.add(bSelect);//查询按钮的监听器bSelect.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String userId=tSelect.getText().trim();if(userId.equals("")){Student[] student=service.selectAll();clearTable();for(Student s:student){insertTable(s);}}else{Student s=service.selectById(userId);if(s!=null){clearTable();insertTable(s);}else{selectFailure();}}}});//tabletableModel=new DefaultTableModel(tableData,tableTitle);table=new MyJTable(tableModel);tableScrollPane=new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED  );//buttonbuttonPanel.add(insert);buttonPanel.add(delete);buttonPanel.add(update);//添加按钮的监听器insert.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){//上传照片的监听器upload.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){new View().use();ImageIcon icon=new ImageIcon(new ImageIcon("fromFileName").getImage().getScaledInstance(30,30,3));JLabel tPhoto=new JLabel(icon);pPhoto.add(tPhoto);}});//如果是添加,则将id=null;id=null;tId.setText("");tId.setEditable(true);tName.setText("");bSex.clearSelection();tAge.setText("");tPhone.setText("");tQq.setText("");tMajor.setText("");dialog.setVisible(true);}});//删除按钮的监听器delete.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){//获得选择删除的行号数组int[] selected=table.getSelectedRows();//如果selected的长度为0,说明没有选择要删除的if(selected.length==0){JOptionPane.showMessageDialog(jf, "请选择要删除的信息!","提示",JOptionPane.WARNING_MESSAGE );}else{//提示是否要进行删除int flag=JOptionPane.showConfirmDialog(jf, "确认删除吗?","提示",JOptionPane.WARNING_MESSAGE );//如果选择是,则进行删除if(flag==JOptionPane.OK_OPTION ){for(int i=selected.length-1;i>=0;i--){service.delete((String)tableModel.getValueAt(selected[i], 0));tableModel.removeRow(selected[i]);}}}}});//修改按钮的监听器update.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){int row=table.getSelectedRow();//如果要进行修改,就将id=要修改的学号id=String.valueOf(table.getValueAt(row, 0));//设置tId的内容tId.setText(id);//设置tId不可修改tId.setEditable(false);tName.setText(String.valueOf(table.getValueAt(row, 1)));String sex=(String) table.getValueAt(row, 2);//如果性别是"男",则将单选框中的男选中,否则选中女if(sex.equals("男")){bSex.setSelected(boy.getModel(),true);}else{bSex.setSelected(girl.getModel(),true);}tAge.setText(String.valueOf(table.getValueAt(row, 3)));tPhone.setText(String.valueOf(table.getValueAt(row, 4)));tQq.setText(String.valueOf(table.getValueAt(row, 5)));tMajor.setText(String.valueOf(table.getValueAt(row, 6)));//设置dialog可见dialog.setVisible(true);}
});jf.setLayout(new BorderLayout());//设置pSelect在jf的北面jf.add(pSelect,BorderLayout.NORTH);//设置pSelect在jf的中心jf.add(tableScrollPane,BorderLayout.CENTER );//设置pSelelct在jf的南面jf.add(buttonPanel,BorderLayout.SOUTH);jf.pack();jf.setSize(faceSize);jf.setLocation((int)(screenSize.width-faceSize.getWidth())/2,(int)(screenSize.height-faceSize.getHeight())/2);jf.setResizable(false);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.setVisible(true);pPhoto.add(lPhoto);pPhoto.add(tPhoto);pPhoto.add(upload);pId.add(lId);pId.add(tId);pName.add(lName);pName.add(tName);pSex.add(lSex);bSex.add(boy);bSex.add(girl);pSex.add(boy);pSex.add(girl);pAge.add(lAge);pAge.add(tAge);pPhone.add(lPhone);pPhone.add(tPhone);pQq.add(lQq);pQq.add(tQq);pMajor.add(lMajor);pMajor.add(tMajor);pButton.add(confirm);pButton.add(cancel);//确定按钮的监听器confirm.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){Student student=new Student();student.setUserId(tId.getText());student.setPassword(tId.getText());student.setId(tId.getText());student.setName(tName.getText());String sex=null;if(boy.isSelected()){sex="男";}if(girl.isSelected()){sex="女";}student.setSex(sex);student.setAge(tAge.getText());student.setPhone(tPhone.getText());student.setQq(tQq.getText());student.setMajor(tMajor.getText());if(id!=null){service.update(student);}else{service.insert(student);}dialog.dispose();}});//取消按钮的监听器cancel.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){dialog.dispose();}});box.add(pPhoto);box.add(pId);box.add(pName);box.add(pPhone);box.add(pSex);box.add(pAge);box.add(pPhone);box.add(pQq);box.add(pMajor);box.add(pButton);box.add(pButton);dialog.add(box);dialog.setBounds((int)(screenSize.width-280)/2,(int)(screenSize.height-300)/2,280,350);}public void insertTable(Student student){if(student!=null){String[]newCell=new String[7];newCell[0]=student.getId();newCell[1]=student.getName();newCell[2]=student.getSex();newCell[3]=student.getAge();newCell[4]=student.getPhone();newCell[5]=student.getQq();newCell[6]=student.getMajor();tableModel.addRow(newCell);}}public void clearTable(){int rows=tableModel.getRowCount();for(int i=rows-1;i>=0;i++){tableModel.removeRow(i);}}public void selectFailure(){JOptionPane.showMessageDialog(jf,"不存在该学号的学生!","提示",JOptionPane.WARNING_MESSAGE );}
}

②程序View的代码

主要实现了上传下载功能的窗口,修改文件路径也是在这里修改,一共三处。

public class View {private JFrame jf=new JFrame();
//页面的总JPanel
private JPanel total=new JPanel(new BorderLayout());
//上传
private JPanel pUpload=new JPanel(new FlowLayout(FlowLayout.LEFT));
private JLabel lFileName=new JLabel("请选择上传的照片");
private JTextField tFileName=new JTextField(15);
private JButton bBrowse=new JButton("浏   览");
private JFileChooser uploadChooser=new JFileChooser();
private JButton bUpload=new JButton("上  传");
private JPanel pDownload=new JPanel(new FlowLayout(FlowLayout.LEFT));
private JLabel lDownload=new JLabel("下载下面的图片:");
private JFileChooser downloadChooser=new JFileChooser();
private JButton bDownload=new JButton("下  载");
private JPanel pIcon=new JPanel(new FlowLayout(FlowLayout.LEFT));
//使用本地图片文件作为图标
private ImageIcon icon=new ImageIcon(new ImageIcon("D:/Saved Pictures/009.jpg").getImage().getScaledInstance(400,320,0));
private JLabel lIcon=new JLabel(icon);
Dimension faceSize=new Dimension(500,450);
//设置运行时窗口的位置
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
public void use(){pUpload.add(lFileName);pUpload.add(tFileName);pUpload.add(bBrowse);pUpload.add(bUpload);//浏览按钮的监听器bBrowse.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){downloadChooser.setCurrentDirectory(new File("."));int result=downloadChooser.showOpenDialog(jf);if(result==JFileChooser.APPROVE_OPTION ){String path=downloadChooser.getSelectedFile().getPath();tFileName.setText(path);}}});//上传按钮的监听器bUpload.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String fromFileName=tFileName.getText();String toFileName="D:/Config/"+System.currentTimeMillis()+".jpg";write(fromFileName,toFileName);JOptionPane.showMessageDialog(jf, "上传成功!","提示",JOptionPane.WARNING_MESSAGE );}});pDownload.add(lDownload);pDownload.add(bDownload);//下载按钮的监听器bDownload.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){downloadChooser.setCurrentDirectory(new File("."));int result=uploadChooser.showOpenDialog(jf);if(result==JFileChooser.APPROVE_OPTION ){String path=uploadChooser.getSelectedFile().getPath();String fromFileName="D:/Saved Pictures/009.jpg";write(fromFileName,path);JOptionPane.showMessageDialog(jf, "下载成功!","提示",JOptionPane.WARNING_MESSAGE );}}});
//放置按钮的位置pIcon.add(lIcon);total.add(pUpload,BorderLayout.NORTH);total.add(pDownload,BorderLayout.CENTER);total.add(pIcon,BorderLayout.SOUTH);jf.add(total);jf.setSize(faceSize);jf.setLocation((int)(screenSize.width-faceSize.getWidth())/2,(int)(screenSize.height-faceSize.getHeight())/2);jf.setResizable(false);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );jf.setVisible(true);
}
//fromFile是源文件,toFile是目的文件
public void write(String fromFile,String toFile){FileInputStream fis=null;FileOutputStream fos=null;
//用try和catch捕获异常try{fis=new FileInputStream(fromFile);fos=new FileOutputStream(toFile);byte[] buf=new byte[1024];int hasRead=0;while((hasRead=fis.read(buf))>0){fos.write(buf,0,hasRead);}}catch(FileNotFoundException e){e.printStackTrace();}catch(IOException e){e.printStackTrace();  }finally{try{fis.close();fos.close();}catch(IOException e){e.printStackTrace();  }}
}
public static void main(String args[]){//用View的引用调用use方法new View().use();
}
}

③程序Student的代码

创建User表和Student表,先定义各个变量,然后加上set和get方法。

package 学生信息管理系统;
class User{private String userId;private String password;public String getUserId(){return userId;}public void setUserId(String userId){this.userId=userId;}public String getPassword(){return password;}public void setPassword(String password){this.password=password;}
}
public class Student extends User{private String id;private String name;private String sex;private String age;private String phone;private String qq;private String major;private Object photo;public Object getPhoto(){return photo;}public void setPhoto(Object photo){this.photo=photo;}public String getId(){return id;}public void setId(String id){this.id=id;}public String getName(){return name;}public void setName(String name){this.name=name;}public String getSex(){return sex;}public void setSex(String sex){this.sex=sex;}public String getAge(){return age;}public void setAge(String age){this.age=age;}public String getPhone(){return phone;}public void setPhone(String phone){this.phone=phone;}public String getQq(){return qq;}public void setQq(String qq){this.qq=qq;}public String getMajor(){return major;}public void setMajor(String major){this.major=major;}
}

④程序ConnectSQLServer的代码

主要实现数据库的连接,存储学生信息。直接声明数据库的登录名和密码,和连接使用的URL,用try-catch来加载数据库驱动和给出提示信息。

package 学生信息管理系统;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;import javax.swing.JOptionPane;class DatebaseConnection {//数据库连接成功public final String DBDRIVER="net.sourceforge.jtds.jdbc.Driver";//数据库连接的URLpublic  final String DBURL="jdbc:jtds:sqlserver://127.0.0.1:1433/Competition";//数据库登录名public final String DBUSER="sa";//数据库登录密码public final String DBPASS="Ambow99999999";private Connection conn=null;public DatebaseConnection(){try{//加载数据库驱动Class.forName(DBDRIVER);//获取数据库连接conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);}catch(SQLException e){JOptionPane.showMessageDialog(null,"数据库连接失败","异常",JOptionPane.ERROR_MESSAGE );System.exit(0);}catch(ClassNotFoundException e){JOptionPane.showMessageDialog(null, "驱动加载失败","异常",JOptionPane.ERROR_MESSAGE );System.exit(0);}}public Connection getConnection(){return this.conn;}public void close(){//关闭数据库连接if(this.conn!=null){try{this.conn.close();}catch(SQLException e){}}}}public class ConnectSQLServer{public static void main(String[] args) {try{Connection con=new DatebaseConnection().getConnection();if(con!=null){JOptionPane.showMessageDialog(null,"数据库连接成功","祝贺",JOptionPane.INFORMATION_MESSAGE );System.exit(0);}else{JOptionPane.showMessageDialog(null, "数据库连接失败","错误",JOptionPane.ERROR_MESSAGE );System.exit(0);}con.close();}catch(SQLException e){e.printStackTrace();  }}}

五、调试分析

在一开始调试的时候,发现虽然没有错误,但无法运行,找了很久发现是自己在main方法里没有去调用init()方法,然后填上了之后程序可以运行。然后在成功登录后进入学生信息管理系统界面。在里面没有上传照片和下载图片这一选项。我在View这个程序里面首先添加了本地的图片作为图标可供下载,然后选定一个文件夹Config作为上传的路径。这样,我就在LoginGUI类里面的添加按钮监听器里面再增加了调用View类的use()方法的监听器,实现了图片上传和下载的功能。总之,从一开始参考书上例题打出来的程序作为基石,在上面进行雕刻。从设计转化为实现,打基础这一步很困难,因为要花很长时间查资料、看书和看代码来理解程序,然后才能自己灵活进行优化。同学之间也相互讨论帮助,都能给出自己的想法,然后交流之后会得出更好的创意,从第一个星期开始,我已经规划好要怎样做,许多同学也参考了我的规划。我一直按照计划实施并且很顺利地完成了程序设计。

六、用户使用说明

1、登录

(1)程序设计的任务是先设计出一个登录窗口,输入用户名和密码。

如果输入错误,会像如图所示输出“用户名或密码输入不正确”的对话框:

我给出的代码为了方便调试,用户名和密码全是0,记住运行的是LoginGUI这个类

(2)如果正确,则成功登录,进入学生信息管理界面,如图所示:

2、添加

(1)点击“添加”按钮,进入学生信息添加界面:

(2)在以上界面输入要添加的学生信息,首先点击“上传照片”按钮,然后弹出如下窗口:

(3)点击浏览选项,选择本地文件里需要上传的图片,这里我们选择Taylor Swift的图片,然后点击上传,会显示“上传成功”的对话框。

(4)可以看到这张图片上传到了本地D:/Config,实现了图片的上传功能。

(5)也可以点击“下载”这个按钮,会提示下载成功的对话框,如图所示:

(6)它会将你的头像下载到你指定的文件夹中,实现了文件的下载功能,如下图所示是将头像下载到E:/QQ浏览器文件这个文件夹里。

(7)然后添加其他的学生信息,如图所示:

(8)点击“确认”按钮,即可保存学生信息。我们再添加一个女学生的信息,如下图所示:

(9)然后单击“确定”按钮,此时学生信息添加成功。

3、查询

(1)在学生管理界面的学生信息列表中点击“查询”按钮,即可显示已经添加的学生信息记录,如图所示:

(2)也可以在“查询”的文本框内输入学号,然后点击“查询”按钮,会跳出所对应的学生记录,如图所示:

4、修改

(1)点击所选的武则天学生记录,再点击“修改”按钮,弹出信息框,修改姓名为“花木兰”,修改手机号为“18816218888”,如图所示:

(2)点击确认按钮,再点击“查询”按钮进行刷新,显示出修改后的信息,如下图所示:

5、删除

(1)在学生信息管理系统界面选中某一学生记录,单击“删除”按钮,弹出删除确认界面。如果确认删除,单击“确定”按钮,否则单击“取消”按钮。

(2)我们选择学生凯的记录,并点击“删除”按钮,再确定删除,会看到这条记录被删除,仅剩学生花木兰的记录,如图:

6、退出

点击右上角的X,将关闭所有程序窗口。

七、测试结果

测试数据和测试结果在用户使用说明选项中已经详细介绍过,这里不再重复介绍。

八、课程设计总结

这次课程设计总体来说是一次非常有意义的任务,因为在这次课程设计中我学会了很多GUI编程和流类的知识,提高了编程的能力,也增加了对编程的兴趣。虽然这是一个小项目,但是能把它做好也是有很大的满足感。虽然一开始遇到很多问题,但自己都咬牙克服、迎难而上,每天都在钻研程序,然后将自己的思想与同学们交流。可以说,没有付出就没有回报,只要你肯付出,就会有收获。一件事,你只要用心去做了,将它做好,无论结果如何,你都不会留有遗憾的。课程设计让我对所学知识有了更深刻的理解,也让我明白如今对程序员的要求是多么严格,需要掌握各种编程知识,才能够在职场上游刃有余。

九、参考文献

《JAVA核心技术》 马志强 张然 李雷孝著
《JAVA API文档》 Oracle官网文件
《JAVA编程思想》 【美】Bruce Eckel著
《JAVA数据库技术详解》 李刚 著

十、源码下载

学生信息管理系统的整体代码界面展示如下:

1、Main.java类

2、View.java类

3、Student.java类

4、ConnectSQLServer类

5、LoginGUI类

这个系统也是当时为数不多的优秀课程设计,需要源码的同学可以关注博主的公众号《萌新加油站》,回复:java学生系统,可以获得源码学习。

等你有了新的圈子,别忘了谁陪你走过了人烟稀少的时候;等你过得好时,别忘了谁陪你度过了最艰难的时刻。路上人山人海,不一定都对你好,但肯定会有一个愿意等。朋友不要多,但要最真。你可以不好,但不能背叛;可以不是土豪,但会懂得分享。可以没有势力,但知道护友。最后我们都散了,记得常联系。

Java课程设计【学生信息管理系统】相关推荐

  1. Java课程设计——学生信息管理系统

    一.项目简介 二.项目构架图 三.团队成员任务简介 四.代码 五.项目运行图片 一.项目简介: 实现一个功能简单的学生信息管理系统,该系统具有按照账户名密码登录功能,登录后,可以添加,删除,修改.查询 ...

  2. Java课程设计 学生信息管理系统

    一.项目介绍 题目要求: 功能要求: 1.添加学生功能:姓名.学号.性别.出生年月日.(注意:学号自动生成,学号必须唯一) 2.添加学生成绩功能:假设每个人都选修了语文.数学与英语.但输入成绩的时候, ...

  3. Java课程设计——学生信息管理系统(源码)

    项目简介 该项目可以分为三个模块:登录模块.主页面模块.信息储存模块.本系统完成了基本所需功能,界面清晰,操作简单又实用,基本满足了学校对学生信息的增添.查询.修改和删除等功能,且具有登录系统使该系统 ...

  4. java查询学生信息_分别显示女生_女生学生基本信息的代码_java课程设计学生信息管理系统_毕业论文.doc...

    java课程设计学生信息管理系统_毕业论文 学 号: 课 程 设 计 题 目学生信息管理系统学 院计算机科学与信息工程学院专 业金融信息化服务外包班 级学生姓名指导教师 2015年12月28日 课程设 ...

  5. java学籍管理系统 课程设计,Java课程设计---学生学籍管理系统

    Java课程设计---学生学籍管理系统 设计报告设计报告 课题名称学生学籍管理系统 学院 专业班级计算机应用技术 091 学号 学生 指导教师 2011 年 7 月 7 日 1 学生 指导教师 课题名 ...

  6. java毕业生设计学生信息管理系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计学生信息管理系统计算机源码+系统+mysql+调试部署+lw java毕业生设计学生信息管理系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B/S架构 开 ...

  7. oracle学生信息管理系统课程设计,数据库课程设计-学生信息管理系统的设计与实现.doc...

    数据库课程设计-学生信息管理系统的设计与实现 2011-2012课程设计II 学生信息管理系统的设计与实现 一 设计内容 建立一个简单的在校学生信息查询系统,可以让使用者查询到学生的一些简单的个人信息 ...

  8. ASP.NET程序设计课程设计——学生信息管理系统

    点击查看详细信息 ASP.NET程序设计课程设计--学生信息管理系统 一.实验目的 综合运用们所学的ASP.NET知识,开发学生信息管理系统,完成相关功能: (1)教师管理 (2)学生信息 (3)课程 ...

  9. C语言课程信息管理系统课程设计,c语言课程设计学生信息管理系统.doc

    c语言课程设计学生信息管理系统 课程设计报告 课程名称: 高级语言程序设计课程设计 姓 名: 汤璞君 班级学号: BX1209 121003410937 指导教师: 吉顺如 完成日期: 2013.6. ...

  10. 【记录贴】数据库课程设计——学生信息管理系统

    前言 记录下学习的点点滴滴,留下属于我的足迹. 以此篇记录我的第一次课程设计. 课设实现 一.课程设计题目 题目一 学生信息管理系统 二.总体设计 原理及工具 JAVA的前端搭建:JAVA GUI M ...

最新文章

  1. 不同语言编译的程序入口总结
  2. boot分布式计算 spring_springboot05-分布式系统理念
  3. React-引领未来的用户界面开发框架-读书笔记(一)
  4. 创建对象并且使用对象的属性和方法
  5. c++ 复制构造函数_C++学习刷题8--复制构造函数和赋值运算符重载函数
  6. codeforces 749
  7. 不用更改注册表就可以更改桌面所在的位置
  8. 蓝桥杯2021年第十二届C++省赛第四题-货物摆放
  9. html里的表情,HTML 表情符号
  10. 酷派5890刷recovery详细教程
  11. unity3d贪吃蛇游戏源码,支持安卓+IOS双端 unity2019 C#语言开发
  12. 基于java的飞机大战雷电游戏的开发与设计#毕业设计
  13. 解决VS 2017/2019社区版无法登陆的方法
  14. 统计学知识系列:一篇搞懂假设检验
  15. 根据pdf转换成tif图片
  16. 【踩坑】XML转JSON中如何把单个元素转成数组
  17. html怎么画虚线空心圆,教你用ps怎么画一个虚线的空心圆
  18. Nginx搭建文件下载服务器
  19. bitcode 是什么_secured是什么意思 Secured borrowings是什么意思
  20. 免费桌面视频录像工具OBS的简单操作介绍

热门文章

  1. linux使用---automake学习(从原理到实践,一步步完成automake)
  2. java 上溯造型与下塑造型
  3. mysql命令的依赖库_3.EZMM工程(常用shell命令,及需要用到的基本依赖库)
  4. 微信URL带来重大调整
  5. 计算机辅助初中数学教学,初中数学教学论文 计算机辅助农村初中数学教学的几点想法...
  6. 夯实Java基础(二)——面向对象之封装
  7. 如何让.Net线程支持超时后并自动销毁!
  8. java+opencv+intellij idea实现人脸识别
  9. MySQL replication illegal mix of collations
  10. 【信息系统项目管理师】第7章-项目成本管理 知识点详细整理