Java课设--学生信息管理系统(例1)

news2024/11/14 19:45:16

文章目录

  • 前提
  • 一、运行效果
  • 二、Text实现类
  • 三、Manage选择类
  • 四、StudentWay学生方法类
  • 五、StudnetSql数据库类


前题

例1为无使用GUI图形界面,例2使用GUI图形界面!

首先自己的JDBC驱动已经接好了,连接自己的数据库没有问题。连接数据库可以看其他博主教程,不是很难。

其次我用的是idea+SQL Server数据库。

最后我的数据的库名称为stu,表名称为student,可以自己创建一张,内容如下:


一、运行效果

 

  

所需四个类如下:

 

 

 


 

二、Text实现类

Text为实现所有类,含有main方法,源代码如下:

package 自我课设;

public class Text {
    public static void main(String[] args) {
        Manage manage = new Manage();
        manage.manager();
    }
}

  


三、Manage选择类

用于选择6种方法,运用case来选择,源代码如下:

package 自我课设;

import java.util.*;
public class Manage {
    public void manager(){
        StudentWay studentWay = new StudentWay();
        Scanner in = new Scanner(System.in);
        int flag = 0;
        while(true) {
            studentWay.printManage();
            System.out.println(" 请输入要执行的操作:");
            flag = in.nextInt();
            in.nextLine();
            if(flag == 6) break;
            else {
                switch (flag) {
                    case 1://查询全部
                        studentWay.selectStudent();
                        break;
                    case 2://添加信息
                        studentWay.addStudent();
                        break;
                    case 3://删除学生信息
                        studentWay.deleteStudent();
                        break;
                    case 4://修改学生信息
                        studentWay.updateStudent();
                        break;
                    case 5://查询相关信息
                        studentWay.selectOther();
                        break;
                }
            }
        }
    }
}

 


四、StudentWay学生方法类

写好增删查改的方法给到Manage去调用,源代码如下:

package 自我课设;

import java.util.Scanner;

public class StudentWay {
    StudentSql sql = new StudentSql();

    Scanner in = new Scanner(System.in);
    String sno = "", sname = " ", sex = " ", sage = " ", dept = " ";

    //输出界面图
    public void printManage() {
        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("                     6.退出                              ");
        System.out.println("--------------------------------------------------------");
    }

    //查询学生信息
    public void selectStudent() {
        System.out.println("查询全体学生信息:");
        System.out.print(sql.QuerySQL());
    }

    //删除学生信息
    public void deleteStudent() {
        System.out.println("请输入要删除的学生的学号:");
        sno = in.nextLine();
        System.out.print(sql.delete_student(sno));
    }

    //添加学生信息
    public void addStudent() {
        System.out.println("请输入要添加的学生的信息(以单个空格隔开):");
        String str = in.nextLine();
        String[] S = str.split(" ");
        sno = S[0];
        sname = S[1];
        sex = S[2];
        sage = S[3];
        dept = S[4];
        System.out.print(StudentSql.insert_student(sno, sname, sex, sage, dept));
    }

    //修改学生信息
    public void updateStudent() {
        System.out.println("请输入要修改的学生的学号:");
        sno = in.nextLine();
        System.out.println("请输入学生姓名、性别、年龄、学院,以单个空格隔开(学号不可修改):");
        String str2 = in.nextLine();
        String[] S2 = str2.split(" ");
        sname = S2[0];
        sex = S2[1];
        sage = S2[2];
        dept = S2[3];
        StudentSql.update_student(sno, sname, sex, sage, dept);
        System.out.println("修改成功!");
    }

    //查询分类的学生信息
    public void selectOther() {
        System.out.println(" 1.按学院查询   ");
        System.out.println(" 2.按学号查询  ");
        System.out.println(" 3.按性别查询  ");
        int FLG = Integer.parseInt(in.nextLine());
        //in.nextInt();
        switch (FLG) {
            case 1://按学院查询
                System.out.println("要查询的学院:");
                String temp_xueyuan = in.nextLine();
                System.out.print(sql.QuerySQL_dept(temp_xueyuan));
                break;
            case 2://按学号查询
                System.out.println("要查询学生的学号:");
                String temp_sno = in.nextLine();
                System.out.print(sql.QuerySQL_sno(temp_sno));
                break;
            case 3://按性别查询
                System.out.println("要查询的性别:");
                String temp_sex = in.nextLine();
                System.out.print(sql.QuerySQL_sex(temp_sex));
                break;
        }
    }
}


