Java学生信息管理Swing窗体.docx
- 文档编号:882155
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:46
- 大小:167.92KB
Java学生信息管理Swing窗体.docx
《Java学生信息管理Swing窗体.docx》由会员分享,可在线阅读,更多相关《Java学生信息管理Swing窗体.docx(46页珍藏版)》请在冰点文库上搜索。
Java学生信息管理Swing窗体
实验名称:
实验5:
综合性程序设计—简单学生信息管理系统
班级:
*****姓名:
Zzz学号:
20151601****
一、实验目的
二、实验内容与结果
(1)任务描述(1.3与1.4二选一,建议选择1.4)
利用课程所学知识,设计并实现一个简单学生信息管理系统,要求如下:
1.1声明Student类,该类实现Serializable接口以表明该类可以进行序列化。
该类有姓名、学号(long),math、os、java用来存放对应的成绩,在构造方法中进行姓名、学号、课程成绩的赋值。
Override由Object继承来的toString方法以便以友好格式显示自己的属性,格式为:
张三12os:
90java:
90math:
90。
1.2建立一个类,利用数据库来存储多个Student,写完一个方法在main中写一段测试代码,运行以保证目前所做工作的正确性。
有以下方法:
add(Studentstu):
可以增加新的学生,并保存在数据库中。
update(Studentstu):
可以修改特定的学生,并保存在数据库中。
dispAll():
可以显示所有的学生信息。
findById(longid):
可以按照学号来查找,并显示符合条件的学生信息,查无该人的话显示错误信息。
findByName(Stringname):
可以按照姓名查找学生,找到后显示其信息,查无此人显示错误信息。
delById(longid):
可以按照id删除学生的信息,然后显示找到该人。
若查无此人,显示相应的错误信息。
1.3(控制台方式)完善应用程序,实现相应的功能如下:
添加学生信息、修改指定学号的学生信息、显示所有学生信息、按学号查找、按姓名查找、按学号删除、按成绩排序和退出。
1.4(Swing窗体方式)完善应用程序,实现相应的功能如下:
添加学生信息、修改指定学号的学生信息、显示所有学生信息、按学号查找、按姓名查找、按学号删除、按成绩排序和退出。
(2)处理思路及关键技术说明
(3)程序完整源码(要求格式规范,适当注释)
(4)运行结果截图(按每个操作分别截图)
(2)处理思路及关键技术说明
分三个模块:
一是jdbc的代码,另一个是Swing和AWT的代码,剩下是Student类。
Jdbc一共有两个类:
DBUtil(连接工具类)和Sql类(处理jdbc功能的静态方法)
Swing和AWT一个有两个类:
MyJFrame构建总窗口,MyJPanel对窗口内的面板行修饰。
然后就是Student类和Main主方法类。
关键部分:
1)在主窗体中add三个Jpanel,底层和第二层左右三个,右边的Jpanel实现cardLayout布局,左边的Jpanel添加按钮并添加ActionListener来实现对象的card切换达到不同按钮进入不同功能面板的目的。
2)在MyJPanel类中,所有的init方法均传递参数JPanelp,对传递过来的Panel进行加工修饰,并且调用Sql里面对应功能的方法。
3)Sql中的显示全部信息的方法中使用了ArrayList来存储从studenttbl中读取的对象信息,存储之后为了按照String的方式显示在JtextArea中,又用了listToString方法,通过for循环并追加回车,使每个对象都转化为String并在后面加上了回车(separator),
4)在Sql中的查找,删除,添加都使用了jdbc中的预处理PreparedStatement
在操作完毕后执行sts.executeUpdate();
5)在Sql排序方法中,把所有的信息都存储到list中以后,调用工具类Collections.sort:
根据指定比较器产生的顺序对指定列表进行排序。
(3)程序完整源码(要求格式规范,适当注释)
classDBUtil
packagetest;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
publicclassDBUtil{
privatestaticStringdriver;
privatestaticStringurl;
privatestaticStringusername;
privatestaticStringpassword;
static{
driver="com.mysql.jdbc.Driver";
url="jdbc:
mysql:
//localhost:
3306/mydb";
username="root";
password="123456";
}
publicstaticConnectionopen(){
try{
Class.forName(driver);
returnDriverManager.getConnection(url,username,password);
}catch(Exceptione){
e.printStackTrace();
}
returnnull;
}
publicstaticvoidclose(Connectionconn){
if(conn!
=null){
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
}
}
classSql
packagetest;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.Comparator;
importjava.util.List;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JTextArea;
publicclassSql{
publicstaticStringlistToString(List
StringBuildersb=newStringBuilder();
for(inti=0;i sb.append(list.get(i)).append(separator);} returnsb.toString().substring(0,sb.toString().length()-1); } publicstaticList //查询 Connectionconn=DBUtil.open(); Stringsql="selectid,name,frctionJava,fractionMath,fractionOSfromstudentTbl"; Statementstmt; try{ stmt=conn.createStatement(); ResultSetrs=stmt.executeQuery(sql); List //遍历操作 while(rs.next()){ intid=rs.getInt (1); Stringname=rs.getString (2); doublea=rs.getDouble(3); doubleb=rs.getDouble(4); doublec=rs.getDouble(5); Studentu=newStudent(); u.setId(id); u.setName(name); u.setFractionJava(a); u.setFractionMath(b); u.setFractionOS(c); list.add(u); } conn.close(); returnlist; }catch(SQLExceptione){ e.printStackTrace(); } returnnull; } publicstaticvoidFindByID(longid,JLabellblNewLabel){//按ID查找 Connectionconn=DBUtil.open(); ResultSetrs=null; try{ Stringsql="select*fromStudentTblwhereid=? "; PreparedStatementsts=conn.prepareStatement(sql); sts.setLong(1,id); rs=sts.executeQuery(); while(rs.next()){ inti=rs.getInt (1); Stringname=rs.getString (2); doublea=rs.getDouble(3); doubleb=rs.getDouble(4); doublec=rs.getDouble(5); lblNewLabel.setText("|"+i+"|"+name+"|"+a+"|"+b+"|"+c); } }catch(Exceptione){ e.printStackTrace(); }finally{ try{ if(rs.first()! =true) lblNewLabel.setText("~~~~~~~查无此人! ~~~~~~~~"); }catch(SQLExceptione){ e.printStackTrace(); } } } publicstaticvoidFindByName(Strings,JLabellblNewLabel){//按Name查找 Connectionconn=DBUtil.open(); ResultSetrs=null; try{ Stringsql="select*fromStudentTblwherename=? "; PreparedStatementsts=conn.prepareStatement(sql); sts.setString(1,s); rs=sts.executeQuery(); while(rs.next()) { intid=rs.getInt (1); Stringname=rs.getString (2); doublea=rs.getDouble(3); doubleb=rs.getDouble(4); doublec=rs.getDouble(5); lblNewLabel.setText("|"+id+"|"+name+"|"+a+"|"+b+"|"+c); } }catch(Exceptione){ e.printStackTrace(); }finally{ try{ if(rs.first()! =true) lblNewLabel.setText("~~~~~~~查无此人! ~~~~~~~~"); }catch(SQLExceptione) { e.printStackTrace(); } } } publicstaticvoidDeleteByID(longid){//删除 Connectionconn=DBUtil.open(); PreparedStatementsts=null; inta=0; try{ sts=conn.prepareStatement("deletefromStudentTblwhereid=? "); sts.setLong(1,id); a=sts.executeUpdate(); if(a>0) JOptionPane.showMessageDialog(null,"删除成功! ","WO",JOptionPane.INFORMATION_MESSAGE); if(a==0) JOptionPane.showMessageDialog(null,"无此人! ","WO",JOptionPane.INFORMATION_MESSAGE); }catch(Exceptione){ e.printStackTrace(); } DBUtil.close(conn); } publicstaticvoidSort(JTextAreata,intindex){//排序 //查询 Connectionconn=DBUtil.open(); Stringsql="selectid,name,frctionJava,fractionMath,fractionOSfromstudentTbl"; Statementstmt; try{ stmt=conn.createStatement(); ResultSetrs=stmt.executeQuery(sql); List //遍历操作 while(rs.next()){ intid=rs.getInt (1); Stringname=rs.getString (2); doublea=rs.getDouble(3); doubleb=rs.getDouble(4); doublec=rs.getDouble(5); Studentu=newStudent(); u.setId(id); u.setName(name); u.setFractionJava(a); u.setFractionMath(b); u.setFractionOS(c); list.add(u); } Collections.sort(list,newComparator { publicintcompare(Studento1,Studento2) { inti=1; if(index==1) {i=(int)(o2.getFractionJava()-o1.getFractionJava());} if(index==2){ i=(int)(o2.getFractionMath()-o1.getFractionMath()); } if(index==3){ i=(int)(o2.getFractionOS()-o1.getFractionOS()); } returni; } }); Strings=listToString(list,'\n'); ta.setText(s); }catch(SQLExceptione){ e.printStackTrace(); } DBUtil.close(conn); } publicstaticvoidadd(Studentstu){//添加 Connectionconn=DBUtil.open(); PreparedStatementsts; try{ sts=conn.prepareStatement("insertintoStudentTblvalues(? ? ? ? ? )"); sts.setLong(1,stu.getId()); sts.setString(2,stu.getName()); sts.setDouble(3,stu.getFractionJava()); sts.setDouble(4,stu.getFractionMath()); sts.setDouble(5,stu.getFractionOS()); sts.executeUpdate(); }catch(SQLExceptione){ e.printStackTrace(); } DBUtil.close(conn);} publicstaticvoidUpdateStudent(Studentstu){//更新 Connectionconn=DBUtil.open(); try{ Stringsql="updatestudenttblsetname='"+stu.getName()+"',FrctionJava='"+stu.getFractionJava()+"',FractionMath='"+stu.getFractionMath()+"',FractionOS='"+stu.getFractionOS()+"'whereid='"+stu.getId()+"'"; PreparedStatementsts=conn.prepareStatement(sql); sts.executeUpdate(); }catch(Exceptione){ e.printStackTrace(); } } } classStudent packagetest; importjava.io.Serializable; publicclassStudentimplementsSerializable{ privatestaticfinallongserialVersionUID=4558876142427402513L; privateStringname; privatelongid; privatedoublefractionOS; privatedoublefractionJava; privatedoublefractionMath; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publiclonggetId(){ returnid; } publicvoidsetId(longid){ this.id=id; } publicdoublegetFractionOS(){ returnfractionOS; } publicvoidsetFractionOS(doublefractionOS){ this.fractionOS=fractionOS; } publicdoublegetFractionJava(){ returnfractionJava; } publicvoidsetFractionJava(doublefractionJava){ this.fractionJava=fractionJava; } publicdoublegetFractionMath(){ returnfractionMath; } publicvoidsetFractionMath(doublefractionMath){ this.fractionMath=fractionMath; } publicStringtoString(){ return(name+""+id+"Java: "+fractionJava+ "Math: "+fractionMath+"OS: "+fractionOS); } } classMyJFrame packagetest; importjavax.swing.JFrame; importjavax.swing.JPanel; importjava.awt.BorderLayout; importjava.awt.CardLayout; importjava.awt.Insets; importjava.awt.event.ActionEvent; importjava.awt.event.ActionListener; importjavax.swing.JButton; importjava.awt.Color; importjavax.swing.SwingConstants; importjavax.swing.JLabel; importjava.awt.Font; publicclassMyJFrame
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 学生 信息管理 Swing 窗体