java学生通讯录管理系统

设计要求

本课程设计,涉及输入输出、GUI设计、数据库操作等本课程重要概念和编程技能,全面巩固和加深学生对java程序设计的相关概念的理解,全面强化java编程技能,培养学生综合运用所学知识和技能分析问题和解决问题的能力。培养学生的团队精神和协作能力。
课程设计内容要求:

一、数据库设计:

创建库mydb(在mysql中进行)
数据表设计:

1. 学生通讯信息表

employee:no, name, sex, class, phone,email

二、功能设计:

  1. 功能模块选择菜单
  2. 用户登录
    3.录入模块:
    学生信息表按相应id录入。
  3. 数据的插入、修改、删除

三、界面设计:

1.用户登录
2.主窗体

四、设计要求:

  1. 采用GUI编程
    2.画出功能模块图
    3.Java GUI编程实现,要求:
  2. 各功能模块功能清晰、单一。
  3. 各功能模块命名规范
  4. 界面友好
  5. 代码注释完整,准确。

一、功能介绍

该系统主要是用于管理学生基本通讯信息,主要功能包括两方面的:
1.管理学生信息,其中包括添加,删除,修改等操作。
2.查询信息,其中查询学生电话、邮件等信息。

二、设计过程

1.登录界面denglu.java

登录时,输入账号密码未填写、输入错误账号密码都会提出错误提示框。在填写正确账号和密码后,会提示正确并跳转到主窗体。
package 课程设计;

import java.awt.BorderLayout;
import java.awt.EventQueue;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;public class denglu extends JFrame {private JPanel contentPane;private JTextField textField;private JPasswordField passwordField;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {denglu frame = new denglu();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public denglu() {setTitle("登录界面\r\n");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 300);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);JLabel lblNewLabel = new JLabel("账号:");lblNewLabel.setBounds(33, 27, 68, 18);contentPane.add(lblNewLabel);JLabel lblNewLabel_1 = new JLabel("密码:");lblNewLabel_1.setBounds(33, 71, 68, 18);contentPane.add(lblNewLabel_1);textField = new JTextField();textField.setBounds(115, 24, 196, 24);contentPane.add(textField);textField.setColumns(10);passwordField = new JPasswordField();passwordField.setBounds(115, 68, 196, 24);contentPane.add(passwordField);JButton btnNewButton = new JButton("登录");btnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {if ((textField.getText().equals("admin")==false)||(passwordField.getText().equals("1234")==false)) {JOptionPane.showMessageDialog(null, "账号或者密码错误,请重新输入");textField.setText("");passwordField.setText("");}else{JOptionPane.showMessageDialog(null, "正确" );new zhuchuangti().setVisible(true);dispose();}}});btnNewButton.setBounds(33, 126, 113, 27);contentPane.add(btnNewButton);JButton btnNewButton_1 = new JButton("退出");btnNewButton_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.exit(0);}});btnNewButton_1.setBounds(198, 126, 113, 27);contentPane.add(btnNewButton_1);}}

2. 学生通讯录界面zhuchuangti.Java

学生通讯录有学号、姓名、班级、性别、邮箱、电话号码
package 课程设计;