五、StudnetSql数据库类

StudentSql类写数据库的语句对数据库直接进行操作,然后给StudnetWay调用,源代码如下:

package 自我课设;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class StudentSql
{
    //连接数据库
    private static Connection getSQLConnection(String db,String user, String pwd)
    {
        Connection con = null;
        try
        {
            //Class.forName("net.sourceforge.jtds.jdbc.Driver");  查看驱动器JDBC是否导入成功
            //con = DriverManager.getConnection("jdbc:jtds:sqlserver://" + ip + ":1433/" + db + ";charset=utf8", user, pwd);
            //jdbc:jtds:sqlserver://localhost:1433/dbname
            //解决输出中文乱码
            con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;encrypt=false;DatabaseName="+ db , user, pwd);

        }catch (SQLException e) {
            e.printStackTrace();
        }
        return con;
    }

    //查询学生信息
    public static String QuerySQL()
    {
        String result = "";
        try
        {
            Connection conn = getSQLConnection("stu","sa","123456");
            String sql = "select  *from student";
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);
            System.out.println("学号   姓名   性别   年龄   学院");
            //System.out.println(rs);
            while (rs.next())
            {//学号、姓名、性别、年龄、学院
                String s1 = rs.getString("sno");
                String s2 = rs.getString("sname");
                String s3 = rs.getString("ssex");
                String s4 = rs.getString("sage");
                String s5 = rs.getString("dept");
                result += s1 + "  " + s2 + "  " + s3 + "  " + s4+ "  " + s5+" "+"\n";
            }
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException e)
        {
            e.printStackTrace();
            result += "数据输入异常!" + e.getMessage()+"\n";
        }
        return result;
    }

    //添加学生信息
    public static String insert_student(String sno, String name, String sex, String sage,String dept)
    {//学号、姓名、性别、年龄、学院
        String result = "";
        try
        {
            Connection conn = getSQLConnection("stu","sa","123456");
            String sql = "insert into  student values ('"+sno+"','"+name+"','"+sex+"','"+sage+"','"+dept+"');";
            Statement stmt = conn.createStatement();
            stmt.executeUpdate(sql);


            stmt.close();
            conn.close();
            result+="添加成功!"+"\n";
        } catch (SQLException e)
        {
            e.printStackTrace();
            result += "数据输入异常!" + e.getMessage()+"\n";
        }
        return result;
    }

    //删除学生信息
    public static String delete_student(String sno)
    {//学号、姓名、性别、年龄、学院
        String result = "";
        try
        {
            Connection conn =  getSQLConnection("stu","sa","123456");
            String sql = "delete student where sno = " + sno;
            Statement stmt = conn.createStatement();
            stmt.executeUpdate(sql);
            stmt.close();
            conn.close();
            result+="删除成功!\n";
        } catch (SQLException e)
        {
            e.printStackTrace();
            result += "数据输入异常!" + e.getMessage()+"\n";
        }
        return result;
    }

    //按学号修改
    public static String update_student(String sno, String name, String sex, String sage,String dept){
        //学号、姓名、性别、年龄、学院
        String result = "";
        try
        {
            Connection conn = getSQLConnection("stu","sa","123456");
            String sql = "update student set sname='"+name+"',ssex='"+sex+"',sage='"+sage+"',dept='"+dept+"'" +
                    " where sno='"+sno+"' ";
            Statement stmt = conn.createStatement();
            stmt.executeUpdate(sql);
            stmt.close();
            conn.close();
            result+="修改成功!"+"\n";
        } catch (SQLException e)
        {
            e.printStackTrace();
            result += "数据输入异常!" + e.getMessage()+"\n";
        }
        return result;
    }


    //按学号查询
    public static String QuerySQL_sno(String sno)
    {
        String result = "";
        try
        {
            Connection conn =  getSQLConnection("stu","sa","123456");
            String sql = "select *from student where sno = '"+ sno+"';";
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);

            while (rs.next())
            {//学号、姓名、性别、年龄、学院
                String s1 = rs.getString("sno");
                String s2 = rs.getString("sname");
                String s3 = rs.getString("ssex");
                String s4 = rs.getString("sage");
                String s5 = rs.getString("dept");
                result += s1 + "  " + s2 + "  " + s3 + "  " + s4+ "  " + s5+" "+"\n";
            }
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException e)
        {
            e.printStackTrace();
            result += "数据输入异常!" + e.getMessage()+"\n";
        }
        return result;
    }

    //按性别查询
    public static String QuerySQL_sex(String sex)
    {
        String result = "";
        try
        {
            Connection conn =  getSQLConnection("stu","sa","123456");
            String sql = "select * from student where ssex = '"+sex+"';";
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next())
            {//学号、姓名、性别、年龄、学院
                String s1 = rs.getString("sno");
                String s2 = rs.getString("sname");
                String s3 = rs.getString("ssex");
                String s4 = rs.getString("sage");
                String s5 = rs.getString("dept");
                result += s1 + "  " + s2 + "  " + s3 + "  " + s4+ "  " + s5+" "+"\n";
            }
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException e)
        {
            e.printStackTrace();
            result += "数据输入异常!" + e.getMessage()+"\n";
        }
        return result;
    }
    //按学院查询
    public static String QuerySQL_dept(String dept)
    {
        String result = "";
        try
        {
            Connection conn =  getSQLConnection("stu","sa","123456");
            String sql = "select * from student where dept = '"+ dept +"';";
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);

            //System.out.println(rs);
            while (rs.next())
            {//学号、姓名、性别、年龄、学院
                String s1 = rs.getString("sno");
                String s2 = rs.getString("sname");
                String s3 = rs.getString("ssex");
                String s4 = rs.getString("sage");
                String s5 = rs.getString("dept");
                result += s1 + "  " + s2 + "  " + s3 + "  " + s4+ "  " + s5+" "+"\n";
                // System.out.println(s1 + "  -  " + s2);
            }
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException e)
        {
            e.printStackTrace();
            result += "数据输入异常!" + e.getMessage()+"\n";
        }
        return result;
    }

}


