1、JAVA成绩管理系统论文Java面向对象程序设计学生成绩管理系统东北大学秦皇岛分校 电子信息系 2009级计算机科学与技术专业摘要:学生成绩管理系统是在校园中广泛使用的应用软件,用来方便老师管理学生成绩,方便同学查询成绩,取代传统Excel表格成绩单,方便快捷。本学生成绩管理系统在充分的需求分析基础上,设计简单实用的功能,实现对成绩的查询,修改,删除等操作。在Myeclipse的编程环境下,使用与平台无关的面向对象语言Java编程语言,主要使用了JTextField, JButton, JTable, JLabel,等多种组件,用到了FlowLayout,BorderLayout ,BoxLa
2、yout等多种布局方式,使用了窗口作为监听器,并与Access数据库相连,实现对学生成绩的综合管理。用户界面美观简洁,操作简单,安全快捷。一、设计过程1.1功能设计我设计的成绩管理系统是基于数据库的成绩管理,实现对学生成绩的添加,查询,修改(包括删除)以及连接校园网的功能。下面具体说明每个功能。1.1.1添加功能:先在窗口中输入学号,姓名,各科成绩,点击“确认添加”,系统自动得出成绩总分保存在数据库中,并跳出一个“警告”窗口,以提醒用户操作成功。1.1.2查询功能:查询功能又分为两部分-“按学号查询”(即查询单条记录)和“按总成绩排名查询”,当输入学号后,点击“查询”,系统会给数据库传入一条S
3、QL语句,数据库把查询结果显示在窗口中,得到要查询的人的信息;当点击“总成绩排名查询”时,系统会给数据库传入一条SQL语句,将数据库中的数据按照总分由高到低排序,然后把查询结果显示在窗口中,得到全部同学的按照总分排名的排名表。1.1.3修改功能:修改功能是先把要修改的数据查出来,然后才能进行修改。查询分为“按学号查询”和“按姓名查询”,输入学号或姓名,点击按钮,记得到一个新的窗口,在此窗口了,显示了要查询的人的信息,可以在里面修改这条信息的内容,然后单击“保存修改”,系统即向数据库发送SQL语句,实现数据库中此数据的修改功能,并弹出一个窗口,提醒用户操作成功;当单击“删除记录”的时候,系统会向
4、数据库发送删除此条记录的SQL语句,然后此记录被删除,并跳出一个窗口提醒用户操作成功。1.1.4校园网功能:当选择校园网时,系统实现了URL类,通过读取,显示URL中的html文件来打开预设在程序里的东北大学秦皇岛分校的网址,实现连接校园网的功能。1.2过程设计(1)在纸上画出大致界面,把按钮,文本框,布局想清楚(2)用程序实现界面的框架图,把所有界面连接在一起(3)将各个功能加入界面框架图(4)美化窗口界面,完善各项功能1.2.1UML图 1.2.2界面设计先设计出大致界面,最后美化界面,加入一些背景,设计按钮。下面是最初的草图设计: 二、程序代码与解析3.1学生成绩管理系统.javapub
5、lic class 学生成绩管理系统 public static void main(String args) Interface interface1=new Interface(); interface1.setTitle(成绩管理系统); /学生成绩管理系统为主类,调用Interface来打开主界面。3.2FinalTable.java/此类为主界面,即包含题目,四个功能选择按钮的界面import java.awt.*;import java.awt.event.*;import java.io.IOException;import .URISyntaxException;import
6、javax.swing.*;import static java.awt.BorderLayout.*;public class Interface extends JFrame implements ActionListener JPanel panel; JButton button1,button2,button3,button4;/button1添加按钮 button2查询按钮 /button3修改按钮 button4校园网按钮 JLabel label,labelTitle,label1,label2,label3,label4;/label1,label2,label3,label
7、4 /为添加,查询,修改,校园网这几个按钮的注释,labelTitle为成绩管理系统这几个字,label用于 /添加背景 ImageIcon 背景;/背景为整个界面的背景,通过添加图片设置为背景 Icon icon1,icon2,icon3,icon4;/按钮图标 Box basebox,boxV1,boxV2,boxV3,boxV4; public Interface() /添加背景,添加标题,设置按钮图标 labelTitle=new JLabel(成绩管理系统); Font font=new Font(华文行楷, Font.BOLD+Font.TRUETYPE_FONT+Font.LAY
8、OUT_LEFT_TO_RIGHT,70); labelTitle.setFont(font); labelTitle.setForeground(new Color(255,0,0); 背景 = new ImageIcon(001.JPG); label = new JLabel(背景); label.setBounds(0, 0, 背景.getIconWidth(), 背景.getIconHeight(); this.getLayeredPane().setLayout(null); icon1=new ImageIcon(1.png); button1 = new JButton(ico
9、n1); button1.setContentAreaFilled (false); icon2=new ImageIcon(2.png); button2 = new JButton(icon2); button2.setContentAreaFilled (false); icon3=new ImageIcon(3.png); button3 = new JButton(icon3); button3.setContentAreaFilled (false); icon4=new ImageIcon(4.png); button4 = new JButton(icon4); button4
10、.setContentAreaFilled (false); /设置按钮的解释文字的字体和颜色,并把按钮和其对应的文字说明用BoxLayout布局 /设置为上下对其形式 Font font1=new Font(微软雅黑, Font.BOLD+Font.TRUETYPE_FONT+Font.LAYOUT_LEFT_TO_RIGHT,17); label1=new JLabel( 添加); label2=new JLabel( 查询); label3=new JLabel( 修改); label4=new JLabel( 校园网); label1.setFont(font1); label2.se
11、tFont(font1); label3.setFont(font1); label4.setFont(font1); label1.setForeground(new Color(255,255,255); label2.setForeground(new Color(255,255,255); label3.setForeground(new Color(255,255,255); label4.setForeground(new Color(255,255,255); boxV1=Box.createVerticalBox(); boxV2=Box.createVerticalBox()
12、; boxV3=Box.createVerticalBox(); boxV4=Box.createVerticalBox(); boxV1.add(button1); boxV1.add(Box.createVerticalStrut(0); boxV1.add(label1); boxV2.add(button2); boxV2.add(Box.createVerticalStrut(0); boxV2.add(label2); boxV3.add(button3); boxV3.add(Box.createVerticalStrut(0); boxV3.add(label3); boxV4
13、.add(button4); boxV4.add(Box.createVerticalStrut(0); boxV4.add(label4); basebox=Box.createHorizontalBox(); basebox.add(boxV1); basebox.add(Box.createHorizontalStrut(11); basebox.add(boxV2); basebox.add(Box.createHorizontalStrut(11); basebox.add(boxV3); basebox.add(Box.createHorizontalStrut(11); base
14、box.add(boxV4); add(basebox,SOUTH); /添加背景,并把窗口大小设置为背景图片的大小 panel = (JPanel) this.getContentPane(); panel.setOpaque(false); FlowLayout f = new FlowLayout(); panel.add(labelTitle); panel.setLayout(f); getLayeredPane().setLayout(null); getLayeredPane().add(label, new Integer(Integer.MIN_VALUE); setSize
15、(背景.getIconWidth(), 背景.getIconHeight(); setBounds(350, 150,背景.getIconWidth(),背景.getIconHeight(); setVisible(true); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /为每个按钮设置监视器 button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListen
16、er(this); Override public void actionPerformed(ActionEvent e) / TODO Auto-generated method stub if(e.getSource()=button2) InterfaceDesign2 interface2=new InterfaceDesign2(); /当按下button2时,打开InterfaceDesign2的窗口 else if(e.getSource()=button3) InterfaceDesign4 interface4=new InterfaceDesign4(); /当按下butt
17、on3时,打开InterfaceDesign4的窗口 else if(e.getSource()=button1) InterfaceDesign3 interface3=new InterfaceDesign3(); /当按下button1时,打开InterfaceDesign3的窗口 else if(e.getSource()=button4) /当按下button4的时候,连接校园网,此处用了jdk1.6版本的特有功能, /用电脑默认的浏览器,打开预设在程序里的东北大学秦皇岛分校的网页 Desktop dp=Desktop.getDesktop(); try dp.browse(new
18、.URI( catch (IOException e1) / TODO Auto-generated catch block e1.printStackTrace(); catch (URISyntaxException e1) / TODO Auto-generated catch block e1.printStackTrace(); 3.3InterfaceDesign2.java/查询功能窗口import java.awt.*;import java.awt.event.*;import static java.awt.BorderLayout.*;import javax.swing
19、.*;public class InterfaceDesign2 extends JFrame implements ActionListener JLabel number;/学号 JTable table1=new JTable();/用于接收由FinalTable查找出来的信息反回来的JTable类型的结果 JTextField numbertext;/输入学号的文本框 JButton seekByNumber;/查询按钮 JButton seekAll;/总成绩排名查询按钮 /用于设置背景 JPanel panel; JLabel label; ImageIcon background
20、; public InterfaceDesign2() init(); setBounds(350, 150,background.getIconWidth(),background.getIconHeight(); setVisible(true); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setTitle(查询); void init() /为窗口添加背景 background = new ImageIcon(010.JPG); label = new JLabel(background); label.setBounds(0,
21、 0, background.getIconWidth(), background.getIconHeight(); this.getLayeredPane().setLayout(null); panel = (JPanel) this.getContentPane(); panel.setOpaque(false); FlowLayout f = new FlowLayout(); panel.setLayout(f); getLayeredPane().setLayout(null); getLayeredPane().add(label, new Integer(Integer.MIN
22、_VALUE); setSize(background.getIconWidth(), background.getIconHeight(); /添加文本框和按钮 setLayout(new FlowLayout(); number=new JLabel(学号); numbertext=new JTextField(10); seekByNumber=new JButton(查询); seekAll=new JButton(总成绩排名查询); add(number); add(numbertext); add(seekByNumber); add(seekAll); seekByNumber.
23、addActionListener(this); seekAll.addActionListener(this); Override public void actionPerformed(ActionEvent e) / TODO Auto-generated method stub if(e.getSource()=seekByNumber) /若学好输入框没有输入学号,提示输入学号信息 if(numbertext.getText().length()=0) JOptionPane.showMessageDialog(this, 请输入学号!,JOptionPane.WARNING_MES
24、SAGE); else /把输入的学号读入SQL语句,将SQL语句传给FinalTable类, /把查询结果反回给table1,并将table1添加到窗口中 String str=numbertext.getText(); FinalTable table=new FinalTable(); table.setSQL(SELECT * FROM 成绩表 where 学号=+Integer.parseInt(str); table1=table.finalTable(); add(new JScrollPane(table1),SOUTH); validate(); else if(e.getS
25、ource()=seekAll) /将SQL按总分排名顺序的语句传给FinalTable类, /把查询结果反回给table1,并将table1添加到窗口中 FinalTable table=new FinalTable(); table.setSQL(SELECT * FROM 成绩表 order by 总分 DESC); table1=table.finalTable(); add(new JScrollPane(table1),SOUTH); validate(); 3.4InterfaceDesign3.java/按下添加按钮后的添加新记录的界面import java.awt.Color
26、;import java.awt.FlowLayout;import java.awt.Font;import java.awt.event.*;import static java.awt.BorderLayout.*;import javax.swing.*;public class InterfaceDesign3 extends JFrame implements ActionListener Box basebox,boxV1,boxV2;/用BoxLayout布局来设置添加的JTextField文本框和对应的说明 JTextField text1,text2,text3,text4
27、,text5,text6; JButton add; JLabel label1,label2,label3,label4,label5,label6; /用于设置背景所用到的变量 JPanel panel; JLabel label; ImageIcon background; public InterfaceDesign3() setLayout(new FlowLayout(); init(); setVisible(true); setDefaultCloseOperation(DISPOSE_ON_CLOSE); setTitle(添加); void init() /添加背景图片 b
28、ackground = new ImageIcon(012.JPG); label = new JLabel(background); label.setBounds(0, 0, background.getIconWidth(), background.getIconHeight(); this.getLayeredPane().setLayout(null); /添加按钮极其注释文字,并设置字体颜色,大小 add = new JButton(new ImageIcon(d.png); add(add); /添加背景,并设置窗口大小为背景大小 add.setContentAreaFilled
29、 (false); panel = (JPanel) this.getContentPane(); panel.setOpaque(false); FlowLayout f = new FlowLayout(); panel.setLayout(f); panel.add(add); getLayeredPane().setLayout(null); getLayeredPane().add(label, new Integer(Integer.MIN_VALUE); setBounds(350, 150, background.getIconWidth(), background.getIconHeight(); Font font1=new Font(微软雅黑, Font.BOLD+Font.TRUETYPE_FONT+Font.LAYOUT_LEFT_TO_RIGHT,15); label1=new JLabel( 学 号
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1