java学生成绩管理系统课程设计报告以及代码共享
时间:2025-01-10
时间:2025-01-10
java学生成绩管理系统课程设计报告以及代码共享
java学生成绩管理系统课程设计报告以及代码共享
《Java语言》课程期末作业
题 目第9题:学生成绩管理系统 学 院 计算机学院 专 业 计算机科学与技术 班 别 学 号姓 名
2010年12月7日
java学生成绩管理系统课程设计报告以及代码共享
一、课程题目
设计一个简易的学生成绩管理系统。用于记录学生的各科成绩,以及实现常用的统计功能。 (1) 记录学生的基本信息,如姓名、学号、专业、班级等 (2) 记录各科成绩
(3) 实现常用的统计功能,如:单科成绩排名、总分排名、统计成绩高于/低于某一临界值的学生、统计单科/总分平均值……
(4) 使用图形方式显示某些数据,如直方图显示各分数段的人数、绘制各科分数分布曲线……(可选) (5) 必须使用数据库。
二、题目分析与设计
1. 注明所使用的开发环境(Eclipse、NetBeans,JBuilder)。 我使用的开发环境是Eclipse。
2. 论述题目的需求。给出软件功能架构图。
学生成绩管理,实现添加成绩记录、修改成绩记录,删除记录的功能。
3. 论述界面设计过程,指出其设计上的创意及组件的布局策略。 使用SDI形式。界面分上下两个部分,上部分是功能键,下部分是表格表现。就是简单好用。 4. 论述程序逻辑的实现
用户输入数据后,整理数据,通过JDBC连接数据库进行各种操作。 5、界面设计
java学生成绩管理系统课程设计报告以及代码共享
三、测试分析
1.测试的预计结果
1、添加一项学生数据,学号1234,姓名xyf,班级计科8,英语成绩90,数学90,计算机75。
2、修改英语成绩88。 3、删除该记录
2. 本程序的测试情况,与预计结果作对比
1、添加
java学生成绩管理系统课程设计报告以及代码共享
2、修改
3、删除
说明:限于技术问题,本程序有比较多BUG,而且只造了部分功能,但是
java学生成绩管理系统课程设计报告以及代码共享
基本上可以实现文本的编辑。
附录:源代码
import java.awt.*; import java.text.*; import javax.swing.*; import java.awt.event.*; import java.sql.*;
import javax.swing.table.*; import java.io.*; import java.util.Vector;
public class asan1 extends WindowAdapter implements ActionListener { JFrame frame; //进入系统界面
JFrame frame1; //主界面
JFrame Frame_Add; //添加学生的窗口 JFrame Frame_Del; //删除学生的窗口 JFrame Frame_Updata;//修改学生的窗口 JFrame Frame_Show; //查看学生的窗口
JTextField num=new JTextField(20); //学号 JTextField name=new JTextField(20); //姓名 JTextField great=new JTextField(20); //计算机 JTextField english=new JTextField(20); //英语 JTextField math=new JTextField(20); //数学
JTextField computer=new JTextField(20); //计算机
JComboBox pl;
public asan1() { stu_in();
}
public void setfont(JButton button) //设置按钮的大小及字体 { button.setFont(new Font("华文彩云",Font.PLAIN,18)); button.setForeground(java.awt.Color.blue);
}
public void stu_in()
java学生成绩管理系统课程设计报告以及代码共享
{ frame=new JFrame("学生成绩管理系统");
frame.setBounds(150,200,600,300); //窗口大小及开始在屏幕上的位置。 Container cp=frame.getContentPane(); cp.setLayout(new BorderLayout()); BackImage p= new BackImage(); p.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
cp.add(p,BorderLayout.CENTER);
JLabel label=new JLabel(" xx大学计算机学院08级8班xx"); label.setFont(new Font("华文彩云",Font.PLAIN,30)); JButton but_in=new JButton("进入系统");
JButton but_out=new JButton("退出系统");
but_in.setFont(new Font("华文彩云",Font.PLAIN,30)); but_out.setFont(new Font("华文彩云",Font.PLAIN,30)); but_in.addActionListener(this); but_out.addActionListener(this); p.add(but_in,c);
p.add(but_out,c);
frame.add(label,BorderLayout.PAGE_START);
frame.setResizable(false); //窗口不随鼠标拖动而改变大小 frame.addWindowFocusListener(this); //添加窗口的监控类 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show();
}
public void stu_add() { Frame_Add=new JFrame("添加学生成绩"); //添加学生的窗口 Frame_Add.setResizable(false); Container conterPane; JPanel p=new JPanel();
JLabel J1=new JLabel(" 学号:"); JLabel J2=new JLabel(" 姓名:"); JLabel J6=new JLabel(" 班级:"); JLabel J3=new JLabel(" 英语:"); JLabel J4=new JLabel(" 数学:"); JLabel J5=new JLabel("计算机:");
java学生成绩管理系统课程设计报告以及代码共享
add.addActionListener(this); //添加
JButton clear=new JButton("清空"); //清除 clear.addActionListener(this);
JButton exit=new JButton("退出"); //退出 exit.addActionListener(this);
GridBagLayout gridBag=new GridBagLayout(); GridBagConstraints gridBagCon;
num=new JTextField(20); //学号
name=new JTextField(20); //姓名 great=new JTextField(20); //计算机 english=new JTextField(20); //英语 math=new JTextField(20); //数学 computer=new JTextField(20); //计算机
p.add(J1); J1.setLabelFor(num);p.add(num); p.add(J2); J2.setLabelFor(name);p.add(name); p.add(J6); J6.setLabelFor(great);p.add(great); p.add(J3); J3.setLabelFor(english);p.add(english); p.add(J4); J4.setLabelFor(math);p.add(math);
p.add(J5); J5.setLabelFor(computer);p.add(computer);
p.add(add); p.add(clear);
p.add(exit); Frame_Add.setBounds(300,280,300,230); //窗口大小及开始在屏幕上的位置。
Frame_Add.add(p); Frame_Add.show();
}
public void stu_del() {
Frame_Del=new JFrame("删除学生成绩"); //添加学生的窗口 Frame_Del.setResizable(false); Container conterPane; JPanel p=new JPanel();
String XueHao="";
Data_access DB=new Data_access();
java学生成绩管理系统课程设计报告以及代码共享
int numberOfColumns; try {
String query="SELECT ID FROM student";
DB.rs=DB.stmt.executeQuery(query); while(DB.rs.next())
{ XueHao= DB.rs.getString(1); }
rec_vector.addElement(XueHao);
}catch(Exception ex) { JOptionPane.showMessageDialog( null , "连接数据库失败" ,"数据连接" , JOptionPane.ERROR_MESSAGE) ;
};
pl=new JComboBox(rec_vector);
pl.setEditable(true);
pl.setPreferredSize(new Dimension(135,22)); //框的长和高 pl.addActionListener(this);
JLabel J1=new JLabel(" 学号:");
JButton updata=new JButton("删除");
updata.addActionListener(this); //添加 JButton exit1=new JButton("OUT"); //退出 exit1.addActionListener(this);
GridBagLayout gridBag=new GridBagLayout(); GridBagConstraints gridBagCon; p.add(J1);p.add(pl); p.add(updata);
p.add(exit1);
Frame_Del.setBounds(300,280,210,100); //窗口大小及开始在屏幕上的 Frame_Del.add(p);
位置。
Frame_Del.show(); }
public void stu_updata()
java学生成绩管理系统课程设计报告以及代码共享
Frame_Updata=new JFrame("修改学生成绩"); //添加学生的窗口 Frame_Updata.setResizable(false); Container conterPane; JPanel p=new JPanel();
String XueHao="";
Data_access DB=new Data_access(); Vector rec_vector= new Vector(); //列名集合 int numberOfColumns; try {
String query="SELECT ID FROM student"; DB.rs=DB.stmt.executeQuery(query); while(DB.rs.next()) {
XueHao=DB.rs.getString(1); rec_vector.addElement(XueHao); }
}catch(Exception ex)
{ JOptionPane.showMessageDialog( null , "连接数据库失败" ,"数据连接" ,
JOptionPane.ERROR_MESSAGE) ;
};
pl=new JComboBox(rec_vector);
pl.setEditable(true);
pl.setPreferredSize(new Dimension(135,22)); //框的长和高 pl.addActionListener(this);
JLabel J1=new JLabel(" 学号:"); JLabel J2=new JLabel(" 姓名:"); JLabel J6=new JLabel(" 班级:"); JLabel J3=new JLabel(" 英语:"); JLabel J4=new JLabel(" 数学:"); JLabel J5=new JLabel("计算机:");
JButton updata=new JButton("修改");
updata.addActionListener(this); //添加 JButton clear1=new JButton("清空"); //清除
java学生成绩管理系统课程设计报告以及代码共享
JButton exit1=new JButton("OUT"); //退出 exit1.addActionListener(this);
GridBagLayout gridBag=new GridBagLayout(); GridBagConstraints gridBagCon;
name=new JTextField(12); //姓名 great=new JTextField(12); //计算机 english=new JTextField(12); //英语 math=new JTextField(12); //数学 computer=new JTextField(12); //计算机
p.add(J1);p.add(pl);
p.add(J2); J2.setLabelFor(name);p.add(name); p.add(J6); J6.setLabelFor(great);p.add(great); p.add(J3); J3.setLabelFor(english);p.add(english); p.add(J4); J4.setLabelFor(math);p.add(math);
p.add(J5); J5.setLabelFor(computer);p.add(computer);
p.add(updata); p.add(clear1);
p.add(exit1); Frame_Updata.setBounds(300,280,210,230); //窗口大小及开始在屏幕上的位置。
}
Frame_Updata.add(p); Frame_Updata.show();
public void stu_show() { Frame_Show=new JFrame("查看学生成绩"); //添加学生的窗口
Frame_Show.setResizable(false); Container conterPane;
JPanel p=new JPanel();
Data_access DB=new Data_access(); Vector rec_vector= new Vector(); //列名集合
int numberOfColumns; String XueHao=""; try
{
String query="SELECT ID FROM student"; DB.rs=DB.stmt.executeQuery(query); while(DB.rs.next())
java学生成绩管理系统课程设计报告以及代码共享
XueHao= DB.rs.getString(1); rec_vector.addElement(XueHao); }
}catch(Exception ex)
{ JOptionPane.showMessageDialog( null , "连接数据库失败" ,"数据连接" , JOptionPane.ERROR_MESSAGE) ; };
pl=new JComboBox(rec_vector);
pl.setEditable(true);
pl.setPreferredSize(new Dimension(135,22)); //框的长和高
pl.addActionListener(this); JLabel J1=new JLabel(" 学号:"); JLabel J2=new JLabel(" 姓名:"); JLabel J6=new JLabel(" 班级:"); JLabel J3=new JLabel(" 英语:"); JLabel J4=new JLabel(" 数学:");
JLabel J5=new JLabel("计算机:");
name=new JTextField(12); //姓名 great=new JTextField(12); //计算机 english=new JTextField(12); //英语 math=new JTextField(12); //数学 computer=new JTextField(12); //计算机 name.setEditable(false); great.setEditable(false); english.setEditable(false); math.setEditable(false); computer.setEditable(false);
p.add(J1);p.add(pl);
p.add(J2); J2.setLabelFor(name);p.add(name); p.add(J6); J6.setLabelFor(great);p.add(great); p.add(J3); J3.setLabelFor(english);p.add(english); p.add(J4); J4.setLabelFor(math);p.add(math); p.add(J5); J5.setLabelFor(computer);p.add(computer);
JButton show=new JButton("查看");
show.addActionListener(this); p.add(show);
java学生成绩管理系统课程设计报告以及代码共享
Frame_Show.setBounds(300,280,210,230); //窗口大小及开始在屏幕上的位置。 Frame_Show.add(p); Frame_Show.show();
}
public int mian_JFrame() throws Exception {
JPanel pane= new JPanel(); frame1=new JFrame("学生成绩管理系统");
JTable friends=new JTable();
DefaultTableModel dt=new DefaultTableModel(); friends.setModel(dt); Vector vecColumnName = new Vector(); //列名集合 int numberOfColumns; int b=1;
Stu_Change Sadd=new Stu_Change(); try {
Sadd.stuSum();
Data_access DB=new Data_access();
numberOfColumns=DB.rsmd.getColumnCount();
//以下是显示数据库中的列名的代码 dt.addColumn("学号"); dt.addColumn("姓名"); dt.addColumn("班级"); dt.addColumn("英语"); dt.addColumn("数学"); dt.addColumn("计算机");
dt.addColumn("总分");
//以下是在表格中显示数据中的内容 while(DB.rs.next())
java学生成绩管理系统课程设计报告以及代码共享
Vector newRow=new Vector(); int c=1;
while(c<=numberOfColumns) {
newRow.addElement(DB.rs.getString(c)); c++; }
dt.addRow(newRow); }
}catch(Exception ex) {
JOptionPane.showMessageDialog( null , "连接数据库失败" ,"数据连接" ,
JOptionPane.ERROR_MESSAGE) ; return 0; };
friends.setPreferredScrollableViewportSize(new Dimension(580, 200));//设置表格的大friends.setRowHeight (25);//设置每行的高度为20
friends.setRowHeight (0, 25);//设置第1行的高度为20 friends.setRowMargin (2);//设置相邻两行单元格的距离5
friends.setRowSelectionAllowed (true);//设置可否被选择.默认为false friends.setSelectionBackground (Color.white);//设置所选择行的背景色 friends.setSelectionForeground (Color.red);//设置所选择行的前景色 friends.setGridColor (Color.black);//设置网格线的颜色 friends.clearSelection ();//取消选择
friends.setDragEnabled (false);//不懂这个 friends.setShowGrid (false);//是否显示网格线
friends.setShowHorizontalLines (false);//是否显示水平的网格线 friends.setShowVerticalLines (true);//是否显示垂直的网格线 friends.setEditable(false); friends.doLayout ();
friends.setBackground (Color.lightGray);
JScrollPane pane3 = new JScrollPane (friends);//JTable最好加在JScrollPane上
pane.setPreferredSize (new Dimension(600,300)); pane.setBackground (Color.orange);
小
//
java学生成绩管理系统课程设计报告以及代码共享
JPanel panel = new JPanel(new FlowLayout());
JButton but1=new JButton("添加数据");
setfont(but1);
panel.add(but1);
JButton but2=new JButton("修改数据"); setfont(but2); panel.add(but2);
JButton but3=new JButton("删除数据"); setfont(but3); panel.add(but3);
JButton but4=new JButton("查看数据"); setfont(but4); panel.add(but4);
JButton but5=new JButton("保存退出");
JPanel pane2 = new JPanel(new BorderLayout());
JLabel label=new JLabel("xx大学计算机学院08级8班xx");
pane.add (panel,BorderLayout.PAGE_END); pane.add (pane3,BorderLayout.SOUTH);
pane.add (label,BorderLayout.LINE_END);
but1.addActionListener(this); but2.addActionListener(this); but3.addActionListener(this);
setfont(but5);
panel.add(but5);
but4.addActionListener(this); but5.addActionListener(this);
frame1.setBounds(150,200,600,300); //窗口大小及开始在屏幕上的位置。
frame1.setContentPane (pane);
frame1.pack();
frame1.setResizable(false); //窗口不随鼠标拖动而改变大小 frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.addWindowFocusListener(this); //添加窗口的监控类 frame1.show(); return 0; }
java学生成绩管理系统课程设计报告以及代码共享
public void actionPerformed(ActionEvent e) //各按钮的事件处理 { String s;
s=e.getActionCommand(); //记录按钮的名称 // Object obj=e.getSource(); // if(obj==add)
if(s=="退出系统") {
try //延迟函数 {
Thread.currentThread().sleep(1000);
}
catch(InterruptedException e1){}
frame.setVisible(false); //窗口自动消失 } else if(s=="进入系统") {
frame.setVisible(false); //窗口自动消失
try { mian_JFrame(); }catch(Exception e1){}; }
else if(s=="保存退出") {
try //延迟函数
{ Thread.currentThread().sleep(500); }
catch(InterruptedException e1){}
frame1.setVisible(false); //窗口自动消失
}
else if(s=="添加数据") {
try //延迟函数 {
stu_add();
java学生成绩管理系统课程设计报告以及代码共享
catch(Exception e1){} } else if(s=="修改数据") {
try //延迟函数 {
stu_updata(); }
catch(Exception e1){}
}
else if(s=="删除数据") {
try //延迟函数 {
stu_del(); }
catch(Exception e1){} } else if(s=="查看数据")
{
try //延迟函数 { stu_show(); }
catch(Exception e1){} } else if(s=="添加") {
Stu_Change Sadd=new Stu_Change();
Sadd.stuAdd(num.getText(),name.getText(),great.getText(),Integer.valueOf(english.getText()
),Integer.valueOf(math.getText()),Integer.valueOf(computer.getText())); try //延迟函数
{
frame1.setVisible(false); //窗口自动消失
Frame_Add.setVisible(false); mian_JFrame(); stu_add();