资源描述
I 德州学院信息管理学院 课课程程设设计计 报报告告 实习名称 数据库课程设计 设计题目 基于Java+MySQL的学生成绩管理 系统的设计与实现 实习时间 2013.6. 17-2013.6.30 专业班级 2011 级计算机网络技术专 指导老师 王丽丽 教学单位(盖章) 小组分工情况: 学号姓名分工 201111007034徐晴代码编写 201111007017梁庆美代码编写 201111007014赵玉翠文档编写 201111007030郭文晓文档编写 201111007018张翠萍PPT 设计 201111007005铁文娇PPT 设计 二一三 年 六 月 三十 日 II 目 录 摘要.1 1 引言.1 1.1 问题的提出 1 1.2 国内外研究的现状.1 1.3 目的与分析.1 2 程序的主要功能.2 2.1 添加功能.2 2.2 删除功能.2 2.3 显示功能.2 2.4 查找功能.2 2.5 修改功能.2 3 程序运行平台.2 4 总体设计.2 5 数据库设计.3 5.1 数据库概念设计.3 5.2 表结构.4 5.3 视图.5 6 模块分析.5 6.1 添加模块 5 6.2 显示模块 7 6.3 修改模块 9 6.4 查找模块 11 6.5 删除模块 13 6.6 登陆模块 17 7 界面设计.20 7.1 登陆界面.21 7.2 学生信息添加界面.21 7.3 学生成绩查询界面.22 7.4 学生成绩修改界面.23 8 系统测试.24 9 结论.29 10 参考文献29 III 德州学院学生成绩管理系统的设计与实现德州学院学生成绩管理系统的设计与实现 摘 要:学生成绩管理系统主要用于各类大学院校在教学这一部分的管理,是针对于教务处对 课程、对学生、对学生成绩进行合理地安排以及统筹计划,以便让教务处以最短的工作时间内把学 生的成绩核算出来,提高教务处的办事效率。同时,能够随时对学生基本信息、学生成绩进行各种 查询,以便及时很好地对需要了解的信息得到相应的反馈,能有效的帮助教务处的工作,可使学院 教职工减轻工作压力,比较系统地对、教务教学上的各项服务和信息进行管理。 本系统是针对学生成绩管理进行设计的,主要用户为学校教务管理老师,但学生也可参与对自 己信息的核对确认。主要采用的开发工具是 JAVA 和 MYSQL。在开发过程中利用面向对象的程序思 想和严格按照软件工程的开发过程来进行分析和设计。本系统所要完成以下几个主要功能,其中有 学生成绩管理、学生基本信息管理等等,实现对学生基本信息和成绩进行录入、修改、删除、查询 等操作。 系统基本满足了学生成绩管理的功能需要,确实为学校对学生的管理提供了便利。本系统界面 友好、操作简单,对学生基本情况和成绩加快了查询速度、加强了管理,使各项管理更加规范化。 关键词:关键词:模块化;数据库;数据库管理系统 1 1 引 言 1.1 问题的提出 在我国,各大中小学校的各类信息管理系统并非一个新的课题。大多数学校信息管 理系统不完善,甚至有的学校根本就没有任何信息管理系统,所有的管理工作几乎都 是靠手工完成。特别是在西部贫困地区,学校的信息管理都依然靠手工操作,这十分 落后,效率极低,成本很大,而且极易出错。随着计算机技术不断地日新月异地发展, 信息化是社会进程的必然趋势,学校的信息管理只有快,精,准,才能发挥其作用。 从人工操作改为计算机的自动化系统,人工操作必将被计算机代替。 1.2 国内外研究的现状 信息技术的日益发展深入到社会的各个角落,学生宿舍管理也不例外,尤其作为 高等院校的宿舍管理工作,是高校各项工作的一个重要组成部分,其管理水平的高低 将直接影响到人才培养的质量。随着高等教育的发展、高校规模的扩大、学生人数增 加、学生宿舍各种信息的汇总、统计和分析等管理工作面临着诸多困难,管理工作也 越来越繁重和琐碎。因此宿舍管理的信息化、网络化越来越受到人们的重视,它既可 以大大提高学生宿舍管理的绩效,也可以为学生解决后顾之忧。同时随着计算机技术 的普及和发展,管理的自动化已成为必然趋势。因此,为了提高高校的整体管理水平, 计算机在高等院校宿舍管理中的应用日益普及,这使得学生宿舍管理自动化的实现成 为高校管理环节中的重要一环。 1.3 目的与分析 本课题主要的目的是学生成绩管理系统,主要任务为建立学生信息管理系统,采 用计算机对学生信息进行管理,进一步提高办学效益和现代化水平。帮助广大教师提 高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化。高校学生的成 绩管理工作量大、繁杂,人工处理非常困难。学生成绩管理系统借助于计算机强大的处 理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。学生成绩管理系统的开 发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出 来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、 更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。 2 2 程序的主要功能 2.1 添加功能 添加一个学生的基本信息,包括 student_ID,student_Name, born_Date,math_Grade,English_Grade。 2.2 删除功能 能够对一个学生的信息进行删除按 student_ID 进行删除。 2.3 显示功能 显示所有学生的主要信息包括 student_ID,student_Name,born_Date,math_Grade,English_Grade。 2.4 查找功能 根据你键入的 student_ID,显示其详细信息! 2.5 修改功能 对学生的信息和成绩进行修改。 3 程序运行平台 编程工具:eclipse 编程语言: JAVA 数据库:MYSQL 具体操作如下:具体操作如下:新建 SutGradeManage 项目,然后再编写相应的 java 文件,再编译,链接,执行等,用户就可登录进该系统进行相应的操作。 3 4 总体设计 图 4.1 系统总体框架图 5 5 数据库设计数据库设计 数据库设计是要在一个给定的应用环境(DBMS)中,通过合理的逻辑设计和有效的物 理设计,构造较优的数据库模式、子模式,建立数据库和设计应用程序,满足用户的 各种信息需求。 5.1 数据库概念设计 在数据库设计中,先要对系统分析所得的数据字典中的数据存储进行分析,然后得出 系统的关系模式,可以采用实体联系图(简称 ER 图)的方法进行数据结构的 描述。ER 图由实体、属性、联系三部分组成。 登录表 用户名密码 图 登录信息 E-R 图 主 函 数 添 加 信 息 删 除 信 息 登 陆 系 统 修 改 信 息 显 示 信 息 查 找 信 息 4 学生 student_ Name born_Date English_ Grade math_Grade Student_ID 图 学生信息 E-R 图 5.2 表结构 表 1 dbo.users 表 字段类型约束默认值说明 userName VARCHAR2(20 CHAR)PK 用户名 userPwd VARCHAR2(20 CHAR)not null 密码 表 2 dbo.student 表 字段类型约束默认值说明 student_IDCHAR(10 BYTE)PK 学号 student_NameVARCHAR2(20 CHAR)not null 姓名 born_DateCHAR(11 BYTE) 出生日期 math_GradeCHAR(4 CHAR)数学成绩 English_GradeCHAR(4 CHAR)英语成绩 5.3 视图 表 3 dbo.vi 视图 字段类型是否可空insertableupdatabledeletable说明 math_GradeCHAR(4 CHAR)YesYESYESYES数学成绩 English_GradeCHAR(4 CHAR)YesYESYESYES英语成绩 student_IDCHAR(10)NoYESYESYES学号 student_NameVARCHAR2(80)NoYESYESYES姓名 born_DateCHAR(11BYTE)YesYesYesYes出生日期 5 6 模块分析 6.1 添加模块 学生信息添加部分代码: class charu extends JFrame implements ActionListener JFrame frame = new JFrame(“添加数据添加数据“); JPanel imagePanel; ImageIcon bg; Button sure; TextField input1, input2, input3, input4, input5; TextArea show; Box box1, box2, box3, box4; int k, s1, j; Connection con; Statement sql; ResultSet rs; charu() Toolkit kit = Toolkit.getDefaultToolkit(); Image img = kit.getImage(“tubiao.jpg“); frame.setIconImage(img); input1 = new TextField(10); input2 = new TextField(10); input3 = new TextField(10); input4 = new TextField(10); input5 = new TextField(10); box2 = Box.createVerticalBox(); box2.add(input1); box2.add(Box.createVerticalStrut(8); box2.add(input2); box2.add(Box.createVerticalStrut(8); box2.add(input3); box2.add(Box.createVerticalStrut(8); box2.add(input4); box2.add(Box.createVerticalStrut(8); box2.add(input5); box1 = Box.createVerticalBox(); box1.add(new Label(“学号:学号:“); box1.add(Box.createVerticalStrut(8); box1.add(new Label(“姓名:姓名:“); box1.add(Box.createVerticalStrut(8); box1.add(new Label(“生日:生日:“); 6 box1.add(Box.createVerticalStrut(8); box1.add(new Label(“数学:数学:“); box1.add(Box.createVerticalStrut(8); box1.add(new Label(“英语:英语:“); box3 = Box.createHorizontalBox(); box3.add(box1); box3.add(Box.createHorizontalStrut(1); box3.add(box2); show = new TextArea(6, 43); sure = new Button(“确定确定“); box4 = Box.createHorizontalBox(); Label label1 = new Label(“请输入数据请输入数据“); label1.setFont(new Font(“宋体宋体“, Font.BOLD, 20); label1.setForeground(Color.blue); box4.add(label1); box4.add(Box.createHorizontalStrut(1); box4.add(sure); sure.addActionListener(this); bg = new ImageIcon(“cru.jpg“); JLabel label = new JLabel(bg); label.setBounds(0, 0, bg.getIconWidth(), bg.getIconHeight(); imagePanel = (JPanel) frame.getContentPane(); imagePanel.setOpaque(false); imagePanel.setLayout(new FlowLayout(); show.setEditable(false); imagePanel.add(box4, BorderLayout.NORTH); imagePanel.add(box3, BorderLayout.CENTER); imagePanel.add(show, BorderLayout.SOUTH); frame.getLayeredPane().setLayout(null); frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE); /frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(bg.getIconWidth(), bg.getIconHeight(); frame.setBounds(700, 200, 540, 440); frame.setResizable(false); frame.setVisible(true); validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose(); ); 7 public void actionPerformed(ActionEvent ee) String s1, s2, s3, s4, s5, insert1, recode, name, date, number; int m1, m2, math, english; s1 = input1.getText(); s2 = input2.getText(); s3 = input3.getText(); s4 = input4.getText(); s5 = input5.getText(); number = s1; name = s2; date = s3; m1 = Integer.parseInt(s4); math = m1; m2 = Integer.parseInt(s5); english = m2; try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); catch (ClassNotFoundException eee) System.out.println(“ + eee); try con = DriverManager.getConnection(“jdbc:odbc:sun“, “gxy“, “123“); sql = con.createStatement(); recode = “(“ + “ + number + “ + “,“ + “ + name + “ + “,“ + “ + date + “ + “,“ + math + “,“ + english + “)“; insert1 = “INSERT INTO chengjibiao VALUES “ + recode; sql.executeUpdate(insert1); show.setText(“你插入了你插入了:“); show.append(“学号:学号:“ + number + “ 姓名:姓名:“ + name + “ 出生:出生:“ + date + “ 数学数学 “ + math + “ 英语英语 “ + english); show.append(“n“); catch (SQLException e) System.out.println(e); JOptionPane.showMessageDialog(this, “你输入的学号已存在,请核对重新你输入的学号已存在,请核对重新 输入!输入!“); 8 6.2 显示模块 显示模块将输出所有学生的主要信息; 主要代码为:class chuangkou extends JFrame implements ActionListener JFrame frame = new JFrame(“选择窗口选择窗口“); JPanel imagePanel; ImageIcon bg; Button button1, button2, button3, button4, button5, button6; Box box; Label label; Panel p1; chuangkou() Toolkit kit = Toolkit.getDefaultToolkit(); Image img = kit.getImage(“tubiao.jpg“); frame.setIconImage(img); p1 = new Panel(); label = new Label(“欢迎使用成绩管理系统欢迎使用成绩管理系统“, Label.CENTER); label.setFont(new Font(“隶书隶书“, Font.BOLD, 30); label.setBackground(Color.green); p1.add(label); button1 = new Button(“添加添加“); button2 = new Button(“删除删除“); button3 = new Button(“修改修改“); button4 = new Button(“查询查询“); button5 = new Button(“返回返回“); button6 = new Button(“退出退出“); box = Box.createHorizontalBox(); box.add(button1); box.add(Box.createHorizontalStrut(8); box.add(button2); box.add(Box.createHorizontalStrut(8); box.add(button3); box.add(Box.createHorizontalStrut(8); box.add(button4); box.add(Box.createHorizontalStrut(8); box.add(button5); box.add(Box.createHorizontalStrut(8); box.add(button6); 9 button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListener(this); button5.addActionListener(this); button6.addActionListener(this); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose(); ); bg = new ImageIcon(“ckou.jpg“); JLabel label = new JLabel(bg); label.setBounds(0, 0, bg.getIconWidth(), bg.getIconHeight(); imagePanel = (JPanel) frame.getContentPane(); imagePanel.setOpaque(false); imagePanel.setLayout(new FlowLayout(); imagePanel.add(p1, BorderLayout.NORTH); imagePanel.add(box, BorderLayout.CENTER); frame.getLayeredPane().setLayout(null); frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/设置关闭后状设置关闭后状 态态 frame.setSize(bg.getIconWidth(), bg.getIconHeight(); frame.setBounds(200, 200, 500, 300); frame.setResizable(false);/设置窗口大小不可改变设置窗口大小不可改变 frame.setVisible(true); validate(); public void actionPerformed(ActionEvent e) if (e.getSource() = button6) System.exit(0); if (e.getSource() = button1) new charu(); if (e.getSource() = button2) new shanchu(); if (e.getSource() = button3) 10 new xiugai(); if (e.getSource() = button4) new chaxun(); if (e.getSource() = button5) new denglu(); frame.dispose(); else 6.3 修改模块 首先由用户输入要修改的学生的成绩 主要代码:class xiugai extends JFrame implements ActionListener JFrame frame = new JFrame(“修改成绩修改成绩“); JPanel imagePanel; ImageIcon bg; Button xiug; TextField input1, input2, input3; TextArea show; Box box1, box2, box3; Panel p1, p2; int k, s1, j; Connection con; Statement sql; int sum = 0; ResultSet rs; xiugai() Toolkit kit = Toolkit.getDefaultToolkit(); Image img = kit.getImage(“tubiao.jpg“); frame.setIconImage(img); p1 = new Panel(); p2 = new Panel(); xiug = new Button(“修改修改“); 11 input1 = new TextField(10); input2 = new TextField(10); input3 = new TextField(10); show = new TextArea(6, 43); Font f=new Font(“宋体宋体“,Font.BOLD,15); Label l1=new Label(“输入学号输入学号“); l1.setFont(f); l1.setForeground(Color.blue); p1.add(l1); p1.add(new Label(“学号学号:“); p1.add(input1); box1 = Box.createVerticalBox(); box1.add(Box.createVerticalStrut(8); box1.add(new Label(“数学:数学:“); box1.add(Box.createVerticalStrut(8); box1.add(new Label(“英语:英语:“); box2 = Box.createVerticalBox(); box2.add(input2); box2.add(Box.createVerticalStrut(8); box2.add(input3); box3 = Box.createHorizontalBox(); box3.add(box1); box3.add(Box.createHorizontalStrut(1); box3.add(box2); Label l2=new Label(“输入成绩输入成绩“); l2.setFont(f); l2.setForeground(Color.blue); p2.add(l2); p2.add(box3); xiug.addActionListener(this); show.setEditable(false); bg = new ImageIcon(“cru.jpg“); JLabel label = new JLabel(bg); label.setBounds(0, 0, bg.getIconWidth(), bg.getIconHeight(); imagePanel = (JPanel) frame.getContentPane(); imagePanel.setOpaque(false); imagePanel.setLayout(new FlowLayout(); imagePanel.add(p1); imagePanel.add(p2); 12 imagePanel.add(xiug); imagePanel.add(show); frame.getLayeredPane().setLayout(null); frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE); /frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(bg.getIconWidth(), bg.getIconHeight(); frame.setBounds(720, 220, 450, 390); frame.setResizable(false);/设置窗口大小不可改变设置窗口大小不可改变 frame.setVisible(true); validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose(); ); public void actionPerformed(ActionEvent ee) String s1, s2, s3, insert1, number; ; int m2, m3, math, english; s1 = input1.getText(); number = s1; s2 = input2.getText(); s3 = input3.getText(); m2 = Integer.parseInt(s2); math = m2; m3 = Integer.parseInt(s3); english = m3; try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); catch (ClassNotFoundException eee) System.out.println(“ + eee); try con = DriverManager.getConnection(“jdbc:odbc:sun“, “gxy“, “123“); sql = con.createStatement(); insert1 = “UPDATE chengjibiao SET math =“ + math + “,english=“ + english + “ WHERE number = “ + “ + number + “; sql.executeUpdate(insert1); 13 show.setText(“你将了你将了:“); show.append(“学号为学号为 “ + s1 + “ 的学生的学生 数学成绩更改为:数学成绩更改为:“ + math + “ 英语成绩更改为:英语成绩更改为:“ + english); show.append(“n“); catch (SQLException e) System.out.println(e); 6.4 查找模块 首先由用户输入要查找的学生学号等,然后查找数据库中的该学生信息 主要代码:class chaxun extends JFrame implements ActionListener JFrame frame = new JFrame(“查询记录查询记录“); JPanel imagePanel; ImageIcon bg; Button xunzhao; TextField input; TextArea show; Box box; String s; Connection con; Statement sql; ResultSet rs; chaxun() Toolkit kit = Toolkit.getDefaultToolkit(); Image img = kit.getImage(“tubiao.jpg“); frame.setIconImage(img); xunzhao = new Button(“查找查找“); input = new TextField(10); show = new TextArea(6, 43); xunzhao.addActionListener(this); show.setEditable(false); box = Box.createHorizontalBox(); Label l1=new Label(“输入学号输入学号“); 14 l1.setFont(new Font(“宋体宋体“,Font.BOLD,15); l1.setForeground(Color.blue); box.add(l1); box.add(Box.createHorizontalStrut(8); box.add(input); box.add(Box.createHorizontalStrut(8); box.add(xunzhao); bg = new ImageIcon(“chaxun.jpg“); JLabel label = new JLabel(bg); label.setBounds(0, 0, bg.getIconWidth(), bg.getIconHeight(); imagePanel = (JPanel) frame.getContentPane(); imagePanel.setOpaque(false); imagePanel.setLayout(new FlowLayout(); imagePanel.add(box, BorderLayout.NORTH); imagePanel.add(show, BorderLayout.CENTER); frame.getLayeredPane().setLayout(null); frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE); /frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(bg.getIconWidth(), bg.getIconHeight(); frame.setBounds(730, 230, 520, 350); frame.setResizable(false);/设置窗口大小不可改变设置窗口大小不可改变 frame.setVisible(true); validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose(); ); public void actionPerformed(ActionEvent ee) boolean boo = true; s = input.getText(); try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); catch (ClassNotFoundException eee) System.out.println(“ + eee); try con = DriverManager.getConnection(“jdbc:odbc:sun“, “gxy“, “123“); 15 sql = con.createStatement(); rs = sql.executeQuery(“SELECT * FROM chengjibiao “); while (rs.next() String number = rs.getString(“number“); String name = rs.getString(“name“); String date = rs.getString(“date“); int math = rs.getInt(“math“); int english = rs.getInt(“english“); if (number.equals(s) boo = false; show.setText(null); show.append(“学号:学号:“ + number + “ 姓名:姓名:“ + name + “ 出生:出生: “ + date + “ 数学数学 “ + math + “ 英语英语 “ + english); show.append(“n“); con.close(); if (boo) JOptionPane.showMessageDialog(this, “你输入的学号不存在你输入的学号不存在“); catch (SQLException eee) System.out.println(eee); 6.5 删除模块 用删除学生信息 主要代码:class shanchu extends JFrame implements ActionListener JFrame frame = new JFrame(“删除记录删除记录“); JPanel imagePanel; ImageIcon bg; Button xunzhao; TextField input; TextArea show; String s; int k, s1, j; Connection con; Statement sql; int sum = 0; ResultSet rs; 16 shanchu() Toolkit kit = Toolkit.getDefaultToolkit(); Image img = kit.getImage(“tubiao.jpg“); frame.setIconImage(img); Panel p = new Panel(); xunzhao = new Button(“删除删除“); input = new TextField(15); show = new TextArea(6, 43); Label l1=new Label(“输入要删除学生的学号输入要删除学生的学号“); l1.setFont(new Font(“宋体宋体“,Font.BOLD,15); l1.setForeground(Color.BLUE); p.add(l1); p.add(input); p.add(xunzhao); xunzhao.addActionListener(this); show.setEditable(false); bg = new ImageIcon(“sc.jpg“); JLabel label = new JLabel(bg); label.setBounds(0, 0, bg.getIconWidth(), bg.getIconHeight(); imagePanel = (JPanel) frame.getContentPane(); imagePanel.setOpaque(false); imagePanel.setLayout(new FlowLayout(); imagePanel.add(p, BorderLayout.NORTH); imagePanel.add(show, BorderLayout.CENTER); frame.getLayeredPane().setLayout(null); frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE); /frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(bg.getIconWidth(), bg.getIconHeight(); frame.setBounds(710, 210, 480, 310); frame.setVisible(true); frame.setResizable(false);/设置窗口大小不可改变设置窗口大小不可改变 validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose(); ); public void actionPerformed(ActionEvent ee) 17 boolean boo = true; s = input.getText(); String m; try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); catch (ClassNotFoundException eee) System.out.println(“ + eee); try con = DriverManager.getConnection(“jdbc:odbc:sun“, “gxy“, “123“); sql = con.createStatement(); rs = sql.executeQuery(“SELECT * FROM chengjibiao“); while (rs.next() String number = rs.getString(“number“); String name = rs.getString(“name“); String date = rs.getString(“date“); int math = rs.getInt(“math“); int english = rs.getInt(“english“); if (number.equals(s) show.setText(“你删除了你删除了:“); show.append(“学号:学号:“ + number + “ 姓名:姓名:“ + name + “ 出生:出生: “ + date + “ 数学数学 “ + math + “ 英语英语 “ + english); show.append(“n“); m = “DELETE FROM chengjibiao WHERE number = “ + input.getText() + “; sql.executeUpdate(m); con.close(); if (boo) JOptionPane.showMessageDialog(this, “你输入的学号不存在你输入的学号不存在“); catch (SQLException e) System.out.println(e); 6.6 登陆模块 用于用户登陆 18 主要代码:class denglu extends JFrame implements ActionListener JFrame frame = new JFrame(“登陆界面登陆界面“); JPanel imagePanel; ImageIcon bg; Button button1, button2; Label l1, l2, l3; TextField a1, a2; Box b1, b2, b3, b4, b5; denglu() Toolkit kit = Toolkit.getDefaultToolkit(); Image img = kit.getImage(“tubiao.jpg“); frame.setIconImage(img); button1 = new Button(“登陆登陆“); button2 = new Button(“退出退出“); Panel p1 = new Panel(); l1 = new Label(“学生成绩管理系统学生成绩管理系统“, Label.CENTER); l1.setFont(new Font(“隶书隶书“, Font.BOLD, 40); l1.setBackground(Color.green); p1.add(l1); l2 = new Label(“登录名登录名“); l3 = new Label(“密码密码“); a1 = new TextField(10); a2 = new TextField(10); a2.setEchoChar(*); b1 = Box.createVerticalBox(); b1.add(l2); b1.add(Box.createVerticalStrut(8); b1.add(l3); b2 = Box.createVerticalBox(); b2.add(a1); b2.add(Box.createVerticalStrut(8); b2.add(a2); b3 = Box.createHorizontalBox(); b3.add(b1); b3.add(Box.createHorizontalStrut(10); b3.add(b2); b4 = Box.createHorizontalBox(); 19 b4.add(button1); b4.add(Box.createHorizontalStrut(10); b4.add(button2); b5 = Box.createVerticalBox(); b5.add(b3); b5.add(Box.createVerticalStrut(8); b5.add(b4); button1.addActionListener(this); button2.addActionListener(this); a1.setText(“admin“); a2.setText(“admin“); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose(); ); bg = new ImageIcon(“dlu.jpg“); JLabel label = new JLabel(bg); label.setBounds(0, 0, bg.getIconWidth(), bg.getIconHeight(); imagePanel = (JPanel) frame.getContentPane(); imagePanel.setOpaque(false); imagePanel.setLayout(new FlowLayout(); imagePanel.add(p1, BorderLayout.NORTH); imagePanel.add(b5, BorderLayout.CENTER); frame.getLayeredPane().setLayout(null); frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(bg.getIconWidth(), bg.getIconHeight(); frame.setBounds(200, 150, 510, 340); frame.setResizable(false);/设置窗口大小不可改变设置窗口大小不可改变 frame.setVisible(true); validate(); public void actionPerformed(ActionEvent e) if (e.getSource() = button2) System.exit(0); if (e.getSource() = button1) if (a1.getText().equals(“admin“) 20 frame.dispose(); else JOptionPane.showMessageDialog(this, “账户密码错误,请重新输入!账户密码错误,请重新输入! “); 7 界面设计 7.1 登陆界面 图 7.1 21 7.2 学生信息添加界面 图 7.2 22 7.3 学生成绩查询界面 图 7.3 7.4 学生成绩修改界面 23 图 7.4 7.5 学生成绩删除界面 24 8 系统测试 图 8.1(学生成绩添加图) 25 图 8.2(学生信息查询图) 图 8.3(学生成绩修改图) 图 8.4(学生成绩删除图) 26 9 结论 这次试验我是用 java 编写的一个图形界面来实现数据库的应用,主要是针对学生 成绩管理进行设计的。主要采用的开发工具是 JAVA 和 MYSQL。在开发过程中利用 面向对象的程序思想和严格按照软件工程的开发过程来进行分
展开阅读全文