当前位置: 首页 > news >正文

java课设要分小组吗_Java团队课程设计-学生成绩管理

一、课题要求:

课题任务及要求:

cf154aee25b040b871c16471184a1bd4.png

小组成员:

涉及技术:

GUI编程

数据库MySql

JDBCTemplate

POI

Excel

项目git提交记录截图:

fe86934632dd2cec1fac0292fb66f0eb.png

二、前期调查:

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

功能架构图:

9c8f9207a0928cff49cdbaff0e3d2733.png

主要功能流程图:

5bfe9e161cfc61b37bc6973af0367eff.png

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

包图:

0b19bb79f3249aeaf23f4b4d13e93a81.png

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

6f9cf61bfa8c069a85753c18e3fa728f.gif

605a69c839de86370792e8415e0e6593.gif

生成的成绩报表:

ed086dec2bcebdb0aa19514a2cc0affc.png

7e63ae676009c52275ba0bc0e7f6af5b.png

数据库更新的数据:

bab43d4a83709ef2a604307dbcdfa2cd.png

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

登录/注册模块:

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方法一条条添加,效率十分低需要等待非常久的时间。

68e8df36abe1b2c02a7a4599b5903b12.png

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

0315ac25d7297cb92727b30e12576233.png

生成成绩报表并将其导入excel表格中

poi技术所需jar包:

ad578e7ac316884f6e57f8b28fd5bf12.png

关键代码:

2dc35787cb6095f1e317c92a8ef5e25e.png

62ce4596285102e121ea7e99a18d4ef4.png

添加单个学生信息:

be36af65992860696d6274c45138f63c.png

7cb1b8e369e6cacef02c737f04577282.png

查找学生信息:

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

a4004fa316a89f334c9db5f04d1663d6.png

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

77a6287dab66bfdbe220abbf66b1ba6e.png

修改学生信息:

6c2d2ee56a01a64cf10b738d02ae0e8d.png

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

八、项目总结:

不足:

没有做到共享一个数据库。尝试了各种方法远程访问数据库,但都没法访问位于不同网段的远程数据库。

将项目打包成jar后,登录注册操作无法进行。目前还未找到原因所在。

DAO模式仍未完善。

图形界面不太美观。

展望:希望以后我们团队能继续将这个项目进行下去,继续完善这个项目。

想要进一步完成的任务

DAO模式

打包成jar包后的注册登录功能

远程访问数据库,实现一个程序共享一个数据库。

原文:https://www.cnblogs.com/Kevin2001/p/14339777.html

相关文章:

  • 惊群 java_(转)测试Lighttpd accept的惊群现象
  • Python——私有化 和 属性property
  • python again_收藏!最全从Python小白到大牛,要走的路这里都有(初级篇)
  • .Net Core缓存组件(MemoryCache)源码解析
  • php 函数变量 前加,php在函数和变量前面加上@和$符号的区别详解
  • 凸函数与简森不等式(Jensen's inequality)
  • php date参数n,总结PHP date()参数列表
  • 小程序自定义函数—数字千位转换
  • tp3.2.3php环境要求,TP3.2.3开发手册
  • 控件模板
  • php 热点,PHP+jQuery实现中国地图热点数据统计展示效果
  • phpspy.php,一款php后门 phpspy的情况
  • Appium 之处理首次启动手机App时的系统权限弹框
  • 体对角线 matlab,Matlab计算结果显示求不出精确解
  • 数据库ACID操作---事务四原则
  • .pyc 想到的一些问题
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Date型的使用
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • Java深入 - 深入理解Java集合
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • leetcode98. Validate Binary Search Tree
  • MD5加密原理解析及OC版原理实现
  • Python打包系统简单入门
  • React+TypeScript入门
  • SpringBoot几种定时任务的实现方式
  • 好的网址,关于.net 4.0 ,vs 2010
  • 深度学习在携程攻略社区的应用
  • 我感觉这是史上最牛的防sql注入方法类
  • 无服务器化是企业 IT 架构的未来吗?
  • 移动端 h5开发相关内容总结(三)
  • 《天龙八部3D》Unity技术方案揭秘
  • 阿里云ACE认证学习知识点梳理
  • 第二十章:异步和文件I/O.(二十三)
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​ssh免密码登录设置及问题总结
  • ​批处理文件中的errorlevel用法
  • #pragma预处理命令
  • (1)Nginx简介和安装教程
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (编译到47%失败)to be deleted
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (区间dp) (经典例题) 石子合并
  • (一)Java算法:二分查找
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET 指南:抽象化实现的基类
  • .net2005怎么读string形的xml,不是xml文件。
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .net访问oracle数据库性能问题