学生信息管理系统

学生管理系统目录

  • 学生信息管理系统
    • 一、前期工作
      • ①下载eclipse、mysql、navicat
      • ②建立navicat与mysql的连接
    • 二、明确项目的具体实现思路
      • ★系统功能分析
      • ★项目功能模块设计
      • ★数据流程图
      • ★数据库需求分析
      • ★学籍信息、奖励信息、处分信息必要代码表的建立
        • 学籍变更代码表
        • 奖励级别代码表
        • 处罚级别代码表
    • 三、在数据库中新建表格
      • 学生注册表
      • 老师注册表
      • 学生基本信息表
      • 学籍信息代码表
      • 学生奖励信息表
      • 学生奖励代码表
      • 学生奖励信息表
      • 学生处罚代码表
      • 学生处罚信息表
    • 四、创建项目并连接mysql数据库
      • 导入jar包且通过eclipse视图显示数据库数据
    • 五、开始敲项目
      • ①用户注册窗口
        • 用户注册界面的全部代码
      • ②用户登录窗口
        • 用户登录界面的全部代码
      • ③学生主页面
        • 学生主页面的全部代码
      • ④创建学生类
        • 学生类的全部代码
      • ⑤封装连接数据库和查找语句的类
        • 封装类的全部代码
      • ⑥老师录入学籍信息奖励信息和处分信息的窗口
        • 老师录入学籍信息的窗口
        • 老师录入奖励信息的窗口
        • 老师录入处分信息的窗口
      • ⑦老师查找学生信息的窗口
    • 六、总结

一、前期工作

①下载eclipse、mysql、navicat

②建立navicat与mysql的连接

二、明确项目的具体实现思路

★系统功能分析

本系统主要的功能是收集学生的个人信息,以便向教师提供每个学生在校的情况。系统的主要功能有:
① 学生个人信息输入,包括:姓名、性别、院系、生日、籍贯、生源所在地等。
② 学生流动情况的输入,包括:转系、休学、复学、退学、毕业。
③ 奖惩情况的输入。
④ 学生个人情况查询和修改,包括流动情况和奖罚情况。

★项目功能模块设计

★数据流程图

★数据库需求分析

① 学生:学号、姓名、性别、生日、籍贯、所在院系、所在班级。
② 处罚记录:记录号、级别、处罚对象、记录时间、详细描述、是否生效。
③ 奖励记录:记录号、级别、奖励对象、记录时间、详细描述。
④ 学籍变更记录:记录号、变更情况、记录对象、记录时间、详细描述。
⑤ 班级:班级编号、班级名称、所属院系。
⑥ 院系:代码、名称

★学籍信息、奖励信息、处分信息必要代码表的建立

学籍变更代码表
代码 说明
0 转系
1 休学
2 复学
3 退学
4 毕业
奖励级别代码表
代码 说明
0 校特等奖学金
1 校一等奖学金
2 校二等奖学金
3 校三等奖学金
4 系一等奖学金
5 系二等奖学金
6 系三等奖学金
处罚级别代码表
代码 说明
0 警告
1 严重警告
2 记过
3 记大过
4 开除

三、在数据库中新建表格

学生注册表

老师注册表

学生基本信息表

学籍信息代码表

学生奖励信息表

学生奖励代码表

学生奖励信息表

学生处罚代码表

学生处罚信息表

四、创建项目并连接mysql数据库

导入jar包且通过eclipse视图显示数据库数据

链接: 关于eclipse连接数据库的简单操作.

五、开始敲项目

①用户注册窗口

