Java学生信息管理(Swing窗体)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名称:实验5:综合性程序设计—简单学生信息管理系统班级:***** 姓名:Zzz 学号:20151601****
一、实验目的
二、实验内容与结果
(1)任务描述(1.3与1.4二选一,建议选择1.4)
利用课程所学知识,设计并实现一个简单学生信息管理系统,要求如下:
1.1 声明Student类,该类实现Serializable接口以表明该类可以进行序列化。该类有姓名、学号(long),math、os、java用来存放对应的成绩,在构造方法中进行姓名、学号、课程成绩的赋值。Override由Object继承来的toString方法以便以友好格式显示自己的属性,格式为:张三12 os:90 java:90 math: 90。
1.2 建立一个类,利用数据库来存储多个Student,写完一个方法在main中写一段测试代码,运行以保证目前所做工作的正确性。有以下方法:add(Student stu):可以增加新的学生,并保存在数据库中。
update(Student stu):可以修改特定的学生,并保存在数据库中。
dispAll():可以显示所有的学生信息。
findById(long id):可以按照学号来查找,并显示符合条件的学生信息,查无该人的话显示错误信息。
findByName(String name):可以按照姓名查找学生,找到后显示其信息,查无此人显示错误信息。
delById(long id):可以按照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方法均传递参数JPanel p,对传递过来的Panel进行加工修饰,并且调用Sql里面对应功能的方法。
3)Sql中的显示全部信息的方法中使用了ArrayList来存储从studenttbl中读取的对象信息,存储之后为了按照String的方式显示在JtextArea中,又用了listToString方法,通过for循环并追加回车,使每个对象都转化为String并在后面加上了回车(separator),4)在Sql中的查找,删除,添加都使用了jdbc中的预处理PreparedStatement
在操作完毕后执行sts.executeUpdate();
5)在Sql排序方法中,把所有的信息都存储到list中以后,调用工具类Collections.sort:根据指定比较器产生的顺序对指定列表进行排序。
(3)程序完整源码(要求格式规范,适当注释)
class DBUtil
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtil {
private static String driver;
private static String url;
private static String username;
private static String password;
static {
driver="com.mysql.jdbc.Driver";
url="jdbc:mysql://localhost:3306/mydb";
username="root";
password="123456";
}
public static Connection open(){
try {
Class.forName(driver);
return DriverManager.getConnection(url,username,password);
}catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void close(Connection conn){
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
class Sql
package test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collections;
import parator;
import java.util.List;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
public class Sql {
public static String listToString(List
StringBuilder sb = new StringBuilder();