如果这篇文章对你有帮助,请不要忘了点赞收藏加关注哦!!! 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux Day06

目录 一、printf输出问题 二、复制进程fork 2.1进程 2.2 pid_t fork(void); 注意: 2.3逻辑地址和物理地址 2.4写时拷贝技术 一、printf输出问题 printf 函数并不会直接将数据输出到屏幕,而是先放到缓冲区中,只有一下三种情况满 足&a…

2.文件的逻辑结构

第四章 文件管理 2.文件的逻辑结构 顺序文件采用顺序存储则意味着各个逻辑上相邻的记录在物理上也是相邻的存储的。所以如果第0号记录的逻辑地址为0的话,则i号记录的逻辑为i *L。 特别的如果这个定长记录的顺序文件采用串结构,也就是这些记录的顺序和他…

Python爬虫——爬虫时如何知道是否代理ip伪装成功?

前言 在进行爬虫时,我们可能需要使用代理IP来伪装自己的身份,以避免被网站封禁。如何判断代理IP是否伪装成功呢?本篇文章将围绕这个问题展开讲解,同时提供Python代码示例。 1. 确认代理IP地址 首先,我们需要确认代理…

unity制作FPS射击游戏

文章目录 介绍鼠标移动控制视角行走、奔跑、跳跃、下蹲射击、后坐力、射速、瞄准、弹痕、枪火、抛壳手臂摇摆手枪切枪效果动画状态机玩家血量新地图场景颜色渐变激光墙获取钥匙滑动门NPC属性攻击逻辑终点传送门 介绍 角色动作方面包括行走、奔跑、跳跃、武器切换、弹夹更换、武…

下载Windows 10光盘镜像(ISO文件)

文章目录 下载Windows 10镜像文件 下载Windows 10镜像文件 打开微软官网下载地址 立即下载工具 找到下载工具,双击运行,等待 接受条款,等待 选择为另一台电脑安装介质 选择Windows10,下一步 选择ISO文件,…

嵌入式开发学习(STC51-7-矩阵按键)

内容 按下S1-S16键,对应数码管最左边显示0-F 矩阵按键简介 独立按键与单片机连接时,每一个按键都需要单片机的一个I/O 口,若某单片机系统需较多按键,如果用独立按键便会占用过多的I/O口资源;而单片机 系统中I/O口资…

搜索是什么

