java课程设计 学生管理系统

article/2025/9/28 7:23:54
java课程设计 学生管理系统

学生成绩管理系统

可实现功能

学生管理系统

  • 查询学生信息:姓名、学号、性别、出生年月日。(学号自动生成且唯一)
  • 查询学生成绩:每个人都有数学、Java与体育与选修课
  • 查询学生课程
  • 进行公选课选课

教师管理系统

  • 添删改学生功能
  • 查找学生(姓名查找(支持模糊查找),学号查找,班级查找,科目查找)
  • 进行学生成绩分析(柱状图(显示学生在各个分数范围的人数)与饼状图(显示学生及格与不及格的比例))
  • 进行学生成绩导出(poi)

    一、 团队成员与任务分配

    姓名任务分配
    马艺芳DAO模式实现,数据库建立与连接,逻辑代码编写,代码整合,学生教师部分功能实现。
    梁乐国POI技术应用(导出学生成绩并生成excel表格),学生部分功能实现。
    谢国庆图形界面设计,部分教师功能。
    梁志湖学生成绩图形分析实现(柱形图,饼状图),团队博客编写,项目所需要的图片绘制与寻找

    团队成员课程设计博客链接:

    二、 项目git地址:

    欢迎大家访问学生管理系统的码云

    三、 项目git提交记录截图

    1232142-20190118000903084-607196534.png
    1232142-20190118004105888-234339209.png

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

项目功能架构图

1232142-20190117151344297-994760419.png

主要功能流程图

1232142-20190117152642822-1787214247.png

五、 项目运行截图

1.用户登录界面:

1232142-20190117154946870-2014749811.png

2.教师系统界面

1232142-20190117155041807-1527477221.png

3.按照班级查找

1232142-20190117155152036-1375239070.png

4.柱状图和饼状图

1232142-20190117155232390-1853304124.png

5.导出成绩

1232142-20190117155301657-1184525713.png

6.学生信息界面

1232142-20190117155346109-2004381220.png

7.学生选课

1232142-20190117155423658-480655762.png

六、 项目关键代码

生成柱状图

