没有合适的资源?快使用搜索试试~ 我知道了~
Java学生信息管理.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 11 浏览量
2023-08-26
22:43:44
上传
评论
收藏 1.17MB PDF 举报
温馨提示
试读
31页
Java学生信息管理.pdf
资源推荐
资源详情
资源评论
.
实验名称:实验 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 {
}
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 java.util.Comparator;
import java.util.List;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
public class Sql
{
public
static
String
listToString(List<Student>
list,
char
separator) {//
使 list 返回 String
类型并加入控制符(换行)
StringBuilder sb = new StringBuilder();
for (int i = 0; i < list.size(); i++) {
sb.append(list.get(i)).append(separator); }
return
sb.toString().substring(0,sb.toString().length()-1);
}
public static List<Student> disAll() {//
打印显示所有信息
.
.
// 查询
Connection conn=DBUtil.open();
Statement stmt;
try {
stmt = conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
List<Student> list=new ArrayList<Student>();
// 遍历操作
while(rs.next()){
int id=rs.getInt(1);
String name=rs.getString(2);
double a=rs.getDouble(3);
double b=rs.getDouble(4);
double c=rs.getDouble(5);
Student u=new Student();
u.setId(id);
u.setName(name);
u.setFractionJava(a);
u.setFractionMath(b);
u.setFractionOS(c);
list.add(u);
}
conn.close();
return list;
} catch (SQLException e)
{ e.printStackTrace();
}
return null;
}
public static void FindByID(long id ,JLabel lblNewLabel ){//
按
ID 查找
Connection conn=DBUtil.open();
ResultSet rs = null;
try {
PreparedStatement sts=conn.prepareStatement(sql);
sts.setLong(1, id);
rs=sts.executeQuery();
.
.
while(rs.next()){
int i=rs.getInt(1);
String name=rs.getString(2);
double a=rs.getDouble(3);
double b=rs.getDouble(4);
double c=rs.getDouble(5);
| |
|
|
}
}catch(Exception e) {
e.printStackTrace();
}finally{
try {
if(rs.first()!=true)
查无此人!查无此人!
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void FindByName(String s, JLabel lblNewLabel) {//
按 Name 查找
Connection conn=DBUtil.open();
ResultSet rs = null;
try {
PreparedStatement sts=conn.prepareStatement(sql);
sts.setString(1, s);
rs=sts.executeQuery();
while(rs.next())
{
int id=rs.getInt(1);
String name=rs.getString(2);
double a=rs.getDouble(3);
double b=rs.getDouble(4);
double c=rs.getDouble(5);
| |
|
|
.
剩余30页未读,继续阅读
资源评论
hhappy0123456789
- 粉丝: 64
- 资源: 5万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功