1. 团队课程设计博客链接 http://www.cnblogs.com/kawajiang/p/7062407.html

2.个人负责模块或任务说明

我主要负责实现学生信息的添加功能、学生成绩的录入功能、对单个学生各科成绩画出柱状分布图功能和小组博客内容收集整理。

3.自己的代码提交记录截图

4.自己负责模块或任务详细说明

学生信息的添加功能

代码

public boolean writeStudent(Student student) {   //添加学生
Connection conn = null;//创建数据库连接对象
PreparedStatement pstat = null;//使用PreparedStatement进行参数化查询
String sql = ("insert into insert into student(id,name,gender,birthday )"+ "values(?,?,?,?)");//插入数据
int result = -1;
try {
conn = JDBCUtil.getConnection();
pstat = conn.prepareStatement(sql);
pstat.setInt(1, student.getId());
pstat.setString(2, student.getName());
pstat.setString(3, student.getGender());
pstat.setDate(4, new java.sql.Date(student.getBirthday().getTime()));
result = pstat.executeUpdate();//设置参数
} catch (SQLException sqle) {
sqle.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtil.realeaseAll(null, pstat, conn);
}
return result > 0 ? true : false;
}

截图

学生成绩的录入功能

代码

public boolean update(Student student) {  //修改学生信息or输入学生的成绩
// 拿到连接对象
Connection conn = null;// 创建预处理命令对象
PreparedStatement pstmt = null;
int n = 0;
try {
conn = JDBCUtil.getConnection();
pstmt = conn.prepareStatement("update student set name=?,gender=?,birthday=?,数学=?,Java=?,体育=?");
pstmt.setString(1, student.getName());
pstmt.setString(2, student.getGender());
pstmt.setDate(3, new java.sql.Date(student.getBirthday().getTime()));
pstmt.setDouble(4, student.getScoreList().get(0).getScore());
pstmt.setDouble(5, student.getScoreList().get(1).getScore());
pstmt.setDouble(6, student.getScoreList().get(2).getScore());
n = pstmt.executeUpdate();
System.out.println("插入语句执行结果-----" + n);
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtil.realeaseAll(null, pstmt, conn);
}
return n > 0 ? true : false;
}

对单个学生各科成绩画出柱状分布图功能

代码