public BarChartPanel(int x1, int x2, int x3, int x4, int x5, String name) {// TODO 自动生成的构造函数存根         //CategoryDataset dataset = getDataSet();DefaultCategoryDataset dataset = new DefaultCategoryDataset();      dataset.addValue(x1,name,"0~60");dataset.addValue(x2, name, "61~70");dataset.addValue(x3, name, "71~80");dataset.addValue(x4, name, "81~90");dataset.addValue(x5, name, "91~100");JFreeChart chart = ChartFactory.createBarChart3D("成绩柱形图", // 图表标题"科目", // 目录轴的显示标签"人数", // 数值轴的显示标签dataset, // 数据集PlotOrientation.VERTICAL, // 图表方向:水平、垂直true,           // 是否显示图例(对于简单的柱状图必须是false)false,          // 是否生成工具false           // 是否生成URL链接);//从这里开始CategoryPlot plot=chart.getCategoryPlot();//获取图表区域对象// plot.getRenderer().setSeriesPaint(50, new Color(10,10,10)) ;BarRenderer3D customBarRenderer = (BarRenderer3D) plot.getRenderer(); customBarRenderer.setSeriesPaint(0, Color.decode("#7979FF")); // 给series1 Bar CategoryAxis domainAxis=plot.getDomainAxis();         //水平底部列表domainAxis.setLabelFont(new Font("黑体",Font.BOLD,14));         //水平底部标题domainAxis.setTickLabelFont(new Font("宋体",Font.BOLD,12));  //垂直标题ValueAxis rangeAxis=plot.getRangeAxis();//获取柱状rangeAxis.setLabelFont(new Font("黑体",Font.BOLD,15));chart.getLegend().setItemFont(new Font("黑体", Font.BOLD, 15));chart.getTitle().setFont(new Font("宋体",Font.BOLD,20));//设置标题字体//到这里结束,虽然代码有点多,但只为一个目的,解决汉字乱码问题frame1 = new ChartPanel(chart,true);    }    //这里也可以用chartFrame,可以直接生成一个独立的Frame

poi导出表格

public void ExportBycoursePOI(List<Student> student) throws IOException {HSSFWorkbook wb = new HSSFWorkbook();HSSFCellStyle cellStyle = wb.createCellStyle(); HSSFSheet sheet = wb.createSheet("学生成绩");HSSFRow row = sheet.createRow(0);HSSFCell cell = row.createCell(0);HSSFDataFormat format = wb.createDataFormat();cellStyle.setDataFormat(format.getFormat("@")); cell.setCellValue("学号");cell.setCellStyle(cellStyle);row.createCell(1).setCellValue("姓名");row.createCell(2).setCellValue("班级");row.createCell(3).setCellValue("科目");row.createCell(4).setCellValue("成绩");for (int i = 0; i < student.size(); i++) {//创建list.size()行数据row = sheet.createRow(i + 1);//把值一一写进单元格里//设置第一列为自动递增的序号row.createCell(0).setCellValue(student.get(i).getStudentID());row.createCell(1).setCellValue(student.get(i).getName());row.createCell(2).setCellValue(student.get(i).getClasses());row.createCell(3).setCellValue(student.get(i).getSublist().get(0).getName());row.createCell(4).setCellValue(student.get(i).getSublist().get(0).getScore());}try {FileOutputStream output = new FileOutputStream("E:\\JAKARTA.xls");wb.write(output);output.flush(); JOptionPane.showMessageDialog(null, "导出成功!");System.out.println("成功创建excel文件");} catch (Exception e) {e.printStackTrace();}}

通过关键字实现模糊查找

public List<Student> searchByname(String stuname) {List<Student> stulist = new ArrayList<>();PreparedStatement pstat = null;ResultSet rs = null;//数据库模糊匹配的sql语法String sql = "select * from student where name like'%"+stuname+"%'" ;try (Connection conn = JDBCUtil.getConnection()) {pstat = conn.prepareStatement(sql);rs = pstat.executeQuery(sql);//创建ResultSetMetaData//获得ResultSet对象rsResultSetMetaData data = rs.getMetaData();//调用方法得到表的列数int colum = rs.getMetaData().getColumnCount();String[] columnamestr = new String[colum];//获得表头,以实现图形界面动态建表for(int i = 7;i <= colum;i++) {columnamestr[i-1] = data.getColumnName(i);System.out.println(data.getColumnName(i));}//获取数据库数据while(rs.next()){int id = rs.getInt("id");String name = rs.getString("name");String classes = rs.getString("class");String gender = rs.getString("gender");String birthdate = rs.getString("birthdate");System.out.println(id+" "+name+" "+classes+" "+gender+" "+birthdate);double[] source = new double[colum];for(int j = 6;j < colum;j++) {source[j] = rs.getDouble(columnamestr[j]);System.out.println(source[j]);}//将课程信息包装成Subject类型List<Subject> subject = new ArrayList<>();for(int k = 6;k<colum;k++) {Subject s = new Subject(columnamestr[k],new Teacher(""));s.setScore(source[k]);subject.add(s);}//将所得数据包装成Student类型,Student student = new Student(id,name,classes,gender,birthdate);//加入课程信息student.setSublist(subject);//加入Liststulist.add(student);}   } catch (SQLException sqle) {sqle.printStackTrace();} catch (Exception e) {e.printStackTrace();}return stulist;}

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

一,没有添加创建者信息

1232142-20190117205210229-887146919.png

改正

1232142-20190117205325649-1897808918.png

二,不能在代码尾部添加注释

1232142-20190117205606682-2049489136.png

改正(应在代码上方)

1232142-20190117205755790-1614699655.png

八、UML类图

1232142-20190118000707320-976578051.png
1232142-20190118000740594-547733609.png

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

  • 尝试过网络功能,但目前还是未能实现,后面会争取再去尝试一下。
  • 由于时间问题,多线程(多个账户同时登陆)与学生抢课功能还未能实现
  • 代码结构进一步改善
posted on 2019-01-18 00:22  Longjingrap 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/peng075078/p/10275371.html


http://chatgpt.dhexx.cn/article/DDfBeNXw.shtml

相关文章

java实现简易学生管理系统

最近在学java&#xff0c;看的黑马程序员的视频&#xff0c; 刚学到一个项目&#xff0c;学生管理系统&#xff0c;自己跟着用代码实现了一下。下面是我的代码。 javabean类 Student.java public class Student {private String id;private String name;private int age;priv…

java学生管理系统界面设计

关于学生管理系统的界面设计:代码如下: 数据库设计 DROP TABLE IF EXISTS stu; CREATE TABLE stu (stuId int(11) NOT NULL AUTO_INCREMENT,stuName varchar(30) DEFAULT NULL,stuSex varchar(30) DEFAULT NULL,stuAge int(11) DEFAULT NULL,stuJg varchar(30) DEFAULT NULL,s…

【Java】升级版学生管理系统项目

目录 一、前言 二、学生管理系统主要功能 在学生类下 在学生总部类下&#xff1a; main方法&#xff1a; 登录密码验证&#xff1a; 打印菜单&#xff1a; 增加学生信息&#xff1a; 查看学生信息&#xff1a; 删除学生信息&#xff1a; 修改学生信息&#xff1a; 查…

Java实现 “学生管理系统“

文章目录 一、项目简介二、系统展示三、程序设计 一、项目简介 本项目为基于java下实现模拟学生管理系统&#xff0c;具以下6个功能&#xff1a; 添加学生删除学生修改学生信息查询学生信息输出学生信息退出系统 二、系统展示 1. 菜单 2. 添加学生 3. 修改学生信息 4. 查询…

java学生成绩管理系统

学生成绩管理系统 使用java swing 和 jdbc 技术 管理学生信息 文章目录 学生成绩管理系统一&#xff0c;总体架构二、controller层的编写三、pojo层的编写四&#xff0c;view层的编写五&#xff0c;数据库的连接六&#xff0c;启动程序 一&#xff0c;总体架构 一共五个包 二…

Java——学生管理系统

学生管理系统实现步骤&#xff1a; 定义学生类学生管理系统的主界面的代码编写学生管理系统的查看所有学生的代码编写学生管理系统的添加学生代码的编写学生管理系统的删除学生的代码编写学生管理系统的修改学生的代码编写 学生系统主界面&#xff1a; public class Student…

Java学生管理系统设计与实现 (超详细,含课程设计)

最新文章出炉&#xff0c;欢迎点评 它曾是浏览器的王者&#xff0c;如今却前景堪忧...... 推荐阅读 ★★★★ 往期文章回顾&#xff1a; 1、Java开发岗位面试题汇总&#xff08;不断补充……&#xff09;★★★ 2、Java程序员必须掌握的英语词组 ★★ 3、学习Java的9张思…

用Java实现学生管理系统【简化版】基础

&#x1f389;博客首页&#xff1a;痛而不言笑而不语的浅伤 &#x1f4e2;欢迎关注&#x1f973;点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 欢迎讨论&#xff01; &#x1f52e;本文由痛而不言笑而不语的浅伤原创&#xff0c;CSDN首发&#xff01; &#x1f30b;系列专栏&…

java 学生信息管理系统

只设计了一部分 全部的太多了。会慢慢更新增加。 学生信息管理包括添加&#xff0c;删除&#xff0c;修改&#xff0c;查询&#xff0c;显示全部等 具体结构如图 在SQL Server 2005数据库上实现数据操作。使用纯面向对象的java语言作为开发语言 在sql server 2005新建一个名…

基于java的学生成绩管理系统

本管理系统具有以下功能&#xff1a; 1、学生功能&#xff1a;个人信息查询、修改&#xff1b;成绩查询&#xff1b;修改密码  2、教师功能&#xff1a;学生信息查询&#xff1b;打分&#xff1b;个人信息查询、修改&#xff0c;修改密码  3、管理员功能&#xff1a;教师信…

Java简单学生管理系统

学习了一段时间了。是时候写一个程序来检验一下学习的成果了。 七夕让我们一起new对象。 ok&#xff0c;首先我们来看一下需求。 简单的学生信息管理系统&#xff0c;通过键盘选择操作进行添加学生&#xff08;学号&#xff0c;姓名&#xff0c;性别&#xff0c;年龄&#x…

用Java实现学生管理系统(附项目详细的介绍和源代码)

前言&#xff1a;最近练习了用Java语言实现简单的学生管理系统小项目&#xff0c;分享一下。 Ps&#xff1a;原创不易&#xff0c;请多多支持&#xff01; 摘要分析如下&#xff1a; 实现的主要功能&#xff1a; 1&#xff0c;添加学生信息。 2&#xff0c;查询学生信息(实现…

Java设计学生成绩管理系统

1.1 题目与要求 设计一个学生成绩排名系统 实现以下功能&#xff1a; (1) 具备对成绩的管理功能&#xff08;添加、删除、排序&#xff09;&#xff1b; (2) 具备对成绩的统计功能&#xff08;最高分&#xff0c;最低分&#xff0c;平均分&#xff0c;及格率等&#xff09;…

Java 学生成绩管理系统

教学管理系统很适合初学者对于所学语言的练习。本文是javaSE 中用文件流写的&#xff0c;这个也可以用数据库写。 分析 这个项目有 1.学生 2.老师 3.教务人员 4.管理员四个角色分别担任不同的任务。 1.学生 有属性 id, 密码&#xff0c;性别&#xff0c;年龄&#xff0c;和一…

Java基础——学生管理系统

用内存存储学生信息。(采用集合的方式&#xff09; 步骤&#xff1a; A. 定义学生类 B. 学生管理系统的主界面的代码编写 C. 学生管理系统的查看所有学生的代码编写 D. 学生管理系统的添加学生的代码编写 E. 学生管理系统的删除学生的代码编写 F. 学生管理系统的修改学生的代码…

学生管理系统(Java版)

学生管理系统&#xff08;Java版&#xff09; 前言&#xff1a;这个是大二做的课设&#xff08;还是学生管理系统…&#xff09;&#xff0c;理论上虽然是4个人一组一起做的&#xff0c;但是&#xff0c;注意这个“但是”&#xff0c;还是我一个人承担了所有…代码和文档基本都…

Java 版学生成绩管理系统,附源码

前言 对于计算机专业的学生来讲&#xff0c;一定对于学生成绩管理系统课程设计十分印象深刻。设计、上机、编码、写报告、答辩等一系列流程&#xff0c;虽然很简单&#xff0c;但也可以综合运用我们所学的一些知识了。 今天就来复习以下这个课题&#xff0c;用 Java SE 来实现…

用Java实现一个学生管理系统(附源码)

目录 一、题目要求 二、设计思路 &#xff08;2&#xff09;代表课程的类——Course类 &#xff08;3&#xff09;具体功能实现类——Function类 &#xff08;4&#xff09;测试类——Test类 三、代码实现 &#xff08;1&#xff09;Student.java文件 &#xff08;2&…

Java实现学生管理系统(完整代码)

案例需求 完成一个综合案例&#xff1a;学生管理系统&#xff01;该系统主要功能如下&#xff1a; 添加学生&#xff1a;通过键盘录入学生信息&#xff0c;添加到集合中 删除学生&#xff1a;通过键盘录入要删除学生的学号&#xff0c;将该学生对象从集合中删除 修改学生&…

Java学生信息管理系统

一、选题设计思想 学生信息管理系统是典型的信息管理系统(MIS)&#xff0c;其开发主要包括后台数据库的建立和维护以及前端应用程序的开发。对于前者要求建立起数据一致性和完整性强、安全性高的数据库&#xff1b;对于后者则要求应用程序具有功能完备、易使用、易维护等特点。…