-
2018-09-23 12:22:39
class ShowTotalMessage{ //显示学生所有信息 public static void showTotalMessage(Student student1) { System.out.println("该同学id: "+student1.getid()); System.out.println("该同学姓名:"+student1.getname()); System.out.println("该同学性别:"+student1.getsex()); System.out.println("该同学年龄:"+student1.getsage()); } } public class Student { private String id,name="张杰",sex="男";//分别是学号,姓名,性别。 private int age=20; //年龄 private int computerScore=0; //表示计算机课程的成绩 private int englishScore=0; //表示英语课的成绩 private int mathScore=0; //表示数学课的成绩 private int totalCredit=0; //表示总学分, 90分及以上2学分,60及以上90以下1.5学分,不及格无学分 private int aveScore=0; //表示平均成绩,平均成绩等于已有成绩的课程除以课程数,0分表示无此门课成绩 /*获得*/ String getid(){ //获得当前对象的学号 return id; } String getname(){ //获得当前对象的姓名 return name; } String getsex(){ //获得当前对象的性别 return sex; } int getsage(){ //获得当前对象的性别 return age; } int getComputerScore(){ //获得当前对象的计算机课程成绩 return computerScore; } int getMathsScore(){ //获得当前对象的数学课程成绩 return mathScore; } int getEnglishScore(){ //获得当前对象的英语课程成绩 return englishScore; } int getTotalCredit() { return totalCredit; } int getTveScore() { return aveScore; } /*设置*/ void setid(String id){ //设置当前对象的id值 this.id = id; } void setComputerScore(int computerScore){ //设置当前对象的computerScore值,在设置此值时修改总学分和平均成绩 this.computerScore = computerScore; this.totalCredit=computerScore+mathScore+englishScore; this.aveScore=(computerScore+mathScore+englishScore)/3; } void setEnglishScore(int englishScore){ //设置当前对象的englishScore值,在设置此值时修改总成绩和平均成绩 this.englishScore=englishScore; this.totalCredit=computerScore+mathScore+englishScore; this.aveScore=(computerScore+mathScore+englishScore)/3; } void setMathScore(int mathScore){ //设置当前对象的mathScore值,在设置此值时修改总成绩和平均成绩 this.mathScore=mathScore; this.totalCredit=computerScore+mathScore+englishScore; this.aveScore=(computerScore+mathScore+englishScore)/3; } /*删除*/ void delComputerScore(){ //删除当前对象的computerScore值,在删除此值时修改总学分和平均成绩 this.computerScore = 0; this.totalCredit=computerScore+mathScore+englishScore; this.aveScore=(computerScore+mathScore+englishScore)/3; } void delEnglishScore(){ //删除当前对象的englishScore值,在删除此值时修改总成绩和平均成绩 this.englishScore = 0; this.totalCredit=computerScore+mathScore+englishScore; this.aveScore=(computerScore+mathScore+englishScore)/3; } void delMathScore(){ //删除当前对象的mathScore值,在删除此值时修改总成绩和平均成绩 this.mathScore = 0; this.totalCredit=computerScore+mathScore+englishScore; this.aveScore=(computerScore+mathScore+englishScore)/3; } public static void main(String []grgs){ //String []grgs不能删,否则无法成功运行 Student student1 = new Student(); student1.setid("20178888"); student1.setComputerScore(66); student1.setEnglishScore(66); student1.setMathScore(66); System.out.print("hello world\n"); System.out.print("显示该学生所有信息:"); ShowTotalMessage.showTotalMessage(student1); System.out.print("该学生计算机成绩:"); System.out.println(student1.getComputerScore()); System.out.print("该学生英语成绩:"); System.out.println(student1.getEnglishScore()); System.out.print("该学生数学成绩:"); System.out.println(student1.getEnglishScore()); System.out.println("总成绩: "+student1.getTotalCredit()); System.out.println("平均成绩: "+student1.getTveScore()); System.out.print("进行删除动作:\n"); System.out.print("删除计算机成绩:\n"); student1.delComputerScore(); System.out.println("总成绩: "+student1.getTotalCredit()); System.out.println("平均成绩: "+student1.getTveScore()); System.out.print("删除英语成绩:\n"); student1.delEnglishScore(); System.out.println("总成绩: "+student1.getTotalCredit()); System.out.println("平均成绩: "+student1.getTveScore()); System.out.print("删除数学成绩:\n"); student1.delMathScore(); System.out.println("总成绩: "+student1.getTotalCredit()); System.out.println("平均成绩: "+student1.getTveScore()); } }
更多相关内容 -
java 添加学生信息并修改
2018-04-10 21:11:28添加学生信息(性别,班级,学号)并提供修改的java参考代码。 -
java学生信息管理系统.txt
2021-04-24 22:57:09百度云链接分享; 计科大二下课程设计; 开发环境为jdk8+eclipse+mysql; 源码全面可运行,可作为计科本科生课程设计和毕业设计的参考; -
学生信息管理系统--java连接mysql
2020-12-04 08:58:56通过java代码连接mysql数据库(JDBC),实现对数据库中表格的增删查改操作,同时增加了"注册"功能,内有java源代码和简单的PPT介绍,适用于初学数据库的人员。 -
Java学生信息管理系统.rar
2020-06-20 14:06:01基于Java和MySQL(jdbc)设计的学生管理系统,GUI界面实现增加、修改、删除、查询功能。首先电脑要配置好ODBC数据源,下载有Mysql和eclipse,eclipse里面导入有jdbc包,MySQL创建有自己的数据库和表,再把代码里的... -
Java学生信息管理系统源码(含数据库脚本等).zip
2019-12-24 11:22:27修改dbConn.java配置文件: 数据库端口:3306 数据库名:stuManagerDB 数据库用户名:root 数据库密码:123456 3、运行程序 4、系统登录 打开本程序首先进入登录界面,有账号可直接登录,无账号点击注册进行... -
基于java swing的学生信息管理系统.zip
2021-03-17 09:08:11基于java swing的学生信息管理系统.包含基本的登陆、注册和学生信息的显示、添加、修改、删除、查询等功能。运行环境为jdk12 -
Java 项目 学生信息管理系统 超详细 超完整 保姆级讲解(主页面 + 添加学生信息 + 删除学生信息 + 修改学生...
2021-11-27 20:29:57Java 学生信息管理系统1. 项目概述2. 数据库的建立3. 项目页面4. 项目代码 + 分析5. 项目总结 关注博主不迷路,博主带你码代码! 1. 项目概述 这是一个学生信息管理系统,学生信息主要包括:学号,姓名,性别,出生...Java 学生信息管理系统
关注博主不迷路,博主带你码代码!
1. 项目概述
这是一个学生信息管理系统,学生信息主要包括:学号,姓名,性别,出生日期,班级;暂时就只有这些信息,若后续需要,可以相应的进行添加。
该项目主要采用的技术是 Java GUI 设计,这个地方主要用 Java 工具 windowsbuilder 进行布局,(windowsbuilder没有安装或者不会安装的,可以看看我的这篇博客 Eclipse 安装 windowbuilder插件 ),MySql 数据库(MySql 数据库没有安装的 或者数据库使用软件 Navicat 没有安装的可以看看我的这篇博客 2021 MySql 8.0.26 安装教程(最详细的傻瓜教程) ),以及使用 Java 中的 JDBC 将数据库链接起来。2. 数据库的建立
由于在项目中没有创建学生数据库的功能,所以学生数据库必须要先建立好,下面给出如何建立好MySQL学生数据库的相关代码 + 图片
-- 创建数据库 CREATE DATABASE niit DEFAULT CHARACTER SET utf8mb4; SHOW DATABASES; -- 使用数据库niit USE niit; -- 创建表Student CREATE TABLE Student ( ID INT PRIMARY KEY, NAME VARCHAR(4), GENDER CHAR(1), DOB DATE, BATCH INT ); -- 插入记录 INSERT INTO Student VALUES (1,'独孤求败','男','1988-1-2',1), (2,'周芷若','女','1988-12-3',1), (3,'金毛狮王','男','1978-11-1',1), (4,'蒙挚','男','1989-2-5',2), (5,'夏春','女','1998-4-3',2), (6,'梅长苏','男','1999-12-6',2); -- 查看表中所有记录 语法:select * from 表名 SELECT * FROM Student;
3. 项目页面
主页面
添加学生
修改信息
删除学生
查询信息
4. 项目代码 + 分析
主页面
package studentsmanager; import java.awt.Color; import java.awt.EventQueue; import java.awt.Font; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class MainFrame extends JFrame { private JPanel contentPane; /** * Launch the application. */ // 有了main函数才可以单独运行 public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { MainFrame frame = new MainFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public MainFrame() { // 设置大小不可改变 setResizable(false); // 设置标题 setTitle("学生管理系统"); // 由于这是主页面,所有当主页面关闭的时候,程序就直接退出 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // setBounds(int x,int y,int width,int height); // x 和 y 是窗口打开时的位置 // width 和 height 是窗口打宽度和高度 setBounds(100, 100, 450, 350); // setLocationRelativeTo(c) // 设置窗口相对于 c 的位置,当 c 为空或者 null 时,默认为是相对于屏幕中央 setLocationRelativeTo(null); // 实例化一个 pane contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JLabel lblNewLabel = new JLabel("学生管理系统"); lblNewLabel.setForeground(Color.RED); lblNewLabel.setFont(new Font("宋体", Font.BOLD, 25)); lblNewLabel.setBounds(140, 10, 163, 44); contentPane.add(lblNewLabel); JButton addButton = new JButton("添加学生"); // addActionListener 注册监听器 addButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 设置新窗口可见 new AddFrame().setVisible(true); } }); addButton.setFont(new Font("宋体", Font.PLAIN, 18)); addButton.setBounds(167, 64, 114, 37); contentPane.add(addButton); JButton changeButton = new JButton("修改信息"); changeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 同上 new ChangeFrame().setVisible(true); } }); changeButton.setFont(new Font("宋体", Font.PLAIN, 18)); changeButton.setBounds(167, 121, 114, 37); contentPane.add(changeButton); JButton deleteButton = new JButton("删除学生"); deleteButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 同上 new DeleteFrame().setVisible(true); } }); deleteButton.setFont(new Font("宋体", Font.PLAIN, 18)); deleteButton.setBounds(167, 180, 114, 37); contentPane.add(deleteButton); JButton queryButton = new JButton("查询信息"); queryButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 同上 new QueryFrame().setVisible(true); } }); queryButton.setFont(new Font("宋体", Font.PLAIN, 18)); queryButton.setBounds(167, 240, 114, 37); contentPane.add(queryButton); } }
添加学生
package studentsmanager; import java.awt.EventQueue; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.SQLException; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; public class AddFrame extends JFrame { private JPanel contentPane; private JTextField idField; private JTextField nameField; private JTextField genderField; private JTextField dobField; private JTextField batchField; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { AddFrame frame = new AddFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public AddFrame() { // 和前面类似 setResizable(false); setTitle("添加学生"); // 这个地方,添加学生只是这个程序的一部分,所以当关闭这部分的时候,程序不直接退出,只是关闭该部分程序 setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setBounds(100, 100, 450, 470); setLocationRelativeTo(null); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS)); JPanel panel = new JPanel(); contentPane.add(panel); panel.setLayout(null); JLabel TitleLabel = new JLabel("请输入新学生的信息:"); TitleLabel.setFont(new Font("宋体", Font.BOLD, 20)); TitleLabel.setBounds(71, 34, 208, 45); panel.add(TitleLabel); JLabel idLabel = new JLabel("学号:"); idLabel.setFont(new Font("宋体", Font.PLAIN, 16)); idLabel.setBounds(71, 105, 50, 30); panel.add(idLabel); idField = new JTextField(); idField.setBounds(143, 99, 240, 45); panel.add(idField); idField.setColumns(10); JLabel nameLabel = new JLabel("姓名:"); nameLabel.setFont(new Font("宋体", Font.PLAIN, 16)); nameLabel.setBounds(71, 160, 50, 30); panel.add(nameLabel); nameField = new JTextField(); nameField.setColumns(10); nameField.setBounds(143, 154, 240, 45); panel.add(nameField); JLabel genderLabel = new JLabel("性别:"); genderLabel.setFont(new Font("宋体", Font.PLAIN, 16)); genderLabel.setBounds(71, 215, 50, 30); panel.add(genderLabel); genderField = new JTextField(); genderField.setColumns(10); genderField.setBounds(143, 209, 240, 45); panel.add(genderField); JLabel dobLabel = new JLabel("出生日期:"); dobLabel.setFont(new Font("宋体", Font.PLAIN, 16)); dobLabel.setBounds(41, 270, 80, 30); panel.add(dobLabel); dobField = new JTextField(); dobField.setColumns(10); dobField.setBounds(143, 264, 240, 45); panel.add(dobField); JLabel batchLabel = new JLabel("班级:"); batchLabel.setFont(new Font("宋体", Font.PLAIN, 16)); batchLabel.setBounds(71, 325, 50, 30); panel.add(batchLabel); batchField = new JTextField(); batchField.setColumns(10); batchField.setBounds(143, 319, 240, 45); panel.add(batchField); JButton addButton = new JButton("添加"); // 添加鼠标监听事件 addButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 先取出数据 // getText() 返回字符串类型的 // Integer.parseInt 数据类型转换 int id = Integer.parseInt(idField.getText()); String nameString = nameField.getText(); String genderString = genderField.getText(); String dobfieldString = dobField.getText(); int batch = Integer.parseInt(batchField.getText()); // 输出一下学生的信息,方便修改 System.out.println(id + "\t" + nameString + "\t" + genderString + "\t" + dobfieldString + "\t" + batch); // SQLHelp 是自己写的一个工具类 SQLHelp sqlHelp = new SQLHelp(); try { // 调用添加学生信息的方法 sqlHelp.addStudent(id, nameString, genderString, dobfieldString, batch); // 弹出对话框,提示用户添加成功 JOptionPane.showMessageDialog(AddFrame.this, "添加成功!"); } catch (SQLException e1) { // 这里捕获一下异常,因为学生的学号是唯一的,所以当学号已经存在的时候,提示用户,该学生信息已存在 // 异常代码为 23000 if(e1.getSQLState().equals("23000")) { JOptionPane.showMessageDialog(AddFrame.this, "添加失败!该学生已存在"); } e1.printStackTrace(); } } }); addButton.setFont(new Font("宋体", Font.PLAIN, 18)); addButton.setBounds(182, 389, 97, 33); panel.add(addButton); } }
添加成功:
添加失败:
修改信息package studentsmanager; import java.awt.EventQueue; import java.awt.Font; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import java.awt.event.ActionListener; import java.sql.SQLException; import java.awt.event.ActionEvent; public class ChangeFrame extends JFrame { private JPanel contentPane; private JTextField idField; private JTextField nameField; private JTextField genderField; private JTextField dobField; private JTextField batchField; private JTextField searchField; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { ChangeFrame frame = new ChangeFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public ChangeFrame() { setResizable(false); setTitle("修改信息"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setBounds(100, 100, 450, 470); setLocationRelativeTo(null); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS)); JPanel panel = new JPanel(); contentPane.add(panel); panel.setLayout(null); JLabel lblNewLabel = new JLabel("请输入要修改的学生的学号:"); lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel.setBounds(71, 0, 208, 29); panel.add(lblNewLabel); JLabel lblNewLabel_1 = new JLabel("学号:"); lblNewLabel_1.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1.setBounds(71, 105, 50, 30); panel.add(lblNewLabel_1); idField = new JTextField(); idField.setEditable(false); idField.setBounds(143, 99, 240, 45); panel.add(idField); idField.setColumns(10); JLabel lblNewLabel_1_1 = new JLabel("姓名:"); lblNewLabel_1_1.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1_1.setBounds(71, 160, 50, 30); panel.add(lblNewLabel_1_1); nameField = new JTextField(); nameField.setColumns(10); nameField.setBounds(143, 154, 240, 45); panel.add(nameField); JLabel lblNewLabel_1_1_1 = new JLabel("性别:"); lblNewLabel_1_1_1.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1_1_1.setBounds(71, 215, 50, 30); panel.add(lblNewLabel_1_1_1); genderField = new JTextField(); genderField.setColumns(10); genderField.setBounds(143, 209, 240, 45); panel.add(genderField); JLabel lblNewLabel_1_1_1_1 = new JLabel("出生日期:"); lblNewLabel_1_1_1_1.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1_1_1_1.setBounds(41, 270, 80, 30); panel.add(lblNewLabel_1_1_1_1); dobField = new JTextField(); dobField.setColumns(10); dobField.setBounds(143, 264, 240, 45); panel.add(dobField); JLabel lblNewLabel_1_1_1_2 = new JLabel("班级:"); lblNewLabel_1_1_1_2.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1_1_1_2.setBounds(71, 325, 50, 30); panel.add(lblNewLabel_1_1_1_2); batchField = new JTextField(); batchField.setColumns(10); batchField.setBounds(143, 319, 240, 45); panel.add(batchField); JButton changeButton = new JButton("修改"); changeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { int id = Integer.parseInt(searchField.getText()); String nameString = nameField.getText(); String gendeString = genderField.getText(); String dobString = dobField.getText(); int batch = Integer.parseInt(batchField.getText()); SQLHelp sqlHelp = new SQLHelp(); try { sqlHelp.changeStudent(id, nameString, gendeString, dobString, batch); JOptionPane.showMessageDialog(ChangeFrame.this, "修改成功!"); } catch (SQLException e) { JOptionPane.showMessageDialog(ChangeFrame.this, "修改失败!"); e.printStackTrace(); } } }); changeButton.setFont(new Font("宋体", Font.PLAIN, 18)); changeButton.setBounds(182, 389, 97, 33); panel.add(changeButton); searchField = new JTextField(); searchField.setBounds(71, 39, 208, 45); panel.add(searchField); searchField.setColumns(10); JButton searchButton = new JButton("查找"); searchButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ int id = Integer.parseInt(searchField.getText()); try { SQLHelp sqlHelp = new SQLHelp(); Student student = sqlHelp.queryStudent(id); if(student != null) { // id 是直接读入的,所以就不需要从数据库中读出了 idField.setText(String.valueOf(id)); nameField.setText(student.getName()); genderField.setText(student.getGender()); dobField.setText(student.getDob()); batchField.setText(String.valueOf(student.getBatch())); } else { JOptionPane.showMessageDialog(ChangeFrame.this, "无此用户"); } } catch (SQLException e1) { e1.printStackTrace(); } } }); searchButton.setFont(new Font("宋体", Font.PLAIN, 18)); searchButton.setBounds(289, 42, 97, 39); panel.add(searchButton); } }
修改前查询到学生信息
修改成功
修改失败
失败的情况是数据链接出现了问题
未查询到学生信息
删除学生
package studentsmanager; import java.awt.EventQueue; import java.awt.Font; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import java.awt.event.ActionListener; import java.sql.SQLException; import java.awt.event.ActionEvent; public class DeleteFrame extends JFrame { private JPanel contentPane; private JTextField idField; private JTextField nameField; private JTextField genderField; private JTextField dobField; private JTextField batchField; private JTextField searchField; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { DeleteFrame frame = new DeleteFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public DeleteFrame() { setResizable(false); setTitle("删除学生"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setBounds(100, 100, 450, 470); setLocationRelativeTo(null); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS)); JPanel panel = new JPanel(); contentPane.add(panel); panel.setLayout(null); JLabel lblNewLabel = new JLabel("请输入要删除的学生的学号:"); lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel.setBounds(71, 0, 208, 29); panel.add(lblNewLabel); JLabel lblNewLabel_1 = new JLabel("学号:"); lblNewLabel_1.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1.setBounds(71, 105, 50, 30); panel.add(lblNewLabel_1); idField = new JTextField(); idField.setEditable(false); idField.setBounds(143, 99, 240, 45); panel.add(idField); idField.setColumns(10); JLabel lblNewLabel_1_1 = new JLabel("姓名:"); lblNewLabel_1_1.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1_1.setBounds(71, 160, 50, 30); panel.add(lblNewLabel_1_1); nameField = new JTextField(); nameField.setColumns(10); nameField.setBounds(143, 154, 240, 45); panel.add(nameField); JLabel lblNewLabel_1_1_1 = new JLabel("性别:"); lblNewLabel_1_1_1.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1_1_1.setBounds(71, 215, 50, 30); panel.add(lblNewLabel_1_1_1); genderField = new JTextField(); genderField.setColumns(10); genderField.setBounds(143, 209, 240, 45); panel.add(genderField); JLabel lblNewLabel_1_1_1_1 = new JLabel("出生日期:"); lblNewLabel_1_1_1_1.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1_1_1_1.setBounds(41, 270, 80, 30); panel.add(lblNewLabel_1_1_1_1); dobField = new JTextField(); dobField.setColumns(10); dobField.setBounds(143, 264, 240, 45); panel.add(dobField); JLabel lblNewLabel_1_1_1_2 = new JLabel("班级:"); lblNewLabel_1_1_1_2.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1_1_1_2.setBounds(71, 325, 50, 30); panel.add(lblNewLabel_1_1_1_2); batchField = new JTextField(); batchField.setColumns(10); batchField.setBounds(143, 319, 240, 45); panel.add(batchField); JButton deleteButton = new JButton("删除"); deleteButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int id = Integer.parseInt(searchField.getText()); try { SQLHelp sqlHelp = new SQLHelp(); sqlHelp.deletestudent(id); JOptionPane.showMessageDialog(DeleteFrame.this, "删除成功!"); } catch (SQLException e1) { JOptionPane.showMessageDialog(DeleteFrame.this, "删除失败"); e1.printStackTrace(); } } }); deleteButton.setFont(new Font("宋体", Font.PLAIN, 18)); deleteButton.setBounds(182, 389, 97, 33); panel.add(deleteButton); searchField = new JTextField(); searchField.setBounds(71, 39, 208, 45); panel.add(searchField); searchField.setColumns(10); JButton searchButton = new JButton("查找"); searchButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { int id = Integer.parseInt(searchField.getText()); try { SQLHelp sqlHelp = new SQLHelp(); Student student = sqlHelp.queryStudent(id); if(student != null) { idField.setText(String.valueOf(id)); nameField.setText(student.getName()); genderField.setText(student.getGender()); dobField.setText(student.getDob()); batchField.setText(String.valueOf(student.getBatch())); } else { JOptionPane.showMessageDialog(DeleteFrame.this, "无此学生"); } } catch (SQLException e) { e.printStackTrace(); } } }); searchButton.setFont(new Font("宋体", Font.PLAIN, 18)); searchButton.setBounds(289, 42, 97, 39); panel.add(searchButton); } }
删除成功
删除失败
删除失败的时候是数据库链接出现了问题
查询到学生信息
未查询到学生
查询信息
package studentsmanager; import java.awt.EventQueue; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.SQLException; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; public class QueryFrame extends JFrame { private JPanel contentPane; private JTextField idField; private JTextField nameField; private JTextField genderField; private JTextField dobField; private JTextField batchField; private JTextField searchField; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { QueryFrame frame = new QueryFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public QueryFrame() { setResizable(false); setTitle("查询信息"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setBounds(100, 100, 450, 470); setLocationRelativeTo(null); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS)); JPanel panel = new JPanel(); contentPane.add(panel); panel.setLayout(null); JLabel lblNewLabel = new JLabel("请输入要查找的学生的学号:"); lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel.setBounds(71, 0, 208, 29); panel.add(lblNewLabel); JLabel lblNewLabel_1 = new JLabel("学号:"); lblNewLabel_1.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1.setBounds(71, 105, 50, 30); panel.add(lblNewLabel_1); idField = new JTextField(); idField.setEditable(false); idField.setBounds(143, 99, 240, 45); panel.add(idField); idField.setColumns(10); JLabel lblNewLabel_1_1 = new JLabel("姓名:"); lblNewLabel_1_1.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1_1.setBounds(71, 160, 50, 30); panel.add(lblNewLabel_1_1); nameField = new JTextField(); nameField.setColumns(10); nameField.setBounds(143, 154, 240, 45); panel.add(nameField); JLabel lblNewLabel_1_1_1 = new JLabel("性别:"); lblNewLabel_1_1_1.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1_1_1.setBounds(71, 215, 50, 30); panel.add(lblNewLabel_1_1_1); genderField = new JTextField(); genderField.setColumns(10); genderField.setBounds(143, 209, 240, 45); panel.add(genderField); JLabel lblNewLabel_1_1_1_1 = new JLabel("出生日期:"); lblNewLabel_1_1_1_1.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1_1_1_1.setBounds(41, 270, 80, 30); panel.add(lblNewLabel_1_1_1_1); dobField = new JTextField(); dobField.setColumns(10); dobField.setBounds(143, 264, 240, 45); panel.add(dobField); JLabel lblNewLabel_1_1_1_2 = new JLabel("班级:"); lblNewLabel_1_1_1_2.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel_1_1_1_2.setBounds(71, 325, 50, 30); panel.add(lblNewLabel_1_1_1_2); batchField = new JTextField(); batchField.setColumns(10); batchField.setBounds(143, 319, 240, 45); panel.add(batchField); searchField = new JTextField(); searchField.setBounds(71, 39, 208, 45); panel.add(searchField); searchField.setColumns(10); JButton searchButton = new JButton("查找"); searchButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { // 1.读出要查询的学生输入的id // 因为学生的学号是唯一的,所以我们根据学号查询后,只会有一条数据 // 转化一下数据类型 int id = Integer.parseInt(searchField.getText()); // 2.执行JDBC语句 try { SQLHelp sqlHelp = new SQLHelp(); Student student = sqlHelp.queryStudent(id); // 3.将查询结果填到文本框中 // 前提是学生存在 if(student != null) { idField.setText(String.valueOf(id)); nameField.setText(student.getName()); genderField.setText(student.getGender()); dobField.setText(student.getDob()); batchField.setText(String.valueOf(student.getBatch())); } else { // 此时学生不存在,提示用户,不存在该学生 JOptionPane.showMessageDialog(QueryFrame.this, "无此学生"); } } catch (SQLException e) { e.printStackTrace(); } } }); searchButton.setFont(new Font("宋体", Font.PLAIN, 18)); searchButton.setBounds(289, 42, 97, 39); panel.add(searchButton); } }
SQLHelp 工具类package studentsmanager; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class SQLHelp { public static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; public static final String DB_URL = "jdbc:mysql://localhost:3306/niit?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC"; public static final String username = "root"; public static final String password = "011216"; private Connection connection = null; private PreparedStatement pStatement = null; private ResultSet rSet = null; // 加载驱动 // 静态初始化块(只执行一次) static { try { Class.forName(JDBC_DRIVER); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // 链接数据库 public void connectDB() { try { connection = DriverManager.getConnection(DB_URL,username,password); System.out.println("数据库链接成功"); } catch (SQLException e) { System.out.println("数据库链接失败"); e.printStackTrace(); } } // 关闭资源 public void close() { if(rSet != null) { try { rSet.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(pStatement != null) { try { pStatement.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(connection != null) { try { connection.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public void addStudent(int id, String nameString, String genderString, String dobString, int batch) throws SQLException { // try finally 无论是否抛出异常都将执行 finally 中的语句 try { // 先链接到数据库 connectDB(); // sql 语句 // 静态 sql 语句需要进行字符串拼接 // 动态 sql 语句 String addsql = "insert into student values(?, ?, ?, ?, ?)"; pStatement = connection.prepareStatement(addsql); pStatement.setInt(1, id); pStatement.setString(2, nameString); pStatement.setString(3, genderString); pStatement.setString(4, dobString); pStatement.setInt(5, batch); pStatement.executeUpdate(); } finally { close(); } } public void changeStudent(int id, String nameString, String genderString, String dobString, int batch) throws SQLException { try { connectDB(); String changesql = "update student set name = ?, gender = ?, dob = ?, batch = ? where id = ?"; pStatement = connection.prepareStatement(changesql); pStatement.setString(1, nameString); pStatement.setString(2, genderString); pStatement.setString(3, dobString); pStatement.setInt(4, batch); pStatement.setInt(5, id); pStatement.executeUpdate(); } finally { close(); } } public void deletestudent(int id) throws SQLException { try { connectDB(); String deleteString = "select * from student where id = ?"; pStatement = connection.prepareStatement(deleteString); pStatement.setInt(1, id); pStatement.execute(); } finally { close(); } } public Student queryStudent(int id) throws SQLException { try { connectDB(); String querysql = "select * from student where id = ?"; pStatement = connection.prepareStatement(querysql); pStatement.setInt(1, id); // 三种方法执行 // execute() 都可以使用,返回true或false // executeQuery() 专门用于查询,返回结果集 // executeUpdate() 专门用于删除、更新 rSet = pStatement.executeQuery(); if(rSet.next()) { String nameString = rSet.getString(2); String genderString = rSet.getString(3); String dobString = rSet.getString(4); int batchString = rSet.getInt(5); // 查询到学生信息返回结果集 return new Student(nameString, genderString, dobString, batchString); } else { // 没有查询到学生信息,返回null return null; } } finally { close(); } } }
Student 工具类
package studentsmanager; public class Student { private String name; private String gender; private String dob; private int batch; public Student(String name, String gender, String dob, int batch) { this.name = name; this.gender = gender; this.dob = dob; this.batch = batch; } public String getName() { return name; } public String getGender() { return gender; } public String getDob() { return dob; } public int getBatch() { return batch; } }
5. 项目总结
这算一个比较完整的项目了,既有 GUI 又有 MySQL 数据库的已经 Java 的 JDBC ,虽然已经有了 GUI 界面,但很明显,没有进行任何美化,就只是简单的一个界面,勉勉强强可以看的过去,使用 JDBC 链接数据库的时候,没有实现可以直接在程序创建数据库,只能从数据库方创建数据库,这是一个缺点,同时使用 JDBC 链接数据库的时候,所使用的代码依旧是 MySQL 数据库的代码,(我 MySQL 学的不好,增删改查啥的数据库代码都还记不清楚 哭了…)还有就是当程序在进行修改和删除的时候,修改失败和删除失败的时候,都是因为数据链接失败了才进行弹窗,不知道怎么改成无法修改或者无法删除的时候提示,(又哭了…)
欢迎个位大佬指出错误,同时也欢迎各位小白借鉴,有问题的话,评论或者私聊都是可以的,看了就会回复!最后一句:
关注博主不迷路,博主带你码代码!
-
java mysql 学生信息管理系统
2018-02-02 22:29:29欢迎使用学生信息管理系统(管理员端) 本系统支持添加,删除,修改等实用功能 方便您更好的管理学生数据 【I】管理员端 一,选择数据库 通过右上角的数据库菜单栏可以选择当前操 作的数据库 二,添加教师,学生,... -
[Java课程设计]学生信息管理系统
2021-01-06 19:09:02如何实现一个功能简单的学生信息管理系统,能够对学生信息(包括照片)进行添加、删除、修改和查询等操作。 二、基本要求 实现一个功能简单的学生信息管理系统,该系统具有按照账户名密码登录功能,登录后,可以... -
基于JAVA的学生信息管理系统.rar
2019-09-15 15:44:33JAVA-学生信息管理系统 1. 分三大对象:管理员、教师、学生;可实现基本的增删改查,如添加各个对象的信息修改各个对象的信息、删除各个对象的信息、输出各个对象的信息等功能 2. 功能完善;由登录窗口、内部窗口、... -
Java学生信息管理系统的设计与实现
2020-06-17 20:21:27在eclipse中导入后,只需将DbUtill.java中的数据库密码,修改为自己的数据库账号密码即可运行,此系统功能包含登录界面/主页/MySQL的增删改查,附带数据库脚本,可供学习参考。 -
基于java web的简单学生信息管理系统(jsp+servlet)
2019-12-31 17:06:05java web简单学生信息管理系统 项目描述 利用Java以及jsp等技术实现学生信息管理,学生可以自己注册登记,教师进行学生管理,快捷方便合理利用资源。 运行环境 jdk7+tomcat8+mysql+IntelliJ IDEA 项目技术(必填... -
学生管理系统(JAVA版) —— 修改学生信息页面
2020-07-29 09:26:19修改信息页面UI界面如下,当正确修改数据库的内容时,可在下方显示修改成功: UI界面设计如下: package ui; import java.awt.Container; import java.awt.Font; import java.awt.GridLayout; import java.awt....修改信息页面UI界面如下,当正确修改数据库的内容时,可在下方显示修改成功:
UI界面设计如下:package ui; import java.awt.Container; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import daoImp.ClassesDaoImp; import entity.Classes; public class Update extends JFrame implements ActionListener { JLabel title,number,name,teacher,lbl; JTextField num,nme,tea; JButton dft,cla,rtn; JPanel line,line1,line2,line3,line4,line5; public Update() { // TODO Auto-generated constructor stub Container con=getContentPane(); con.setLayout(new GridLayout(6,1)); line=new JPanel(); line1=new JPanel(); line2=new JPanel(); line3=new JPanel(); line4=new JPanel(); line5=new JPanel(); title=new JLabel("学生管理系统"); title.setFont(new Font("黑体", Font.PLAIN, 20)); number=new JLabel("学号:"); name=new JLabel("修改后姓名:"); teacher=new JLabel("修改后教师:"); lbl=new JLabel(); num=new JTextField(10); nme=new JTextField(10); tea=new JTextField(10); dft=new JButton("确定"); dft.addActionListener(this); cla=new JButton("清空"); cla.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub num.setText(""); nme.setText(""); tea.setText(""); lbl.setText(""); } }); rtn=new JButton("返回"); rtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub setVisible(false); new Host().setVisible(true); } }); line.add(title); line1.add(number); line1.add(num); line2.add(name); line2.add(nme); line3.add(teacher); line3.add(tea); line4.add(dft); line4.add(cla); line4.add(rtn); line5.add(lbl); con.add(line); con.add(line1); con.add(line2); con.add(line3); con.add(line4); con.add(line5); setTitle("修改学生信息"); setSize(340,300); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub ClassesDaoImp cdi=new ClassesDaoImp(); Classes cu=new Classes(); cu.setNum(num.getText()); cu.setName(nme.getText()); cu.setTeacher(tea.getText()); if(cdi.update(cu)) { lbl.setText("修改成功"); }else { lbl.setText("查无此人"); } } }
重写ClassesDaoImp类的修改方法,实现将修改数据库信息的功能:
package daoImp; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import dao.classesDao; import db.DBCon; import entity.Classes; public class ClassesDaoImp implements classesDao { Connection cn; PreparedStatement psm=null; private ResultSet rs; @Override public boolean add(Classes classes) throws SQLException { // TODO Auto-generated method stub //。。。。。。 return flag; } @Override public boolean delete(String num) { // TODO Auto-generated method stub //。。。。。。 return flag; } @Override public boolean update(Classes classes) { // TODO Auto-generated method stub boolean flag=false; DBCon dbcon=new DBCon(); cn=dbcon.getConnection(); String sql="update classes set name=?,teacher=? where num=?"; try { psm=cn.prepareStatement(sql); psm.setString(1, classes.getName()); psm.setString(2, classes.getTeacher()); psm.setString(3, classes.getNum()); if(psm.executeUpdate()!=0) { flag=true; } psm.close(); cn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return flag; } @Override public Classes SearchByNum(String num) { // TODO Auto-generated method stub return null; } @Override public List<Classes> sreachByTeacher(String teacher) { // TODO Auto-generated method stub return null; } }
-
Java学生信息管理系统(增、删、改、查)
2021-07-02 08:14:29学生信息系统功能:(1.)添加学生信息(2.)删除学生信息(3.)修改学生信息(4.)查询学生信息2.程序运行结果图3.该程序分为两个类:(1.)Student类(2.)TestMain类(==增、删、改、查功能都写在了测试类TestMain类中。==)4....学生信息管理系统
1.学生信息系统功能:
(1.)添加学生信息
(2.)删除学生信息
(3.)修改学生信息
(4.)查询学生信息
2.程序运行结果图
3.该程序分为两个类:
(1.)Student类
package studentmanagement; public class Student { //定义变量学号、姓名、住址 private String no; private String name; private String add; private String sex; private int tel; private int age; public Student() { } public Student(String no, String name, String sex,int age,String add,int tel) { this.no = no; this.name = name; this.sex = sex; this.age = age; this.add = add; this.tel = tel; } //学号 public void setSNo(String no) { this.no = no; } public String getNo() { return no; } //姓名 public void setName(String name) { this.name = name; } public String getName() { return name; } //性别 public void setSex(String sex) { this.sex = sex; } public String getSex() { return sex; } //年龄 public void setAge(int age) { this.age = age; } public int getAge() { return age; } //住址 public void setAdd(String add) { this.add = add; } public String getAdd() { return add; } //电话 public void setTel(int tel) { this.tel = tel; } public int getTel() { return tel; } }
(2.)TestMain类(增、删、改、查功能都写在了测试类TestMain类中)
package studentmanagement; import java.util.ArrayList; import java.util.Scanner; public class TestMain { public static void main(String[] args) { // ArrayList<参数化类型> list = new ArrayList<参数化类型>(); // 使用泛型ArrayList<Student>之后,表示ArrayList集合中只允许存储Student类型的数据 // 用泛型指定集合中存储的数据类型 // 创建ArrayList集合存储student对象 ArrayList<Student> array = new ArrayList<Student>(); // 当前可查学生信息 Student s1 = new Student("01", "蒋丞", "男", 20,"辽宁",135256); Student s2 = new Student("02", "顾飞", "男", 21,"辽宁",155234); Student s3 = new Student("03", "顾淼", "女", 18,"辽宁",167235); array.add(s1); array.add(s2); array.add(s3); // while(true)无限循环语句,语句块中有break语句才都能跳出循环。 while (true) { System.out.println("-----学生管理系统-----"); System.out.println("(1)添加学生信息"); System.out.println("(2)删除学生信息"); System.out.println("(3)更改学生信息"); System.out.println("(4)查询学生信息"); System.out.println("(5)退出管理系统"); System.out.println("请选择系统功能: "); // 输入管理系统选项 Scanner sc = new Scanner(System.in); String choice = sc.nextLine(); switch (choice) { case "1": addStudent(array); // 增 break; case "2": removeStudent(array); // 删 break; case "3": updateStudent(array); // 改 break; case "4": findAllStudent(array); // 查 break; case "5": // 退出 default: System.out.println("谢谢您的使用"); System.exit(0);// java虚拟机退出 // break; } } } // 1.添加学生信息 // public static void main(String[] args) { // ArrayList<Student> array = new ArrayList<Student>(); public static void addStudent(ArrayList<Student> array) { Scanner sc = new Scanner(System.in); String No; System.out.println("请输入学生学号:"); // String No=sc.nextLine(); No = sc.nextLine(); // 输入学号No nextLine返回string类型 // 定义标记,判断学生学号是否被占用 boolean flag = true; for (int i = 0; i < array.size(); i++) { // 遍历学生信息返回给学生对象 Student s = array.get(i); // 获取该学生的学号,和键盘录入的学号进行比较 if (s.getNo().equals(No)) { flag = false;// 说明学号被占用 System.out.println("该学生已存在,请重新输入!"); break; } } if (flag) { System.out.println("请输入学生姓名:"); String Name = sc.nextLine(); System.out.println("请输入学生住址:"); String Add = sc.nextLine(); System.out.println("请输入学生性别:"); String Sex = sc.nextLine(); System.out.println("请输入学生年龄:"); int Age = sc.nextInt(); System.out.println("请输入学生电话:"); int Tel = sc.nextInt(); //nextInt必须在nextLine后面 // 创建学生对象 Student s = new Student(); s.setSNo(No); s.setName(Name); s.setAdd(Add); s.setSex(Sex); s.setAge(Age); s.setTel(Tel); // 把学生对象作为元素添加到集合 array.add(s); System.out.println("添加成功!"); } } // 2.删除学生信息 public static void removeStudent(ArrayList<Student> array) { Scanner sc = new Scanner(System.in); System.out.println("请输入你要删除的学生的学号: "); String No = sc.nextLine(); // 键盘录入的学号返回给No // 作为索引 int index = -1; // 遍历学生信息 for (int i = 0; i < array.size(); i++) { Student s = array.get(i); // 获取该学生的学号,和键盘录入的学号进行比较 if (s.getNo().equals(No)) { index = i; // 124行 array.remove(index); break; } } if (index == -1) { System.out.println("您要删除的学生信息不存在,请重新选择: "); } else { array.remove(index); // 删除获取的学生信息 System.out.println("删除学生信息成功"); } } // 3.修改学生信息 public static void updateStudent(ArrayList<Student> array) { Scanner sc = new Scanner(System.in); System.out.println("请输入你要修改的学生的学号: "); String No = sc.nextLine(); // 作为索引 int index = -1; // 遍历学生信息 for (int i = 0; i < array.size(); i++) { Student s = array.get(i); // 获取该学生的学号,和键盘录入的学号进行比较 if (s.getNo().equals(No)) { index = i; break; } } if (index == -1) { System.out.println("您要修改的学生信息不存在,请您重新选择: "); } else { // index = i;的时候 System.out.println("请输入学生新姓名:"); String Name = sc.nextLine(); System.out.println("请输入学生性别:"); String Sex = sc.nextLine(); System.out.println("请输入学生新住址:"); String Add = sc.nextLine(); System.out.println("请输入学生年龄:"); int Age = sc.nextInt(); System.out.println("请输入学生电话:"); int Tel = sc.nextInt(); // 创建学生对象 Student s = new Student(); // 学生对象s不调用set方法,则修改后的值为null s.setSNo(No); s.setName(Name); s.setSex(Sex); s.setAge(Age); s.setTel(Tel); s.setAdd(Add); // 修改学生中的集合对象 // Arraylist集合中set方法,set(int index,Object o)覆盖元素。 array.set(index, s); System.out.println("修改学生信息成功!!"); } } // 4.查询学生信息 public static void findAllStudent(ArrayList<Student> array) { // 判断学生信息集合的长度,如果等于0,学生信息为空,程序结束 if (array.size() == 0) { System.out.println("对不起,当前学生信息为空,请您重新选择: "); return;// 不让程序往下执行 } // 学生信息列表 System.out.println("学号:\t姓名:\t性别:\t年龄:\t住址:\t电话:");// \t是一个tab键的位置 // 遍历集合 for (int i = 0; i < array.size(); i++) { Student student = array.get(i);// System.out.println( student.getNo() + "\t" + student.getName() + "\t" + student.getSex() + "\t" +student.getAge() + "\t" + student.getAdd()+ "\t" + student.getTel()); } } }
4.编程中遇到的问题和解决方法
①管理系统使用完其中一个功能后不能继续选择使用其他功能,需要重新运行才能再次使用其他功能。
解决方法:加入while(true)无限循环语句,语句块中有break语句才都能跳出循环。
②在添加学生信息功能中,添加信息相同的学生时,没有信息重复的提示。
解决方法:定义标记boolean flag = true;然后根据判断学生学号是否被占用。先遍历学生信息,获取添加学生的学号,再和键盘输入的学号进行比较,如果输入的学号和获取的学生学号一样,则标记flag=false;,表示学生信息已经存在。如果添加不重复,代码后加上if(flag),里面写要添加学生的相关信息。
③在解决问题①无法循环利用管理系统后,发现退出管理系统功能无法使用,选择退出后还是会弹出学生信息管理系统界面。
解决方法:添加System.exit(0); System是一个Java类,调用exit(0)方法终止虚拟机也就是退出你的Java程序,括号里面的是参数,进程结束的返回值。
④在查询学生信息是否存在中,如果没有查找到要修改或者删除的学生信息该怎么返回给程序
解决方法:添加变量名为index(int index = -1;)作为索引,在数组遍历时,如果没有查到键盘输入信息,返回-1,结束程序,进行下一次循环。
⑤修改学生信息后,再次查询学生信息,发现信息没有改变,修改无效。
解决方法:array.set(index, s);
⑥查询学生信息为空的时候,程序依然向下执行,弹出学号: 姓名: 住址:为空的内容。
解决方法:提示学生信息为空代码后一行加上ruturn;不让程序继续向下执行。
⑦在提供输入管理系统选项的代码中,用到switch方法,返回类型为String,但后面的case语句一直写的是case 1;case 2;…导致代码一直出错
解决方法:switch 使用字符串 String 类型时,同时 case 标签必须为字符串常量或字面 量,将case 1;等改为case “1”;等。
⑧在修改学生信息时,在输入学号、姓名、性别、年龄四项后,直接连续弹出要修改的地址、电话两条信息,先输入要修改的地址,抛出Exception in thread “main” java.util.InputMismatchException的异常。
解决方法:在修改学生信息代码块中自己nextLine()写在了nextInt后,抛出异常。
System.out.println(“请输入学生年龄:”); int Age = sc.nextInt();
System.out.println(“请输入学生新住址:”); String Add = sc.nextLine();
原因:nextLine()不能用在nextInt后面。因为nextLine()方法是返回的是Enter键之前的所有字符,在使用了nextInt() 方法之后在其后输入的空格键、Tab键或Enter键等视为分隔符或结束符,其仍在缓冲区内;若紧接着使用nextLine() ,则nextLine() 自动读取Enter等作为其结束符,则无法从键盘输入值,强行输入会报出InputMismatchException异常。 -
java学生信息管理系统swing
2019-11-26 22:29:59学生信息管理系统 (1) 读取文件 (2) 添加记录 (3) 查找记录(按学号查找) (4) 修改记录(按学号修改) (5) 删除记录(按学号删除) (6) 记录按成绩升序排列 记录按成绩降序排列 (7) 保存文件 -
Java学生信息管理系统
2020-09-25 14:06:06(无数据库)txt文件进行保存数据有完整的登录注册和学生信息录入界面1.登录界面:有登录,注册,重置功能,实现用户登录和无用户人员注册登录账号以及登录密码,注册完成的账号密码可登录系统,重置按钮拥有对输错... -
基于java swing开发的桌面程序-学生信息管理系统,实现了增删改查
2020-07-27 15:46:08基于java swing开发的桌面程序-学生信息管理系统,实现了增删改查 包括用户的登陆注册等功能 项目采用技术: javabean+swing+jdbc+mysql进行开发 采用mvc的技术结构 -
数据库课程设计之学生信息管理系统(基于Java+Mysql的网页web)
2019-07-16 16:37:34基于Java+Mysql的学生信息系统,使用web网页交互方式。 功能:学生信息管理、包括学生信息的新增、编辑、查看、删除,班级信息管理、包括班级信息的新增、编辑、查看、删除,教师信息管理、包括教师信息的新增、编辑... -
Java学生信息管理系统(有界面、有数据库)
2019-04-15 09:42:17(7) 修改学生记录模块,可以对录入的学生记录进行修改。 (8)统计学生记录模块,可以在主页面进行对学生信息的统计。 (9)学生信息导出模块,可以在主页面对学生信息进行导出成文本文档进行保存。 (10)退出... -
手把手搭建Java学生信息管理系统【附源码】(毕设)
2020-02-24 18:15:09一、项目简介本课程演示的是一套基于JavaWeb实现的学生信息管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。课程包含: 1. 项目源码、项目文档、数据库脚本、软件工具等所有... -
java学生信息管理系统
2018-07-13 14:53:00java学生信息管理系统:实现功能: 1,登录系统时-要登录,注册; 2,对学生:(1)查询所有,查询年级;(2)增加学生,修改学生信息;(3)删除学生,(4)退出系统 单纯javase,没用swing,纯控制台查看 -
学生信息管理系统java课程设计(含源代码).rar
2019-12-18 14:32:37录入学生基本信息的功能 学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,... 在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。 -
Java学生信息管理(Swing窗体)x_学生信息管理系统代码
2020-03-09 13:49:26JAVA 程序设计实验报告 学期2016-2017-2 实验名称实验 5综合性程序设计简单学生信息管理系统 班级* 一实验目的 二实验内容与结果 姓名Zzz 学号20151601* 1任务描述(1.3 与 1.4 二选一建议选择 1.4 利用课程所学知识... -
java+mysql学生及教师信息管理系统
2019-04-29 06:00:15本系统完成了学生信息的增加 修改 删除 查询和选课 课程信息的增加 修改 删除 查询 成绩的添加 修改 查询等功能 能正常运行 -
java录入学生信息
2021-03-14 18:23:31简单学生信息管理系统java课程设计_计算机软件及应用_IT/计算机_专业资料。数据库课程设计 -简单学生信息管理系统...使用 Java 程序编写,能够进行学生信息录入、修改、 查看......JAVA 程序设计 课程设计报告 课题... -
Java数据库课程设计,学生选课信息管理系统源代码+报告
2021-08-05 21:11:18数据库课程设计,学生选课信息管理系统源代码+设计报告(MySQL+Java) 分为三类用户角色学生用户:修改个人信息、课程查询、选课、退课、成绩查询、打印成绩单查询、奖惩信息 教师用户:修改个人信息、查看所授课程... -
Java+Swing+mysql学生信息管理系统
2022-05-07 11:19:14该系统实现了管理员系统登陆、学生信息查询、学生信息添加、学生信息修改、学生信息删除。 详细描述:https://blog.csdn.net/Timi2019/article/details/124613094 -
JAVA-学生籍贯信息记录簿设计
2017-12-30 14:16:34学生籍贯信息记录簿设计 编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。具体功能: (1)创建学生信息并以磁盘文件...(5)能添加、删除和修改学生的籍贯信息; (6)能将信息存储到本地文本文件中