• Java团队课程设计-学生成绩管理


    一、课题要求:

    姓名 任务分配 课程设计博客地址
    吴信波(组长) 任务点1、4、7 https://www.cnblogs.com/Kevin2001/p/14343244.html
    陈勇 任务点5、6、8、GUI界面设计 https://www.cnblogs.com/c4412/p/14333872.html
    沈益民 任务点2、3、9 https://www.cnblogs.com/sym2446/p/14341585.html

    二、前期调查:


    三、项目功能架构图、主要功能流程图:

    • 功能架构图:

    • 主要功能流程图:

    四、面向对象设计包图、类图:

    • 包图:

    • 类图:

    五、项目运行截图或屏幕录制:


    生成的成绩报表:

    数据库更新的数据:

    六、项目关键代码分模块描述:

    • 登录/注册模块:
      LoginJFrame.java:对用户输入的用户名密码与数据库内用户名密码比较,若存在用户,则登录成功,否则登录失败;用户也可以在用户名框输入使用者姓名,在密码框输入密码,点击注册即可自动生成用户名并将用户名、加密后的密码保存到数据库,然后方可登录。
    public static String code(String str){
            try {
                MessageDigest md = MessageDigest.getInstance("MD5");//获取md5实例
                md.update(str.getBytes());   //传入要加密的byte类型值
                byte[]byteDigest = md.digest();
                int i;
                StringBuffer buf = new StringBuffer("");
                for (int offset = 0; offset < byteDigest.length; offset++) {
                    i = byteDigest[offset];
                    if (i < 0)
                        i += 256;
                    if (i < 16)
                        buf.append("0");
                    buf.append(Integer.toHexString(i));
                }
                //32位加密
                return buf.toString();
                // 16位的加密
                //return buf.toString().substring(8, 24);
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
                return null;
            }
        }
    
    
    • 随机生成十万条以内测试学生信息:
      要在URL中加入rewriteBatchedStatements=true语句,否则就算使用batchUpdate方法,实际上也没有起到批量添加的效果;对于添加10万条数据而言,若使用update方法一条条添加,效率十分低需要等待非常久的时间。

    随机生成成绩时,使用nextGaussian()方法生成N(0,1)标准正太分布,逆用正太分布标准化公式将其乘标准差8再加期望80,得到N(80,64)正态分布。需要控制成绩小于100.0。使用Calendar类获得当前系统时间,再将其减去若干天,获得一个大概区间内的时间范围,如图将区间约控制在[1998,2001]。

    • 生成成绩报表并将其导入excel表格中
      poi技术所需jar包:

    关键代码:

    • 添加单个学生信息:

    • 查找学生信息:
      通过学号精准查找学生信息:

    • 通过姓名模糊查找学生信息:

    • 修改学生信息:

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

    • 代码扫描结果:

    • 改正后:

    八、项目总结:

    • 不足:

      • 没有做到共享一个数据库。尝试了各种方法远程访问数据库,但都没法访问位于不同网段的远程数据库。
      • 将项目打包成jar后,登录注册操作无法进行。目前还未找到原因所在。
      • DAO模式不够完善。
      • 图形界面不太美观。
    • 展望:希望以后我们团队能继续将这个项目进行下去,继续完善这个项目。

    • 想要进一步完成的任务

      • 完善DAO模式
      • 打包成jar包后的注册登录功能
      • 远程访问数据库,实现一个程序共享一个数据库。
  • 相关阅读:
    css的继承问题
    js弹出层
    实现网页弹出框后背景不能滑动的效果
    vue的爬坑之路(四)之基于vuecli 动态添加iconfont的symbol方法
    vue的爬坑之路(五)之基于vuecli li列表的显示隐藏
    自定义复选框checkbox样式
    vue的爬坑之路(三)之基于vuecli的VueAwesomeSwiper轮播滑块插件的使用及常见问题
    iOS 开发学习总结
    (转载)iOS股票k线组件源码,支持其他图表类型
    iOS Objective C Memory management
  • 原文地址:https://www.cnblogs.com/Kevin2001/p/14339777.html
Copyright © 2020-2023  润新知