package Mark_Analyse;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
@SuppressWarnings("serial")
public class Mark_Analyse_GUI extends JFrame implements ActionListener{
public static final int defaultSIZE = 20;
public static final int TOTAL_SIZE =defaultSIZE * 7*2 ;
public static final int defaultSIZE_newSubject = 20;
JMenuBar menu_bar = new JMenuBar();
JMenu menu_Filter,menu_Search,menu_Sort;
JMenu menu_Sort_subject;
JMenuItem menu_Sort_average,menu_Sort_subject_1,menu_Sort_subject_2,menu_Sort_subject_3,menu_Sort_subject_4;
JMenuItem[] newSubjectSort_Item;
JMenu menu_Filter_max,menu_Filter_min,menu_Filter_NumOfPeople,menu_Search_Number,menu_Search_Name;
JButton Add_Student,Search_Student,Stat_Student,MAKE_File,read_File;
JButton Stat_OneStudent;
JButton addSubject;
JTextField addSubject_name;
JComboBox combo;
JTableHeader tableHeader;
JScrollPane Scroll_Pane;
JLabel image_label1;
ImageIcon image_icon,button_icon;
int newSubject_count;
String[] File_In_string,File_Out_string;
String[] newSubject_name;
String[] columnNames = {"学号","姓名","性别","JAVA数据结构","计算机组成原理","程序设计方法学","大学英语","成绩统计"};
String[] allSubject_name;
Object[][] data = {};
public DefaultTableModel tableModel,newTableModel;
public JTable table;
Mark_Analyse_GUI temp;
public Mark_Analyse_GUI(){
super("成绩分析系统");
Container c = getContentPane();
c.setLayout(null);
this.setSize(900, 600);
this.setResizable(false);
button_icon = new ImageIcon(".\\src\\1212.jpg");
String[] str_combo = {"总分","平均分","不及格科目数"};
combo = new JComboBox(str_combo);
addSubject_name = new JTextField(30);
try{
RandomAccessFile in = new RandomAccessFile("subject.dat","r");
newSubject_count = (int)(in.length()/(defaultSIZE_newSubject*2));
newSubject_name = new String[newSubject_count];
for(int k2 = 0;k2 < newSubject_count;k2++){
in.seek(k2*defaultSIZE_newSubject*2);
this.readData2(in);
this.newSubject_name[k2] = this.File_In_string[0];
}
in.close();
}
catch (IOException e2){
System.out.print("Error2:"+ e2);
System.exit(1);
}
allSubject_name = new String[8+newSubject_count];
System.arraycopy(columnNames, 0, allSubject_name, 0, 7);
System.arraycopy(newSubject_name, 0, allSubject_name, 7, newSubject_count);
System.arraycopy(columnNames, 7, allSubject_name,newSubject_count+7 , 1);
//System.out.print(allSubject_name[0]+"******"+allSubject_name[8]);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();}});
tableModel = new DefaultTableModel(data,allSubject_name);
newTableModel = new DefaultTableModel(data,allSubject_name);
table = new JTable(tableModel);
Scroll_Pane = new JScrollPane(table);
Add_Student = new JButton("添加学生信息");
Search_Student = new JButton("搜索学生信息");
Stat_Student = new JButton("统计成绩信息");
MAKE_File = new JButton("保存文件信息");
read_File = new JButton("读取文件信息");
Stat_OneStudent = new JButton("统计个人信息");
addSubject = new JButton("添加科目");
addSubject.addActionListener(this);
Add_Student.addActionListener(this);
Search_Student.addActionListener(this);
Stat_Student.addActionListener(this);
read_File.addActionListener(this);
MAKE_File.addActionListener(this);
Stat_OneStudent.addActionListener(this);
//初始化菜单选项
menu_Sort = new JMenu("排序");
menu_Filter = new JMenu("筛选");
menu_Search = new JMenu("查找");
menu_Sort_average = new JMenuItem("按成绩统计排序");
menu_Sort_subject = new JMenu("按分科科目排序");
menu_Sort_subject_1 = new JMenuItem("JAVA数据结构");
menu_Sort_subject_2 = new JMenuItem("计算机组成原理");
menu_Sort_subject_3 = new JMenuItem("程序设计方法学");
menu_Sort_subject_4 = new JMenuItem("大学英语");
menu_Filter_max = new JMenu("最高分");
menu_Filter_min = new JMenu("最低分");
menu_Filter_NumOfPeople = new JMenu("人数");
menu_Search_Number = new JMenu("按学号");
menu_Search_Name = new JMenu("按名字");
//添加菜单项到菜单栏
setJMenuBar(menu_bar);
menu_bar.add(menu_Sort);
//menu_bar.add(menu_Filter);
//menu_bar.add(menu_Search);
menu_Sort.add(menu_Sort_average);
menu_Sort.add(menu_Sort_subject);
menu_Sort_subject.add(menu_Sort_subject_1);
menu_Sort_subject.add(menu_Sort_subject_2);
menu_Sort_subject.add(menu_Sort_subject_3);
menu_Sort_subject.add(menu_Sort_subject_4);
menu_Filter.add(menu_Filter_max);
menu_Filter.add(menu_Filter_min);
menu_Filter.add(menu_Filter_NumOfPeople);
menu_Search.add(menu_Search_Number);
menu_Search.add(menu_Search_Name);
newSubjectSort_Item = new JMenuItem[newSubject_count];
for(int i = 0;i<newSubject_count;i++){
newSubjectSort_Item[i] = new JMenuItem("按"+newSubject_name[i]+"排序");
menu_Sort_subject.add(newSubjectSort_Item[i]);
newSubjectSort_Item[i].addActionListener(this);
}
menu_Sort_average.setEnabled(false);
menu_Sort_average.addActionListener(this);
menu_Sort_subject_1.addActionListener(this);
menu_Sort_subject_2.addActionListener(this);
menu_Sort_subject_3.addActionListener(this);
menu_Sort_subject_4.addActionListener(this);
this.add(Scroll_Pane);
Scroll_Pane.setBounds(0, 0, 700, 600);
Scroll_Pane.setForeground(Color.blue);
this.add(Add_Student);
this.add(Search_Student);
this.add(Stat_Student);
this.add(MAKE_File);
this.add(read_File);
this.add(Stat_OneStudent);
this.add(addSubject);
this.add(combo);
this.add(addSubject_name);
read_File.setBounds(720, 195, 150, 30);
Add_Student.setBounds(720, 15, 150, 30);
Search_Student.setBounds(720,60,150,30);
MAKE_File.setBounds(720,105,150,30);
Stat_Student.setBounds(720,150,150,30);
Stat_OneStudent.setBounds(720, 285, 150, 30);
addSubject.setBounds(720, 510, 150, 30);
addSubject_name.setBounds(720, 465, 150, 30);
combo.setBounds(720, 240, 150, 30);
image_icon = new ImageIcon(".\\src\\1.jpg");
button_icon = new ImageIcon(".\\src\\1212.bmp");
image_label1 = new JLabel(image_icon);
this.add(image_label1);
image_label1.setBounds(0, 0, 900, 600);
final JTableHeader tableHeader = table.getTableHeader();
tableHeader.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
// 当光标处于两个列表间的分隔线上时,表头的光标呈东西调整的样式,通过
// 鼠标的样式和点击次数来判断是否需要进行列宽调整
int cursorType = tableHeader.getC
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
该资源包括四个版本。 [问题描述] 录入、保存一个班级学生多门课程的成绩,并对成绩进行分析。 [需求分析] (1)通过键盘输入各学生的多门课程的成绩,建立相应的文件input.dat。 (2)对文件input.dat中的数据进行处理,要求具有如下功能: ①按各门课程成绩排序,并生成相应的文件输出。 ②计算每人的平均成绩,按平均成绩排序,并生成文件。 ③求出各门课程的平均成绩、最高分、最低分、不及格人数、60~69分人数、70~79分人数、80~89分人数、90分以上人数。 ④根据姓名或学号查询某人的各门课成绩,重名情况也能处理。 (3)界面美观。
资源推荐
资源详情
资源评论
收起资源包目录
成绩分析系统.rar (83个子文件)
成绩分析系统
成绩分析系统2.0
Mark_Analyse
.project 388B
bin
1212.jpg 2KB
1212.bmp 41KB
1.jpg 92KB
Mark_Analyse
Search_Student.class 6KB
Student$1.class 684B
Mark_Analyse_GUI.class 14KB
NewSubject.class 332B
Mark_Analyse_GUI$1.class 695B
Mark_Analyse_GUI$2.class 1KB
Search_Student$2.class 2KB
Stat.class 5KB
Search_Student$1.class 726B
Student.class 8KB
Stat$1.class 666B
.settings
org.eclipse.jdt.core.prefs 629B
student.dat 720B
src
1212.jpg 2KB
1212.bmp 41KB
1.jpg 92KB
Thumbs.db 8KB
Mark_Analyse
Search_Student.java 7KB
NewSubject.java 132B
Mark_Analyse_GUI.java 17KB
Stat.java 5KB
Student.java 10KB
.classpath 301B
成绩分析系统2.1
Mark_Analyse
.project 388B
bin
1212.jpg 2KB
1212.bmp 41KB
1.jpg 92KB
Mark_Analyse
Search_Student.class 6KB
Student$1.class 684B
Mark_Analyse_GUI.class 16KB
NewSubject.class 332B
Mark_Analyse_GUI$1.class 695B
Mark_Analyse_GUI$2.class 1KB
Search_Student$2.class 2KB
Stat.class 5KB
Search_Student$1.class 726B
Student.class 8KB
Stat$1.class 666B
.settings
org.eclipse.jdt.core.prefs 629B
student.dat 8KB
subject.dat 200B
src
1212.jpg 2KB
1212.bmp 41KB
1.jpg 92KB
Thumbs.db 8KB
Mark_Analyse
Search_Student.java 7KB
NewSubject.java 132B
Mark_Analyse_GUI.java 21KB
Stat.java 5KB
Student.java 10KB
.classpath 301B
成绩分析系统1.4
Mark_Analyse
.project 388B
bin
1212.jpg 2KB
1212.bmp 41KB
1.jpg 92KB
Mark_Analyse
Search_Student.class 6KB
Student$1.class 684B
Mark_Analyse_GUI.class 14KB
NewSubject.class 332B
Mark_Analyse_GUI$1.class 695B
Mark_Analyse_GUI$2.class 1KB
Search_Student$2.class 2KB
Stat.class 5KB
Search_Student$1.class 726B
Student.class 6KB
Stat$1.class 666B
.settings
org.eclipse.jdt.core.prefs 629B
student.dat 360B
src
1212.jpg 2KB
1212.bmp 41KB
1.jpg 92KB
Thumbs.db 8KB
Mark_Analyse
Search_Student.java 7KB
NewSubject.java 132B
Mark_Analyse_GUI.java 16KB
Stat.java 4KB
Student.java 8KB
.classpath 301B
成绩分析系统1.0
Mark_Analyse.rar 214KB
共 83 条
- 1
资源评论
- sea_detective2012-05-27不是我要找的资源,我想找的是漂亮的界面,这个程序的界面不是很漂亮
- nizhentamaxing2013-01-28界面确实不是很漂亮,内容也挺简单的
- just_love_tao2013-05-01貌似蛮强大。。。。但是不是sql数据库的
- jetsel2013-04-09基本跟要求的一样
美丽人生
- 粉丝: 61
- 资源: 72
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功