1、什么是搜索? 搜索:计算机根据用户输入的关键词进行匹配,从已有的数据库中摘录出相关的记录反馈给用户。 常见的全网搜索引擎,有百度、谷歌这样搜索网站。 除此,搜索技术在垂直领域也有广泛的使用,比如淘…

利用awk筛选给定时间范围内的日志

文章目录 筛选给定时间范围内的日志时间时间戳什么是时间戳? 系统时间 筛选日志时间示例简单示例mktime()函数是什么 进阶示例 筛选给定时间范围内的日志 时间 时间的表示方法: 时间戳系统时间(年月日时间) 时间戳 什么是时间…

Spring Boot读取yml或者properties配置信息

文章目录 Spring Boot读取yml或者properties配置信息方法一:Value获取基本信息,适用于少量信息方法二:通过注解ConfigurationProperties(prefix "spring.datasource")方法三:通过api Environment Spring Boot读取yml或…

Leetcode-每日一题【剑指 Offer 09. 用两个栈实现队列】

题目 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: [&…

Java判断文件的系统格式编码格式

使用Java判断一个文件的系统格式(亲测可用),比如我们常见的Windows格式的文件,Unixg格式的文件,Mac格式的文件;常常有这样的场景:我们在Windows系统编写的脚步上传到Linux系统执行,执…

ClickHouse(十二):Clickhouse MergeTree系列表引擎 - MergeTree(2)

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,Kerberos安全认证,大数据OLAP体系技术栈-CSDN博客 &…

QT 使用单例模式

目录 1. 单例模式介绍 2.单例模式实现 1. 单例模式介绍 有些时候我们在做 qt 项目的时候,要用到很多类. 例如我们用到的类有 A,B,C,D. 其中,A 是 B,C,D 中都需要用到的类,A 类非常的抢手. 但是,A 类非常的占内存,定义一个 A 对象需要 500M 内存,假如在 B,C,D 中都定义一个 A 类…

解决github打不开的方法

解决github打不开的方法 本文参考文章:解决可ping通但无法访问github网站的问题 一、确定域名github.com的ip地址 进入网址 IP/服务器github.com的信息 - 站长工具 (chinaz.com),查看 ip 地址。 20.205.243.166 github.com二、确定域名github.global.…

【websocket - Tornado】简易聊天应用

1、背景 项目测试的过程中需要自己搭建一个webscoket站点,确保此类服务接入后台系统后访问不受影响。python的服务框架常用的有Flask、Django、Tornado,每个框架的侧重点不同,导致使用的场景就会有所差异。 Flask轻量级,采用常规的同步编程方式,需要安装其他模块辅助,主…

JavaEE——网络初识 (简单介绍两种协议以及网络通信的基础概念)

文章目录 一、简单了解网络发展二、网络通信基础认识三、利用UDP举例解释网络信息传输 一、简单了解网络发展 总的来讲,网络的发展史就是,先是一小部分的计算机之间连接通信,随着技术发展,逐渐扩大范围,形成了我们当前…

【Yolov5+Deepsort】训练自己的数据集(1)| 目标检测追踪 | 轨迹绘制

📢前言:本篇是关于如何使用YoloV5Deepsort训练自己的数据集,从而实现目标检测与目标追踪,并绘制出物体的运动轨迹。本章讲解的为第一个内容:简单介绍YoloV5Deepsort中所用到的目标检测,追踪及sort&Depp…

diffusion model2 扩散模型的文本信息融合、交叉注意力机制、lora

前言 在上一篇文章中,我们剖析了diffusion model的原理,而在这一篇文章中,我们探讨与扩散模型有关的其他话题,包括扩散模型的unet是如何在推理噪声的过程中,融入文本信息的考量?其原理为交叉注意力机制&am…

Kubernetes 整体架构介绍

架构图 Kubernetes 主要由以下几个核心组件组成: etcd 保存了整个集群的状态;kube-apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制;kube-controller-manager 负责维护集群的状态&#xf…

【LeetCode】287. 寻找重复数

287 . 寻找重复数(中等) 方法 快慢指针 思路 要解决这道题首先要理解如何将输入的数组看作为链表。对于数组 nums 中的数字范围在 [1, n],考虑两种情况: 如果数组中没有重复的数字,以 [1, 3, 4, 2] 为例,将…