当前位置:文档之家› Java大作业-简单的学籍管理系统

Java大作业-简单的学籍管理系统

上海电力学院期末作业:简单的学籍管理系统课程: Web 应用程序设计院系:电气工程学院_____________________专业:电力系统及其自动化_______________学生姓名:张富杰学号:17103060指导教师:______________ 曹渝昆___________________2017年1月6日目录一、设计思路 (3)二具体实现......................................................................... 3.. .三运行调试与分析......................................................................... 3.. .四设计体会与小结......................................................................... 8.. .五程序代码......................................................................... 8.. .、设计思路随着社会经济的发展,入学的同学越来越多,为方便对同学学籍信息的的管理,设计学籍管理软件来管理本班级同学的学籍信息。

该软件应支持添加、删除、修改、查询功能。

查询方式主要是支持学号查询,例如:输入“1”,则显示该学生的信息。

运用流式、卡片、整体布局方式对系统的主界面和各功能界面进行设计;通过连接数据库的方式来实现对数据的存储;各功能实现时访问数据库,并对数据信息进行读取,运用Java 语句对其进行输出,学号查询时显示在文本框中;系统提示功能用来提醒用户的错误操作和输入时的错误信息,提醒用户进行改正。

二具体实现1.向班级里插入一个学生,但必须是插在已经建立的班级里。

2.输入学生信息,建立一个班级。

3.修改一个学生的所有资料。

4.删除某班的一个学生及其所有资料。

5.删除一个班级。

6.根据学生姓名查找某个学生信息。

每种功能通过一个类来实现:类分分为主类、查询类、修改类、添加类、增加类。

