大家好,又见面了,我是你们的朋友全栈君。
一、团队名称:
##团队成员
林艺薇 201721123032 网络1712
黄毓颖 201721123033 网络1712
唐川 201721123034 网络1712
梁才玉 201721123038 网络1712
##任务分配
#三、项目git提交记录截图
#四、项目功能架构图与主要功能流程图 ##思维导图
##成绩管理流程图
#五、项目运行截图 ##主界面
##选择用户
##教师登陆界面
##教师增加学生信息
##教师查看学生信息表
##删除学生信息
##修改学生信息
##查找学生成绩 ###按班级查找
###按姓名查找
###按学号查找
##各科成绩柱状图
##将成绩导出到表格
##学生登陆界面
##学生功能
##学生成绩查询功能
##学生选课界面
#六、项目关键代码 1.数据库代码导入表格
public void LearningReport() throws SQLException {
ArrayListlist1=new ArrayList();
Connection con = null; //建立数据库连接
PreparedStatement ps = null;
ResultSet rs = null;
String sql =”select * from students “; //数据库查询表格所有记录
con = JDBCUtil.getConnection();
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
list1.add(0,rs.getString(“stunum”));
list1.add(1,rs.getString(“name”));
list1.add(2,rs.getString(“classes”));
list1.add(3,rs.getString(“gender”));
list1.add(4,rs.getString(“javaScore”));
list1.add(5,rs.getString(“mathScore”));
list1.add(6,rs.getString(“englishScore”));
System.out.println();
}
HSSFWorkbook wb=new HSSFWorkbook();//创建Workbook对象(excel的文档对象)
HSSFSheet sheet=wb.createSheet(“表”);//创建工作表
HSSFRow row1=sheet.createRow(0);
//设置单元格内容
HSSFCell cell=row1.createCell(0);
cell.setCellValue(“学生成绩表”);
//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
sheet.addMergedRegion(new CellRangeAddress(0,0,0,6));
//在sheet里创建第二行,创建单元格并添加表头内容
HSSFRow row2=sheet.createRow(1);
row2.createCell(0).setCellValue(“学号”);
row2.createCell(1).setCellValue(“名字”);
row2.createCell(2).setCellValue(“班级”);
row2.createCell(3).setCellValue(“性别”);
row2.createCell(4).setCellValue(“JAVA成绩”);
row2.createCell(5).setCellValue(“数学成绩”);
row2.createCell(6).setCellValue(“英语成绩”);
//在sheet里从第三行开始创建表格中学生信息
int j=1;
for(int i=0;i
HSSFRow row=sheet.createRow( j);
row.createCell(0).setCellValue(list1.get(i ));
row.createCell(1).setCellValue(list1.get(i ));
row.createCell(2).setCellValue(list1.get(i ));
row.createCell(3).setCellValue(list1.get(i ));
row.createCell(4).setCellValue(list1.get(i ));
row.createCell(5).setCellValue(list1.get(i ));
row.createCell(6).setCellValue(list1.get(i));
}
//导入Excel表
try {
FileOutputStream fout=new FileOutputStream(“D:\students.xlsx”);//文件输出流将数据写入表格
wb.write(fout);//保存Excel文件
fout.close();//关闭文件流
}catch(Exception e){
e.printStackTrace();
}finally {
JDBCUtil.realeaseAll(rs, null, con);
}
}
@Override
//模糊查找
public List findStudentByStunum(String stunum) {
Connection con = null;
PreparedStatement pt = null;
ResultSet rs = null;
String sql=”select * from students where stunum like ‘%” stunum ”%'”;
List list = new ArrayList();
try {
con = JDBCUtil.getConnection();
pt = con.prepareStatement(sql);
rs = pt.executeQuery();
while (rs.next()) {
// 封装数据
Student stu = new Student();
stu.setId(rs.getInt(“id”));
stu.setName(rs.getString(“name”));
stu.setStunum(rs.getString(“stunum”));
stu.setClasses(rs.getInt(“classes”));
stu.setGender(rs.getString(“gender”));
ArrayList scoreList=new ArrayList();
Course java=new Course(“java”,rs.getDouble(“javaScore”));
Course math=new Course(“math”,rs.getDouble(“mathScore”));
Course english=new Course(“english”,rs.getDouble(“englishScore”));
scoreList.add(java);
scoreList.add(math);
scoreList.add(english);
stu.setScoreList(scoreList);
list.add(stu);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtil.realeaseAll(rs, pt, con);
}
return list;
}
###2.柱状图的实现
public static JFreeChart createChart(CategoryDataset dataset)
{//创建一个JFreeChart
JFreeChart chart=ChartFactory.createBarChart(“hi”, “成绩情况”,
“人数”, dataset, PlotOrientation.VERTICAL, true, true, false);
//设置主标题
chart.setTitle(new TextTitle(“学生成绩统计”,new Font(“宋体”,Font.BOLD Font.ITALIC,20)));
//获得图标中间部分,即plot
CategoryPlot plot=(CategoryPlot)chart.getPlot();
//获得横坐标
CategoryAxis categoryAxis=plot.getDomainAxis();
//设置横坐标字体
categoryAxis.setLabelFont(new Font(“微软雅黑”,Font.BOLD,12));
return chart;
}
public static JPanel createPanel(String course) throws SQLException
{
JFreeChart chart =createChart(createDataset(course));
//将chart对象放入Panel面板中去,ChartPanel类已继承Jpanel
return new ChartPanel(chart);
}
#七、项目代码扫描结果及改正。 ##错误一:重写类中的方法是没加方法重写标记
##修改后
##错误二:if语句缺少大括号
##错误三:
#八、尚待改进或者新的想法
注册和登录功能还不太完善。
没有实现多线程。
Gui界面不太美观。
jFreeChart柱状图关闭时会默认关闭所有窗口,柱状图功能还不够完善。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/156235.html原文链接:https://javaforall.cn