Java课程设计--学生成绩管理系统

一、团队名称:

团队成员

  • 林艺薇 201721123032 网络1712
  • 黄毓颖 201721123033 网络1712
  • 唐川 201721123034 网络1712
  • 梁才玉 201721123038 网络1712

任务分配

Java课程设计--学生成绩管理系统_第1张图片

二、项目git地址

https://gitee.com/ev32/keshe/tree/master

三、项目git提交记录截图

Java课程设计--学生成绩管理系统_第2张图片
Java课程设计--学生成绩管理系统_第3张图片
1232159-20190118095455344-1327832698.png

Java课程设计--学生成绩管理系统_第4张图片

四、项目功能架构图与主要功能流程图

思维导图

Java课程设计--学生成绩管理系统_第5张图片

成绩管理流程图

Java课程设计--学生成绩管理系统_第6张图片

五、项目运行截图

主界面

Java课程设计--学生成绩管理系统_第7张图片

选择用户

Java课程设计--学生成绩管理系统_第8张图片

教师登陆界面

Java课程设计--学生成绩管理系统_第9张图片

教师增加学生信息

Java课程设计--学生成绩管理系统_第10张图片
Java课程设计--学生成绩管理系统_第11张图片

教师查看学生信息表

Java课程设计--学生成绩管理系统_第12张图片

删除学生信息

Java课程设计--学生成绩管理系统_第13张图片

修改学生信息

Java课程设计--学生成绩管理系统_第14张图片
Java课程设计--学生成绩管理系统_第15张图片
1232159-20190118002905286-1409440711.png

查找学生成绩

按班级查找

Java课程设计--学生成绩管理系统_第16张图片

按姓名查找

Java课程设计--学生成绩管理系统_第17张图片

按学号查找

Java课程设计--学生成绩管理系统_第18张图片

各科成绩柱状图

Java课程设计--学生成绩管理系统_第19张图片
Java课程设计--学生成绩管理系统_第20张图片
Java课程设计--学生成绩管理系统_第21张图片

将成绩导出到表格

Java课程设计--学生成绩管理系统_第22张图片

学生登陆界面

Java课程设计--学生成绩管理系统_第23张图片

学生功能

Java课程设计--学生成绩管理系统_第24张图片
Java课程设计--学生成绩管理系统_第25张图片
Java课程设计--学生成绩管理系统_第26张图片

学生成绩查询功能

Java课程设计--学生成绩管理系统_第27张图片
Java课程设计--学生成绩管理系统_第28张图片

学生选课界面

Java课程设计--学生成绩管理系统_第29张图片
Java课程设计--学生成绩管理系统_第30张图片

六、项目关键代码

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 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); 
    }

七、项目代码扫描结果及改正。

错误一:重写类中的方法是没加方法重写标记

Java课程设计--学生成绩管理系统_第31张图片

修改后

Java课程设计--学生成绩管理系统_第32张图片

错误二:if语句缺少大括号

1232159-20190118013843288-2098869732.png

错误三:

1232159-20190118013913915-2104132791.png

八、尚待改进或者新的想法

  • 注册和登录功能还不太完善。
  • 没有实现多线程。
  • Gui界面不太美观。
  • jFreeChart柱状图关闭时会默认关闭所有窗口,柱状图功能还不够完善。

转载于:https://www.cnblogs.com/q2634615476/p/10282638.html

你可能感兴趣的:(Java课程设计--学生成绩管理系统)