import javax.activation.DataSource;
import javax.naming.spi.DirStateFactory.Result;
import javax.swing.*;import com.mysql.cj.jdbc.AbandonedConnectionCleanupThread;import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.sql.*;/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class zhuchuangti extends JFrame 
{public zhuchuangti() {}private JTextArea jTextArea1;private JLabel jLabel1;private JTextField jTextField1;private JLabel jLabel2;private JLabel jLabel3;private JLabel jLabel4;private JLabel jLabel5;private JLabel jLabel6;private JScrollPane jScrollPane1;private JButton jButton6;private JButton jButton5;private JButton jButton4;private JButton jButton3;private JButton jButton1;private JButton jButton2;private JTextField jTextField6;private JTextField jTextField5;private JTextField jTextField4;private JTextField jTextField3;private JTextField jTextField2;public static final String url = "jdbc:mysql://localhost:3306/mydb?useSSL=FALSE&serverTimezone=GMT";  public static final String name = "com.mysql.cj.jdbc.Driver";  public static final String user = "root";  public static final String password = "12345";  {this.setBounds(100,100,771,400);this.setTitle("学生通讯录管理系统");Container s= getContentPane();s.setBounds(-8, -30, 558, 362);{jScrollPane1 = new JScrollPane();s.add(jScrollPane1);jScrollPane1.setBounds(12, 12,720, 120);{jTextArea1 = new JTextArea();jScrollPane1.setViewportView(jTextArea1);jTextArea1.setBounds(12, 12, 460, 120);}}{jLabel1 = new JLabel();s.add(jLabel1);jLabel1.setText("\u5b66   \u53f7\uff1a");jLabel1.setBounds(12, 146, 48, 18);}{jTextField1 = new JTextField();s.add(jTextField1);jTextField1.setBounds(60, 144, 78, 24);}{jTextField2 = new JTextField();s.add(jTextField2);jTextField2.setBounds(226, 144, 78, 24);}{jLabel2 = new JLabel();s.add(jLabel2);jLabel2.setText("\u59d3\u540d\uff1a");jLabel2.setBounds(187, 146, 39, 18);}{jTextField3 = new JTextField();s.add(jTextField3);jTextField3.setBounds(394, 144, 78, 24);}{jLabel3 = new JLabel();s.add(jLabel3);jLabel3.setText("\u6027\u522b\uff1a");jLabel3.setBounds(355, 145, 39, 18);}{jLabel4 = new JLabel();s.add(jLabel4);jLabel4.setText("班级:");jLabel4.setBounds(12, 180, 54, 17);}{jTextField4 = new JTextField();s.add(jTextField4);jTextField4.setBounds(60, 180, 78, 24);}{jLabel5 = new JLabel();s.add(jLabel5);jLabel5.setText("电话:");jLabel5.setBounds(185, 180, 43, 17);}{jTextField5 = new JTextField();s.add(jTextField5);jTextField5.setBounds(226, 180, 78, 24);}{jLabel6 = new JLabel();s.add(jLabel6);jLabel6.setText("邮箱:");jLabel6.setBounds(355, 180, 43, 17);}{jTextField6 = new JTextField();s.add(jTextField6);jTextField6.setBounds(394, 180, 78, 24);}{jButton1 = new JButton();s.add(jButton1);jButton1.setText("显示学生信息");jButton1.setBounds(12, 221, 135, 24);jButton1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {System.out.println("jButton1.actionPerformed, event="+evt);//TODO add your code for jButton1.actionPerformedtry {Class.forName(name);System.out.println("驱动加载成功");} catch (ClassNotFoundException e) {// TODO: handle exceptionSystem.out.println("SQLException:"+e.getMessage());}try {Connection con=DriverManager.getConnection(url,user,password);Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery("select * from employee");jTextArea1.setText(null);while(rs.next()){jTextArea1.append("学号:"+rs.getString("no")+"\t");jTextArea1.append("姓名:"+rs.getString("name")+"\t");jTextArea1.append("性别:"+rs.getString("sex")+"\t");jTextArea1.append("班级:"+rs.getString("class")+"\t");jTextArea1.append("电话:"+rs.getString("phone")+"\t");jTextArea1.append("邮箱:"+rs.getString("mail")+"\n");}con.close();rs.close();stmt.close();} catch (Exception e) {// TODO: handle exception}}});}{jButton2 = new JButton();s.add(jButton2);jButton2.setText("查询学生信息");jButton2.setBounds(168, 221, 131, 24);jButton2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {System.out.println("jButton2.actionPerformed, event="+evt);//TODO add your code for jButton2.actionPerformedtry {Class.forName(name);System.out.println("驱动加载成功");} catch (ClassNotFoundException e) {// TODO: handle exceptionSystem.out.println("SQLException:"+e.getMessage());}try {Connection con=DriverManager.getConnection(url,user,password);Statement stmt=con.createStatement();String sqlstr="select * from employee where no='"+jTextField1.getText()+"'";ResultSet rs=stmt.executeQuery(sqlstr);while(rs.next()){jTextArea1.setText(null);jTextArea1.append("学号:"+rs.getString("no")+"\t");jTextArea1.append("姓名:"+rs.getString("name")+"\t");jTextArea1.append("性别:"+rs.getString("sex")+"\t");jTextArea1.append("班级:"+rs.getString("class")+"\t");jTextArea1.append("电话:"+rs.getString("phone")+"\t");jTextArea1.append("邮箱:"+rs.getString("mail")+"\n");}stmt.executeUpdate(sqlstr);con.close();rs.close();stmt.close();} catch (Exception e) {jTextField1.setText("");jTextField2.setText("");jTextField3.setText("");jTextField4.setText("");jTextField5.setText("");jTextField6.setText("");// TODO: handle exception}}});}{jButton3 = new JButton();s.add(jButton3);jButton3.setText("插入学生信息");jButton3.setBounds(321, 221, 140, 24);jButton3.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {System.out.println("jButton3.actionPerformed, event="+evt);//TODO add your code for jButton3.actionPerformedtry {Class.forName(name);System.out.println("驱动加载成功");} catch (ClassNotFoundException e) {// TODO: handle exceptionSystem.out.println("SQLException:"+e.getMessage());}try {Connection con=DriverManager.getConnection(url,user,password);Statement stmt=con.createStatement();String sqlstr="insert into employee values('"+jTextField1.getText()+"','"+jTextField2.getText()+"','"+jTextField3.getText()+"','"+jTextField4.getText()+"','"+jTextField5.getText()+"','"+jTextField6.getText()+"')";stmt.executeUpdate(sqlstr);con.close();stmt.close();jTextField1.setText("");jTextField2.setText("");jTextField3.setText("");jTextField4.setText("");jTextField5.setText("");jTextField6.setText("");} catch (Exception e) {// TODO: handle exception}}});}{jButton4 = new JButton();s.add(jButton4);jButton4.setText("修改学生信息");jButton4.setBounds(12, 260, 135, 24);jButton4.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {System.out.println("jButton4.actionPerformed, event="+evt);//TODO add your code for jButton4.actionPerformedtry {Class.forName(name);System.out.println("驱动加载成功");} catch (ClassNotFoundException e) {// TODO: handle exceptionSystem.out.println("SQLException:"+e.getMessage());}try {Connection con=DriverManager.getConnection(url,user,password);Statement stmt=con.createStatement();String sqlstr="update employee set " +"name='"+jTextField2.getText()+"'" +",sex='"+jTextField3.getText()+"'" +",class='"+jTextField4.getText()+"'" +",phone='"+jTextField5.getText()+"'" +",mail='"+jTextField6.getText()+"'" +"where no='"+jTextField1.getText()+"'";stmt.executeUpdate(sqlstr);con.close();stmt.close();jTextField1.setText("");jTextField2.setText("");jTextField3.setText("");jTextField4.setText("");jTextField5.setText("");jTextField6.setText("");} catch (Exception e) {// TODO: handle exception}}});}{jButton5 = new JButton();s.add(jButton5);jButton5.setText("删除学生信息");jButton5.setBounds(167, 260, 132, 24);jButton5.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {System.out.println("jButton5.actionPerformed, event="+evt);//TODO add your code for jButton5.actionPerformedtry {Class.forName(name);System.out.println("驱动加载成功");} catch (ClassNotFoundException e) {// TODO: handle exceptionSystem.out.println("SQLException:"+e.getMessage());}try {Connection con=DriverManager.getConnection(url,user,password);Statement stmt=con.createStatement();String sqlstr="delete from employee where no='"+jTextField1.getText()+"'";stmt.executeUpdate(sqlstr);con.close();stmt.close();jTextField1.setText("");jTextField2.setText("");jTextField3.setText("");jTextField4.setText("");jTextField5.setText("");jTextField6.setText("");} catch (Exception e) {// TODO: handle exception}}});}{jButton6 = new JButton();s.add(jButton6);jButton6.setText("\u9000\u51fa");jButton6.setBounds(321, 260, 140, 24);jButton6.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {System.out.println("jButton6.actionPerformed, event="+evt);//TODO add your code for jButton6.actionPerformedSystem.exit(0);}});}{	getContentPane().setLayout(null);this.setAlwaysOnTop(false);}}
}

三、界面展示

1登录:

在这里插入图片描述

2显示学生信息:

在这里插入图片描述

3查询学生信息:

在这里插入图片描述

4添加学生信息:

在这里插入图片描述

5修改学生信息:

在这里插入图片描述

6删除学生信息:

在这里插入图片描述

四、联系与交流

q:969060742 完整文档、代码、sql、程序资源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/140126.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python web开发(四): Bootstrap

1.初步了解 别人已经写好的CSS样式&#xff0c;我们可以直接引用 下载 Link-BootStrap 解压&#xff0c;并放入到当前项目中 引用 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</tit…

chatglm2微调—ptuning

Freeze: 即参数冻结&#xff0c;对原始模型部分参数进行冻结操作&#xff0c;仅训练部分参数&#xff0c;以达到在单卡或不进行TP或PP操作&#xff0c;就可以对大模型进行训练。 P-Tuning: 在输入的embedding层前&#xff0c;将prompt转换为可学习的额外一层embedding层. P-T…

SQL数据库管理工具RazorSQL mac中文版特点与功能

RazorSQL mac是一款功能强大的SQL数据库管理工具&#xff0c;它支持多种数据库&#xff0c;包括MySQL、Oracle、Microsoft SQL Server、SQLite、PostgreSQL等。 RazorSQL mac 软件特点和功能 多种数据库支持&#xff1a;RazorSQL支持多种数据库&#xff0c;用户可以通过一个工…

【ELK 使用指南 3】Zookeeper、Kafka集群与Filebeat+Kafka+ELK架构(附部署实例)

EFLKK 一、Zookeeper1.1 简介1.2 zookeeper的作用1.3 Zookeeper的特点1.5 Zookeeper的数据结构1.6 Zookeeper的应用场景1.7 Zookeeper的选举机制&#xff08;重要&#xff09;1.7.1 第一次启动时1.7.2 非第一次启动时 二、Zookeeper集群部署2.1 安装前准备2.2 安装 ZookeeperSt…

【音视频流媒体】 3、ffmpeg、ffplay、ffprobe 超详细介绍

文章目录 一、ffmpeg1.1 安装1.2 基本参数 二、ffprobe2.1 查编码格式2.2 查视频时长 五、视频转流5.1 MP4转H2645.2 H264转MP45.3 AVI转MP45.4 MP4转H265 六、视频文件6.1 播放6.2 filter 过滤器6.2.1 crop 6.3 视频截取6.4 视频拼接6.5 获取分辨率 七、视频和图7.1 视频抽帧7…

C++11——lambda表达式

文章目录 1. C98对自定义类型的排序2. lambda表达式语法2.1 捕捉列表 3. lambda底层原理 1. C98对自定义类型的排序 在C98中&#xff0c;想要对自定义类型就行排序&#xff0c;我们得自己写仿函数来表明我们相对哪一项进行排序 struct Student {Student(string name, long id…

15 | JPA 对 Web MVC 开发者做了哪些支持

我们使用 Spring Data JPA 的时候&#xff0c;一般都会用到 Spring MVC&#xff0c;Spring Data 对 Spring MVC 做了很好的支持&#xff0c;体现在以下几个方面&#xff1a; 支持在 Controller 层直接返回实体&#xff0c;而不使用其显式的调用方法&#xff1b;对 MVC 层支持标…

Yolov安全帽佩戴检测 危险区域进入检测 - 深度学习 opencv 计算机竞赛

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; Yolov安全帽佩戴检测 危险区域进入检测 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 该项目较为新颖&am…

绘制多个子图fig.add_subplot函数

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 绘制多个子图 fig.add_subplot函数 下列代码创建的子图网格大小是&#xff1f; import matplotlib.pyplot as plt fig plt.figure() ax fig.add_subplot(121) ax.plot([1, 2, 3, 4, 5], [1…

【Java学习之道】SQL语言的基本语法与操作

引言 对于初学者来说&#xff0c;数据库编程可能听起来有些复杂&#xff0c;但实际上&#xff0c;只要掌握了SQL语言的基本语法和操作&#xff0c;你就能够轻松地处理各种数据问题。本章将为你揭示SQL语言的魅力&#xff0c;帮助你快速入门数据库编程。 一、SQL语言简介 SQL…

【mysql】关于mysql的数据结构特点 索引特点

文章目录 二叉树红黑树 b treehash结构b tree索引存放特点myisamInnoDB 最左原则主键相关知识点缓存池淘汰机制 前言&#xff1a;翻自己博客 发现缺少mysql数据结构和索引相关内容 两年前整理的mysql知识点 一直存在于博主的笔记本里面 &#xff08;是的 纸质的那种笔记本 不是…

Camera BSP之GPIO/I2C/PMIC简介

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 一、GPIO介绍二、IC 总线概括三、PMIC 概括四、思考 一、GPIO介绍 GPIO&#xff1a;General Purpose Input Output &#xff08;通用输入/输出&#xf…