一、实验目的和要求:
①目的:
1) 复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;
2) 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;
3) 培养学生在项目开发中团队合作精神、创新意识及能力。
②要求:
1) 对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;
2) 系统设计要实用,编程简练,可用,功能全面
3) 说明书、流程图要清楚
4) 记录设计情况(备查,也为编写设计说明书作好准备);
5) 要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。
6) 设计上交内容:设计报告一组一份(按格式书写);心得体会每人一份;源程序文件。
二、任务书
程序设计是一个团队的工作,需要合理的分工、共同努力才能做出好结果!
本组成员:甲 乙 丙
成员任务分配:甲负责程序中数据库的连接与实现
乙负责实现学生信息的查询
丙负责设计中计算的实现,如平均成绩、最高分、排序等
具体实施:下载MySQL数据库,询问老师数据库的使用方法,建立数据库的连接。
建立程序的大概框架,植入函数方法,实现类的执行,最终完成设计!
三、源代码
action包:
package com.iapp.action;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import com.iapp.dao.GoddessDao;
import com.iapp.model.Goddess;
public class GoddessAction {
GoddessDao dao=new GoddessDao();
//动作控制
public void add(Goddess goddess) throws Exception{
dao.addGoddess(goddess);
}
public void edit(Goddess goddess) throws Exception{
dao.updateGoddess(goddess);
}
//查询所有学生的基本信息
public List<Goddess> query() throws Exception{
return dao.query();
}
//查询单个学生详细信息
public Goddess get(Integer id) throws SQLException{
return dao.get(id);
}
public Goddess get(String name) throws SQLException{
return dao.get(name);
}
public void del(Integer id) throws SQLException{
dao.delGoddess(id);
}
//各科的平均分,最高分和最低分
//通过姓名查询学生的详细信息
public int[] queryScore()throws Exception{
return dao.queryScore();
}
public List<Integer> queryScore4()throws Exception{
return dao.queryScore4();
}
public int[] queryScore1()throws Exception{
return dao.queryScore1();
}
public int[] queryScore2()throws Exception{
return dao.queryScore2();
}
public Goddess query(String name) throws Exception{
return dao.get(name);
}
}
Dao包:
package com.iapp.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.iapp.db.DBUtil;
import com.iapp.model.Goddess;
public class GoddessDao {
//方法
@SuppressWarnings("null")
public List<Integer> queryScore4(){
ArrayList<Integer> values = new ArrayList<Integer>();
Connection conn=DBUtil.getConnection();
String sql="select ((Math + Java + Com + English) / 4) avg_score from student_info order by avg_score desc";
PreparedStatement ptmt=null;
ResultSet rs = null;
try {
conn.prepareStatement(sql);
ptmt = conn.prepareStatement(sql);
rs = ptmt.executeQuery();
while(rs.next()){
values.add(rs.getInt(1));
}
} catch (SQLException e) {
e.printStackTrace();
}
return values;
}
public int[] queryScore(){
int[] scores = new int[4];
Connection conn=DBUtil.getConnection();
String sql="select max(math),max(java),max(com),max(english) from student_info";
PreparedStatement ptmt=null;
ResultSet rs = null;
try {
conn.prepareStatement(sql);
ptmt = conn.prepareStatement(sql);
rs = ptmt.executeQuery();
if(rs.next()){
scores[0] = rs.getInt(1);
scores[1] = rs.getInt(2);
scores[2] = rs.getInt(3);
scores[3] = rs.getInt(4);
}
} catch (SQLException e) {
e.printStackTrace();
}
return scores;
}
public int[] queryScore2(){
int[] scores = new int[4];
Connection conn=DBUtil.getConnection();
String sql="select avg(math),avg(java),avg(com),avg(english) from student_info";
PreparedStatement ptmt=null;
ResultSet rs = null;
try {
conn.prepareStatement(sql);
ptmt = conn.prepareStatement(sql);
rs = ptmt.executeQuery();
if(rs.next()){
scores[0] = rs.getInt(1);
scores[1] = rs.getInt(2);
scores[2] = rs.getInt(3);
scores[3] = rs.getInt(4);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(conn != null)conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}