public class main extends JPanel {
private double[] value;
private String[] classes;
private String title;
public main(double[] val, String[] lang, String t) {
classes = lang;
value = val;
title = t;
}
public void paintComponent(Graphics graphics) {
super.paintComponent(graphics);//绘制窗体
double minValue = 0;//柱形最小值
double maxValue = 0;//柱形最大值
for (int i = 0; i < value.length; i++) {
if (minValue > value[i])
minValue = value[i];
if (maxValue < value[i])
maxValue = value[i];
}//将数据的最大最小值记为柱形的大小范围
Dimension dim = getSize();//设置图形的长宽
int clientWidth = dim.width;//定义窗体宽度
int clientHeight = dim.height;//定义窗体高度
int barWidth = clientWidth / value.length;//每条柱形平均宽度
Font titleFont = new Font("gb2312", Font.BOLD, 20);
//标题格式为gb2312才不会导致中文乱码
//中文 加粗 20号字体
FontMetrics titleFontMetrics = graphics.getFontMetrics(titleFont);
Font labelFont = new Font("gb2312", Font.PLAIN, 15);
//数据名称格式为gb2312才不会导致中文乱码
FontMetrics labelFontMetrics = graphics.getFontMetrics(labelFont);
int titleWidth = titleFontMetrics.stringWidth(title);//标题总宽度
int q = titleFontMetrics.getAscent() + 3;//标题距上界距离
int p = (clientWidth - titleWidth) / 2;//设置为居中
graphics.setFont(titleFont);//标题输出格式设置完成
graphics.drawString(title, p, q);
//输出标题
//str - 要绘制的 string。
//x - x 坐标。
//y - y 坐标。
int top = titleFontMetrics.getHeight();//图形区域上边缘坐标等于标题高度
int bottom = labelFontMetrics.getHeight();//图形区域下边缘坐标等于数据名称高度
double scale = (clientHeight - top - bottom) / (maxValue - minValue);//单位高度
q = clientHeight - labelFontMetrics.getDescent();
//设置数据名称y坐标,为窗体高度-文本基线到下降线距离
graphics.setFont(labelFont);//数据名称输出格式设置完成
for (int j = 0; j < value.length; j++) {
int valueP = j * barWidth + 1;//要填充矩形的 x 坐标
int valueQ = top;//要填充矩形的 y 坐标
int height = (int) (value[j] * scale);//要填充矩形的高度
valueQ += (int) ((maxValue - value[j]) * scale);//要填充矩形的宽度
graphics.setColor(Color.lightGray);//设置柱形图颜色
graphics.fillRect(valueP, valueQ, barWidth, height);
//填充柱形图
graphics.setColor(Color.darkGray);//设置边框颜色
graphics.drawRect(valueP, valueQ, barWidth, height);
//柱形图边框
int labelWidth = labelFontMetrics.stringWidth(classes[j]);
p = j * barWidth + (barWidth - labelWidth) / 2;
graphics.setColor(Color.black);//设置数据名称颜色
graphics.drawString(classes[j], p, q);
//设置柱状图的坐标
//str - 要呈现的字符串
//x - 呈现 String 位置的 x 坐标
//y - 呈现 String 位置的 y 坐标
}
} public static void main(Student s) {
JFrame frame = new JFrame();
frame.setSize(400, 300);//设置窗口大小
double[] value= new double[3];
String[] classes = new String[3];
value[0] = s.getScoreList().get(0).getScore();
classes[0] = "数学";
value[1] = s.getScoreList().get(1).getScore();
classes[1] = "Java";
value[2] = s.getScoreList().get(2).getScore();
classes[2] = "体育";
frame.getContentPane().add(new main(value, classes,s.setName(name) + "的成绩单"));
//输出柱形图各数据名称
WindowListener winListener = new WindowAdapter() {
public void windowClosing(WindowEvent event) {
System.exit(0);
}
};
frame.addWindowListener(winListener);//建立一个窗口
frame.setVisible(true);//弹出窗口
}
}

截图

5.课程设计感想

学习要在实践中摸索才有实际成效,在编写函数的同时也提升了查找关键字的能力。这次课设可以实现学生信息的增删改查、对单个学生各科成绩画出柱状分布图功能和将学生信息汇总成excel功能,但还未实现多名学生同时生成成绩对比图,柱状图的画面质感也有待改进。我们希望在暑假能进一步完善功能,做出真正能够投入使用的学生成绩管理系统。

