




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、java学生成绩管理系统课程设计报告以及代码共享Java语言课程期末作业题 目第9题:学生成绩管理系统学 院 计算机学院 专 业 计算机科学与技术 班 别 08级(8 )班 学 号 姓 名 2010年12月7日一、课程题目 设计一个简易的学生成绩管理系统。用于记录学生的各科成绩,以及实现常用的统计功能。(1) 记录学生的基本信息,如姓名、学号、专业、班级等(2) 记录各科成绩(3) 实现常用的统计功能,如:单科成绩排名、总分排名、统计成绩高于/低于某一临界值的学生、统计单科/总分平均值(4) 使用图形方式显示某些数据,如直方图显示各分数段的人数、绘制各科分数分布曲线(可选)(5) 必须使用数据
2、库。二、题目分析与设计 1. 注明所使用的开发环境(Eclipse、NetBeans,JBuilder)。我使用的开发环境是Eclipse。2. 论述题目的需求。给出软件功能架构图。学生成绩管理,实现添加成绩记录、修改成绩记录,删除记录的功能。成绩管理添加成绩修改成绩删除成绩 3. 论述界面设计过程,指出其设计上的创意及组件的布局策略。 使用SDI形式。界面分上下两个部分,上部分是功能键,下部分是表格表现。就是简单好用。 4. 论述程序逻辑的实现用户输入数据后,整理数据,通过JDBC连接数据库进行各种操作。5、 界面设计三、测试分析1.测试的预计结果 1、添加一项学生数据,学号1234,姓名x
3、yf,班级计科8,英语成绩90,数学90,计算机75。2、 修改英语成绩88。3、 删除该记录2. 本程序的测试情况,与预计结果作对比1、添加2、修改3、删除说明:限于技术问题,本程序有比较多BUG,而且只造了部分功能,但是基本上可以实现文本的编辑。附录:源代码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.Vecto
4、r; 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); /姓名J
5、TextField 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);butt
6、on.setForeground(java.awt.Color.blue);public void stu_in()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 GridBagCo
7、nstraints();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.addAc
8、tionListener(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_a
9、dd() 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(计算机:); JButton add=
10、new JButton(添加); 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 JTextFiel
11、d(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(en
12、glish);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(删除学生成绩
13、); /添加学生的窗口 Frame_Del.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=
14、 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
15、 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,28
16、0,210,100); /窗口大小及开始在屏幕上的位置。 Frame_Del.add(p); Frame_Del.show(); public void stu_updata() 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(); /列名集合
17、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_
18、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 JBut
19、ton(修改); updata.addActionListener(this); /添加 JButton clear1=new JButton(清空); /清除 clear1.addActionListener(this); JButton exit1=new JButton(OUT); /退出 exit1.addActionListener(this); GridBagLayout gridBag=new GridBagLayout(); GridBagConstraints gridBagCon; name=new JTextField(12); /姓名 great=new JTextFi
20、eld(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(m
21、ath);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.setResizabl
22、e(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() XueHao= DB.rs.getString(1); rec_vector.a
23、ddElement(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 JLab
24、el( 姓名:); 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)
25、; 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(
26、math);p.add(math); p.add(J5); J5.setLabelFor(computer);p.add(computer); JButton show=new JButton(查看); show.addActionListener(this); p.add(show); Frame_Show.setBounds(300,280,210,230); /窗口大小及开始在屏幕上的位置。 Frame_Show.add(p); Frame_Show.show(); public int mian_JFrame() throws Exception JPanel pane= new JP
27、anel(); 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(); numberOf
28、Columns=DB.rsmd.getColumnCount(); /以下是显示数据库中的列名的代码 dt.addColumn(学号); dt.addColumn(姓名); dt.addColumn(班级); dt.addColumn(英语); dt.addColumn(数学); dt.addColumn(计算机); dt.addColumn(总分); /以下是在表格中显示数据中的内容 while(DB.rs.next() Vector newRow=new Vector(); int c=1; while(c=numberOfColumns) newRow.addElement(DB.rs.
29、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);/设置每行的高度为20friends.setRowHeight (0, 25);/设置第1行的高度为
30、20friends.setRowMargin (2);/设置相邻两行单元格的距离5friends.setRowSelectionAllowed (true);/设置可否被选择.默认为falsefriends.setSelectionBackground (Color.white);/设置所选择行的背景色friends.setSelectionForeground (Color.red);/设置所选择行的前景色friends.setGridColor (Color.black);/设置网格线的颜色friends.clearSelection ();/取消选择friends.setDragEnab
31、led (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最好加在JScro
32、llPane上pane.setPreferredSize (new Dimension(600,300);pane.setBackground (Color.orange); 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
33、); panel.add(but3); JButton but4=new JButton(查看数据);setfont(but4); panel.add(but4); JButton but5=new JButton(保存退出);setfont(but5); panel.add(but5); JPanel pane2 = new JPanel(new BorderLayout(); JLabel label=new JLabel(xx大学计算机学院08级8班xx); pane.add (panel,BorderLayout.PAGE_END);pane.add (pane3,BorderLayo
34、ut.SOUTH); pane.add (label,BorderLayout.LINE_END); but1.addActionListener(this); but2.addActionListener(this); but3.addActionListener(this); but4.addActionListener(this); but5.addActionListener(this); frame1.setBounds(150,200,600,300); /窗口大小及开始在屏幕上的位置。frame1.setContentPane (pane);frame1.pack();frame
35、1.setResizable(false); /窗口不随鼠标拖动而改变大小 frame1.addWindowFocusListener(this); /添加窗口的监控类frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame1.show(); return 0;public void actionPerformed(ActionEvent e) /各按钮的事件处理String s; s=e.getActionCommand(); /记录按钮的名称/Object obj=e.getSource();/if(obj=add)if(s=退
36、出系统) 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.
37、setVisible(false); /窗口自动消失 else if(s=添加数据)try /延迟函数 stu_add(); 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(
38、);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(); catch(Exception e1) else if(s=清空)num.setTex
39、t(); /学号name.setText(); /姓名 great.setText(); /计算机 english.setText(); /英语 math.setText(); /数学 computer.setText(); /计算机else if(s=退出)try /延迟函数 Frame_Add.setVisible(false); /窗口自动消失 Frame_Updata.setVisible(false); catch(Exception e1) else if(s=OUT)try /延迟函数 Frame_Updata.setVisible(false); catch(Exception e1) else if(s=修改) Stu_Change Sadd=new Stu_Change();Sadd.stuUpdate(pl.getSelectedItem().toString(),name.getText(),great.getText(),Integer.valueOf(english.getText(),Integer.valueOf(math.getText(),Integer.valueOf(computer.getText();try /延迟函数 frame1.setVisible(false); /窗口自动消失 Fr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公共关系学的学术前沿试题及答案
- 2025年道路工程试验检测师考试题及答案
- 区域城市更新与旧区改造策略考核试卷
- 农药生产记录保存期限与要求考核试卷
- 跨文化护理团队建设考核试卷
- 2024年新疆英吉沙县普通外科学(副高)考试题含答案
- 材料样品管理办法
- 打击窃电管理办法
- 房山疫情管理办法
- 村室财产管理办法
- 2024全新第五版FMEA培训教材
- 《婴幼儿文学》课件
- 《模板英文面试》课件
- 《拜访客户流程》课件
- 初中英语中考复习常见形容词比较级和最高级变化一览表
- 篮式蓝式过滤器设备工艺原理
- 中医药膳学124张课件
- 二手车状态评估表
- 青岛科技大学自动化与电子工程学院2011-2012学年电路分析1(A)考试卷与答案
- qemu简介课件完整版
- GB/T 9652.2-1997水轮机调速器与油压装置试验验收规程
评论
0/150
提交评论