用户注册界面的全部代码
/*用户注册页面的全部代码*/
package kcsj_mysqlOrjava;import java.awt.EventQueue;import javax.swing.JFrame;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.plaf.basic.BasicInternalFrameTitlePane.IconifyAction;import org.apache.commons.dbutils.QueryRunner;
import org.eclipse.jface.text.templates.GlobalTemplateVariables.User;import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.DefaultComboBoxModel;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.sql.Connection;
import java.sql.Statement;
import java.awt.event.ActionEvent;
import javax.swing.SwingConstants;
import javax.swing.JCheckBox;public class register_frame {private JFrame register;private JTextField textField_username;private JTextField textField_password;private JTextField textField_rightKey;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {register_frame window = new register_frame();window.register.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the application.*/public register_frame() {initialize();}/*** Initialize the contents of the frame.*/private void initialize() {register = new JFrame();register.getContentPane().setBackground(Color.PINK);register.getContentPane().setForeground(Color.LIGHT_GRAY);register.setBounds(100, 100, 450, 300);register.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);register.setLocationRelativeTo(null);//将登录界面置于屏幕中间JLabel label_register = new JLabel("\u7528\u6237\u6CE8\u518C");label_register.setFont(new Font("方正粗黑宋简体", Font.PLAIN, 25));JLabel label_user = new JLabel("\u7528\u6237\u540D\uFF1A");label_user.setFont(new Font("楷体", Font.PLAIN, 19));JLabel label_password = new JLabel("\u5BC6\u7801\uFF1A");label_password.setFont(new Font("楷体", Font.PLAIN, 19));textField_username = new JTextField();textField_username.setColumns(10);textField_password = new JPasswordField();((JPasswordField) textField_password).setEchoChar('*');textField_password.setColumns(10);JComboBox comboBox_user = new JComboBox();comboBox_user.setModel(new DefaultComboBoxModel(new String[] {"\u5B66\u751F", "\u8001\u5E08"}));JLabel label_select = new JLabel("\u7528\u6237\u7C7B\u578B\uFF1A");label_select.setFont(new Font("楷体", Font.PLAIN, 17));//注册确认按钮板块JButton button_right = new JButton("\u786E\u5B9A");button_right.addActionListener(new ActionListener() {/*注册确认按钮实现的代码*/public void actionPerformed(ActionEvent e) {if (e.getSource()==button_right) {//用户点击了确认按钮/*判断用户行为,显示相应窗口*/if (textField_username.getText().toString().equals("")) {JOptionPane.showMessageDialog(null, "请输入用户名和密码","友情提示",2);//用户用户名和密码均未输入}else if (textField_password.getText().toString().equals("")) {JOptionPane.showMessageDialog(null, "请输入密码","友情提示",2);//用户未输入密码}else if (textField_username.getText().toString().equals("")) {JOptionPane.showMessageDialog(null, "请输入用户名","友情提示",2);//用户未输入用户名}else if (textField_rightKey.getText().toString().equals("")) {JOptionPane.showMessageDialog(null, "请确认密码,保证两次输入密码相同","友情提示",2);//用户未确认密码}else {//用户所有信息均已输入且满足确认的要求if (textField_rightKey.getText().toString().equals(textField_password.getText().toString())) {//两次输入密码相同if (comboBox_user.getSelectedItem().toString().equals("老师")) {//判断出用户类型为老师String sql="Insert Into register_teacher(username,password) values(?,?)";//编写sql语句sqlUpdate.update(sql, textField_username.getText().toString(),textField_password.getText().toString());//调用自定义函数将老师的账号和密码插入到数据库中JOptionPane.showMessageDialog(null, "注册成功");}else {//判断出用户类型为学生String sql="Insert Into register_student(username,password) values(?,?)";//编写sql语句sqlUpdate.update(sql, textField_username.getText().toString(),textField_password.getText().toString());//调用自定义函数将学生的账号和密码插入到数据库中JOptionPane.showMessageDialog(null, "注册成功");}new xt_application().main(null);//打开登录窗口register.dispose();//关闭注册窗口}else {//两次输入密码不同JOptionPane.showMessageDialog(null, "两次输入的密码不一致","友情提示",2);}}}}});button_right.setFont(new Font("微软雅黑 Light", Font.BOLD, 17));//注册返回按钮板块/*返回按钮代码实现*/JButton button_back = new JButton("\u8FD4\u56DE");button_back.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (e.getSource()==button_back) {new xt_application().main(null);//打开登录窗口register.dispose();//关闭注册窗口}}});button_back.setFont(new Font("微软雅黑 Light", Font.BOLD, 17));JButton button_exit = new JButton("\u9000\u51FA");button_exit.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (e.getSource()==button_exit) {int isExit=JOptionPane.showConfirmDialog(null, "您确定要退出系统吗?","友情提示",JOptionPane.YES_NO_OPTION);//提示用户是否要退出系统if (isExit==0) {register.dispose();}}}});button_exit.setFont(new Font("微软雅黑 Light", Font.BOLD, 17));JLabel label_rightKey = new JLabel("\u786E\u8BA4\u5BC6\u7801\uFF1A");label_rightKey.setFont(new Font("楷体", Font.PLAIN, 19));textField_rightKey = new JPasswordField();((JPasswordField) textField_rightKey).setEchoChar('*');textField_rightKey.setColumns(10);//显示密码选项框板块/*显示密码选项框代码实现*/JCheckBox JcheckBox_pwd = new JCheckBox("\u663E\u793A\u5BC6\u7801");JcheckBox_pwd.addItemListener(new ItemListener() {@Overridepublic void itemStateChanged(ItemEvent e) {// TODO 自动生成的方法存根if (e.getStateChange()==ItemEvent.SELECTED) {((JPasswordField) textField_password).setEchoChar((char)0);}else {((JPasswordField) textField_password).setEchoChar('*');}}});JcheckBox_pwd.setFont(new Font("楷体", Font.PLAIN, 17));JcheckBox_pwd.setBackground(Color.PINK);JcheckBox_pwd.setForeground(Color.WHITE);//显示密码选项框板块/*显示密码选项框代码实现*/JCheckBox JchectBox_rightKey = new JCheckBox("\u663E\u793A\u5BC6\u7801");JchectBox_rightKey.addItemListener(new ItemListener() {@Overridepublic void itemStateChanged(ItemEvent e) {// TODO 自动生成的方法存根if (e.getStateChange()==ItemEvent.SELECTED) {((JPasswordField) textField_rightKey).setEchoChar((char)0);}else {((JPasswordField) textField_rightKey).setEchoChar('*');}}});JchectBox_rightKey.setBackground(Color.PINK);JchectBox_rightKey.setForeground(Color.WHITE);JchectBox_rightKey.setFont(new Font("楷体", Font.PLAIN, 17));GroupLayout groupLayout = new GroupLayout(register.getContentPane());groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGap(165).addComponent(label_register)).addGroup(groupLayout.createSequentialGroup().addGap(48).addGroup(groupLayout.createParallelGroup(Alignment.TRAILING).addComponent(label_user).addComponent(label_select).addComponent(label_rightKey).addComponent(label_password)).addPreferredGap(ComponentPlacement.RELATED).addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addComponent(comboBox_user, GroupLayout.PREFERRED_SIZE, 96, GroupLayout.PREFERRED_SIZE).addGroup(groupLayout.createSequentialGroup().addGroup(groupLayout.createParallelGroup(Alignment.TRAILING, false).addComponent(textField_rightKey, Alignment.LEADING).addComponent(textField_password, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 157, Short.MAX_VALUE)).addPreferredGap(ComponentPlacement.UNRELATED).addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false).addComponent(JchectBox_rightKey, 0, 0, Short.MAX_VALUE).addComponent(JcheckBox_pwd, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))).addComponent(textField_username, GroupLayout.PREFERRED_SIZE, 231, GroupLayout.PREFERRED_SIZE)).addGap(36)).addGroup(groupLayout.createSequentialGroup().addGap(72).addComponent(button_right, GroupLayout.PREFERRED_SIZE, 94, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.UNRELATED).addComponent(button_back, GroupLayout.PREFERRED_SIZE, 87, GroupLayout.PREFERRED_SIZE).addGap(18).addComponent(button_exit, GroupLayout.PREFERRED_SIZE, 85, GroupLayout.PREFERRED_SIZE))).addContainerGap()));groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addContainerGap().addComponent(label_register).addGap(18).addGroup(groupLayout.createParallelGroup(Alignment.TRAILING).addComponent(label_user).addComponent(textField_username, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(8).addGroup(groupLayout.createParallelGroup(Alignment.TRAILING).addComponent(label_password).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(textField_password, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(JcheckBox_pwd))).addPreferredGap(ComponentPlacement.RELATED).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(label_rightKey).addComponent(textField_rightKey, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(JchectBox_rightKey)).addGap(10).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(comboBox_user, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(label_select)).addGap(18).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(button_right).addComponent(button_back).addComponent(button_exit)).addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));register.getContentPane().setLayout(groupLayout);}
}

②用户登录窗口

用户登录界面的全部代码
/*用户登录界面的全部代码*/
package kcsj_mysqlOrjava;import java.awt.EventQueue;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JPasswordField;import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.sql.ResultSet;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import java.awt.Font;
import java.awt.HeadlessException;import javax.swing.SwingConstants;import org.eclipse.equinox.log.ExtendedLogReaderService;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.internal.win32.TCHITTESTINFO;import java.awt.Window;import com.mysql.cj.util.StringUtils;import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JComboBox;
import javax.security.auth.login.LoginContext;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JCheckBox;
import javax.swing.ImageIcon;public class xt_application {private JFrame login;private JTextField user_text;private JTextField key_text;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {xt_application window = new xt_application();window.login.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the application.*/public xt_application() {initialize();}/*** Initialize the contents of the frame.*/private void initialize() {login = new JFrame();login.getContentPane().setForeground(Color.LIGHT_GRAY);login.getContentPane().setBackground(Color.LIGHT_GRAY);login.setBackground(Color.LIGHT_GRAY);login.setBounds(100, 100, 849, 598);login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);login.setLocationRelativeTo(null);//将登录界面置于屏幕中间JLabel title = new JLabel("\u5B66\u751F\u7BA1\u7406\u7CFB\u7EDF");title.setBounds(532, 304, 164, 46);title.setHorizontalAlignment(SwingConstants.CENTER);title.setForeground(Color.GRAY);title.setFont(new Font("方正粗黑宋简体", Font.PLAIN, 25));title.setBackground(Color.BLACK);JLabel user = new JLabel("\u7528\u6237\u540D\uFF1A");user.setBounds(448, 363, 76, 22);user.setFont(new Font("楷体", Font.PLAIN, 19));JLabel key = new JLabel("\u5BC6\u7801\uFF1A");key.setBounds(467, 408, 57, 22);key.setFont(new Font("楷体", Font.PLAIN, 19));user_text = new JTextField();user_text.setBounds(532, 364, 243, 24);user_text.setColumns(10);key_text = new JPasswordField();key_text.setBounds(532, 409, 135, 24);key_text.setColumns(10);((JPasswordField) key_text).setEchoChar('*');JLabel user_type = new JLabel("\u7528\u6237\u7C7B\u578B\uFF1A");user_type.setBounds(439, 462, 85, 20);user_type.setFont(new Font("楷体", Font.PLAIN, 17));JComboBox user_type_comboBox = new JComboBox();user_type_comboBox.setBounds(532, 461, 128, 24);user_type_comboBox.setModel(new DefaultComboBoxModel(new String[] {"\u5B66\u751F", "\u8001\u5E08"}));user_type_comboBox.setToolTipText("");//登录按钮板块JButton button_login = new JButton("\u767B\u5F55");button_login.setBounds(430, 506, 94, 33);button_login.setFont(new Font("微软雅黑 Light", Font.BOLD, 17));/*登录按钮的代码实现*/button_login.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根String name=user_text.getText().toString();//用户名String key=key_text.getText().toString();//密码String idtf=user_type_comboBox.getSelectedItem().toString();if (e.getActionCommand().equals("登录")) {if (name.isEmpty()&&!key.isEmpty()) {//用户未输入用户名,只输入了密码JOptionPane.showMessageDialog(null,"用户名不能为空","友情提示",2);//弹出用户名为空的提示性对话框}else if (key.isEmpty()&&!name.isEmpty()) {//用户只输入了用户名而未输入密码JOptionPane.showMessageDialog(null, "密码不能为空","友情提示",2);//弹出密码为空的提示性对话框}else if (key.isEmpty()&&name.isEmpty()) {//用户均未输入用户名和密码JOptionPane.showMessageDialog(null, "用户名和密码不能为空","友情提示",2);//弹出用户名和密码均为空的提示性对话框}else {if (idtf.equals("学生")) {//当用户类型为学生时try {if (name.equals(sqlUpdate.user_Query("select username from register_student where username=?", name))) {//在数据库中查询到指定用户名if (key.equals(sqlUpdate.pwd_Query("select password from register_student where password=?", key))) {//在数据库中查询到用户名所对应的密码stu_menu_frame f=new stu_menu_frame();//由于getId()未设置为静态方法,故必须新设对象一调用getId()方法f.getId(sqlUpdate.id_Query("select id from register_student where username=?", name));//调用stu_menu_frame中的getId()方法,达到传参的目的new stu_menu_frame().main(null);//验证身份成功,登录成功login.dispose();//关闭登录页面}else {JOptionPane.showMessageDialog(null, "密码错误,请重新输入","友情提示",2);//密码错误,验证身份失败,登录失败}}else {JOptionPane.showMessageDialog(null, "用户名不存在","友情提示",2);//用户名不存在或者用户类型不符合}} catch (HeadlessException e1) {// TODO 自动生成的 catch 块e1.printStackTrace();} catch (Exception e1) {// TODO 自动生成的 catch 块e1.printStackTrace();}}else {//当用户类型为老师时try {if (name.equals(sqlUpdate.user_Query("select username from register_teacher where username=?", name))) {//在数据库中查询到指定用户名if (key.equals(sqlUpdate.pwd_Query("select password from register_teacher where password=?", key))) {//在数据库中查询到用户名所对应的密码tea_menu_frame tea=new tea_menu_frame();//由于getId()未设置为静态方法,故必须新设对象——调用getId()方法tea.getId(sqlUpdate.id_Query("select id from register_teacher where username=?", name));//调用tea_menu_frame中的getId()方法,达到传参的目的new tea_menu_frame().main(null);//验证身份成功,登录成功login.dispose();//关闭登录页面}else {JOptionPane.showMessageDialog(null, "密码错误,请重新输入","友情提示",2);//密码错误,验证身份失败,登录失败}}else {JOptionPane.showMessageDialog(null, "用户名不存在","友情提示",2);//用户名不存在或者用户类型不符合}} catch (HeadlessException e1) {// TODO 自动生成的 catch 块e1.printStackTrace();} catch (Exception e1) {// TODO 自动生成的 catch 块e1.printStackTrace();}}}}}});//重置按钮板块JButton button_resetting = new JButton("\u91CD\u7F6E");button_resetting.setBounds(557, 506, 91, 33);button_resetting.setFont(new Font("微软雅黑 Light", Font.BOLD, 17));/*重置按钮的代码实现*/button_resetting.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根user_text.setText("");/*将输入框置空*/key_text.setText("");user_type_comboBox.setSelectedIndex(0);}});//退出按钮板块JButton button_exit = new JButton("\u9000\u51FA");button_exit.setBounds(687, 506, 88, 33);button_exit.setFont(new Font("微软雅黑 Light", Font.BOLD, 17));/*退出按钮的代码实现*/button_exit.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根if (e.getActionCommand().toString().equals("退出")) {//捕获到用户行为int isExit = JOptionPane.showConfirmDialog(null, "您确定要退出系统吗?","友情提示",JOptionPane.YES_NO_OPTION);//提示用户是否要退出系统if(isExit==0) login.dispose();//退出系统}}});//用户注册按钮板块JButton button_register = new JButton("\u6CE8\u518C");button_register.setBounds(687, 455, 88, 33);/*注册按钮的代码实现(直接退出登录窗口,打开注册窗口)*/button_register.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {new register_frame().main(null);//打开注册login.dispose();//关闭登录窗口}});button_register.setFont(new Font("微软雅黑 Light", Font.BOLD, 17));//显示密码的选择框JCheckBox checkBox_toSeeKey = new JCheckBox("\u663E\u793A\u5BC6\u7801");checkBox_toSeeKey.setBounds(671, 406, 93, 29);checkBox_toSeeKey.addItemListener(new ItemListener() {@Overridepublic void itemStateChanged(ItemEvent e) {// TODO 自动生成的方法存根if (e.getStateChange()==ItemEvent.SELECTED) {//选择框被选中((JPasswordField) key_text).setEchoChar((char)0);}else {((JPasswordField) key_text).setEchoChar('*');//将密码显示为*加密后的密文}}});checkBox_toSeeKey.setForeground(Color.WHITE);checkBox_toSeeKey.setFont(new Font("楷体", Font.PLAIN, 17));checkBox_toSeeKey.setBackground(Color.LIGHT_GRAY);login.getContentPane().setLayout(null);login.getContentPane().add(user);login.getContentPane().add(key);login.getContentPane().add(button_login);login.getContentPane().add(user_type);login.getContentPane().add(title);login.getContentPane().add(button_resetting);login.getContentPane().add(user_type_comboBox);login.getContentPane().add(button_register);login.getContentPane().add(button_exit);login.getContentPane().add(key_text);login.getContentPane().add(checkBox_toSeeKey);login.getContentPane().add(user_text);JPanel panel = new JPanel();panel.setBounds(0, 0, 363, 557);login.getContentPane().add(panel);panel.setLayout(null);JLabel lblNewLabel = new JLabel("New label");lblNewLabel.setIcon(new ImageIcon(xt_application.class.getResource("/images/\u594B\u6597.png")));lblNewLabel.setBounds(0, -19, 363, 600);panel.add(lblNewLabel);JPanel panel_1 = new JPanel();panel_1.setBounds(362, 0, 469, 302);login.getContentPane().add(panel_1);panel_1.setLayout(null);JLabel lblNewLabel_1 = new JLabel("");lblNewLabel_1.setIcon(new ImageIcon(xt_application.class.getResource("/images/\u9633\u5149\u4E0B.jpeg")));lblNewLabel_1.setBounds(0, -29, 469, 341);panel_1.add(lblNewLabel_1);}
}

③学生主页面

学生主页面的全部代码
/*学生主页面的全部代码*/
package kcsj_mysqlOrjava;import java.awt.EventQueue;import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.security.auth.login.LoginContext;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.event.MenuDragMouseEvent;
import javax.swing.event.MenuDragMouseListener;import org.eclipse.swt.internal.mozilla.nsIWebBrowser;
import org.eclipse.swt.internal.win32.TCHITTESTINFO;
import org.omg.PortableServer.SERVANT_RETENTION_POLICY_ID;import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JDesktopPane;
import java.awt.Color;
import javax.swing.SwingConstants;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;import javax.swing.JButton;
import javax.swing.LayoutStyle.ComponentPlacement;public class stu_menu_frame {private JFrame menu_frame;private static int s_id;//设置student表中的id号public void getId(int id) {s_id=id;//接收来自register_student表中的id号,在后续操作中将该id号值赋予student表id栏目值}/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {stu_menu_frame window = new stu_menu_frame();window.menu_frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the application.*/public stu_menu_frame() {initialize();}/*** Initialize the contents of the frame.*/private void initialize() {menu_frame = new JFrame();menu_frame.getContentPane().setBackground(Color.PINK);menu_frame.setBounds(100, 100, 450, 300);menu_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);menu_frame.setLocationRelativeTo(null);JMenuBar menuBar = new JMenuBar();menu_frame.setJMenuBar(menuBar);JMenu menu_xtsz = new JMenu("\u83DC\u5355");menuBar.add(menu_xtsz);/*菜单中菜单项修改密码的按钮板块*/JMenuItem menuItem_change_key = new JMenuItem("\u4FEE\u6539\u5BC6\u7801");menu_xtsz.add(menuItem_change_key);menuItem_change_key.addMouseListener(new MouseListener() {@Overridepublic void mouseReleased(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mousePressed(MouseEvent e) {// TODO 自动生成的方法存根if (e.getSource()==menuItem_change_key) {//捕获到用户点击了菜单项修改密码的按钮stu_change_key_frame change_key=new stu_change_key_frame();//由于change_key_frame类中的getId()方法不是静态方法,所以必须先创建对象change_key.getId(s_id);//调用getId()传参new stu_change_key_frame().main(null);//打开修改密码的窗口menu_frame.dispose();//关闭菜单窗口}}@Overridepublic void mouseExited(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mouseEntered(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mouseClicked(MouseEvent e) {}// TODO 自动生成的方法存根});/*菜单中菜单项返回登录页面的按钮板块*/JMenuItem menuItem_back_xt = new JMenuItem("\u8FD4\u56DE\u767B\u5F55\u754C\u9762");menu_xtsz.add(menuItem_back_xt);menuItem_back_xt.addMouseListener(new MouseListener() {@Overridepublic void mouseReleased(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mousePressed(MouseEvent e) {// TODO 自动生成的方法存根if (e.getSource()==menuItem_back_xt) {//捕获到用户点击了返回登录界面的菜单选项new xt_application().main(null);//打开登录窗口menu_frame.dispose();//关闭菜单窗口}}@Overridepublic void mouseExited(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mouseEntered(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mouseClicked(MouseEvent e) {}// TODO 自动生成的方法存根});/*菜单中菜单项退出系统的按钮板块*/JMenuItem menuItem_exit = new JMenuItem("\u9000\u51FA\u7CFB\u7EDF");menu_xtsz.add(menuItem_exit);menuItem_exit.addMouseListener(new MouseListener() {@Overridepublic void mouseReleased(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mousePressed(MouseEvent e) {// TODO 自动生成的方法存根if (e.getSource()==menuItem_exit) {int isExit = JOptionPane.showConfirmDialog(null, "您确定要退出系统吗?","友情提示",JOptionPane.YES_NO_OPTION);if (isExit==0) {menu_frame.dispose();}}}@Overridepublic void mouseExited(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mouseEntered(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mouseClicked(MouseEvent e) {}// TODO 自动生成的方法存根});JMenu menu_finInfomation = new JMenu("\u5B8C\u5584\u4FE1\u606F");menuBar.add(menu_finInfomation);JMenuItem menuItem_confirm = new JMenuItem("\u5B9E\u540D\u8BA4\u8BC1");menu_finInfomation.add(menuItem_confirm);menuItem_confirm.addMouseListener(new MouseListener() {@Overridepublic void mouseReleased(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mousePressed(MouseEvent e) {// TODO 自动生成的方法存根if (e.getSource()==menuItem_confirm) {try {confrim_frame confrim=new confrim_frame();//由于getId()并没有设置为confrim_frame类中的静态方法,所以必须新建立对象才能调用方法confrim.getId(s_id);//想confrim_frame类中传参/*isId是id_Query()方法的返回值,若数据库中已存在该s_id号,方法返回值为id值,说明在此之前用户已经完善过信息,无需完善,若方法返回0值,说明此前用户未完善信息*/int isId = sqlUpdate.id_Query("select id from student where id=?", s_id);//查找数据库中是否存在登录界面传来的id号if (isId!=0) {//若id号存在说明该用户无需完善信息JOptionPane.showMessageDialog(null, "信息已足够完善","友情提示",2);}else {//若id号不存在说明该用户是新用户,需要完善信息new confrim_frame().main(null);//打开完善信息页面}} catch (Exception e2) {// TODO: handle exceptione2.printStackTrace();}}}@Overridepublic void mouseExited(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mouseEntered(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mouseClicked(MouseEvent e) {}// TODO 自动生成的方法存根});JMenu menu_query = new JMenu("\u67E5\u8BE2\u4FE1\u606F");menuBar.add(menu_query);/*查询信息中的基本信息板块*/JMenuItem menuItem_queryInformation = new JMenuItem("\u57FA\u672C\u4FE1\u606F");menu_query.add(menuItem_queryInformation);menuItem_queryInformation.addMouseListener(new MouseListener() {@Overridepublic void mouseReleased(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mousePressed(MouseEvent e) {// TODO 自动生成的方法存根if (e.getSource()==menuItem_queryInformation) {stu_queryInformation queryInformation=new stu_queryInformation();//由于stu_queryInformation是非静态方法,所以必须先创建对象queryInformation.getId(s_id);//调用方法传参new stu_queryInformation().main(null);menu_frame.dispose();}}@Overridepublic void mouseExited(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mouseEntered(MouseEvent e) {}// TODO 自动生成的方法存根@Overridepublic void mouseClicked(MouseEvent e) {}// TODO 自动生成的方法存根});JMenuItem menuItem_change = new JMenuItem("\u5B66\u7C4D\u53D8\u66F4");menu_query.add(menuItem_change);menuItem_change.addMouseListener(new MouseListener() {@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mousePressed(MouseEvent e) {// TODO 自动生成的方法存根stu_query_xj s=new stu_query_xj();//由于getId()未被定义为静态方法,所以必须创建对象s.getId(s_id);menu_frame.dispose();//关闭当前窗口new stu_query_xj().main(null);//打开新窗口}@Overridepublic void mouseExited(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic void mouseClicked(MouseEvent e) {}});JMenuItem menuItem_great = new JMenuItem("\u5956\u52B1\u8BB0\u5F55");menu_query.add(menuItem_great);menuItem_great.addMouseListener(new MouseListener() {@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mousePressed(MouseEvent e) {// TODO 自动生成的方法存根stu_query_reward s=new stu_query_reward();//由于getId()未被定义为静态方法,所以必须创建对象s.getId(s_id);menu_frame.dispose();//关闭当前窗口new stu_query_reward().main(null);//打开新窗口}@Overridepublic void mouseExited(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic void mouseClicked(MouseEvent e) {}});JMenuItem menuItem_bad = new JMenuItem("\u5904\u5206\u8BB0\u5F55");menu_query.add(menuItem_bad);menuItem_bad.addMouseListener(new MouseListener() {@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mousePressed(MouseEvent e) {// TODO 自动生成的方法存根stu_query_punish s=new stu_query_punish();//由于getId()未被定义为静态方法,所以必须创建对象s.getId(s_id);menu_frame.dispose();//关闭当前窗口new stu_query_punish().main(null);//打开新窗口}@Overridepublic void mouseExited(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic void mouseClicked(MouseEvent e) {}});JLabel label_welcome = new JLabel("\u6B22\u8FCE\u6765\u5230\u5B66\u751F\u7BA1\u7406\u7CFB\u7EDF");label_welcome.setForeground(Color.WHITE);label_welcome.setFont(new Font("华文行楷", Font.BOLD, 31));label_welcome.setHorizontalAlignment(SwingConstants.TRAILING);JButton button_stuToDo = new JButton("\u5B66\u751F\u624B\u518C");JLabel label_prompt = new JLabel("\u6E29\u99A8\u63D0\u793A\uFF1A\u65B0\u624B\u5165\u5B66\u8BF7\u5148\u9605\u8BFB\u5B66\u751F\u624B\u518C\uFF0C\u5E76\u5B8C\u5584\u4E2A\u4EBA\u4FE1\u606F");label_prompt.setForeground(Color.RED);label_prompt.setFont(new Font("华文楷体", Font.PLAIN, 15));label_prompt.setHorizontalAlignment(SwingConstants.TRAILING);GroupLayout groupLayout = new GroupLayout(menu_frame.getContentPane());groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.TRAILING).addGroup(groupLayout.createSequentialGroup().addContainerGap(53, Short.MAX_VALUE).addComponent(label_welcome).addGap(49)).addGroup(groupLayout.createSequentialGroup().addContainerGap(33, Short.MAX_VALUE).addComponent(label_prompt).addGap(24)).addGroup(Alignment.LEADING, groupLayout.createSequentialGroup().addGap(167).addComponent(button_stuToDo).addContainerGap(172, Short.MAX_VALUE)));groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGap(45).addComponent(label_welcome).addGap(23).addComponent(button_stuToDo).addPreferredGap(ComponentPlacement.UNRELATED).addComponent(label_prompt).addContainerGap(66, Short.MAX_VALUE)));menu_frame.getContentPane().setLayout(groupLayout);}
}

④创建学生类

学生类的全部代码
/*学生类的全部代码*/
package kcsj_mysqlOrjava;public class Student {private int studentId;public Student(int studentId2, String name2, String sex2, int classid2, String collage2, String born2,String resident2) {// TODO 自动生成的构造函数存根this.studentId=studentId2;this.name=name2;this.sex=sex2;this.classid=classid2;this.collage=collage2;this.born=born2;this.resident=resident2;}public int getStudentId() {return studentId;}public void setStudentId(int studentId) {this.studentId = studentId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getClassid() {return classid;}public void setClassid(int classid) {this.classid = classid;}public String getCollage() {return collage;}public void setCollage(String collage) {this.collage = collage;}public String getBorn() {return born;}public void setBorn(String born) {this.born = born;}public String getResident() {return resident;}public void setResident(String resident) {this.resident = resident;}public String getXj_information() {return xj_information;}public void setXj_information(String xj_information) {this.xj_information = xj_information;}public String getReward_information() {return reward_information;}public void setReward_information(String reward_information) {this.reward_information = reward_information;}public String getPunish_information() {return punish_information;}public void setPunish_information(String punish_information) {this.punish_information = punish_information;}public String getIsRight() {return isRight;}public void setIsRight(String isRight) {this.isRight = isRight;}private String name;private String sex;private int classid;private String collage;private String born;private String resident;private String xj_information;private String reward_information;private String punish_information;private String isRight;
}

⑤封装连接数据库和查找语句的类

封装类的全部代码
/*封装类的全部代码*/
package kcsj_mysqlOrjava;import java.awt.List;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;import javax.management.RuntimeErrorException;import com.mysql.cj.PerConnectionLRUFactory;public class sqlUpdate {/*执行增删改查*/public static int update(String sql,Object...params) {//执行增删改查try {//1、获取连接Connection con = connection.getConnection();//2、执行sql语句PreparedStatement statement=con.prepareStatement(sql);for (int i = 0; i < params.length; i++) {statement.setObject(i+1, params[i]);}int update=statement.executeUpdate();return update;} catch (Exception e) {// TODO: handle exceptionthrow new RuntimeException(e);}}/*查询学生的姓名*/public static String name_query(String sql,Object...params) throws Exception{Connection con=null;PreparedStatement statement=null;ResultSet set=null;try {con=connection.getConnection();statement=con.prepareStatement(sql);for (int i = 0; i < params.length; i++) {statement.setObject(i+1, params[i]);}set=statement.executeQuery();if (set.next()) {return set.getString("s_name");}return null;} catch (Exception e) {// TODO: handle exceptionthrow new RuntimeException(e);}finally {connection.close(set, con);}}/*查询学生的学籍和奖励和处分信息*/public static String xj_rReward_Punish_query(String sql,Object...params) throws Exception{Connection con=null;PreparedStatement statement=null;ResultSet set=null;try {con=connection.getConnection();statement=con.prepareStatement(sql);for (int i = 0; i < params.length; i++) {statement.setObject(i+1, params[i]);}set=statement.executeQuery();if (set.next()) {return set.getString("DESCRIPTION");}return null;} catch (Exception e) {// TODO: handle exceptionthrow new RuntimeException(e);}finally {connection.close(set, con);}}/*查询学生的处分是否生效*/public static String IsPunish_query(String sql,Object...params) throws Exception{Connection con=null;PreparedStatement statement=null;ResultSet set=null;try {con=connection.getConnection();statement=con.prepareStatement(sql);for (int i = 0; i < params.length; i++) {statement.setObject(i+1, params[i]);}set=statement.executeQuery();if (set.next()) {return set.getString("ENABLE");}return null;} catch (Exception e) {// TODO: handle exceptionthrow new RuntimeException(e);}finally {connection.close(set, con);}}/*查询学生的相关信息并返回该学生*/public static java.util.List<Student> Student_Query(String sql,Object...params) throws Exception {Connection con=null;PreparedStatement statement=null;ResultSet set=null;try {//1、获取连接con=connection.getConnection();//2、执行查询statement=con.prepareStatement(sql);for (int i = 0; i < params.length; i++) {statement.setObject(i+1, params[i]);}set=statement.executeQuery();java.util.List<Student> list=new ArrayList<>();while (set.next()) {int studentId=set.getInt("s_studentid");String name=set.getString("s_name");String sex=set.getString("s_sex");int classid=set.getInt("s_classid");String collage=set.getString("s_collage");String born=set.getString("s_born");String resident=set.getString("s_resident");Student stu=new Student(studentId, name, sex, classid, collage, born, resident);list.add(stu);}return list;} catch (Exception e) {// TODO: handle exceptionthrow new RuntimeException(e);}finally {connection.close(set, con);}}/*查询用户名*/public static String user_Query(String sql,Object...params) throws Exception {Connection con=null;PreparedStatement statement=null;ResultSet set=null;try {//1、获取连接con=connection.getConnection();//2、执行查询statement=con.prepareStatement(sql);for (int i = 0; i < params.length; i++) {statement.setObject(i+1, params[i]);}set=statement.executeQuery();if (set.next()) {return set.getString("username");}return null;} catch (Exception e) {// TODO: handle exceptionthrow new RuntimeException(e);}finally {connection.close(set, con);}}/*查询学籍代码的描述*/public static String description_Query(String sql,Object...params) throws Exception {Connection con=null;PreparedStatement statement=null;ResultSet set=null;try {con=connection.getConnection();statement=con.prepareStatement(sql);for (int i = 0; i < params.length; i++) {statement.setObject(i+1, params[i]);}set=statement.executeQuery();if (set.next()) {return set.getString("DESCRIPTION");}return null;} catch (Exception e) {// TODO: handle exceptionthrow new RuntimeException(e);}finally {connection.close(set, con);}}/*查询密码*/public static String pwd_Query(String sql,Object...params) throws Exception {Connection con=null;PreparedStatement statement=null;ResultSet set=null;try {//1、获取连接con=connection.getConnection();//2、执行查询statement=con.prepareStatement(sql);for (int i = 0; i < params.length; i++) {statement.setObject(i+1, params[i]);}set=statement.executeQuery();if (set.next()) {return set.getString("password");}return null;} catch (Exception e) {// TODO: handle exceptionthrow new RuntimeException(e);}finally {connection.close(set, con);}}/*查询id号*/public static int id_Query(String sql,Object...params) throws Exception {Connection con=null;PreparedStatement statement=null;ResultSet set=null;try {//1、获取连接con=connection.getConnection();//2、执行查询statement=con.prepareStatement(sql);for (int i = 0; i < params.length; i++) {statement.setObject(i+1, params[i]);}set=statement.executeQuery();if (set.next()) {return set.getInt("id");}else return 0;} catch (Exception e) {// TODO: handle exceptionthrow new RuntimeException(e);}finally {connection.close(set, con);}}
}

⑥老师录入学籍信息奖励信息和处分信息的窗口

老师录入学籍信息的窗口

老师录入奖励信息的窗口

老师录入处分信息的窗口

⑦老师查找学生信息的窗口

六、总结

以上展示了此项目的部分代码,页面算不上美观,有不足的地方还请各位大佬指正。

基于Java Swing+mysql的学生信息管理系统相关推荐

  1. (解析+源码)基于JAVA Swing+MySQL实现学生信息管理系统(增、删、改、查)数据库/文件存储

    根据学校对学生信息日常管理需要,学生信息管理系统包括以下功能: 登录系统: 新建学生信息:添加学生信息: 删除学生信息:对指定学生信息进行删除: 修改学生信息:对指定学生信息进行修改 查找学生信息:输 ...

  2. 基于Java+Swing+Mysql实现汽车信息管理系统

    基于Java+Swing+Mysql实现汽车信息管理系统 一.系统介绍 二.功能展示 1.登陆 2.车辆信息 3.车辆入库 4.车辆出库 5.车辆查询 6.车辆信息修改 三.数据库 四.其它 1.其他 ...

  3. 【Java课程设计】基于Java Swing+MySQL的学生基本信息管理系统----附git仓库地址

    一.项目简介 功能描述: 基于Java Swing+MySQL的学生基本信息管理系统,支持对学院.班级.学生信息的增删改查. 参考git地址或博客地址: https://www.bilibili.co ...

  4. Eclipse+Java+Swing+Mysql实现学生信息管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库 二.系统展示 1.注册系统 2.登录系统 3.系统主页面 4.添加学生信息 5.修改学生信息 6.查询学生信息 三.部分代码 ...

  5. 基于JAVA+SpringMVC+MYSQL的学生信息管理系统

    项目功能: 々. 这个程序可以允许管理员创建新用户和删除旧用户. 々. 管理员可以查看所有用户的具体信息,例如姓名,电话,家庭住址,家长电话. 々. 如果学生外出,管理员可以对这些外出学生进行编辑.可 ...

  6. 基于Java+Swing+mysql餐厅点餐管理系统

    基于Java+Swing+mysql餐厅点餐管理系统 一.系统介绍 二.功能展示 1.用户登陆 2.用户注册(顾客) 3.顾客可以点餐 4.顾客可以查看订单信息 5.顾客可以修改个人信息 6.新增套餐 ...

  7. Eclipse+Java+Swing+Mysql实现员工信息管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库 二.系统展示 1.登录系统 2.主页面 3.部门管理 4.职位管理 5.员工管理 三.部分代码 AdminDao.java D ...

  8. 基于Java和MySql的产业信息管理系统的设计与实现 毕业设计-附源码260839

    ssm产业信息管理系统 摘 要 随着社会的发展,社会的方方面面都在利用信息化时代的优势.互联网的优势和普及使得各种系统的开发成为必需. 本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采 ...

  9. ssm基于Java和MySql的产业信息管理系统的设计与实现毕业设计源码260839

    ssm产业信息管理系统 摘 要 随着社会的发展,社会的方方面面都在利用信息化时代的优势.互联网的优势和普及使得各种系统的开发成为必需. 本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采 ...

最新文章

  1. PMCAFF微课堂 | 产品汪如何做好“时间管理”让效率提高100倍
  2. python的字符串_百度资讯搜索_python的字符串
  3. html5遍历集合数据,HTMLCollection集合能打印出来值,但是无法获取每一个值。
  4. spring mvc 实现单文件 || 多文件上传
  5. Microsoft Hololens开发上手(4)
  6. 学成在线案例——黑马程序员pink老师\思路讲解\完整源代码
  7. oracle:oracle基础知识(二)
  8. 在 Confluence 6 中的 Jira 高级权限
  9. 1.3、解析并创建ApplicationListener(ok)
  10. 路透社:美国打算限制英伟达等与中国人工智能界合作
  11. iterator adapter reverse_iterator
  12. 异常为当IDENTITY_INSERT设置为OFF时 的解决
  13. 多级队列调度算法可视化界面_多级反馈队列调度算法
  14. i.MX6ULL驱动开发 | 10 - 修改LCD驱动点亮LCD显示小企鹅logo
  15. Python爬取上交所年报下载并转成TXT
  16. Baidu Expressive TTS《Multi-reference Tacotron by Intercross Training for Style Disentangling...》
  17. 初一数学绩差,需要补习初一数学吗?
  18. 最新Win10离线安装.NET Framework 3.5的方法(不需要离线包,只需原版系统安装包,亲测完美快捷有效)
  19. 算法分析——Hanoi塔问题
  20. hiredis使用简介

热门文章

  1. JAP关联MyBatis
  2. 玩转云服务器——前言
  3. mysql mysqldbcompare 比较两个数据库间的结构差异、数据差异
  4. 校园跑腿|前后端分离跑腿项目Springboot+vue
  5. java简介_Java简介
  6. 判断一个向量在另外一个向量左边还是右边
  7. 手里有3~5万元,2023年想创业,做什么项目好?
  8. 基于深度学习的Wiki中文语料词word2vec向量模型
  9. 计算机未来的发展趋势的大概意思,简述计算机的发展趋势是什么
  10. 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day7-综合练习