JAVA课程设计个人博客 学生成绩管理 201521123001 张陈东芳的更多相关文章

  1. JAVA课程设计个人博客 学生成绩管理 201521123023 戴建钊

    1. 团队课程设计博客链接 http://www.cnblogs.com/kawajiang/p/7062407.html 2.个人负责模块或任务说明 我主要负责实现随机生成10万个学生及其姓名.学号 ...

  2. JAVA课程设计个人博客 学生成绩管理 201521123014 黄绍桦

    1. 团队课程设计博客链接 http://www.cnblogs.com/kawajiang/p/7062407.html 2.个人负责模块或任务说明 本人主要负责DAO模式.添加和修改学生的信息功能 ...

  3. JAVA课程设计个人博客 学生成绩管理 201521145048 林健

    1. 团队课程设计博客链接 http://www.cnblogs.com/kawajiang/p/7062407.html 2.个人负责模块或任务说明 本人主要负责支持用户登录.验证操作,显示设计界面 ...

  4. JAVA课程设计个人博客 学生基本信息管理 201521123117 李心宇

    1. 团队课程设计博客链接 http://www.cnblogs.com/ll321/p/7067598.html 2.个人负责模块或任务说明 ①主要有三个界面的设计,包括:登录界面,功能选择界面还有 ...

  5. JAVA课程设计——团队博客

    JAVA课程设计--团队博客 1. 团队名称.团队成员介绍(需要有照片) 团队名称:"小羊吃蓝莓"小游戏 团队成员介绍: 成员 班级 学号 廖怡洁 网络1513 201521123 ...

  6. java课程设计团队博客

    java课程设计 本组主题:Calculator(简易计算器) 功能要求:基本实现计算器的功能,可运行加.减.乘.除.求倒数.求平方根.求百分号运算.正负数运算等 一.团队介绍 团队名称:熬夜做不出随 ...

  7. java课程设计团队博客《基于学院的搜索引擎》

    JAVA课程设计 基于学院网站的搜索引擎 对学院网站用爬虫进行抓取.建索(需要中文分词).排序(可选).搜索.数据摘要高亮.分页显示.Web界面. 一.团队介绍 学号 班级 姓名 简介 2016211 ...

  8. Java课程设计---团队博客

    课设题目:购物车系统 题目要求: 1.先建立一个文本文件,定义出自己想要的商品.//也可用数据库以商品编号:商品名称:商品品牌:价格作为文件的内容,中间要求用分号或者分割 2.编写程序,定义一个商品类 ...

  9. Python课程设计 搭建博客

    安装包Github地址 Python综合设计 233博客 注意还有个email文件是需要填入自己信息的,比如最高权限账号和要发送邮件的账号密码 请安装Python2.7环境,本服务器所用环境为 设置环 ...

随机推荐

  1. RMAN数据库恢复测试

    RMAN恢复实践   RMAN> list backup; using target database control file instead of recovery catalog List ...

  2. git入门(4)团队中git保管代码常用操作

    在团队中协作代码时候,一定要熟练使用以下git命令,不至于把代码库弄乱, PS:一定要提交自己代码(git push)时候,先进行更新本地代码库(git pull),不然提交异常 git常用命令 1· ...

  3. Java中几种常量池的区分

    转载自:https://tangxman.github.io/2015/07/27/the-difference-of-java-string-pool/ 在java的内存分配中,经常听到很多关于常量 ...

  4. Swift语言中与C/C++和Java不同的语法(二)

    这一部分,主要讲Swift中创新的可选型(optionals) 一.概要 可选型是Swift创新的一种新的类型,首先看一下可选型的应用场景: var errorCode : Int = 404 这时候 ...

  5. Win10家庭版设置桌面右键更换桌面壁纸

    Win10家庭版设置桌面右键更换桌面壁纸.. ------------------------- 这是设置之前的右键快捷菜单.. ------------------------- 开始设置:右键桌面 ...

  6. java关于jdbc的配置与使用步骤

    1.下载一个jdbc的jar包 2.在eclipse的项目名右键-new-folder 创建一个文件夹lib 3.将jar包拖到此文件夹中,在此jar包右键build path--add to pat ...

  7. [js高手之路]jquery插件开发实战-选项卡详解

    在jquery中,插件开发常见的有: 一种是为$函数本身扩展一个方法,这种是静态扩展(也叫类扩展),这种插件一般是工具方法, 还有一种是扩展在原型对象$.fn上面的,开发出来的插件是用在dom元素上面 ...

  8. asp .net 模板引擎 使用 Razor 生成html静态页面

    刚开始不是理解 写完之后 觉得还蛮简单的 分为这几个步骤 1.获取页面模板Html 2.获取数据 3.解析模板和数据,生成静态页Html代码 4.生成静态文件 模板形式是mvc的模式,会mvc 看一下 ...

  9. zoj3777 Problem Arrangement

    The 11th Zhejiang Provincial Collegiate Programming Contest is coming! As a problem setter, Edward i ...

  10. 基于hdp2.5升级phoenix版本为4.8

    hdp2.5自带的phoenix是4.7的,而客户的驾驶舱项目跑在4.7的phoenix上是有问题的,如:如果表中没有数据,执行select count(*) from 表,返回的是空,这时导致驾驶舱 ...