主类各功能界面的连接;精确查询类(SearchStude nt实现根据学生姓名查找某个学生信息;修改类(MdifyStude nt)实现修改一个学生的所有资料;添加类(AddStudent)实现向班级里插入一个学生,但必须是插在已经建立的班级里。

;删除类(DeleteStudent)实现删除某班的一个学生及其所有资料。

;删除类(DeleteClass) 实现删除一个班级;建立类(BuiltClasS实现输入学生信息建立一个班级。

三运行调试与分析系统的详细设计代码请查阅附带的代码。

以下仅对各个界面进行截图展示:国芋主营菩统—□X学生信息增加学生信息到指定班毅删除一个学生学轄信息眩改一个字生信息查甸某个学生信息删瞧一个斑级信息辎入一个学生建立一个班皴图1管理界面L±J 幫加学生至!Bf 定班级 □ X添加学生至惱定班级图2:添加学生到指定的班级界面图3:删除一个学生信息界面图4:修改一个学生信息界面图5:查询某个学生信息界面图6删除一个班级界面图7:输入一个学生建立一个班级界面运行JAVA程序中的StudentManager文件,显示系统的主界面,如图1所示,主界面有进入其他子功能的按钮,选择相应的按钮便可进入相应的功能。

添加学生到指定班级功能如图2所示,根据提示输入要添加的信息,点击确定,将弹出提示框,确认是否添加。

输入一个学生建立一个班级功能如图7 所示,根据提示输入要添加的信息,点击确定,将弹出提示框,确认是否建立。

删除一个班级信息功能如图 6 所示,根据提示输入班级号,点击删除。

删除一个学生信息功能如图 3 所示,根据提示输入学号,点击删除。

修改一个学生信息功能如图 4 所示,首先输入要修改的人姓名,点击开始修改,在下面的文本框现实当前数据库内所存该人的信息,同时录入修改键变化为可点击,在文本框内输入要修改的学号,点击录入修改,系统将新信息录如数据库。

点击查询某个学生信息按钮,将弹出查询对话框,输入姓名便可以精确查询到此人的所有学籍信息。

查询如图 5 所示,将显示数据库中所存的所有号码信息。

四设计体会与小结期末大作业的课设,自己通过查找资料、复习课本、编程调试,写实验报告等环节,进一步掌握了以前学到的知识,并且还对GUI组键的应用有了更深入的认识与掌握,另外还学到了一些新东西,比如JAVA的SWING AWT包,以前是没有接触过的,可是通过这次课程设计使得我们对这个包更了解。

通过与数据库的连接掌握了Java与数据库的连接技术。

通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习java 语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。

五程序代码package simplebighomework;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class StudentManager extends JFrame implements ActionListener { // 继承JFrame 类JMenuBar jmb; // 菜单栏JMenu Message; // 菜单JMenuItem Item1,Item2,Item3,Item4,Item5,Item6; // 菜单项public StudentManager(String s) { // 构造函数StudentManage // 添加按键jmb = new JMenuBar();Message = new JMenu(学生信息");Iteml = new JMenultemC增加学生信息到指定班级"); //菜单名Item2 = new JMenultem(‘删除一个学生学籍信息");Item3 = new JMenultem(‘修改一个学生信息");Item4 = new JMenultem("查询某个学生信息");Item5 = new JMenultem(‘删除一个班级信息");Item6 = new JMenultem(‘输入一个学生建立一个班级");Message.add(Item1);Message.add(Item2);Message.add(Item3);Message.add(Item4);Message.add(Item5);Message.add(Item6);jmb.add(Message);Item1.addActionListener(this);Item2.addActionListener(this);Item3.addActionListener(this);Item4.addActionListener(this);Item5.addActionListener(this);Item6.addActionListener(this);setTitle(s); // 设置窗口标题setBounds(500,300,500,500); //窗口的位置setVisible(true); // 组件可见setJMenuBar(jmb); // 菜单栏validate(); // 再次布置容器及其组件setDefaultCloseOperati on (JFrame.EXIT_ON_CLOSE设/置隐藏,关闭,放大窗口}public void actionPerformed(ActionEvent e){ //ActionEvent 包含一个事件,该事件为执行动作事件点击按钮等if (e.getSource() == Item1) {//e.getSource() == Item2) 返回的当前动作所指向的对象,包含对象的所有信息AddStudent ad = new AddStudent();} else if (e.getSource() == Item2) { // 通过获取事件源,获取相应的对象DeleteStudent ds = new DeleteStudent();} else if (e.getSource() == Item3) { ModifyStudent ms = newModifyStudent();} else if (e.getSource() == Item4) { SearchStudent ss = newSearchStudent();} else if (e.getSource() == Item5) { DeleteClass dc = new DeleteClass();} else if (e.getSource() == Item6) { BuiltClass bc = new BuiltClass();}}public static void main(String[] args) {StudentManager stu=new StudentManager(‘学生管理系统");}} package simplebighomework; import javax.swing.*; import java.awt.*;import java.awt.event.*;import java.sql.*;public class AddStudent extends JFrame implements ActionListener {继承java的窗口体类JLabel JL = new JLabe添加学生到指定班级", JLabel.CENTER);JLabel JLNumber = new JLabe 学号:"); // 显示输入学号JTextField JTNumber = new JTextField(); // 创建文本框JLabel JLName = new JLabe姓名:");JTextField JTName = new JTextField();JLabel JLClass = new JLabe班级:");ButtonGroup BG = new ButtonGroup();JRadioButt on JRB1 = new JRadioButton一班");JRadioButt on JRB2 = new JRadioButton二班");JButton JBAdd = new JButto n 添加");// 创建按钮JButton JBExit = new JButto n 退出");public AddStudent() {this.setTitle(”添加学生到指定班级"); this.setLayout(null);JL.setBounds(100, 30, 200, 40); this.add(JL);this.add(JLNumber);JTNumber.setBounds(180, 80, 80, 20); this.add(JTNumber);JLName.setBounds(140, 120, 60, 20); this.add(JLName); JTName.setBounds(180, 120, 80, 20); this.add(JTName);JLClass.setBounds(140, 160, 100, 20); this.add(JLClass); JRB1.setBounds(180, 160, 60, 20);JRB2.setBounds(240, 160, 60, 20); this.add(JRB1);this.add(JRB2);BG.add(JRB1);BG.add(JRB2);JBAdd.setBounds(120, 220, 60, 20); this.add(JBAdd); JBAdd.addActionListener(this);JBExit.setBounds(200, 220, 60, 20);this.add(JBExit);JBExit.addActionListener(this); this.setBounds(500, 300, 500, 400); this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (e.getSource() == JBAdd) {String snumber = JTNumber.getText(); String sname = JTName.getText(); String sclass = 一" 班";if (JRB1.isSelected()) sclass = 一"班";elsesclass = 二" 班";Connection con; // 声明 Connection 对象String driver = "com.mysql.jdbc.Driver"; // 驱动程序名 // 遍历查询结果集 try {Class.forName(driver); // 加载驱动程序 conDriverManager.getConnection("jdbc:mysql://localhost:3306/database?useUnicode=t rue&characterEncoding=utf-8&useSSL=false","root","zfj151********"); //l.getConnection()方法,连接 MySQL 数据库! !Statement statement = con.createStatement(); //2. 创建statement 类对象,用来执行SQL 语句! !String sql = "select * from student where id='"+snumber+"'";//要执行的SQL 语句ResultSet rs = statement.executeQuery(sql); //3.ResultSet类,用来存放获取的结果集! !if (rs.next())JOptionPane.showMessageDialog(null,"该号已经存在");//提示else {sql = "insert into student values('" + snumber + "','"+ sname+ "','" + sclass +"')";int i = statement.executeUpdate(sql); // 执行 SQL语句,把返回值赋给i// 添加窗口的位置// 监听接口// 点击建立的时候生效 // 获取文本框中的信息// 单选按钮if (i > 0)JOptionPane.showMessageDialog(null, "建立成功");// 提示成功elseJOptionPane.showMessageDialog(null, "添加失败"); // 提示失败}}catch (Exception ee) { // 捕获异常}}if (e.getSource() == JBExit) { // 退出按钮监视setVisible(false);}}public static void main(String[] args) {new BuiltClass();}}package simplebighomework;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class BuiltClass extends JFrame implements ActionListener { JLabel JL = new JLabe输入一个学生建立一个班级", JLabel.CENTER); // 什么意思JLabel JLNumber = new JLabe 学号:”);// 显示输入学号JTextField JTNumber = new JTextField(); //创建文本框JLabel JLName = new JLabe姓名:");JTextField JTName = new JTextField();JLabel JLClass = new JLabe班级:");JTextField JTClass = new JTextField();JButton JBAdd = new JButto n 建立"); // 创建按钮JButton JBExit = new JButto n 退出");// 什么意思public BuiltClass() {this.setTitle("输入一个学生建立一个班级"); this.setLayout(null);JL.setBounds(100, 30, 200, 40); this.add(JL);JLNumber.setBounds(140, 80, 100, 20); 〃x 轴和y 轴,宽高this.add(JLNumber);JTNumber.setBounds(180, 80, 80, 20); this.add(JTNumber);JLName.setBounds(140, 120, 60, 20);this.add(JLName);JTName.setBounds(180, 120, 80, 20); this.add(JTName);JLClass.setBounds(140, 160, 100, 20); this.add(JLClass);JTClass.setBounds(180, 160, 80, 20); this.add(JTClass);JBAdd.setBounds(120, 220, 60, 20); this.add(JBAdd);JBAdd.addActionListener(this);JBExit.setBounds(200, 220, 60, 20); this.add(JBExit);JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400); this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (e.getSource() == JBAdd) {String snumber = JTNumber.getText(); String sname = JTName.getText(); String sclass = JTClass.getText();Connection con; // 声明 Connection 对象 String driver = "com.mysql.jdbc.Driver"; // 驱动程序名// 遍历查询结果集 try {Class.forName(driver); // 加载驱动程序 con =DriverManager.getConnection("jdbc:mysql://localhost:3306/database?useUnicode=t rue&characterEncoding=utf-8&useSSL=false","root","zfj151********"); //l.getConnection()方法,连接 MySQL 数据库! !Statement statement = con.createStatement(); //2.创建statement 类对象,用来执行SQL 语句!!String sql = "select * from student whereid='"+snumber+"'";ResultSet rs = statement.executeQuery(sql);〃3.ResultSet 类,用来存放获取的结果集! !if (rs.next())JOptionPane.showMessageDialog(null,"该号已经存在");//提示else {sql = "insert into student values('" + snumber + "','"+ sname+ "','" + sclass +"')";int i = statement.executeUpdate(sql);SQL 语句,把返回值赋给i if (i > 0)JOptionPane.showMessageDialog(null, "建立 成功 ");// 什么意思? 监听接口 // 点击建立的时候生效 // 获取文本框中的信息// 执行// 提示成功elseJOptionPane.showMessageDialog(null, "添加失败"); // 提示失败}}catch (Exception ee) { // 什么意思?}}if (e.getSource() == JBExit) { // 什么意思?setVisible(false);}}public static void main(String[] args) {new BuiltClass();}}package simplebighomework;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class DeleteClass extends JFrame implements ActionListener { JLabel JL = new JLabe删除一个班级信息",JLabel.CENTER);JLabel JLClass = new JLabe班级:");// 显示班级窗口JTextField JTClass = new JTextField()输入班级的窗口JButton JBDel = new JButto n 删除"); JButton JBExit = new JButto n 退出"); public DeleteClass() {this.setTitle("删除一个班级信息"); this.setLayout(null); JL.setBounds(100, 30, 200, 40); this.add(JL);JLClass.setBounds(140, 80, 60, 20); this.add(JLClass);JTClass.setBounds(180, 80, 80, 20); this.add(JTClass);JBDel.setBounds(120, 120, 60, 20); this.add(JBDel); JBDel.addActionListener(this);JBExit.setBounds(200, 120, 60, 20); this.add(JBExit); JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400); this.setVisible(true);}public void actionPerformed(ActionEvent e){if (e.getSource() == JBDel) {String sclass = JTClass.getText();Connection con; // 声明 Connection 对象 String driver = "com.mysql.jdbc.Driver"; // 驱动程序名// 遍历查询结果集// 执行操作// 获取文本中输入的班级try {Class.forName(driver); // 加载驱动程序con =DriverManager.getConnection("jdbc:mysql://localhost:3306/database?useUnicode=t rue&characterEncoding=utf-8&useSSL=false","root","zfj151********");//l.getConnection()方法,连接MySQL数据库!!Statement statement = con.createStatement(); //2. 创建statement类对象,用来执行SQL语句!!String sql = "select * from student whereclass='"+sclass+"'";ResultSet rs = statement.executeQuery(sql); 〃3.ResultSet类,用来存放获取的结果集!!if (rs.next()) {sql = "delete from student where class='" + sclass + "'";int n = statement.executeUpdate(sql);if (n > 0)JOptionPane.showMessageDialog(null,删除成功"); elseJOptionPane.showMessageDialog(null,删除失败");} else {JOptionPane.showMessageDialog(null,不存在该班级");}}catch (Exception er) {}}if (e.getSource() == JBExit) {setVisible(false);}}public static void main(String[] args) {new DeleteClass();package simplebighomework;import javax.swing.*;}import java.awt.*;import java.awt.event.*;import java.sql.*;public class DeleteStudent extends JFrame implements ActionListener { JLabel JL = new JLabe删除一个学生信息",JLabel.CENTER); JLabelJLNumber = new JLabe 学号:");// 显示输入“学号” JTextField JTNumber = new JTextField(); /输/ 入学号的文本框JLabel JLClass = new JLabe班级:");// 显示输入“班级” JTextField JTClass = new JTextField();输入班级的文本框JLabel JLName = new JLabe姓名:"); // 显示输入“姓名”JTextField JTName = new JTextField(); 输// 入姓名的文本框JButton JBDel = new JButton删除");// 删除键JButton JBExit = new JButto n 退出");// 退出键public DeleteStudent() {this.setTitle(-删除一个学生信息");this.setLayout(null);JL.setBounds(100, 30, 200, 40); this.add(JL);JLNumber.setBounds(140, 80, 100, 20); //x 轴和y 轴,宽高this.add(JLNumber);JTNumber.setBounds(180, 80, 80, 20);this.add(JTNumber);JLName.setBounds(140, 120, 80, 20); //x 轴和y 轴,宽高this.add(JLName);JTName.setBounds(180, 120, 80, 20);this.add(JTName);JLClass.setBounds(140, 160, 80, 20); //x 轴和y 轴,宽高this.add(JLClass);JTClass.setBounds(180, 160, 80, 20); this.add(JTClass);JBDel.setBounds(120, 200, 60, 20);this.add(JBDel);JBDel.addActionListener(this);JBExit.setBounds(200, 200, 60, 20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400); this.setVisible(true);}public void actionPerformed(ActionEvent e){if (e.getSource() == JBDel) {String snumber = JTNumber.getText(); // 获取输入的学号Connection con; // 声明Connection 对象String driver = "com.mysql.jdbc.Driver"; // 驱动程序名// 遍历查询结果集try {Class.forName(driver); // 加载驱动程序con = DriverManager.getConnection("jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf-8&useSSL=false","root","zfj151********");Statement statement = con.createStatement(); //2. 创建statement类对象,用来执行SQL语句!!String sql = "select * from student whereid='"+snumber+"'";ResultSet rs = statement.executeQuery(sql);//3.ResultSet 类,用来存放获取的结果集!!if (rs.next()) {sql = "delete from student where id='" + snumber + "'";int n = statement.executeUpdate(sql);if (n > 0)JOptionPane.showMessageDialog(null," 删除成功"); //执行了返回删除成功elseJOptionPane.showMessageDialog(null,删除失败");}else {JOptionPane.showMessageDialog(null,不存在该学号学生");}}catch (Exception er) {}}if (e.getSource() == JBExit) { setVisible(false);}}public static void main (String[] args) {new DeleteStudent();}package simplebighomework;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class ModifyStudent extends JFrame implements ActionListener { JLabel JL = new JLabel修改一个学生信息",JLabel.CENTER);JLabel JLNumber = new JLabe 学号:"); // 显示学号JTextField JTNumber = new JTextField(); // 创建用于输入学号的文本JLabel JLName = new JLabe姓名:");JTextField JTName = new JTextField();JLabel JLClass = new JLabe班级:");JTextField JTClass = new JTextField();JButton JBGet = new JButton修改"); // 修改按钮JButton JBExit = new JButto n 退出");public ModifyStudent() {this.setTitle("修改一个学生信息"); this.setLayout(null); JL.setBounds(100, 30, 200, 40); this.add(JL);JLNumber.setBounds(140, 80, 100, 20); //x 轴和y 轴,宽高this.add(JLNumber);JTNumber.setBounds(180, 80, 80, 20);this.add(JTNumber);JLName.setBounds(140, 120, 60, 20); this.add(JLName);JTName.setBounds(180, 120, 80, 20);this.add(JTName);JLClass.setBounds(140, 160, 100, 20);this.add(JLClass);JTClass.setBounds(180, 160, 80, 20);this.add(JTClass);JBGet.setBounds(120, 220, 60, 20);this.add(JBGet);JBGet.addActionListener(this);JBExit.setBounds(200, 220, 60, 20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400);this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (e.getSource() == JBGet) {String snumber = JTNumber.getText(); // 读取文本中输入的学号String sname = JTName.getText();String sclass = JTClass.getText();Connection con; // 声明Connection 对象String driver = "com.mysql.jdbc.Driver"; // 驱动程序名// 遍历查询结果集try {Class.forName(driver); // 加载驱动程序con =DriverManager.getConnection("jdbc:mysql://localhost:3306/database?useUnicode=t rue&characterEncoding=utf-8&useSSL=false","root","zfj151********");//l.getConnection()方法,连接MySQL数据库!!Statement statement = con.createStatement(); //2. 创建statement类对象,用来执行SQL语句!!String sql = "select * from student where id='"+snumber+"'"; // 根据id 对数据库查询ResultSet rs = statement.executeQuery(sql); //3.ResultSet 类,用来存放获取的结果集!!if (rs.next()){ sql = "UPDATE student SET name='" +sname+ "',class='"+sclass+ "'where id='" + snumber + "'";int n = statement.executeUpdate(sql);// 什么意思?if (n > 0)JOptionPane.showMessageDialog(null,修改成功");elseJOptionPane.showMessageDialog(null,修改失败");} else {JOptionPane.showMessageDialog(null,不存在该学号学生");}}catch (Exception er) {}}if (e.getSource() == JBExit) { setVisible(false);}} public static void main(String[] args) { new ModifyStudent();}package simplebighomework; import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class SearchStudent extends JFrame implements ActionListener {JLabel JL = new JLabe 查询某个学生信息",JLabel.CENTER);JLabel JLNumber = new JLabe 学号:"); JTextField JTNumber = newJTextField(); JLabel JLName = new JLabe 姓名 :"); JTextField JTName = new JTextField();JLabel JLClass = new JLabe 班级:");JTextField JTClass = new JTextField();JButton JBSet = new JButto n 查询"); JButtonJBExit = new JButto n 退出"); public SearchStudent() {// 设置窗口的大小,位置 this.setTitle(-查询某个学生信息");this.setLayout(null);JL.setBounds(100, 30, 200, 40);this.add(JL);JLNumber.setBounds(140, 80, 80, 20);//x 轴和 y 轴,宽高 this.add(JLNumber);JTNumber.setBounds(180, 80, 80, 20);this.add(JTNumber);JLName.setBounds(140, 120, 80, 20);//x 轴和 y 轴,宽高 this.add(JLName);JTName.setBounds(180, 120, 80, 20);this.add(JTName);JLCIass.setBounds(140, 160, 80, 20);〃x 轴和 y 轴,宽高 this.add(JLClass);JTClass.setBounds(180, 160, 80, 20); this.add(JTClass); // 输入学号的文本 // 查询按钮// 退出按钮JBSet.setBounds(120, 200, 60, 20);this.add(JBSet);JBSet.addActionListener(this);JBExit.setBounds(200, 200, 60, 20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400);this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (e.getSource() == JBSet) {String sname = JTName.getText(); 获// 取文本中输入的学号Connection con; // 声明Connection 对象String driver = "com.mysql.jdbc.Driver"; // 驱动程序名// 遍历查询结果集try {Class.forName(driver); // 加载驱动程序con =DriverManager.getConnection("jdbc:mysql://localhost:3306/database?useUnicode=t rue&characterEncoding=utf-8&useSSL=false","root","zfj151********");//l.getConnection()方法,连接MySQL数据库!!Statement statement = con.createStatement(); //2.创建statement类对象,用来执行SQL语句!!String sql = "select * from student wherename='"+sname+"'";ResultSet rs = statement.executeQuery(sql); //3.ResultSet 类,用来存放获取的结果集!!if (rs.next()){ // 查询数据,然后返回String number = rs.getString(1);JTNumber.setText(number); String clas = rs.getString(3);JTClass.setText(clas); int n = statement.executeUpdate(sql); if(n > 0)JOptionPane.showMessageDialog(null, 查" 询成功"); elseJOptionPane.showMessageDialog(null, 查" 询失败");} else { JOptionPane.showMessageDialog(null," 不存在该姓名的学生");}}catch (Exception ee) {}}if (e.getSource() == JBExit) { // 退出按钮setVisible(false);}}public static void main(String[] args) {new SearchStudent();}。

相关主题