成绩管理系统java+mySQL
更新时间:2024-04-29 08:39:01 阅读量: 综合文库 文档下载
- 学生成绩管理系统java推荐度:
- 相关推荐
《Java语言》课程期末作业
题 目 第9题: 学生成绩管理系统 学 院 计算机学院 专 业 班 别 学 号 姓 名 温景钊
2013年6月10日
你的姓名——《Java语言》课程期末作业
2
你的姓名——《Java语言》课程期末作业
一、课程题目
设计一个简易的学生成绩管理系统。用于记录学生的各科成绩,以及实现常用的统计功能。
(1) 记录学生的基本信息,如姓名、学号、专业、班级等 (2) 记录各科成绩
(3) 实现常用的统计功能,如:单科成绩排名、总分排名、统计成绩高于/低于某一临界值的学生、统计单科/总分平均值……
(4) 使用图形方式显示某些数据,如直方图显示各分数段的人数、绘制各科分数分布曲线……(可选)
(5) 必须使用数据库。 其它功能可自行扩展。
二、题目分析与设计
1. 注明所使用的开发环境(Eclipse、NetBeans,JBuilder)。
开发环境:Eclipse
2. 论述题目的需求。给出软件功能架构图。
题目需求:通过数据库记录学生成绩和信息,并通过数据库读取这些信息,实现单个学生查找、全体学生查找等功能和单科排名、平均分、总分排名、平均分等功能。其他扩展功能:登录界面,保存到txt文件。
软件功能架构图:
其中,删除、修改、单个查找功能均通过学号定位学生
3
你的姓名——《Java语言》课程期末作业
3. 论述界面设计过程,指出其设计上的创意及组件的布局策略。
界面设计过程:
主要界面包括登录界面,主功能界面,各个子功能界面。登录界面包括3个面板,每个面板放入相应的标签、文本框、按钮等组件,登录界面采用3行1列的网格布局;主功能界面包括菜单栏和若干面板,面板中放入标签或若干按钮,菜单栏的菜单项与按钮相对应,主功能界面采用7行1列的网格布局;学生管理类子功能(增加学生、删除学生、修改学生、单个查找)界面采用6行2列的网格布局,每个网格均放入一个面板,每个面板放入标签、文本框、组合框、按钮等组件,以达到较友好的界面效果;学生查找类子功能界面(查看全体、按年级查询、按班别查询、按专业查询)和成绩管理类子功能(单科排名、总分排名、合格学生、挂科学生)界面采用边界布局,界面的上部放入一个面板,面板放入相应的按钮或组合框,中部放入一个文本域。所有错误信息等信
4
你的姓名——《Java语言》课程期末作业
息均通过对话框的形式显示相应信息。
4. 论述程序逻辑的实现,包括类的设计、对象的协作过程等,必要时加以
各种图形和表格辅助论述。不得以粘贴代码的方式代替设计部分。 类的设计过程:
本程序包括19个类文件,每个类文件只含有一个类,分别是包含main方法的主类 Main,实现登录功能的类 Login, 实现各种功能选择功能的类 Function, 实现数据库连接的类 DataBaseCreate, 实现学生信息编辑功能类 StudentEdit, 执行增加学生功能的类 AddStudent, 执行删除学生功能的类 DeleteStudent, 执行修改学生功能的类 UpdateStudent, 执行单个查询功能的类 IndexOfSingle, (由于AddStudent, DeleteStudent, UpdateStudent, IndexOfSingle 界面和操作基本相同,所以上4类均继承StudentEdit) 实现条件查找和成绩管理功能的类 IndexOrManage, 执行查询全体功能的类 LookAllStudents, 执行按年级查询功能的类 IndexOfGrade, 执行按班别查询功能的类 IndexOfClass, 执行按专业查询的类 IndexOfMajor, 执行单科排名功能的类 SubjectScoreRanking, 执行总分排名功能的类 TotalScoreRanking, 执行查找单科及格学生功能的类 PassStudents, 执行查找单科不及格学生功能的类 NotPassStudents, (由于LookAllStudents, IndexOfGrade,
IndexOfClass,
IndexOfMajor,
SubjectScoreRanking,
TotalScoreRanking, PassStudents, NotPassStudents, 界面和操作基本相同,所以上8类均继承IndexOrManage)执行将文本域内容保存到TXT文件的类 TxtSave。以上19个类,除了Main类以外,均包含一个构造方法,有些还包含actionPerformed(e)方法。
对象的协作过程:
5
你的姓名——《Java语言》课程期末作业
public class Main {
/**
* @param args */
public static void main(String[] args) {
Login login=new Login();
login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; //主要功能界面
public class Function extends JFrame implements ActionListener{ JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p6=new JPanel(); JPanel p3=new JPanel(); JPanel p4=new JPanel(); JPanel p5=new JPanel();
JButton add=new JButton(\增加学生\); JButton del=new JButton(\删除学生\); JButton update=new JButton(\修改学生\); JButton single=new JButton(\单个查询\); JButton look=new JButton(\查看全体\); JButton b11=new JButton(\按年级查找\); JButton b12=new JButton(\按班别查找\); JButton b13=new JButton(\按专业查找\); JLabel la1=new JLabel(\学生管理\); JLabel la2=new JLabel(\成绩管理\); JLabel la3=new JLabel(\学生查找\); JButton b1=new JButton(\单科排名\); JButton b2=new JButton(\总分排名\); JButton b3=new JButton(\合格学生\); JButton b4=new JButton(\挂科学生\);
JMenuItem items[][]=new JMenuItem[4][]; JMenuBar bar=new JMenuBar();
16
你的姓名——《Java语言》课程期末作业
JMenu m1=new JMenu(\开始\); JMenu m2=new JMenu(\学生管理\); JMenu m3=new JMenu(\学生查找\); JMenu m4=new JMenu(\成绩管理\);
//构造方法
public Function(){
setTitle(\学生成绩管理系统\); //设计菜单栏
items[0]=new JMenuItem[2]; items[1]=new JMenuItem[4]; items[2]=new JMenuItem[4]; items[3]=new JMenuItem[4];
m1.add(items[0][0]=new JMenuItem(\返回\)); m1.add(items[0][1]=new JMenuItem(\退出\)); m2.add(items[1][0]=new JMenuItem(\增加学生\)); m2.add(items[1][1]=new JMenuItem(\删除学生\)); m2.add(items[1][2]=new JMenuItem(\修改学生\)); m2.add(items[1][3]=new JMenuItem(\单个查询\)); m3.add(items[2][0]=new JMenuItem(\查看全体\)); m3.add(items[2][1]=new JMenuItem(\按年级查找\)); m3.add(items[2][2]=new JMenuItem(\按班别查找\)); m3.add(items[2][3]=new JMenuItem(\按专业查找\)); m4.add(items[3][0]=new JMenuItem(\单科排名\)); m4.add(items[3][1]=new JMenuItem(\总分排名\)); m4.add(items[3][2]=new JMenuItem(\合格学生\)); m4.add(items[3][3]=new JMenuItem(\挂科学生\)); bar.add(m1); bar.add(m2); bar.add(m3); bar.add(m4);
//设计布局
getContentPane().setLayout(new GridLayout(7,1)); getContentPane().add(bar); getContentPane().add(p1); getContentPane().add(p2); getContentPane().add(p6); getContentPane().add(p3);
getContentPane().add(p4);
17
你的姓名——《Java语言》课程期末作业
getContentPane().add(p5); p1.add(la1); p2.add(add); p2.add(del); p2.add(update); p2.add(single); p6.add(la3); p3.add(look); p3.add(b11); p3.add(b12); p3.add(b13); p4.add(la2); p5.add(b1); p5.add(b2); p5.add(b3); p5.add(b4);
setBounds(500, 250, 100, 100); pack();
setVisible(true);
//注册监听器
add.addActionListener(this); del.addActionListener(this); update.addActionListener(this); look.addActionListener(this); single.addActionListener(this); b11.addActionListener(this); b12.addActionListener(this); b13.addActionListener(this); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this);
items[0][0].addActionListener(this); items[0][1].addActionListener(this); items[1][0].addActionListener(this); items[1][1].addActionListener(this); items[1][2].addActionListener(this); items[1][3].addActionListener(this); items[2][0].addActionListener(this); items[2][1].addActionListener(this);
items[2][2].addActionListener(this);
18
你的姓名——《Java语言》课程期末作业
}
items[2][3].addActionListener(this); items[3][0].addActionListener(this); items[3][1].addActionListener(this); items[3][2].addActionListener(this); items[3][3].addActionListener(this);
//按钮事件响应,对用对应的类对象
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand()==\增加学生\){
AddStudent addStudent =new AddStudent(); }
else if(e.getActionCommand()==\删除学生\){
DeleteStudent delStudent=new DeleteStudent(); }
else if(e.getActionCommand()==\修改学生\){
UpdateStudent delStudent=new UpdateStudent(); }
else if(e.getActionCommand()==\单个查询\){ IndexSingle is=new IndexSingle(); }
else if(e.getActionCommand()==\查看全体\){
LookAllStudents look=new LookAllStudents(); }
else if(e.getActionCommand()==\按年级查找\){ IndexOfGrade ig=new IndexOfGrade(); }
else if(e.getActionCommand()==\按班别查找\){ IndexOfClass ic=new IndexOfClass(); }
else if(e.getActionCommand()==\按专业查找\){ IndexOfMajor im=new IndexOfMajor(); }
else if(e.getActionCommand()==\单科排名\){ SubjectScoreRanking subject= new SubjectScoreRanking(); }
else if(e.getActionCommand()==\总分排名\){
TotalScoreRanking subject= new TotalScoreRanking(); }
else if(e.getActionCommand()==\合格学生\){ PassStudents pass=new PassStudents(); }
19
你的姓名——《Java语言》课程期末作业
else if(e.getActionCommand()==\挂科学生\){
NotPassStudents notPass=new NotPassStudents(); }
else if(e.getActionCommand()==\返回\){ setVisible(false);
Login login=new Login();
login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
else if(e.getActionCommand()==\退出\){ System.exit(0); }
}
}
import java.awt.GridLayout; import java.awt.event.*;
import javax.swing.*;
public class StudentEdit extends JFrame{
JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p3=new JPanel(); JPanel p4=new JPanel(); JPanel p5=new JPanel(); JPanel p6=new JPanel(); JPanel p7=new JPanel(); JPanel p8=new JPanel(); JPanel p9=new JPanel(); JPanel p10=new JPanel(); JPanel p11=new JPanel(); JPanel p12=new JPanel();
JLabel la1=new JLabel(\学号\); JLabel la2=new JLabel(\姓名\); JLabel la3=new JLabel(\性别\); JLabel la4=new JLabel(\生日\); JLabel la5=new JLabel(\年级\); JLabel la6=new JLabel(\班别\); JLabel la7=new JLabel(\语文\);
20
你的姓名——《Java语言》课程期末作业
text.setText(\); String s=\;
if(subject.getSelectedItem().equals(\语文\)) s=\;
else if(subject.getSelectedItem().equals(\英语\)) s=\;
else if(subject.getSelectedItem().equals(\数学\)) s=\; else
JOptionPane.showMessageDialog(null, \找不到该科目\, \,
JOptionPane.INFORMATION_MESSAGE); if(s.equals(\)){ } else try{
Connection con=DataBaseCreate.getConnection(); Statement
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=sql.executeQuery(\+s+\student\);
rs.last();
//获取数据总行数
int row=rs.getRow();
float score[]=new float[row]; rs.first(); int i=0;
//将指定科目成绩放入数组 while(i score[i]=rs.getFloat(s); rs.next(); i+=1; } //快速排序 Arrays.sort(score); text.setLineWrap(true); //激活自动换行功能 text.setWrapStyleWord(true); // 激活断行不断字功能 text.append(subject.getSelectedItem()+\成绩排名:\\r\\n\); text.append(\排名 姓名 成绩 \\r\\n\); 36 你的姓名——《Java语言》课程期末作业 ResultSet rs1; int rank=1; float ave=0; //计算平均分 for(int j=row-1;j>=0;--j){ rs1=sql.executeQuery(\* from student where \+s+\+score[j]+\); rs1.next(); text.append(rank+\\+rs1.getString(\)+\ +rs1.getFloat(s)+\); rank+=1; ave+=rs1.getFloat(s); } ave=ave/(rank-1); text.append(subject.getSelectedItem()+\平均成绩: \+ave+\); }catch(java.lang.ClassNotFoundException err){ JOptionPane.showMessageDialog(null, err.getMessage(), \, JOptionPane.INFORMATION_MESSAGE); }catch (SQLException ex){ JOptionPane.showMessageDialog(null, ex.getMessage(), \, JOptionPane.INFORMATION_MESSAGE); } } else if(e.getActionCommand()==\取消\){ setVisible(false); } else if(e.getActionCommand()==\保存\){ TxtSave save=new TxtSave(text.getText(),\按\+subject.getSelectedItem()+\成绩排名\); } } } import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; 37 你的姓名——《Java语言》课程期末作业 import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Arrays; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; public class TotalScoreRanking extends IndexOrManage implements ActionListener{ public TotalScoreRanking(){ super(); //注册监听 b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); pack(); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { // TODO 自动生成的方法存根 if(e.getActionCommand()==\显示\){ b1.setEnabled(false); try{ Connection con=DataBaseCreate.getConnection(); Statement sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rs=sql.executeQuery(\student\); rs.last(); //获取数据总行数 38 你的姓名——《Java语言》课程期末作业 int row=rs.getRow(); float score[]=new float[row]; rs.first(); int i=0; //将总分成绩放入数组 while(i score[i]=rs.getFloat(\); rs.next(); i+=1; } //快速排序 Arrays.sort(score); text.setLineWrap(true); //激活自动换行功能 text.setWrapStyleWord(true); // 激活断行不断字功能 text.append(\总分成绩排名:\\r\\n\); text.append(\排名 姓名 总分 \\r\\n\); ResultSet rs1; int rank=1; float ave=0; for(int j=row-1;j>=0;--j){ //通过总分查找数据 rs1=sql.executeQuery(\* from student where Total like '%\+score[j]+\); rs1.next(); text.append(rank+\\+rs1.getString(\)+\ +rs1.getFloat(\)+\); ave+=rs1.getFloat(\); rank+=1; } ave=ave/(rank-1); text.append(\平均总分: \+ave+\); }catch(java.lang.ClassNotFoundException err){ JOptionPane.showMessageDialog(null, err.getMessage(), \, JOptionPane.INFORMATION_MESSAGE); }catch (SQLException ex){ JOptionPane.showMessageDialog(null, ex.getMessage(), \, JOptionPane.INFORMATION_MESSAGE); 39 你的姓名——《Java语言》课程期末作业 } } else if(e.getActionCommand()==\取消\){ setVisible(false); } else if(e.getActionCommand()==\保存\){ TxtSave save=new TxtSave(text.getText(),\按总分排名\); } } } import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; public class PassStudents extends IndexOrManage implements ActionListener{ String[] subjects={\,\语文\,\英语\,\数学\}; JComboBox subject=new JComboBox(subjects); JLabel la=new JLabel(\选择查询科目\); public PassStudents(){ super(); p1.add(la); p1.add(subject); //注册监听 b1.addActionListener(this); b2.addActionListener(this); 40
正在阅读:
成绩管理系统java+mySQL04-29
字典里的争吵作文300字06-27
阳泉市八年级生物上册第六单元第一章第一节尝试对生物进行分类导学案新版新人教版09-09
香煎银鳕鱼作文300字07-07
家具设计教案大全-彭亮04-26
2017年九年级物理复习计划09-17
车库破桩头及垫层施工方案12-29
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 管理系统
- 成绩
- mySQL
- java
- 县科技计划项目申报书
- 防突区一届三次职代会材料之一
- 新形势下开展双拥工作应把握的几个问题
- 2014年最新人教版六年级上册数学第三单元教案 - 图文
- 2011年度中国有色金属工业科学技术奖评审通过项目
- 2017届高三化学一轮强化训练《氧化还原反应》能力提升试题卷 Wor
- 解决方案 - 北信源内网安全管理系统解决方案v2.0 - 北信源 - 图
- 技能题库
- 工会委员会议主持词
- 软件产品增值税退税政策解读
- 某某水库蓄水安全鉴定施工质量自检报告
- 王冬香《窃读记》教学设计(公开课)
- CA6140车床的数控化改造 - 图文
- 《绿色蝈蝈》赵海容
- 数据结构课后习题答案
- 2016-2022年中国低聚木糖市场竞争格局及投资前景预测报告(目录
- 绿化花卉工初级理论复习题
- 课程设计 - 餐馆管理系统
- “优质道地药材示范基地”建设标准
- 2016电大建筑材料形考