Java课程设计--学生成绩管理系统
一、团队名称:
团队成员
- 林艺薇 201721123032 网络1712
- 黄毓颖 201721123033 网络1712
- 唐川 201721123034 网络1712
- 梁才玉 201721123038 网络1712
任务分配
二、项目git地址
https://gitee.com/ev32/keshe/tree/master
三、项目git提交记录截图
四、项目功能架构图与主要功能流程图
思维导图
成绩管理流程图
五、项目运行截图
主界面
选择用户
教师登陆界面
教师增加学生信息
教师查看学生信息表
删除学生信息
修改学生信息
查找学生成绩
按班级查找
按姓名查找
按学号查找
各科成绩柱状图
将成绩导出到表格
学生登陆界面
学生功能
学生成绩查询功能
学生选课界面
六、项目关键代码
1.数据库代码导入表格
public void LearningReport() throws SQLException {
ArrayList<String>list1=new ArrayList<String>();
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<list1.size();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<Student> findStudentByStunum(String stunum) {
Connection con = null;
PreparedStatement pt = null;
ResultSet rs = null;
String sql="select * from students where stunum like '%"+stunum+"%'";
List<Student> list = new ArrayList<Student>();
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<Course> scoreList=new ArrayList<Course>();
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柱状图关闭时会默认关闭所有窗口,柱状图功能还不够完善。
Java课程设计--学生成绩管理系统的更多相关文章
- Java课程设计——学生成绩管理系统(201521123003 董美凤)
Java课程设计--学生成绩管理系统(201521123003 董美凤) 1.团队课程设计博客链接 学生成绩管理系统博客链接 2.个人负责模块或任务说明 信息修改 密码修改 部分界面设计 3.自己的代 ...
- Java课程设计—学生成绩管理系统(201521123005 杨雪莹)
一.团队课程设计博客链接 学生成绩管理系统 二.个人负责模块或任务说明 学生成绩录入 显示所有学生信息 显示各科平均成绩 显示学生成绩(按降序排序) 三.自己的代码提交记录截图 四.自己负责模块或任务 ...
- Java课程设计—学生成绩管理系统(201521123004-林艺如)
1.团队课程设计博客 团队课程设计博客链接 2.个人负责模块或任务说明 ①.Menu Menu.jsp 在页面中给出提示,用HTML的 MenuTeacher.jsp 利用Menu.jsp进行具体化完 ...
- Java课程设计—学生成绩管理系统(201521123002 林楚虹)
1. 团队课程设计博客链接 团队博客链接 2.个人责模块或任务说明 根据学生学号查找学生成绩 根据学生姓名(支持模糊匹配)查找学生成绩 用POI技术导出Excel文件 3.自己的代码提交记录截图 4. ...
- Java课程设计—学生成绩管理系统
一. 团队名称.团队成员介绍(需要有照片) 团队名称:进击的712 团队成员 杨雪莹[组长] 201521123005 网络1511 林楚虹 201521123002 网络1511 董美凤 20152 ...
- Java课程设计—学生成绩管理系统(54号童欢)
1. 团队课程设计博客链接 http://www.cnblogs.com/wufuckshuo/p/7063183.html 2.个人责模块或任务说明 负责模块/任务:主函数(调用其他的功能函数),添 ...
- JAVA课程设计 学生成绩管理
学生成绩管理 可实现功能: 添加学生功能:姓名.学号.性别.出生年月日.(学号自动生成且唯一) 添加学生成绩功能:每个人都有数学.Java与体育四门课,可分课程输入成绩. 根据学生学号查找学生成绩功能 ...
- JAVA课程设计---学生基本信息管理系统(201521123039 王兴)
1.团队课程设计博客链接 http://www.cnblogs.com/zyjjj/p/7061880.html 2.个人负责模块或任务说明 函数 功能说明 Search 查找学生信息,分为两种查找方 ...
- Java课程设计 学生基本信息管理系统 团队博客
学生基本信息管理系统团队博客 项目git地址 https://git.oschina.net/Java_goddess/kechengsheji 项目git提交记录截图 项目功能架构图与主要功能流程图 ...
随机推荐
- etcd客户端c#
etcd是什么东西就不介绍了,自己网上搜索,简单说就是一个分布式K/V存储系统: 由于它是go语言写的,没有其它客户端,找到一个java的. 出于方案积累原因,写了c#版本,可以使用.c#版本是基于e ...
- JavaScript-语法专题
一.数据类型的转换 概述 JavaScript是一种动态语言,变量没有类型限制,可以随时赋予任意值 强制转换:主要是值Number(),String(),Boolean三个函数 Number函数,可以 ...
- vue 中父子组件之间的交互
1,最直接的也是最简单的方法是利用props来数据传值. 子组件定义如下: props: { iconClass: { type: String, required: true }, classNam ...
- Lavavel5.5源代码 - 限流工具
app('redis')->connection('default')->throttle('key000') // 每60秒,只能有10个资源被获取,在3秒内获取不到锁抛出异常 -> ...
- Hadoop(7)-HDFS客户端的API操作
1 客户端环境准备 根据自己电脑的操作系统拷贝对应的编译后的hadoop jar包到非中文路径 配置HADOOP_HOME的环境变量,并且在path中配置hadoop的bin 重启电脑 2. Hdfs ...
- C语言实例解析精粹学习笔记——36(模拟社会关系)
实例: 设计一个模拟社会关系的数据结构,每个人的信息用结构表示,包含名字.性别和指向父亲.母亲.配偶.子女的指针(只限两个子女).要求编写以下函数: (1)增加一个新人的函数 (2)建立人与人之间关系 ...
- 一起来学习Shell脚本
Shell脚本 Shell脚本(shell script),是一种为shell编写的脚本程序. 大家所说的shell通常都是指的shell脚本,但其实shell与shell脚本是两个不同的概念.由于习 ...
- kylin实战系列(一)
kylin实战系列(一) 把之前kylin的实践小结一下,以备以后查看.
- HBase 是什么
Apache HBase™ is the Hadoop database, a distributed, scalable, big data store. HBase 是 Hadoop databa ...
- Spring中的设计模式--观察者模式
spring在容器中使用了观察者模式: 一.spring事件:ApplicationEvent,该抽象类继承了EventObject类,jdk建议所有的事件都应该继承自EventObject. 二.s ...