(完整版)学生信息管理系统数据库java
JAVA编写的学生基本信息管理系统

"学生基本信息管理系统"运行说明:1.运行系统2.输入管理员姓名和密码,点击"进入"按钮,进行步骤3;若输入的姓名或密码不正确,则弹出提示对话框,提示"姓名输入错误或密码输入错误!"3.进入操作界面(1)若选择了"菜单选项"下的"录入学生基本信息",则进入录入界面:输入要录入的学号,姓名,选择性别、专业、年级、出生日期;若学号字段为空,则弹出提示对话框提示"学号字段不能为空!",若其它字段为空则弹出对话框提示"选项不能为空!";在正确的输入下点击"录入"按钮,弹出提示对话框提示"录入成功".若要继续录入点击"重置"按钮.(2)若选择了"菜单选项"下的"修改学生基本信息",则进入修改界面:输入要修改的学号,点击"开始修改"按钮,在下面的选项中会显示待修改的学生的基本信息,此时依次进行修改,修改完成后,点击"录入修改",弹出对话框提示"修改成功!";若学号输入为空,则弹出对话框提示"学号字段不能为空!";若输入的学号没有在库中,则弹出对话框提示"该学号不存在!请确认后再输入!";(3)若选择了"菜单选项"下的"查询学生基本信息",则进入查询界面:输入要查询的学号,点击"查询"按钮,该学生的基本信息就会在下面的相应项中显示出来;若输入学号为空则弹出对话框提示"学号字段不能为空!";若输入的学号不存在则弹出对话框提示"该学号不存在!请确认后再输入!";(4)若选择了"菜单选项"下的"删除学生基本信息",则进入删除界面:输入要删除的学号,打回车,则该学生的相关信息就会在下面的相应项中显示出来,点击"删除"按钮,弹出对话框"确定要删除该学生的基本信息吗?",点击"是",则该生基本信息被删除,点击"否",则取消操作;(5)若选择了"设置选项"下的"重新设置"菜单,则弹出重新设置窗口:输入新的管理员姓名,密码及确认密码,点击"重新注册",登陆的姓名和密码就会改变,点击"取消",不改变.(6)若选择了"设置选项"下的"退出"菜单项,则退出操作界面,返回登陆界面.注:行动环境eclipse-SDK-3.4.1-win32(JA V A的一种集成开发平台).zip总体设计本系统共包括8个java源文件和一个SQL Server数据库。
学生信息管理系统java代码

学生信息管理系统java代码以下是一个简单的学生信息管理系统Java代码,包括增删改查等基本功能实现:```javaimport java.util.ArrayList;import java.util.Scanner;class Student{ // 学生类private String sno; // 学号private String name; // 姓名private String sex; // 性别private int age; // 年龄public Student(String sno, String name, String sex, int age) { // 构造函数this.sno = sno; = name;this.sex = sex;this.age = age;}@Overridepublic String toString() { // 输出学生信息return "学号:" + sno + ", 姓名:" + name + ", 性别:" + sex + ", 年龄:" + age;}// Getter和Setter方法public String getSno() {return sno;}public void setSno(String sno) {this.sno = sno;}public String getName() {return name;}public void setName(String name) { = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}public class StudentManagementSystem { // 学生信息管理系统static ArrayList<Student> students = new ArrayList<>(); // 学生列表static Scanner scanner = new Scanner(System.in);public static void main(String[] args) {while (true) {System.out.println("请输入命令(1.新增,2.查询,3.修改,4.删除,5.退出):");int command = scanner.nextInt();switch (command) {case 1: // 新增学生addStudent();break;case 2: // 查询学生queryStudent();break;case 3: // 修改学生updateStudent();break;case 4: // 删除学生deleteStudent();break;case 5: // 退出程序return;default:System.out.println("无效命令!");}}}public static void addStudent() { // 新增学生System.out.println("请输入学号:");String sno = scanner.next();System.out.println("请输入姓名:");String name = scanner.next();System.out.println("请输入性别:");String sex = scanner.next();System.out.println("请输入年龄:");int age = scanner.nextInt();Student student = new Student(sno, name, sex, age);students.add(student);System.out.println("新增学生信息成功!");}public static void queryStudent() { // 查询学生System.out.println("请输入学号:");String sno = scanner.next();for (int i = 0; i < students.size(); i++) {if (students.get(i).getSno().equals(sno)) {System.out.println(students.get(i).toString()); return;}}System.out.println("未找到该学生信息!");}public static void updateStudent() { // 修改学生System.out.println("请输入学号:");String sno = scanner.next();for (int i = 0; i < students.size(); i++) {if (students.get(i).getSno().equals(sno)) {System.out.println("请输入新姓名:");String name = scanner.next();System.out.println("请输入新性别:");String sex = scanner.next();System.out.println("请输入新年龄:");int age = scanner.nextInt();students.get(i).setName(name);students.get(i).setSex(sex);students.get(i).setAge(age);System.out.println("修改学生信息成功!");return;}}System.out.println("未找到该学生信息!");}public static void deleteStudent() { // 删除学生System.out.println("请输入学号:");String sno = scanner 。
java课程设计——学生信息管理系统

j a v a课程设计——学生信息管理系统(总33页)-本页仅作为预览文档封面,使用时请删除本页-一.引言1.1项目的名称学生信息管理系统1.2项目背景和目标学生信息管理系主要对在校学生的个人基本信息以及成绩信息进行管理,对教师用户提供查询信息、增添信息、删除信息等操作功能;对学生用户提供成绩查询功能。
我们的目标就是为该系统提供后台连接数据库程序设计以及前台用户界面设1.3项目的可行性研究设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。
根据目前所开设的课程,学生已经具备这样的知识,有能力综合java编程知识和数据库应用知识做出一个这样的学生信息管理系统二、需求分析2.1系统概述此系统提供给教师用户和学生用户。
教师登陆后可以对学生基本信息表和学生成绩表进行查看、增添新记录和删除记录等操作。
学生登陆后能查询自己的成绩2.2系统运行环境Java运行在eclipse软件上,数据库用mysql数据库2.3功能需求描述学生信息管理系统要面对教师和学生用户。
对于教师,需要查询全部学生的基本信息和成绩信息,并且可以对其进行修改。
对于学生,不需要查询自己的基本信息,只需要查询成绩。
为了保护学生成绩隐私,每位学生登录系统后只能查询自己的成绩,而无法看到别人的成绩2三、系统设计3.1开发与设计的总体思想教师方面:教师通过自己的用户名和密码登录后,进入教师主界面,在这个主界面里,可以选择要操作的类别,即查询功能还是修改功能。
在查询功能里面,可以选择是查询学生基本信息,还是查询学生成绩信息。
在查询学生基本信息时,可以从依据不同字段,即学生信息表的不同属性进行查找。
在查找学生成绩信息时,只能依据学生姓名和学号进行查找。
在修改功能里面,包括对学生基本信息表和学生成绩表进行增加和删除记录学生方面:学生通过自己的用户名和密码登录此系统后,可以查询自己本学期的各科成绩信息3.2系统模块结构图33.3数据库结构设计为了支持此学生信息管理系统,创建数据库studentmanage。
学生信息管理系统java功能模块

学生信息管理系统Java功能模块简介学生信息管理系统是一种用于管理学生信息的软件系统。
它可以帮助学校、教育机构或其他组织有效地记录、存储和处理学生的个人和学术信息。
Java是一种面向对象的编程语言,具有广泛的应用领域和强大的开发工具,非常适合用于开发学生信息管理系统。
本文将介绍学生信息管理系统的Java功能模块,包括以下几个方面:用户登录与权限管理、学生信息录入与查询、成绩管理、课程管理以及数据统计与报表生成。
用户登录与权限管理用户登录用户登录是系统的入口,通过输入用户名和密码进行身份验证。
在Java中,可以使用Swing或JavaFX等图形界面库创建一个登录界面,用户输入用户名和密码后,通过数据库验证用户身份。
权限管理不同用户可能具有不同的权限,例如管理员可以对系统进行全面管理,而普通教师只能查看和编辑自己所负责的班级或课程。
在Java中,可以使用角色-权限模型来实现权限管理。
每个用户被分配到一个或多个角色,并且每个角色具有一组特定的权限。
通过为每个操作配置相应的权限,并在代码中进行权限检查,可以确保只有具备相应权限的用户才能执行该操作。
学生信息录入与查询学生信息录入学生信息包括个人基本信息、家庭背景、学习成绩等。
在Java中,可以使用面向对象的思想,创建一个学生类,包含各种属性和方法。
通过用户界面,可以输入学生的各项信息,并将其保存到数据库中。
学生信息查询学生信息查询是系统的核心功能之一。
用户可以通过多种方式进行查询,例如按照学号、姓名、班级等进行精确查询,或者按照年级、性别等进行模糊查询。
在Java中,可以使用SQL语句来实现数据库查询操作,并将结果显示在用户界面上。
成绩管理成绩录入成绩管理是学生信息管理系统的重要组成部分。
教师可以根据课程安排录入学生成绩,并将其与相应的学生和课程关联起来。
在Java中,可以使用面向对象的思想,创建一个成绩类,包含相关属性和方法。
通过用户界面,教师可以输入学生成绩,并将其保存到数据库中。
(完整)JAVA课程设计,基于mysql的学生信息管理系统

(完整)JAVA课程设计,基于mysql的学生信息管理系统目录概述 (3)一、课题介绍 (3)二、目的和要求 (3)三、任务计划 (4)需求分析 (5)一、学生管理系统的发展现状 (5)二、系统功能分析 (5)三、系统结构框图 (5)数据库设计 (7)一、创建数据表的结构 (7)二、各表功能及其关系 (7)系统模块功能的实现与界面设计 (8)一、系统主要模块 (8)二、欢迎界面 (9)三、主菜单界面 ............................................. 错误!未定义书签。
四、子菜单 (10)五、学生信息录入 (11)六、学生信息查找 (12)七、学生信息删除 (13)八、学生信息修改 (14)课程设计心得 (15)一、程序结构设计培养 (15)二、书写习惯养成 (15)三、注意程序简洁 (15)总结 (16)参考文献 (17)附录:项目源代码 (18)一、数据库连接(D B C ONNECTION.JAVA) (18)二、学生信息数据库管理(S TUDENT_D AO.JAVA) (23)三、欢迎界面(W ELCOME。
JAVA) (23)四、主菜单界面(M ENU。
JAVA) (24)五、子菜单界面(S ON_M ENU。
JAVA) (27)六、添加功能(A DD_M ENU.JAVA) (31)七、查找功能(F IND_M ENU.JAVA) (34)八、删除功能(D ELET_M ENU.JAVA) (36)九、修改功能(C HANGE_M ENU.JAVA).............................. 错误!未定义书签。
概述一、课题介绍本次课程设计要求实现一个面向学生信息的管理系统。
学生信息系统是一个非常通用的管理系统.很多大、中、小学校都需要拥有自己的学生档案管理系统,以便对本校学生的基本信息和学习情况进行管理,另一方面,较完整的学校信息管理系统同样也需要有学生信息管理系统的支持.由通用的学生相关数据分析可知,系统包括院系管理、学生基本信息管理、课程管理、学生从成绩管理等主要功能.该系统要求使用JAVA和MySQL作为开发工具和数据库管理系统,因此,系统设计涉及系统功能设计、数据库设计和系统界面等几个方面内容.二、目的和要求1.了解JAVA语言的特点及使用的范围,掌握开发软件平台的搭建。
java编写学生管理系统链接数据库

Java编写学生管理系统:链接数据库
简介
学生管理系统是一种常见的信息管理系统,用于在教育机构中管理学生的信息和相关数据。
本文将介绍如何使用Java编程语言开发一个基本的学生管理系统,并将其与数据库进行连接,以实现数据的持久化。
环境准备
在开始编写学生管理系统之前,我们需要准备以下环境:
•Java开发工具(例如Eclipse、IntelliJ IDEA等)
•MySQL数据库
数据库设计
在链接数据库之前,我们需要设计一个数据库模型来存储学生的相关信息。
以下是一个简单的学生表的设计:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
gender VARCHAR(10),
grade VARCHAR(10)
);
在这个学生表中,我们存储了学生的ID、姓名、年龄、性别和年级信息。
链接数据库
1.引入Java连接数据库所需的库。
在Java中,我们可以使用JDBC(Java Database Connectivity)来实现与数据库的交互。
首先,我们需要在项目中引入JDBC库。
可以下载MySQL官方提供的JDBC驱动,也可以使用Maven或Gradle等构建工具管理依赖。
2.数据库连接参数配置。
在Java代码中,我们需要提供连接数据库的相关信息,例如数据库URL、用户名和密码。
以下是一个示例代码:
```java String url =。
学生信息管理系统数据库java完整版

学生信息管理系统数据库j a v aHEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】《数据库原理与应用》课程设计报告选题名称:学生信息管理系统组长:李盟指导教师:汤嘉立设计日期:——2.课程设计内容:(1)数据库设计教师讲解数据库的设计方法以及PowerDesigner的使用,学生自选题目,要求学生根据题目的需求描述,进行实际调研,提出完整的需求分析报告、用PowerDesigner建立概念模型、逻辑模型、物理模型。
在物理模型中根据需要添加必要的约束、视图、触发器和存储过程等数据库对象,最后生成创建数据库的脚本,提出物理设计的文档。
要求学生提交的报告包含:需求说明书概念数据模型(E-R数据模型)逻辑数据模型(含关系规范化)物理数据模型(含约束、视图、触发器、存储过程、安全设计、恢复方案、事务设计等等)创建数据库的脚本(数据库对象的定义语言)物理设计的文档(数据库的实施规划)6.个人工作报告除上一步骤要求的完整文档外,每个人需陈述自己所承担的工作、在讨论中的个人见解,提供个人所承担工作的有关文档(可能是不完整的),并对个人的工作情况、收获等进行总结。
(1)承担的工作及贡献需求分析阶段概念模型设计阶段局部E-R模型:整体E-R模型:逻辑模型设计阶段Student(sno,sn,sa,ss,sd)Course(cno,cn,pcno)Sc(sno,cno,g)Unpw(un,pw,qx)物理模型设计阶段s(学生信息表)字段名称数据类型描述sno char (10)学号,关键字sn char (20)姓名sa int年龄ss char (10)性别sd char (10)院系c(课程信息表)字段名称数据类型描述cno char (10)课程号,关键字cn char (30)课程名pcno char (10)先行课程号sc(选课信息表)字段名称数据类型描述sno char (10)学号,关键字cno char (10)课程号,关键字g int成绩unpw(用户信息表)字段名称数据类型描述un char (10)用户名,关键字pw char (10)密码qx int角色1.视图:2.s(学生信息表)3.c(课程信息表)4.sc(选课信息表)5.unpw(用户信息表)实施和实现阶段详细见附件1。
用JAVA代码写的连接数据库学生信息管理系统

保证程序运行无误,我都云新过了!!import java.sql.*;import java.util.*;public class Student2 {private static Scanner scanner =new Scanner(System.in);String driver = "org.hsqldb.jdbcDriver";String url = "jdbc:hsqldb:hsql://localhost";//连接到本机上默认的数据库String user="sa";String pass="";private Connection con;public void init()throws Exception{if(con!=null) return;//已经初始化Class.forName(driver); //装载驱动con=DriverManager.getConnection(url,user,pass);//建立和数据库之间的连接String sql="create table student(id bigint,name varchar(120),";sql+="os decimal,math decimal,java decimal)";Statement stmt=con.createStatement();stmt.executeUpdate(sql);//创建表,只执行一次。
//在表中插入数据以备使用}public void close()throws Exception{if(con!=null) con.close();}/**创建student 表,表中有id,name,math,os,java 五列*/public void Add() throws Exception{System.out.println("请输入学生学号:(当输入学号为-1时停止)");long id=scanner.nextLong();while(id!=-1){System.out.println("请输入该学生的名字:");String name=scanner.next();System.out.println("请连续输入os,math,java各科成绩:");double os=scanner.nextDouble();double math=scanner.nextDouble();double java=scanner.nextDouble();String sql="insert into student values(?,?,?,?,?)";PreparedStatement pstmt =con.prepareStatement(sql);pstmt.setLong(1,id);pstmt.setString(2,name);pstmt.setDouble(3,os);pstmt.setDouble(4,math);pstmt.setDouble(5,java);pstmt.execute();pstmt.close();System.out.println("请输入学生学号:(当输入学号为-1时停止)");id=scanner.nextLong();}}/**查询时使用Statement 的executeQuery 方法,其它用executeUpdate 方法*/ public void dispAll() throws Exception{Statement stmt=con.createStatement(); //创建对象,该对象用来执行命令String sql="select * from student";ResultSet rs=stmt.executeQuery(sql);//执行命令,返回执行结果if(!rs.next())System.out.println("对不起,该数据库可能还没有创建信息!!");while(rs.next()){String id=rs.getString("id");String name=rs.getString("name");String math=rs.getString("math");String os=rs.getString("os");String java= rs.getString("java");System.out.printf("%s,%s,%s,%s,%s%n",id,name,math,os,java);}rs.close();stmt.close();}/**按学号查询学生信息**/public void searchByid()throws Exception{System.out.print("请输入所要查询的学生的id号:");long _id=scanner.nextLong();String sql="select*from student where id="+_id+"";Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql);if(rs.next()){long id=rs.getLong("id");String name=rs.getString("name");Double math=rs.getDouble("math");Double os=rs.getDouble("os");Double java=rs.getDouble("java");System.out.println(id+" "+name+" "+math+" "+os+" "+java);}else{System.out.println("对不起,此学生信息不存在.");}}/**按学生姓名查询**/public void searchByname()throws Exception{System.out.print("请输入所要查询的学生的姓名:");String _name=scanner.next();String sql="select *from student where name='"+_name+"'";Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql);if(rs.next()){long id=rs.getLong("id");String name=rs.getString("name");Double math=rs.getDouble("math");Double os=rs.getDouble("os");Double java=rs.getDouble("java");System.out.println(id+" "+name+" "+math+" "+os+" "+java);}else{System.out.println("对不起,此学生信息不存在.");}}public void deleteByid()throws Exception{System.out.print("请输入你要删除学生信息的学号:");long _id=scanner.nextLong();String sql="select*from student where id="+_id+"";Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql);if(rs.next()){long id=rs.getLong("id");String name=rs.getString("name");Double math=rs.getDouble("math");Double os=rs.getDouble("os");Double java=rs.getDouble("java");System.out.println(id+" "+name+" "+math+" "+os+" "+java);}else{System.out.println("对不起,此学生信息不存在.");}String sql1="delete from student where id="+_id+"";Statement stmt1=con.createStatement();stmt1.executeUpdate(sql1);}public static void main(String[] args) throws Exception{Student2 stu=new Student2();stu.init();//加载驱动,创建链接。
学生管理系统数据库设计代码java

学生管理系统数据库设计代码java以下是一个简单的学生管理系统的数据库设计代码示例,使用Java语言实现:```javaimport java.sql.*;public class StudentManagementSystem {private Connection connection;public StudentManagementSystem() {try {// 连接数据库connection =DriverManager.getConnection('jdbc:mysql://localhost:3306/st udent_management_system?useUnicode=true&characterEncoding=u tf8','root', 'password');} catch (SQLException e) {e.printStackTrace();}}public void createTables() {try {Statement statement =connection.createStatement();// 创建学生表String createStudentTableSQL = 'CREATE TABLE students (' +'id INT PRIMARY KEY AUTO_INCREMENT,' + 'name VARCHAR(50) NOT NULL,' +'age INT NOT NULL,' +'gender VARCHAR(10) NOT NULL)';statement.executeUpdate(createStudentTableSQL);// 创建课程表String createCourseTableSQL = 'CREATE TABLE courses (' +'id INT PRIMARY KEY AUTO_INCREMENT,' + 'name VARCHAR(50) NOT NULL)';statement.executeUpdate(createCourseTableSQL);// 创建学生-课程关联表String createStudentCourseTableSQL = 'CREATE TABLE student_course (' +'student_id INT NOT NULL,' +'course_id INT NOT NULL,' +'PRIMARY KEY (student_id, course_id),' + 'FOREIGN KEY (student_id) REFERENCES students(id) ON DELETE CASCADE,' +'FOREIGN KEY (course_id) REFERENCES courses(id) ON DELETE CASCADE)';statement.executeUpdate(createStudentCourseTableSQL);statement.close();} catch (SQLException e) {e.printStackTrace();}}public void closeConnection() {try {if (connection != null) {connection.close();}} catch (SQLException e) {e.printStackTrace();}}public static void main(String[] args) {StudentManagementSystem system = new StudentManagementSystem();system.createTables();system.closeConnection();}}```这段代码创建了三个表: 'students', 'courses'和'student_course'。
学生信息管理系统(Java)+代码

学生信息管理系统设计1、系统简介本系统提供了学生信息管理中常见的基本功能,主要包括管理员和学生两大模块。
管理员的主要功能有对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。
学生的主要功能有对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。
2、功能设计2.1 需求分析本系统需要实现的功能:(1)、管理员对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。
(2)、学生对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。
2.2 总体设计学生信息管理系统主要包括管理员和学生两大模块。
管理员模块包括:学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等。
用户模块包括:学生信息查看、成绩信息查看、个人信息管理等。
系统总体结构如图所示。
总体结构图2.3 模块详细设计1、学生信息管理模块学生信息管理模块包括增加、删除、修改、查询、显示全部等。
具体的结构图如图所示。
学生信息管理模块结构图2、课程信息管理模块课程信息管理模块包括增加、删除、修改、查询、显示全部等。
具体的结构图如图所示。
课程信息管理模块结构图3、选课信息管理模块选课信息管理模块包括查询、显示全部等。
具体的结构图如图所示。
选课信息管理模块结构图4、成绩信息管理模块成绩信息管理模块包括修改成绩、查询、显示全部等。
具体的结构图如图所示。
成绩信息管理模块结构图5、用户信息管理模块用户信息管理模块包括修改、查询、显示全部等。
具体的结构图如图所示。
用户信息管理模块结构图3、数据库设计在数据库student中共有4张数据表:s(学生信息表)、c(课程信息表)、sc(选课信息表)、unpw(用户信息表),下面定义每张表的字段名称和数据类型。
字段名称数据类型描述sno char (10)学号,关键字sn char (20)姓名sa int年龄ss char (10)性别sd char (10)院系字段名称数据类型描述cno char (10)课程号,关键字cn char (30)课程名pcno char (10)先行课程号字段名称数据类型描述sno char (10)学号,关键字cno char (10)课程号,关键字g int 成绩字段名称数据类型描述un char (10) 用户名,关键字pw char (10) 密码qx int 角色4、界面库设计1、学生信息管理系统的登录学生信息管理系统可由管理员和学生两种身份的人使用。
学生信息管理系统(完整代码、数据库、图片)

《Java应用开发》课程设计报告题目:学生信息管理系统指导老师:***姓名:**专业:计算机科学与技术班级: 10级1班日期:2012年6月目录一、系统总体设计 (3)(一)设计目标及完成功能 (3)(二)系统流程图 (4)二、详细设计 (5)(二)系统设计 (9)(三)源代码及技术 (12)三、使用与测试 (42)四、数据库设计 (43)总结(体会) (44)参考文献 (45)一、系统总体设计(一)设计目标及完成功能1、设计目标学生信息管理系统是学校的一项重要数据资源,因而学生信息管理必然成为学校的一项常规性的重要工作.加强学生信息管理在单纯依靠以手工管理的方法,不仅需要耗用大量的人力、物力、财力,而且由于人工管理存在着大量的不可控因素,造成了信息管理的某些不规范,工作效率低,难以达到预期的目的。
为提高工作效率、保证学校能够及时准确了解各学生的各种信息及学生总体信息,开发学生信息管理系统。
2、完成功能完成学生信息的基本管理.本系统分为管理员和学生管理两部分。
管理员管理项目如下:添加学生信息、修改学生信息、查询学生信息、删除学生信息;学生管理项目如下:添加学生信息、查询学生信息.(二)系统流程图二、详细设计图2-1 登陆界面1图2—2 登陆界面2图2—3 系统主界面图2—4 添加学生信息界面图2—5 修改学生信息界面图2—6 查询学生信息界面图2—7 删除学生信息界面图2-8 系统信息界面图2—9 我的信息界面(二)系统设计1、系统结构图学生信息管理系统学生登陆管理员登陆添加学生信息查询学生信息添加学生信息修改学生信息查询学生信息删除学生信息2、类及功能列表(三) 源代码及技术1、所有代码student.mdf -数据库将以下图片以上图名称存入images文件夹目录下。
要自己将各代码新建为.java格式文件,放在与images文件夹同目录下.并将数据库附加到sqlserver2005,再不需要任何改动方可运行.①登陆界面1import java。
(完整word版)学生信息管理系统(Java)+代码(word文档良心出品)

学生信息管理系统设计1、系统简介本系统提供了学生信息管理中常见的基本功能,主要包括管理员和学生两大模块。
管理员的主要功能有对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。
学生的主要功能有对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。
2、功能设计2.1 需求分析本系统需要实现的功能:(1)、管理员对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。
(2)、学生对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。
2.2 总体设计学生信息管理系统主要包括管理员和学生两大模块。
管理员模块包括:学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等。
用户模块包括:学生信息查看、成绩信息查看、个人信息管理等。
系统总体结构如图所示。
总体结构图2.3 模块详细设计1、学生信息管理模块学生信息管理模块包括增加、删除、修改、查询、显示全部等。
具体的结构图如图所示。
学生信息管理模块结构图2、课程信息管理模块课程信息管理模块包括增加、删除、修改、查询、显示全部等。
具体的结构图如图所示。
课程信息管理模块结构图3、选课信息管理模块选课信息管理模块包括查询、显示全部等。
具体的结构图如图所示。
选课信息管理模块结构图4、成绩信息管理模块成绩信息管理模块包括修改成绩、查询、显示全部等。
具体的结构图如图所示。
成绩信息管理模块结构图5、用户信息管理模块用户信息管理模块包括修改、查询、显示全部等。
具体的结构图如图所示。
用户信息管理模块结构图3、数据库设计在数据库student中共有4张数据表:s(学生信息表)、c(课程信息表)、sc(选课信息表)、unpw(用户信息表),下面定义每张表的字段名称和数据类型。
字段名称数据类型描述sno char (10) 学号,关键字sn char (20) 姓名sa int 年龄ss char (10) 性别sd char (10) 院系字段名称数据类型描述cno char (10) 课程号,关键字cn char (30) 课程名pcno char (10) 先行课程号字段名称数据类型描述sno char (10) 学号,关键字cno char (10) 课程号,关键字g int 成绩unpw(用户信息表)字段名称数据类型描述un char (10) 用户名,关键字pw char (10) 密码qx int 角色4、界面库设计1、学生信息管理系统的登录学生信息管理系统可由管理员和学生两种身份的人使用。
Java实现学生信息管理系统(使用数据库)

Java实现学⽣信息管理系统(使⽤数据库)Java基础—学⽣信息管理系统(使⽤数据库),供⼤家参考,具体内容如下前⼀段时间写了,今天再来更新⼀下使⽤数据库的管理系统,总体上来说要⽐⽤ArrayList简便⼀些,同时输⼊的数据也能存储起来。
这次程序是在上⼀篇的基础上进⾏修改的,所以结构上来看⼗分相似。
在写程序之前,要先在MySQL上建⽴Student Info表。
create table Student (ID varchar(50) primary key not null,Name varchar(30) not null,Gender char(5) not null,Age int not null,Score int not null);1、就和上⼀篇博客⼀样,先将学⽣信息进⾏封装,这⼀步并不必要,只是修改起来⽅便些。
public class Student {private String stuName;private String stuNo;private String gender;private int age;private int score;public String getStuName() {return stuName;}public void setStuName(String stuName) {this.stuName = stuName;}public String getStuNo() {return stuNo;}public void setStuNo(String stuNo) {this.stuNo = stuNo;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}}2.新建操作类,因为这次要使⽤MySql数据库,所以要使⽤JDBC将Java与数据库链接起来。
JAVA之学生信息管理系统

JAVA之学⽣信息管理系统StudentManager系统系统的数据:变量 stunumber 为字符串类型 String,⽤于存储学⽣的学号(有 8 位数字组成)变量 name 为字符串类型 String,⽤于存储学⽣的姓名。
变量 mathematicsscore 为 double 类型,⽤于存储学⽣的⾼等数学成绩,⾼等数学的学分为 4 分。
变量 englishiscore 为 double 类型,⽤于存储学⽣的⼤学英语成绩,⼤学英语的学分为 3 分。
变量 networkscore 为 double 类型,⽤于存储学⽣的计算机⽹络成绩,计算机⽹络的学分为 4 分。
变量 databasescore 为 double 类型,⽤于存储学⽣的数据库成绩,数据库的学分为 3 分。
变量 softwarescore 为 double 类型,⽤于存储学⽣的软件⼯程成绩,软件⼯程的学分为 2 分。
功能要求:1.实现成绩的录⼊2.学⽣成绩修改3.计算学⽣成绩绩点4.退出程序界⾯思路:⾸先,利⽤对象数组来存储5个数据,只存学号和姓名,成绩都默认为零利⽤while循环来控制选择的功能,选择4就退出循环,否则继续循环根据所选的功能,利⽤case语句分开,分被执⾏功能该程序会重复⽤到查找学号的⽅法,因此建⽴⼀个find()⽅法该录⼊功能会有⼀个难题,就是如何实现实时的更新因此,建⽴了⼀个⽅法来专门实现它public void display5(int p){System.out.println("*******************************");System.out.println("⽯家庄铁道⼤学软件⼯程系学⽣学籍管理系统 2019 版 ");System.out.println(" 学⽣考试成绩录⼊界⾯ ");System.out.println("*******************************");System.out.println(" 学⽣学号:"+s[p].getStunumber());System.out.println(" 学⽣姓名:"+s[p].getName());if(s[p].getMathematicsscore()!=0)System.out.println(" 1.⾼等数学成绩为:"+s[p].getMathematicsscore());if(s[p].getEnglishiscore()!=0)System.out.println(" 2.⼤学英语成绩为:"+s[p].getEnglishiscore());if(s[p].getNetworkscore()!=0)System.out.println(" 3.计算机⽹络成绩为:"+s[p].getNetworkscore());if(s[p].getDatabasescore()!=0)System.out.println(" 4.数据库成绩为:"+s[p].getDatabasescore());if(s[p].getSoftwarescore()!=0)System.out.println(" 5.软件⼯程成绩为:"+s[p].getSoftwarescore());}这样根据成绩初始值为0,就可以实现更新输出;这样第⼀个功能就完成了,接下来进⾏修改的功能修改的时候,有⼀个问题就是:如果不录⼊修改的程序,那么之前的数据如何找回?此时,我们就是需要找个变量去等于修改之前的数据,这样就避免了修改后的数据不能再找回之前的数据的问题。
学生信息管理系统 java 连接数据库

import java。
sql。
Connection;import java.sql。
DriverManager;import java。
sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util。
Date;import java.util.Scanner;public class Student {publi c static final String DRIVER=”sun.jdbc。
odbc。
JdbcOdbcDriver";public static final String URL="jdbc:odbc:student”;public static final String USERNAME=”root";//用户名public static final String PASSWORD="root”;//密码private static String name;//当前登录管理员的名字private static int userid;//当前登录管理员的主键//获得jdbc链接public Connection connection(){try {Class。
forName(DRIVER);Connection con=DriverManager.getConnection(URL,USERNAME,PASSWORD);return con;} catch (Exception e) {e.printStackTrace();}return null;}//管理员登陆public boolean login()throws Exception{Scanner sc = new Scanner(System.in);System。
(完整word版)学生信息管理系统数据库java(word文档良心出品)

《数据库原理与应用》课程设计报告选题名称:学生信息管理系统组长:李盟指导教师:汤嘉立设计日期:2016.06.13——2016.06.24整体E-R模型:●物理模型设计阶段s(学生信息表)字段名称数据类型描述sno char (10) 学号,关键字sn char (20) 姓名sa int 年龄ss char (10) 性别2.s(学生信息表)附件1 系统实施一、登录界面图片:代码:package li;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;class DLFrame extends JFrame implements ActionListener, ItemListener {// 登录界面JPanel p1 = null;JPanel p2 = null;JPanel p3 = null;JLabel userName = new JLabel("用户:");JTextField txtUser = new JTextField();JLabel password = new JLabel("密码:");JPasswordField txtPwd = new JPasswordField(6);JLabel role = new JLabel("角色:");JComboBox cbrole = new JComboBox();JButton btnLogin = new JButton("登录");JButton btncz = new JButton("重置");JButton btnCancel = new JButton("取消");JLabel imageLabel;Icon image;static int OK = 1;static int CANCEL = 0;int actionCode = 0;Connection con = null;Statement stmt = null;ResultSet rs = null;int qxian = 0;public DLFrame() {// 构造方法super("登录界面");p1 = new JPanel();p2 = new JPanel();p3 = new JPanel();cbrole.addItem("管理员");cbrole.addItem("学生");image = new ImageIcon("Tulips.jpg");imageLabel = new JLabel(image);p1.add(imageLabel);this.setLayout(new FlowLayout());this.setBounds(100, 100, 246, 345);p2.setLayout(new GridLayout(4, 2));p2.add(userName);p2.add(txtUser);p2.add(password);p2.add(txtPwd);p2.add(role);p2.add(cbrole);p3.add(btnLogin);p3.add(btncz);p3.add(btnCancel);this.add(p1);this.add(p2);this.add(p3);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.show();btnLogin.addActionListener(this);cbrole.addItemListener(this);btncz.addActionListener(this);btnCancel.addActionListener(this);}public void connDB() { // 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=student","sa", "123");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void itemStateChanged(ItemEvent e) {if (e.getStateChange() == ItemEvent.SELECTED) {JComboBox jcb = (JComboBox) e.getSource();qxian = jcb.getSelectedIndex();}}public void actionPerformed(ActionEvent e) {Object source = e.getSource();String un = null;String pw = null;boolean success = false;// 用于判断是否登录成功if (source == btnLogin) {if (txtUser.getText().equals("") || txtPwd.getText().equals("")) {// 判断是否输入了用户名和密码JOptionPane.showMessageDialog(null, "登录名和密码不能为空!");} else {this.connDB();try {rs = stmt.executeQuery("select * from unpw where qx="+ qxian);while (rs.next()) {un = rs.getString("un").trim();pw = rs.getString("pw").trim();if (txtUser.getText().equals(un)) {if (txtPwd.getText().equals(pw)) {actionCode = OK;this.setVisible(false);if (qxian == 0) {new ManagerFrane();// 进入管理员界面}if (qxian == 1) {new StudentFrame();// 进入学生界面}success = true;break;} else {JOptionPane.showMessageDialog(null, "密码错误!");txtPwd.setText("");success = true;}}}if (!success) {JOptionPane.showMessageDialog(null, "登录名错误!");txtUser.setText("");txtPwd.setText("");}} catch (SQLException e1) {e1.printStackTrace();}}} else if (source == btncz) {txtUser.setText("");txtPwd.setText("");} else if (source == btnCancel) {System.exit(0);}}public static void main(String[] args){JPanel mainp=new JPanel();DLFrame student=new DLFrame();}}二、管理员界面图片:代码:package li;import java.awt.*;import java.awt.event.*;import javax.swing.*;class ManagerFrane extends JFrame implements ActionListener {// 管理员界面JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton btns = new JButton("学生信息管理");JButton btnc = new JButton("课程信息管理");JButton btnsc = new JButton("选课信息管理");JButton btng = new JButton("成绩信息管理");JButton btnu = new JButton("用户信息管理");JButton btnClose = new JButton("退出管理系统");JLabel l = new JLabel("管理员");ManagerFrane() {// 构造方法super("学生信息管理系统");setSize(350, 200);add("North", p1);add("Center", p2);p1.add(l);p2.add(btns);p2.add(btnc);p2.add(btnsc);p2.add(btng);p2.add(btnu);p2.add(btnClose);btns.addActionListener(this);btnc.addActionListener(this);btnsc.addActionListener(this);btng.addActionListener(this);btnu.addActionListener(this);btnClose.addActionListener(this);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);show();}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "学生信息管理")new SM().display();if (e.getActionCommand() == "课程信息管理") {new CM("课程信息管理").display();}if (e.getActionCommand() == "选课信息管理") {new SCM("选课信息管理").display();}if (e.getActionCommand() == "成绩信息管理") {new GM("成绩信息管理").display();}if (e.getActionCommand() == "用户信息管理") {new PM("用户信息管理").display();}if (e.getActionCommand() == "退出管理系统") {System.exit(0);}}}(一)学生信息管理代码:class SM extends JFrame implements ActionListener {// 学生信息管理JPanel p = new JPanel();JButton btnAdd = new JButton("增加");JButton btnDelete = new JButton("删除");JButton btnAlter = new JButton("修改");JButton btnSearch = new JButton("查询");JButton btnDisplay = new JButton("显示");JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();;JTable sTable;JScrollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs = null;Object[][] playerInfo;SSelect sst;String mxh = null;boolean bstd = false;SM() {// 构造方法super("学生信息管理");add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);SM(SSelect sst) {// 构造方法super("学生信息管理");this.sst = sst;bstd = true;add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(200, 200, 400, 260);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);show();}public void display() {// 显示所有学生的基本信息int i = 0;int j = 0;int k = 0;List al = new ArrayList();try {rs = stmt.executeQuery("select * from s");while (rs.next()) { // 找出表中的记录数赋给ial.add(rs.getString("sno"));al.add(rs.getString("sn"));al.add(rs.getString("ss"));al.add(rs.getInt("sa"));al.add(rs.getString("sd"));i++;}} catch (SQLException e) {e.printStackTrace();}playerInfo = new Object[i][5];String[] columnNames = { "学号", "姓名", "年龄", "性别", "院系" };try {rs = stmt.executeQuery("select * from s order by sno");while (rs.next()) {playerInfo[j][0] = rs.getString("sno");playerInfo[j][1] = rs.getString("sn");playerInfo[j][2] = rs.getInt("sa");playerInfo[j][3] = rs.getString("ss");playerInfo[j][4] = rs.getString("sd");j++;}} catch (SQLException e) {e.printStackTrace();}sTable = new JTable(playerInfo, columnNames);// 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);}public void delete() {// 删除某个学生的基本信息String xh = null;String xm = null;int nl = 0;String xb = null;String yx = null;int row = -1;row = sTable.getSelectedRow();if (row == -1) {// 判断要删除的信息是否被选中JOptionPane.showMessageDialog(null, "请选择要删除的记录!");} else {if (!bstd) {// 判断选择的是不是查询后的结果int j1 = 0;try {rs = stmt.executeQuery("select * from s");while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应xh = rs.getString("sno");xm = rs.getString("sn");nl = rs.getInt("sa");xb = rs.getString("ss");yx = rs.getString("sd");j1++;}} catch (SQLException e) {e.printStackTrace();}int i1 = 0;try {int rs1 = stmt.executeUpdate("delete from s where sno='"+ xh + "'"); // 删除数据库中当前被选中的记录stmt.executeUpdate("delete from unpw where un='" + xh + "'");// 删除对应的用户表中的记录JOptionPane.showMessageDialog(null, "记录删除成功!");this.dispose();new SM().display();} catch (SQLException e) {e.printStackTrace();}} else {try {int rs1 = stmt.executeUpdate("delete from s where sno='"+ mxh + "'");stmt.executeUpdate("delete from unpw where un='" + mxh+ "'");JOptionPane.showMessageDialog(null, "记录删除成功!");this.dispose();new SM().display();} catch (SQLException e) {e.printStackTrace();}}}}public void update() {// 修改某个学生的基本信息String xh = null;String xm = null;int nl = 0;String xb = null;String yx = null;int row = -1;row = sTable.getSelectedRow();if (row == -1) {JOptionPane.showMessageDialog(null, "请选择要修改的记录!");} else {int j1 = 0;try {if (!bstd) {// 判断选择的是不是查询后的结果rs = stmt.executeQuery("select * from s");} else {rs = stmt.executeQuery("select * from s where sno='" + mxh+ "'");}while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应xh = rs.getString("sno");xm = rs.getString("sn");nl = rs.getInt("sa");xb = rs.getString("ss");yx = rs.getString("sd");j1++;}} catch (SQLException e) {e.printStackTrace();}SAdd sadd = new SAdd(xb, yx);sadd.setTitle("修改");sadd.tsno.setText(xh);sadd.tsname.setText(xm);sadd.tsage.setText("" + nl);sadd.tsno.setEnabled(false);this.dispose();}}public void select() {// 显示某个查询的结果mxh = sst.xh;playerInfo = new Object[1][5];String[] columnNames = { "学号", "姓名", "年龄", "性别", "院系" };try {rs = stmt.executeQuery("select * from s where sno='" + mxh + "'");while (rs.next()) {playerInfo[0][0] = rs.getString("sno");playerInfo[0][1] = rs.getString("sn");playerInfo[0][2] = rs.getInt("sa");playerInfo[0][3] = rs.getString("ss");playerInfo[0][4] = rs.getString("sd");}} catch (SQLException e) {e.printStackTrace();}if (playerInfo[0][1] == null) {this.dispose();JOptionPane.showMessageDialog(null, "学号不存在!");new SM().display();} else {sTable = new JTable(playerInfo, columnNames);// 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);}}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "增加") {new SAdd("男", "计科系");this.dispose();}if (e.getActionCommand() == "删除") {this.delete();}if (e.getActionCommand() == "修改") {this.update();}if (e.getActionCommand() == "查询") {sst = new SSelect("学号:");this.dispose();}if (e.getActionCommand() == "显示") {this.dispose();new SM().display();}}}1.用于学生信息管理中增加或修改某条记录的界面图片:代码:class SAdd extends JFrame implements ActionListener, ItemListener {// 用于学生信息管理中增加或修改某条记录的界面JLabel lsno = new JLabel("学号:");JLabel lsname = new JLabel("姓名:");JLabel lssex = new JLabel("性别:");JLabel lsage = new JLabel("年龄:");JLabel lsdept = new JLabel("院系:");JTextField tsno = new JTextField(14);JTextField tsname = new JTextField(14);JComboBox cbssex = new JComboBox();JTextField tsage = new JTextField(14);JComboBox cbsdept = new JComboBox();JButton btnOK = new JButton(" 确定"); JButton btnCancel = new JButton(" 取消"); JPanel p = new JPanel();Connection con = null;Statement stmt = null;ResultSet rs = null;String xb = "男";String yx = "计科系";boolean isNewsm = true;// 用于判断是否显示学生管理的界面public SAdd(String xb, String yx) {// 构造方法this.xb = xb;this.yx = yx;this.setTitle("增加");this.setBounds(200, 200, 220, 210);if (xb.trim().equals("男")) {cbssex.addItem("男");cbssex.addItem("女");} else {cbssex.addItem("女");cbssex.addItem("男");}if (yx.trim().equals("计科系")) {cbsdept.addItem("计科系");cbsdept.addItem("物理系");cbsdept.addItem("数学系");cbsdept.addItem("外语系");}if (yx.trim().equals("物理系")) {cbsdept.addItem("物理系");cbsdept.addItem("计科系");cbsdept.addItem("数学系");cbsdept.addItem("外语系");}if (yx.trim().equals("外语系")) {cbsdept.addItem("外语系");cbsdept.addItem("计科系");cbsdept.addItem("物理系");cbsdept.addItem("数学系");}if (yx.trim().equals("数学系")) {cbsdept.addItem("数学系");cbsdept.addItem("计科系");cbsdept.addItem("物理系");cbsdept.addItem("外语系");}p.setLayout(new FlowLayout(FlowLayout.LEFT));p.add(lsno);p.add(tsno);p.add(lsname);p.add(tsname);p.add(lsage);p.add(tsage);p.add(lssex);p.add(cbssex);p.add(lsdept);p.add(cbsdept);p.add(btnOK);p.add(btnCancel);this.add(p);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);cbssex.addItemListener(this);cbsdept.addItemListener(this);btnOK.addActionListener(this);btnCancel.addActionListener(this);this.show();}public void insertst() { // 插入记录String xh = null;String xm = null;int nl = 0;xh = tsno.getText();xm = tsname.getText();try {nl = Integer.parseInt((String) tsage.getText());if (this.getTitle() == "修改") {// 如果是修改记录,先删除再增加try {this.connDB();int rs1 = stmt.executeUpdate("delete from s where sno='"+ xh + "'");} catch (SQLException e) {e.printStackTrace();}}String str = "insert into s values('" + xh + "','" + xm + "'," + nl+ ",'" + xb + "','" + yx + "')";this.connDB();// 连接数据库try {stmt.executeUpdate(str);JOptionPane.showMessageDialog(null, this.getTitle() + "成功!","提示", RMATION_MESSAGE, new ImageIcon("menu4.gif"));this.setVisible(false);} catch (SQLException e) {JOptionPane.showMessageDialog(null, "学号已存在!");tsno.setText("");}} catch (NumberFormatException e) {// 判断年龄是否为数字JOptionPane.showMessageDialog(null, "年龄必须是整数!");tsage.setText("");isNewsm = false;}if (this.getTitle() == "增加") {// 如果是增加记录,对应的用户表中也增加一条记录try {stmt.executeUpdate("insert into unpw values('" + xh + "','"+ xh + "'," + 1 + ")");} catch (NullPointerException e) {} catch (SQLException e) {// e.printStackTrace();}}}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == " 确定") {this.insertst();if (isNewsm) {new SM().display();}isNewsm = true;}if (e.getActionCommand() == " 取消") {this.setVisible(false);new SM().display();}}public void itemStateChanged(ItemEvent e) { // 下拉框的监听if (e.getStateChange() == ItemEvent.SELECTED) {JComboBox jcb = (JComboBox) e.getSource();if ((jcb.getSelectedItem() == "男")|| (jcb.getSelectedItem() == "女")) {xb = (String) jcb.getSelectedItem();} else {yx = (String) jcb.getSelectedItem();}}}}2.用于学生基本信息管理中查询时输入学号的界面图片:代码:public class SSelect extends JFrame implements ActionListener {// 用于学生基本信息管理中查询时输入学号的界面JLabel ltitle = null;JTextField tsno = new JTextField(8);JButton btnOK = new JButton("确定");JPanel p = new JPanel();String xh = null;public SSelect(String str) {// 构造方法ltitle = new JLabel(str);p.add(ltitle);p.add(tsno);p.add(btnOK);add(p);this.setBounds(300, 280, 200, 160);btnOK.addActionListener(this);this.setResizable(false);this.show();}public void actionPerformed(ActionEvent e) {xh = tsno.getText();// 取得当前输入学号的值if (xh.equals("")) {// 判断是否输入了学号JOptionPane.showMessageDialog(null, "学号不能为空,请重新输入!");} else {this.dispose();new SM(this).select();}}}(二)课程信息管理图片:代码:class CM extends JFrame implements ActionListener {// 课程信息管理JPanel p = new JPanel();JButton btnAdd = new JButton("增加");JButton btnDelete = new JButton("删除");JButton btnAlter = new JButton("修改");JButton btnSearch = new JButton("查询");JButton btnDisplay = new JButton("显示");JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();;JTable sTable;JScrollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs = null;Object[][] playerInfo;CSelect cst;String mkch = null;boolean bstd = false;CM(String title) {// 构造方法super(title);add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);CM(CSelect cst, String title) {// 构造方法super(title);this.cst = cst;bstd = true;add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(200, 200, 400, 260);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);show();}public void display() {// 显示所有的课程信息int i = 0;int j = 0;int k = 0;List al = new ArrayList();try {rs = stmt.executeQuery("select * from c");while (rs.next()) {// 找出表中的记录数赋给ial.add(rs.getString("cno"));al.add(rs.getString("cn"));al.add(rs.getString("pcno"));i++;}} catch (SQLException e) {e.printStackTrace();}playerInfo = new Object[i][3];String[] columnNames = { "课程号", "课程名", "先行课程号" };try {rs = stmt.executeQuery("select * from c order by cno");while (rs.next()) {playerInfo[j][0] = rs.getString("cno");playerInfo[j][1] = rs.getString("cn");playerInfo[j][2] = rs.getString("pcno");j++;}} catch (SQLException e) {e.printStackTrace();}sTable = new JTable(playerInfo, columnNames);// 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);}public void connDB() { // 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=student","sa", "123");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void delete() {// 删除某个课程信息String kch = null;String kcm = null;String xxkch = null;int row = -1;row = sTable.getSelectedRow();if (row == -1) {// 判断要删除的信息是否被选中JOptionPane.showMessageDialog(null, "请选择要删除的记录!");} else {if (!bstd) {// 判断选择的是不是查询后的结果int j1 = 0;try {rs = stmt.executeQuery("select * from c");while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应kch = rs.getString("cno");kcm = rs.getString("cn");xxkch = rs.getString("pcno");j1++;}} catch (SQLException e) {e.printStackTrace();}int i1 = 0;try {int rs1 = stmt.executeUpdate("delete from c where cno='"+ kch + "'");// 删除数据库中当前被选中的记录JOptionPane.showMessageDialog(null, "记录删除成功!");this.dispose();new CM("课程信息管理").display();} catch (SQLException e) {e.printStackTrace();}} else {try {int rs1 = stmt.executeUpdate("delete from c where cno='"+ mkch + "'");// 删除数据库中当前被选中的记录JOptionPane.showMessageDialog(null, "记录删除成功!");this.dispose();new CM("课程信息管理").display();} catch (SQLException e) {e.printStackTrace();}}}}public void update() {// 修改某个课程记录String kch = null;String kcm = null;String xxkch = null;int row = -1;row = sTable.getSelectedRow();if (row == -1) {JOptionPane.showMessageDialog(null, "请选择要修改的记录!");} else {int j1 = 0;try {if (!bstd) {// 判断选择的是不是查询后的结果rs = stmt.executeQuery("select * from c");} else {rs = stmt.executeQuery("select * from c where cno='" + mkch+ "'");}while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应kch = rs.getString("cno");kcm = rs.getString("cn");xxkch = rs.getString("pcno");j1++;}} catch (SQLException e) {e.printStackTrace();}CAdd cadd = new CAdd();cadd.setTitle("修改");cadd.tcno.setText(kch);cadd.tcname.setText(kcm);cadd.tpcno.setText(xxkch);cadd.tcno.setEnabled(false);this.dispose();}}public void select() {// 显示某个查询的结果mkch = cst.kch;playerInfo = new Object[1][3];String[] columnNames = { "课程号", "课程名", "先行课程号" };try {rs = stmt.executeQuery("select * from c where cno='" + mkch + "'");while (rs.next()) {playerInfo[0][0] = rs.getString("cno");playerInfo[0][1] = rs.getString("cn");playerInfo[0][2] = rs.getString("pcno");}} catch (SQLException e) {e.printStackTrace();}if (playerInfo[0][1] == null) {this.dispose();JOptionPane.showMessageDialog(null, "课程号不存在!");new CM("课程信息管理").display();} else {sTable = new JTable(playerInfo, columnNames);// 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);}}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "增加") {new CAdd();this.dispose();}if (e.getActionCommand() == "删除") {this.delete();}if (e.getActionCommand() == "修改") {this.update();}if (e.getActionCommand() == "查询") {cst = new CSelect();this.dispose();}if (e.getActionCommand() == "显示") {this.dispose();new CM("课程信息管理").display();}}}3.用于课程信息管理中增加或修改某条记录的界面图片:代码:class CAdd extends JFrame implements ActionListener{// 用于课程信息管理中增加或修改某条记录的界面JLabel lcno = new JLabel("课程号:");JLabel lcname = new JLabel("课程名:");JLabel lpcno = new JLabel("先行课程号:");JTextField tcno = new JTextField(10);JTextField tcname = new JTextField(10);JTextField tpcno = new JTextField(10);JButton btnOK = new JButton("确定");JButton btnCancel = new JButton("取消");JPanel p = new JPanel();Connection con = null;Statement stmt = null;ResultSet rs = null;boolean isNewsm = true;// 用于判断是否显示课程信息管理的界面public CAdd() {// 构造方法this.setTitle("增加");this.setBounds(200, 200, 146, 235);p.setLayout(new FlowLayout(FlowLayout.LEFT));p.add(lcno);p.add(tcno);p.add(lcname);p.add(tcname);p.add(lpcno);p.add(tpcno);p.add(btnOK);p.add(btnCancel);this.add(p);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btnOK.addActionListener(this);btnCancel.addActionListener(this);this.show();}public void insertst() { // 插入记录String kch = null;String kcm = null;String xxkch=null;kch = tcno.getText();kcm = tcname.getText();xxkch=tpcno.getText();if (this.getTitle() == "修改") {// 如果是修改记录,先删除再增加try {this.connDB();int rs1 = stmt.executeUpdate("delete from c where cno='"+ kch + "'");} catch (SQLException e) {e.printStackTrace();}}String str = "insert into c values('" + kch + "','" + kcm + "','"+ xxkch + "')";public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "确定") {this.insertst();if (isNewsm) {new CM("课程信息管理").display();}isNewsm = true;}if (e.getActionCommand() == "取消") {this.setVisible(false);new CM("课程信息管理").display();}}}4.用于课程信息管理中查询时输入课程号的界面图片:代码:public class CSelect extends JFrame implements ActionListener {// 用于课程信息管理中查询时输入课程号的界面JLabel ltitle = new JLabel("课程号:");JTextField tcno = new JTextField(8);JButton btnOK = new JButton("确定");JPanel p = new JPanel();String kch = null;public CSelect() { // 构造方法p.add(ltitle);p.add(tcno);p.add(btnOK);add(p);this.setBounds(300, 280, 200, 160);btnOK.addActionListener(this);this.setResizable(false);this.show();}public void actionPerformed(ActionEvent e) {kch = tcno.getText();// 取得当前输入课程号的值if (kch.equals("")) {// 判断是否输入了课程号JOptionPane.showMessageDialog(null, "课程号不能为空,请重新输入!");} else {this.dispose();new CM(this, "课程信息管理").select();}}}(三)选课信息管理图片:代码:class SCM extends JFrame implements ActionListener {// 选课信息管理JPanel p = new JPanel();JButton btnSearch = new JButton("查询");JButton btnDisplay = new JButton("显示");JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();;JTable sTable;JScrollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs = null;Object[][] playerInfo;SCSelect scst;String mscxh = null;int ii = 0;boolean bstd = false;SCM(String title) {// 构造方法super(title);add("South", p);this.add("Center", p1);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(200, 200, 400, 260);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);show();}SCM(SCSelect scst, String title) {// 构造方法super(title);this.scst = scst;bstd = true;add("South", p);this.add("Center", p1);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(200, 200, 400, 260);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);show();}public void display() {// 显示所有选课信息int i = 0;int j = 0;int k = 0;List al = new ArrayList();try {rs = stmt.executeQuery("select * from sc");while (rs.next()) {// 找出表中的记录数赋给ial.add(rs.getString("sno"));。
Java学生信息管理系统设计(数据库版)

Java学⽣信息管理系统设计(数据库版)本⽂实例为⼤家分享了数据库版的Java学⽣信息管理系统,供⼤家参考,具体内容如下package Student_system;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.Statement;import java.util.*;/*class Stu implements java.io.Serializable{String number,name,specialty,grade,borth,sex;public Stu(){};public void setNumber(String number){ this.number=number;}public String getNumber(){ return number;}public void setName(String name){ =name;}public String getName(){ return name;}public void setSex(String sex){ this.sex=sex;}public String getSex(){ return sex;}public void setSpecialty(String specialty){ this.specialty=specialty;}public String getSpecialty(){ return specialty;}public void setGrade(String grade){ this.grade=grade;}public String getGrade(){ return grade;}public void setBorth(String borth){ this.borth=borth;}public String getBorth(){ return borth;}}*/public class StudentSystem extends JFrame{public static void main(String[] args){JFrame frame = new JFrame();frame.setTitle("信息管理系统");frame.setSize(500, 500);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container container = frame.getContentPane();container.setLayout(new FlowLayout());JLabel lb=new JLabel("录⼊请先输⼊记录,查询、删除请先输⼊学号,修改是对查询" +"内容改后的保存!");final JTextField 学号;final JTextField 姓名;final JTextField 专业;final JTextField 年级;final JTextField 出⽣;final JRadioButton 男;final JRadioButton ⼥;ButtonGroup group=null;JButton 录⼊,查询,删除,修改,显⽰;JPanel p1,p2,p3,p4,p5,p6,pv,ph;学号=new JTextField(10);姓名=new JTextField(10);专业=new JTextField(10);年级=new JTextField(10);出⽣=new JTextField(10);group=new ButtonGroup();男=new JRadioButton("男");⼥=new JRadioButton("⼥");group.add(男);group.add(⼥);录⼊=new JButton("录⼊");查询=new JButton("查询");删除=new JButton("删除");修改=new JButton("修改");显⽰=new JButton("显⽰");修改.setEnabled(false);//添加输⼊框及⽂本框p1=new JPanel();p1.add(new JLabel("学号:",JLabel.CENTER));p1.add(学号);p2=new JPanel();p2.add(new JLabel("姓名:",JLabel.CENTER));p2.add(姓名);p3=new JPanel();p3.add(new JLabel("性别:",JLabel.CENTER));p3.add(男);p3.add(⼥);p4=new JPanel();p4.add(new JLabel("专业:",JLabel.CENTER));p4.add(专业);p5=new JPanel();p5.add(new JLabel("年级:",JLabel.CENTER));p5.add(年级);p6=new JPanel();p6.add(new JLabel("出⽣:",JLabel.CENTER));p6.add(出⽣);pv=new JPanel();pv.setLayout(new GridLayout(6,1));pv.add(p1);pv.add(p2);pv.add(p3);pv.add(p4);pv.add(p5);pv.add(p6);ph=new JPanel();ph.add(录⼊);ph.add(查询);ph.add(修改);ph.add(删除);ph.add(显⽰);frame.add(lb);frame.add(ph);frame.add(p1);frame.add(p2);frame.add(p3);frame.add(p4);frame.add(p5);frame.add(p6);frame.add(pv);frame.add(ph);class MyListener implements ActionListener {public void actionPerformed (ActionEvent e) {//判断选中是男是⼥/*if(e.getSource().equals(男)){if(男.isSelected()) {System.out.println("男被选中了");} else {System.out.println("男被取消选中了");}}if(e.getSource().equals(⼥)){if(⼥.isSelected()) {System.out.println("⼥被选中了");} else {System.out.println("⼥被取消选中了");}}*///录⼊的功能if(e.getActionCommand() == "录⼊") {String text1 = 学号.getText().trim();String text2 = 姓名.getText();String text3 = 专业.getText();String text4 = 年级.getText();String text5 = 出⽣.getText();String text6 = null;String text7 = "- - - - -我是分割线 - - - - -";if(男.isSelected()) {text6 = "男";}if(⼥.isSelected()) {text6 = "⼥";}//⽤texts包含此次所有录⼊信息String texts = "\n\n学号:" + text1 + "\n\n" + "姓名:" + text2 + "\n\n" + "专业:" + text3 + "\n\n" + "年级:" + text4 + "\n\n" + "出⽣:" + text5 + "\n\n" + "性别:" + text6 + "\n\n" ; //显⽰框int m = JOptionPane.showConfirmDialog(null, "是否录⼊该条记录:" + texts , "录⼊" , JOptionPane.YES_NO_OPTION);//n = 1/0;if(m==0) {insert_Student(text1,text2,text3,text4,text5);} else {JOptionPane.showMessageDialog(null, "已取消该次录⼊!!");}}//显⽰的功能if(e.getActionCommand() == "显⽰") {int n = JOptionPane.showConfirmDialog(null, "是否显⽰所有记录" , "显⽰" , JOptionPane.YES_NO_OPTION);//n = 1/0;if(n ==0 ) {try {File file = new File("D:/file.txt");InputStreamReader reader = new InputStreamReader(new FileInputStream(file));//创建⼀个输⼊流对象BufferedReader bufferReader = new BufferedReader(reader);String line = "";String lines = null;line = bufferReader.readLine();while(line != null) {System.out.println(line);if(lines != null) {lines = lines + "\n" + line + "\n";} else {lines = line + "\n" ;}line = bufferReader.readLine();}//JOptionPane.showMessageDialog(null, lines , "显⽰",RMATION_MESSAGE);} catch (Exception e1) {e1.printStackTrace();}} else {JOptionPane.showMessageDialog(null, "已取消该次查询");}}//查询的功能if(e.getActionCommand() == "查询") {File file = new File("D:/file.txt");BufferedReader reader = null;String text7 = "- - - - -我是分割线 - - - - -";try {//InputStreamReader reader = new InputStreamReader(// new FileInputStream(file));//创建⼀个输⼊流对象reader = new BufferedReader(new FileReader(file));//暂时仅允许查询学号String text1 = 学号.getText();int n = JOptionPane.showConfirmDialog(null, "查询的学号为:" + text1 , "查询" , JOptionPane.YES_NO_OPTION);//n = 1/0; if(n == 0){String line = null;String lines = null;while((line = reader.readLine())!= null) {if(line.equals(text1)) {System.out.println(line);while(!(line.equals(text7))){line = reader.readLine();if(lines == null) {lines = line + "\n";} else {lines = lines + line + "\n";}System.out.println(line);}} else {continue;}}JOptionPane.showMessageDialog(null, lines , "查询",RMATION_MESSAGE);reader.close();} else {JOptionPane.showMessageDialog(null, "已取消查询功能");}} catch (Exception e1) {e1.printStackTrace();} finally {if(reader != null) {try {reader.close();}catch (IOException e1){}}}}//删除的功能if(e.getActionCommand() == "删除") {String text1 = 学号.getText().trim();delete_Student(text1);}}}//------------注册监听-------------MyListener listener = new MyListener();MyListener listen = new MyListener();显⽰.addActionListener(listener);录⼊.addActionListener(listener);查询.addActionListener(listener);删除.addActionListener(listener);男.addActionListener(listen);⼥.addActionListener(listen);frame.setVisible(true);}/** ---------------------- 功能函数 ---------------------*///获取所有的数据//public static void getAllMessage(){try {//添加JDBC驱动Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost/test";String user = "root";String password = "root";Connection connect = DriverManager.getConnection(url,user,password);Statement stmt = connect.createStatement();System.out.println("success to connect ");//读取所有的数据String sql1 = "select * from StudentSystem";ResultSet rs = stmt.executeQuery(sql1);System.out.println("学号\t姓名\t专业\t年级\t出⽣");String lines = null;while(rs.next()) {System.out.print(rs.getString(1)+ "\t");System.out.print(rs.getString(2)+ "\t");System.out.print(rs.getString(3)+ "\t");System.out.print(rs.getString(4)+ "\t");System.out.print(rs.getString(5)+ "\t");System.out.println();if(lines != null){lines = lines + "学号__姓名__专业__年级__出⽣\n" + rs.getString(1)+ " "+ rs.getString(2)+ " "+ rs.getString(3)+ " "+ rs.getString(4)+ " "+ rs.getString(5)+ " " + "\n\n";} else {lines ="数据库中所有数据:\n\n" + "学号__姓名__专业__年级__出⽣\n" + rs.getString(1)+ ""+ rs.getString(2)+ " "+ rs.getString(3) + " "+ rs.getString(4)+ " "+ rs.getString(5)+ " " + "\n";}}JOptionPane.showMessageDialog(null, lines , "显⽰",RMATION_MESSAGE);} catch (Exception e) {e.printStackTrace();}}/*** 插⼊功能*/public static void insert_Student(String str1,String str2,String str3,String str4,String str5){try {//添加JDBC驱动Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost/test";String user = "root";String password = "root";//连接数据库Connection connect = DriverManager.getConnection(url,user,password);Statement stmt = connect.createStatement();System.out.println("success to connect ");/****/String lines = null;String sql = "select * from StudentSystem";//要执⾏的SQLString sql2 = "delete from StudentSystem where id =?";String sql3 = "insert into StudentSystem(id,name,study,grade,birthplace)VALUES(?,?,?,?,?)";//SQL命令PreparedStatement pst = (PreparedStatement)connect.prepareStatement(sql3);pst = connect.prepareStatement(sql3);pst.setNString(1,str1);//1,2,3,为对应上⾯的参数,切记这⾥”12“传给了第⼀个问号代表的 IDpst.setString(2,str2);pst.setString(3,str3);pst.setString(4,str4);pst.setString(5,str5);pst.executeUpdate();JOptionPane.showMessageDialog(null, "该次录⼊成功!!");ResultSet rs = stmt.executeQuery(sql);System.out.println("学号\t姓名\t专业\t年级\t出⽣");while(rs.next()) {System.out.print(rs.getString(1)+ "\t");System.out.print(rs.getString(2)+ "\t");System.out.print(rs.getString(3)+ "\t");System.out.print(rs.getString(4)+ "\t");System.out.print(rs.getString(5)+ "\t");System.out.println();if(lines != null){lines = lines + "学号__姓名__专业__年级__出⽣\n" + rs.getString(1)+ " "+ rs.getString(2)+ " "+ rs.getString(3)+ " "+ rs.getString(4)+ " "+ rs.getString(5)+ " " + "\n\n";} else {lines ="数据库中所有数据:\n\n" + "学号__姓名__专业__年级__出⽣\n" + rs.getString(1)+ ""+ rs.getString(2)+ " "+ rs.getString(3) + " "+ rs.getString(4)+ " "+ rs.getString(5)+ " " + "\n";}}JOptionPane.showMessageDialog(null, lines , "显⽰",RMATION_MESSAGE);} catch (Exception e) {e.printStackTrace();}}/*** ------------删除功能------------*/public static void delete_Student(String str){try {//添加JDBC驱动Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost/test";String user = "root";String password = "root";//连接数据库Connection connect = DriverManager.getConnection(url,user,password);Statement stmt = connect.createStatement();System.out.println("success to connect ");//**String lines = null;String sql = "select * from StudentSystem";//要执⾏的SQLString sql2 = "delete from StudentSystem where id =?";PreparedStatement pst = (PreparedStatement)connect.prepareStatement(sql2);pst = connect.prepareStatement(sql2);pst.setString(1,str);pst.executeUpdate();JOptionPane.showMessageDialog(null, "已删除该条记录", "删除" ,RMATION_MESSAGE);ResultSet rs = stmt.executeQuery(sql);System.out.println("学号\t姓名\t专业\t年级\t出⽣");while(rs.next()) {System.out.print(rs.getString(1)+ "\t");System.out.print(rs.getString(2)+ "\t");System.out.print(rs.getString(3)+ "\t");System.out.print(rs.getString(4)+ "\t");System.out.print(rs.getString(5)+ "\t");System.out.println();if(lines != null){lines = lines + "学号__姓名__专业__年级__出⽣\n" + rs.getString(1)+ " "+ rs.getString(2)+ " "+ rs.getString(3)+ " "+ rs.getString(4)+ " "+ rs.getString(5)+ " " + "\n\n";} else {lines ="数据库中所有数据:\n\n" + "学号__姓名__专业__年级__出⽣\n" + rs.getString(1)+ ""+ rs.getString(2)+ " "+ rs.getString(3) + " "+ rs.getString(4)+ " "+ rs.getString(5)+ " " + "\n";}}JOptionPane.showMessageDialog(null, lines , "显⽰",RMATION_MESSAGE);} catch (Exception e) {e.printStackTrace();}}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
(整理)java学生信息管理系统.

设计数据库:CREATE DATABASE 学生成绩管理系统(1)教师信息表创建:create table 教师信息表(教师ID varchar(8) primary key ,教师姓名 varchar(8) not null unique, 登录密码 varchar(8) not null,)(2)学籍信息表创建:create table 学籍信息表(学号 varchar(15) primary key,姓名 varchar(8) not null ,年龄 varchar(10),出生日期 varchar(10),性别 varchar(4) ,班级 varchar(8) not null ,专业 varchar(5) ,民族 varchar(10),登录密码 varchar(6) not null)(3)成绩信息表创建:create table 成绩信息表(学号 varchar(15),计算机网络 varchar(8),计算机专业英语 smallint,计算机信息技术基础 smallint,Java程序设计 smallint ,数据库应用实训教程 smallint ,高等数学 smallint ,Xml smallint ,)概要结构分析:1.登录界面和主界面import javax.swing.*;import javax.swing.table.DefaultTableModel;import java.awt.*;import java.awt.event.*;import java.sql.*;class myConnection{ResultSet re;public myConnection(){}public ResultSet getResult(String sql){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection conn=DriverManager.getConnection("jdbc:odbc:学生成绩管理系统","ww","123");Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.C ONCUR_UPDATABLE);ResultSet re=stmt.executeQuery(sql);return re;}catch(Exception e){System.out.println("getResult------"+e.toString());return null;}}public boolean executeSql(String sql){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection conn=DriverManager.getConnection("jdbc:odbc:学生成绩管理系统","ww","123");Statement stmt=conn.createStatement();stmt.executeUpdate(sql);mit();return true;}catch(Exception e){System.out.println("executeSql----"+e.toString());return false;}}}class stuMainFrame extends JFrame implements ActionListener {JMenuBar jmb = new JMenuBar();JMenu Message = new JMenu("信息");JMenu Score = new JMenu("查询");JMenuItem Item1 = new JMenuItem("添加学生信息");JMenuItem mName=new JMenuItem("学生成绩查询");JMenuItem mScore=new JMenuItem("按成绩查询");JMenuItem mNam1=new JMenuItem("查询学生信息");JLabel label = new JLabel();public stuMainFrame(){ImageIcon icon = newImageIcon("src/images/1.jpg");label.setIcon(icon);label.setBounds(0, 0, icon.getIconWidth(),icon.getIconHeight());add(label);setSize(label.getWidth(),label.getHeight());this.setJMenuBar(jmb);jmb.add(Message);jmb.add(Score);Message.add(Item1);Score.add(mNam1);Score.add(mName);Score.add(mScore);Item1.addActionListener(this);mName.addActionListener(this);mScore.addActionListener(this);mNam1.addActionListener(this); }public void actionPerformed(ActionEvent e){if(e.getSource()==Item1){ new addForm().setVisible(true);}else if(e.getSource()==mName){ dispose();new Score1().setVisible(true);}else if(e.getSource()==mScore){new scoreQueryForm().setVisible(true);}else if(e.getSource()==mNam1){dispose();new Serch1().setVisible(true);}}}class mainFrame extends JFrame implements ActionListener{ J Label label = new JLabel();J MenuBar mBar= new JMenuBar();J Panel p=new JPanel();p rivate JMenu mSystem,mOperate,mQuery,mHelp,myMenuUser;p rivate JMenuItemmFile,mNew,mOpen,mExit,mAdd,mDel,mModify,mName,miShow,mScore,mAbout,m iUser,mAddSc;p ublic mainFrame(){this.setJMenuBar(mBar);I mageIcon icon = new ImageIcon("src/images/1.jpg");label.setIcon(icon);label.setBounds(0, 0, icon.getIconWidth(),icon.getIconHeight());add(label);setSize(label.getWidth(),label.getHeight());myMenuUser=new JMenu("用户");miUser=new JMenuItem("编辑用户");myMenuUser.add(miUser);mSystem=new JMenu("系统");mOperate=new JMenu("数据操作");mQuery=new JMenu("查询");mHelp=new JMenu("帮助");mBar.add(mSystem);mBar.add(mOperate);mBar.add(mQuery);mBar.add(mHelp);mBar.add(myMenuUser);mFile=new JMenuItem("文件");mNew=new JMenuItem("新建");mOpen=new JMenuItem("打开");mExit=new JMenuItem("退出");mSystem.add(mFile);mSystem.add(mNew);mSystem.add(mOpen);mSystem.addSeparator();mSystem.add(mExit);mAdd=new JMenuItem("添加基本信息");mAddSc=new JMenuItem("添加成绩信息");mDel=new JMenuItem("删除");mModify=new JMenuItem("修改");mOperate.add(mAdd);mOperate.add(mAddSc);mOperate.add(mDel);mOperate.add(mModify);mName=new JMenuItem("查询学生信息");mScore=new JMenuItem("查询学生成绩");miShow=new JMenuItem("全部显示");mQuery.add(mName);mQuery.add(mScore);mQuery.addSeparator();mQuery.add(miShow);mAbout=new JMenuItem("软件信息");mHelp.add(mAbout);mExit.addActionListener(this);mAdd.addActionListener(this);mDel.addActionListener(this);mModify.addActionListener(this);mName.addActionListener(this);mScore.addActionListener(this);mAbout.addActionListener(this);miShow.addActionListener(this);miUser.addActionListener(this);mAddSc.addActionListener(this);}public void actionPerformed(ActionEvent e){if(e.getSource()==mExit){dispose();new CJ().setVisible(true);}else if(e.getSource()==mAbout){JOptionPane.showMessageDialog(this,"学生成绩管理系统\n\n电信学院\n\n2012年3月","软件信息",RMATION_MESSAGE);} else if(e.getSource()==mAdd){dispose();new addForm().setVisible(true);}else if(e.getSource()==mAddSc){dispose();new addScore().setVisible(true);}else if(e.getSource()==mDel){dispose();new deleteForm().setVisible(true);}else if(e.getSource()==mName){dispose();new Serch().setVisible(true);}else if(e.getSource()==mScore){dispose();new Score().setVisible(true);}else if(e.getSource()==mModify){new modifyForm().setVisible(true);} else if(e.getSource()==miUser){new userFrame().setVisible(true);}else if(e.getSource()==miShow){new freshTable().setVisible(true); }}} class CJ extends JFrame implements ActionListener{ JLabel t1=new JLabel("ID号:");JLabel t3=new JLabel("密码:");JLabel label = new JLabel();public String zh=null;JTextField t2=new JTextField(null,15);JTextField t4=new JPasswordField(null,15);JRadioButton b=new JRadioButton("教师");JRadioButton b1=new JRadioButton("学生");JButton jB1=new JButton("登录");JButton jB2=new JButton("取消");public CJ (){super("学生生成绩管理系统");setLayout(null);jB1.setBounds(110,170,60,20);jB1.setBackground(Color.red);add(jB1);jB2.setBounds(210,170,60,20);jB2.setBackground(Color.red);add(jB2);t1.setBounds(90,50,80,35);add(t1);t2.setBounds(120,50,150,35);add(t2);t3.setBounds(90,100,80,35);add(t3);t4.setBounds(120,100,150,35);add(t4);b.setBounds(200,20,70,30);b1.setBounds(120,20,70,30);ButtonGroup bg=new ButtonGroup();b.setSelected(false);b1.setSelected(true);b1.setSelected(false);add(b);bg.add(b);add(b1); bg.add(b1);b.setContentAreaFilled(false);b1.setContentAreaFilled(false);ImageIcon icon = new ImageIcon("src/images/a.jpg");label.setIcon(icon);label.setBounds(0, 0, icon.getIconWidth(), icon.getIconHeight()); add(label);setSize(label.getWidth(),label.getHeight());setResizable(false);setVisible(true);setLocation(300,300);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jB1.addActionListener(this);jB2.addActionListener(this);}public void actionPerformed(ActionEvent e) {if (e.getSource()==jB2){System.exit(0);}else if (e.getSource()==jB1){String username , password;username = t2.getText();password = t4.getText();if(b.isSelected()) {if (username.toString().equals("")){JOptionPane.showMessageDialog(null, "请输入用户名", "温馨提示", RMATION_MESSAGE);}else if (password.toString().equals("")){JOptionPane.showMessageDialog(null, "请输入密码", "温馨提示", RMATION_MESSAGE);}else{myConnection conn=new myConnection();ResultSet rs;String s ql="select * from 教师信息表 where 教师ID='"+username.toString()+"' and 登录密码 = '"+password.toString()+"'";try{rs=conn.getResult(sql);st();if(rs.getRow()==1){ setVisible(false);rs.beforeFirst();while(rs.next()){this.dispose();sql="select * from 学籍信息表";mainFrame mf=new mainFrame();mf.setLayout(null);mf.setVisible(true);mf.setLocation(300,300);mf.setResizable(false);mf.setTitle("学生成绩管理系统:教师登录界面");mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);mf.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});JOptionPane.showMessageDialog( null,rs.getString("教师姓名")+"老师!您好!欢迎登录学生成绩管理系统!" ) ; }}else{JOptionPane.showMessageDialog(null, "用户名或密码错误", "登录失败", RMATION_MESSAGE);}}catch(Exception er){System.out.println(er.toString());}}}if(b1.isSelected()) {if (username.toString().equals("")){JOptionPane.showMessageDialog(null, "请输入用户名", "温馨提示", RMATION_MESSAGE);}else if (password.toString().equals("")){JOptionPane.showMessageDialog(null, "请输入密码", "温馨提示", RMATION_MESSAGE);}else{myConnection conn=new myConnection();ResultSet rs;String s ql="select * from 学籍信息表 where 学号='"+t2.getText().toString()+"' and 登录密码 ='"+t4.getText().toString()+"'";try{rs=conn.getResult(sql);st();if(rs.getRow()==1){ setVisible(false);rs.beforeFirst();while(rs.next()){this.dispose();sql="select * from 学籍信息表";stuMainFrame smf =new stuMainFrame();s mf.setSize(500,400);smf.setVisible(true);smf.setResizable(false);smf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);s mf.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});JOptionPane.showMessageDialog( null,rs.getString("学生姓名")+"同学!您好!欢迎登录学生成绩管理系统!" ) ; } }else{JOptionPane.showMessageDialog(null, "用户名或密码错误", "登录失败", RMATION_MESSAGE);}}catch(Exception er){System.out.println(er.toString());}} }}}public static void main(String[] args) {try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exception e){}CJ frame=new CJ();new mainFrame();stuMainFrame stu = new stuMainFrame();}}2.添加学生基本信息import javax.swing.*;import javax.swing.table.DefaultTableModel; import java.awt.*;import java.awt.event.*;import java.sql.*;public class addForm extends JFrame implements ActionListener { JLabel label1 = new JLabel("添加基本信息",JLabel.CENTER);JLabel labxuehao=new JLabel("学号:",JLabel.CENTER);JLabel labyear=new JLabel("年龄:",JLabel.CENTER);JLabel labName=new JLabel("姓名:",JLabel.CENTER);JLabel labDate=new JLabel("出生日期:",JLabel.CENTER);JLabel labclass=new JLabel("班级:",JLabel.CENTER);JLabel labzy=new JLabel("专业:",JLabel.CENTER);JLabel labmz=new JLabel("民族:",JLabel.CENTER);JLabel labsex = new JLabel("性别:",JLabel.CENTER);JTextField txtName=new JTextField(20);JTextField txtDate=new JTextField(18);JTextField txtXueHao=new JTextField(20);JTextField txtYear=new JTextField(20);JTextField txtClass=new JTextField(20);JTextField txtZY=new JTextField(20);JTextField txtMZ=new JTextField(20);ButtonGroup bgp = new ButtonGroup();JRadioButton man = new JRadioButton("男");JRadioButton women = new JRadioButton("女");JButton btnAdd=new JButton("添加");JButton btnCancel=new JButton("返回");JButton btnReset = new JButton("重置");JPanel jpl=new JPanel(); //创建面板对象Connection con;Statement sql;ResultSet rs;addForm(){ super("添加学生信息");this.setResizable(false);this.setSize(550,450);this.setVisible(true);this.setLocation(300,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(jpl);jpl.setLayout(null);btnAdd.addActionListener(this);btnReset.addActionListener(this);btnCancel.addActionListener(this);jpl.setBackground(Color.cyan);man.setBackground(Color.cyan);women.setBackground(Color.cyan);label1.setBounds(100,20,300,20);jpl.add(label1);labxuehao.setBounds(100,50,70,20);jpl.add(labxuehao);txtXueHao.setBounds(190,50,140,20);jpl.add(txtXueHao);labName.setBounds(100,90,70,20);jpl.add(labName);txtName.setBounds(190,90,140,20);jpl.add(txtName);labsex.setBounds(110,130,60,20);jpl.add(labsex);man.setBounds(190,130,60,20);women.setBounds(270,130,60,20);jpl.add(man);jpl.add(women);bgp.add(man);bgp.add(women);labyear.setBounds(100,180,70,20);jpl.add(labyear);txtYear.setBounds(190,180,140,20);jpl.add(txtYear);labDate.setBounds(100,210,70,20);jpl.add(labDate);txtDate.setBounds(190,210,140,20);jpl.add(txtDate);labmz.setBounds(100,240,70,20);jpl.add(labmz);txtMZ.setBounds(190,240,140,20);jpl.add(txtMZ);labclass.setBounds(100,270,70,20);jpl.add(labclass);txtClass.setBounds(190,270,140,20);jpl.add(txtClass);labzy.setBounds(100,300,70,20);jpl.add(labzy);txtZY.setBounds(190,300,140,20);jpl.add(txtZY);btnReset.setBounds(80,350,90,20);btnAdd.setBounds(200,350,90,20);btnCancel.setBounds(320,350,90,20);jpl.add(btnReset);jpl.add(btnAdd);jpl.add(btnCancel);}public void actionPerformed(ActionEvent e){ if(e.getSource()==btnCancel){dispose();new mainFrame().setVisible(true);}if(e.getSource()==btnAdd){if (txtXueHao.getText().toString().equals("")){JOptionPane.showMessageDialog(null, "请输入学号", "温馨提示", RMATION_MESSAGE);}else if (txtName.getText().toString().equals("")){JOptionPane.showMessageDialog(null, "请输入姓名", "温馨提示", RMATION_MESSAGE);}else if (txtYear.getText().toString().equals("")){JOptionPane.showMessageDialog(null, "请输入年龄", "温馨提示", RMATION_MESSAGE);}else if (txtDate.getText().toString().equals("")){JOptionPane.showMessageDialog(null, "出生日期", "温馨提示", RMATION_MESSAGE);}else if (txtZY.getText().toString().equals("")){JOptionPane.showMessageDialog(null, "请输入专业", "温馨提示", RMATION_MESSAGE);}else if (txtMZ.getText().toString().equals("")){JOptionPane.showMessageDialog(null, "请输入民族", "温馨提示", RMATION_MESSAGE);}else if (txtClass.getText().toString().equals("")){JOptionPane.showMessageDialog(null, "请输入班级", "温馨提示", RMATION_MESSAGE);}else{String sex;if(man.isSelected()){ sex="男";}else{ sex="女"; }try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch (ClassNotFoundException ce){JOptionPane.showMessageDialog(null,ce.getMessage());}try{Connection con = DriverManager.getConnection("jdbc:odbc:学生成绩管理系统","ww","123");Statement stmt = con.createStatement();int a = stmt.executeUpdate("insert into 学籍信息表(学号 ,登录密码,姓名,年龄 , 出生日期 , 性别 , 班级,专业,民族)values('"+txtXueHao.getText()+"','"+00000+"','"+txtName.getText()+ "','"+txtYear.getText()+"','"+txtDate.getText()+"','"+sex+"','"+txtCl ass.getText()+"','"+txtZY.getText()+"','"+txtMZ.getText()+"')");if(a==1){JOptionPane.showMessageDialog(null,"已成功添加","温馨提示",RMATION_MESSAGE);}else{JOptionPane.showMessageDialog(null,"添加失败","温馨提示",RMATION_MESSAGE);}stmt.close();}catch (SQLException se){JOptionPane.showMessageDialog(null,se.getMessage());}}} else{ txtClass.setText("");txtZY.setText("");txtMZ.setText("");txtName.setText("");txtDate.setText("");txtXueHao.setText("");txtYear.setText("");txtXueHao.requestFocus();}}public static void main(String[] args){addForm amg = new addForm();}}3.添加学生成绩import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;public class addScore extends JFrame implements ActionListener{static addScore ss;JLabel[] label = {new JLabel("学号:") , new JLabel("计算机网络:") , new JLabel("Linux操作系统:") , new JLabel("计算机专业英语:") , new JLabel("计算机信息技术基础:") , new JLabel("Java程序设计:") , new JLabel("数据库应用实训教程:") , new JLabel("高等数学:") , new JLabel("XML:")};JTextField[] txt = {new JTextField() , new JTextField() , new JTextField() , new JTextField() , new JTextField() ,new JTextField() , new JTextField() ,new JTextField() ,new JTextField() };JButton add = new JButton("添加");JButton reset = new JButton("重置");JButton Cancel=new JButton("返回");JPanel jpl = new JPanel();JLabel title = new JLabel("添加学生成绩" , JLabel.CENTER);Font f = new Font("黑体" , Font.BOLD , 16 );int s=100;public addScore(){super("添加学生信息");this.setResizable(false);this.setSize(500,600);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true);this.add(jpl);Cancel.addActionListener(this);add.addActionListener(this);reset.addActionListener(this);jpl.setLayout(null);title.setBounds(150,40,200,20);title.setFont(f);title.setForeground(Color.red);jpl.setBackground(Color.LIGHT_GRAY);jpl.add(title);for(int i = 0 ; i <label.length ; i++){label[i].setBounds(100,s,140,20);jpl.add(label[i]);txt[i].setBounds(260,s,140,20);jpl.add(txt[i]);s=s+40;}add.setBounds(100,s,80,20);reset.setBounds(200,s,80,20);Cancel.setBounds(300,s,80,20);jpl.add(add);jpl.add(reset);jpl.add(Cancel);}public void actionPerformed(ActionEvent e){if(e.getSource()==Cancel){dispose();new mainFrame().setVisible(true);}else if(e.getSource()==add){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch (ClassNotFoundException ce){JOptionPane.showMessageDialog(ss,ce.getMessage());}try{Connection con = DriverManager.getConnection("jdbc:odbc:学生成绩管理系统","ww","123");Statement stmt = con.createStatement();int a = stmt.executeUpdate("insert into 成绩信息表(学号 , 计算机网络 , Linux操作系统 , 计算机专业英语 , 计算机信息技术基础 , Java程序设计 , 数据库应用实训教程 , 高等数学 ,Xml)values('"+txt[0].getText()+"','"+txt[1].getText()+"','"+txt[2].ge tText()+"','"+txt[3].getText()+"','"+txt[4].getText()+"','"+txt[5].ge tText()+"','"+txt[6].getText()+"','"+txt[7].getText()+"','"+txt[8].ge tText()+"')");if(a==1){JOptionPane.showMessageDialog(ss,"添加成功");}else{JOptionPane.showMessageDialog(ss,"添加失败");}}catch (SQLException se){JOptionPane.showMessageDialog(ss,se.getMessage()); }} else{for(int i = 0 ; i<txt.length ; i++){txt[i].setText("");txt[0].requestFocus(); }}}public static void main(String[] args){addScore as = new addScore();}}4.修改学生信息:import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class extends JFrame implements ActionListener {JPanel jpl = new JPanel();JLabel SCH = new JLabel("修改学生信息",JLabel.CENTER);Font f = new Font("楷体",Font.BOLD+Font.ITALIC,30);JLabel label1 = new JLabel("请输入学号:",JLabel.CENTER);JButton btnQuery = new JButton("查询");JLabel label2 = new JLabel("姓名:",JLabel.CENTER);JLabel labyear=new JLabel("年龄:",JLabel.CENTER);JLabel labDate=new JLabel("出生日期:",JLabel.CENTER);JLabel label5 = new JLabel("性别:",JLabel.CENTER);JLabel label3 = new JLabel("班级:",JLabel.CENTER);JLabel label4 = new JLabel("专业:",JLabel.CENTER);JLabel labmz=new JLabel("民族:",JLabel.CENTER);ButtonGroup bgp = new ButtonGroup();JRadioButton man = new JRadioButton("男");JRadioButton women = new JRadioButton("女");JTextField tyear = new JTextField();JTextField tDate = new JTextField();JTextField tmz = new JTextField();JTextField num = new JTextField();JTextField nam = new JTextField();JTextField clas = new JTextField();JTextField scl = new JTextField();JButton btnModify = new JButton("修改");JButton btnCancel = new JButton("取消");Connection con;Statement sql;ResultSet rs;int re;public modifyForm(){ this.setSize(560,460);this.setVisible(true);this.setResizable(false);SCH.setForeground(Color.red);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(jpl);jpl.setBackground(Color.cyan);man.setBackground(Color.cyan);women.setBackground(Color.cyan);jpl.setLayout(null);btnQuery.addActionListener(this);btnModify.addActionListener(this);btnCancel.addActionListener(this);SCH.setBounds(100,20,300,20);jpl.add(SCH);label1.setBounds(100,60,100,20);jpl.add(label1);num.setBounds(220,60,140,20);jpl.add(num);btnQuery.setBounds(120,100,90,20);btnModify.setBounds(230,100,90,20);btnCancel.setBounds(340,100,90,20);jpl.add(btnQuery);jpl.add(btnModify);jpl.add(btnCancel);label2.setBounds(100,150,70,20);jpl.add(label2);nam.setBounds(190,150,140,20);jpl.add(nam);labyear.setBounds(100,180,70,20);jpl.add(labyear);tyear.setBounds(190,180,140,20);jpl.add(tyear);labDate.setBounds(100,210,70,20);jpl.add(labDate);tDate.setBounds(190,210,140,20);jpl.add(tDate);label5.setBounds(100,250,70,20);jpl.add(label5);man.setBounds(205,250,60,20);women.setBounds(285,250,60,20);bgp.add(man);bgp.add(women);jpl.add(man);jpl.add(women);label3.setBounds(100,290,70,20);jpl.add(label3);clas.setBounds(190,290,140,20);jpl.add(clas);label4.setBounds(100,320,70,20);jpl.add(label4);scl.setBounds(190,320,140,20);jpl.add(scl);labmz.setBounds(100,350,70,20);jpl.add(labmz);tmz.setBounds(190,350,140,20);jpl.add(tmz);}public void actionPerformed(ActionEvent ae){if(ae.getSource()==btnCancel){dispose();new mainFrame().setVisible(true);} else if(ae.getSource()==btnQuery){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} catch(ClassNotFoundException e){ }try{con=DriverManager.getConnection("jdbc:odbc:学生成绩管理系统","ww","123");sql=con.createStatement();rs=sql.executeQuery("select * from 学籍信息表 where 学号='"+num.getText()+"'");if(rs.next()){num.setText(rs.getString("学号"));nam.setText(rs.getString("姓名"));tyear.setText(rs.getString("年龄").toString());tDate.setText(rs.getString("出生日期"));if(rs.getString("性别").equals("男")){man.setSelected(true);}else{women.setSelected(true);}clas.setText(rs.getString("班级"));scl.setText(rs.getString("专业"));tmz.setText(rs.getString("民族"));btnModify.setEnabled(true);nam.setEditable(true);tyear.setEditable(true);tDate.setEditable(true);clas.setEditable(true);scl.setEditable(true);tmz.setEditable(true);}else{JOptionPane.showMessageDialog(null, "不存在该记录!", "温馨提示", RMATION_MESSAGE);btnModify.setEnabled(false);tyear.setText("");tDate.setText("");tmz.setText("");num.setText("");nam.setText("");clas.setText("");scl.setText("");num.requestFocus();nam.setEditable(false);tyear.setEditable(false);tDate.setEditable(false);clas.setEditable(false);scl.setEditable(false);tmz.setEditable(false);}}catch(SQLException e){ } }else if(ae.getSource()==btnModify){ try{con=DriverManager.getConnection("jdbc:odbc:学生成绩管理系统","ww","123");sql=con.createStatement();re=sql.executeUpdate("Update 学籍信息表 set 姓名='"+nam.getText()+"',年龄='"+tyear.getText()+"',出生日期='"+tDate.getText()+"',班级='"+clas.getText()+"',专业='"+scl.getText()+"',民族='"+tmz.getText()+"' where 学号='"+num.getText()+"'");if(re==1){JOptionPane.showMessageDialog(null,"记录修改完毕!","温馨提示",RMATION_MESSAGE);}else{JOptionPane.showMessageDialog(null,"记录修改失败!","温馨提示",RMATION_MESSAGE);}sql.close();}catch (SQLException se){JOptionPane.showMessageDialog(null,se.getMessage());}}else{btnModify.setEnabled(false);tyear.setText("");tDate.setText("");tmz.setText("");num.setText("");nam.setText("");clas.setText("");scl.setText("");num.requestFocus();nam.setEditable(false);tyear.setEditable(false);tDate.setEditable(false);clas.setEditable(false);scl.setEditable(false);tmz.setEditable(false); } }public static void main(String[] args) {new modifyForm(); }}5.删除学生信息import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class deleteForm extends JFrame implements ActionListener { JPanel jpl = new JPanel();JLabel SCH = new JLabel("删除学生信息",JLabel.CENTER);Font f = new Font("楷体",Font.BOLD+Font.ITALIC,30);JLabel label1 = new JLabel("请输入学号:",JLabel.CENTER);JButton btnQuery = new JButton("查询");JLabel label2 = new JLabel("姓名:",JLabel.CENTER);JLabel labyear=new JLabel("年龄:",JLabel.CENTER);JLabel labDate=new JLabel("出生日期:",JLabel.CENTER);JLabel label5 = new JLabel("性别:",JLabel.CENTER);JLabel label3 = new JLabel("班级:",JLabel.CENTER);JLabel label4 = new JLabel("专业:",JLabel.CENTER);JLabel labmz=new JLabel("民族:",JLabel.CENTER);ButtonGroup bgp = new ButtonGroup();JRadioButton man = new JRadioButton("男");JRadioButton women = new JRadioButton("女");JTextField tyear = new JTextField();JTextField tDate = new JTextField();JTextField tmz = new JTextField();JTextField num = new JTextField();JTextField nam = new JTextField();JTextField clas = new JTextField();JTextField scl = new JTextField();JButton btnDelete = new JButton("删除");JButton btnCancel = new JButton("取消");Connection con;Statement sql;ResultSet rs;int re;deleteForm(){ this.setSize(560,460);this.setVisible(true);this.setResizable(false);SCH.setForeground(Color.red);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(jpl);jpl.setBackground(Color.cyan);man.setBackground(Color.cyan);women.setBackground(Color.cyan);jpl.setLayout(null);btnQuery.addActionListener(this);btnDelete.addActionListener(this);btnCancel.addActionListener(this);SCH.setBounds(100,20,300,20);jpl.add(SCH);label1.setBounds(100,60,100,20);jpl.add(label1);num.setBounds(220,60,140,20);jpl.add(num);btnQuery.setBounds(120,100,90,20);btnDelete.setBounds(230,100,90,20);btnCancel.setBounds(340,100,90,20);jpl.add(btnQuery);jpl.add(btnDelete);jpl.add(btnCancel);label2.setBounds(100,150,70,20);jpl.add(label2);nam.setBounds(190,150,140,20);jpl.add(nam);labyear.setBounds(100,180,70,20);。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库原理与应用》课程设计报告选题名称:学生信息管理系统组长:李盟指导教师:汤嘉立设计日期:2016.06.13——2016.06.24学号姓名小组评分教师评分2014144414 李盟902014144415 李玲902014144429 徐兰902014144431 许媛媛906.个人工作报告除上一步骤要求的完整文档外,每个人需陈述自己所承担的工作、在讨论中的个人见解,提供个人所承担工作的有关文档(可能是不完整的),并对个人的工作情况、收获等进行总结。
(1)承担的工作及贡献●需求分析阶段●概念模型设计阶段局部E-R模型:整体E-R模型:●逻辑模型设计阶段Student(sno,sn,sa,ss,sd)Course(cno,cn,pcno)Sc(sno,cno,g)Unpw(un,pw,qx)●物理模型设计阶段s(学生信息表)字段名称数据类型描述sno char (10) 学号,关键字sn char (20) 姓名sa int 年龄ss char (10) 性别sd char (10) 院系c(课程信息表)字段名称数据类型描述cno char (10) 课程号,关键字cn char (30) 课程名pcno char (10) 先行课程号sc(选课信息表)字段名称数据类型描述sno char (10) 学号,关键字cno char (10) 课程号,关键字g int 成绩unpw(用户信息表)字段名称数据类型描述un char (10) 用户名,关键字pw char (10) 密码qx int 角色1.视图:2.s(学生信息表)3.c(课程信息表)4.sc(选课信息表)5.unpw(用户信息表) 实施和实现阶段附件1 系统实施一、登录界面图片:代码:package li;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;class DLFrame extends JFrame implements ActionListener, ItemListener {// 登录界面JPanel p1 = null;JPanel p2 = null;JPanel p3 = null;JLabel userName = new JLabel("用户:");JTextField txtUser = new JTextField();JLabel password = new JLabel("密码:");JPasswordField txtPwd = new JPasswordField(6);JLabel role = new JLabel("角色:");JComboBox cbrole = new JComboBox();JButton btnLogin = new JButton("登录");JButton btncz = new JButton("重置");JButton btnCancel = new JButton("取消");JLabel imageLabel;Icon image;static int OK = 1;static int CANCEL = 0;int actionCode = 0;Connection con = null;Statement stmt = null;ResultSet rs = null;int qxian = 0;public DLFrame() {// 构造方法super("登录界面");p1 = new JPanel();p2 = new JPanel();p3 = new JPanel();cbrole.addItem("管理员");cbrole.addItem("学生");image = new ImageIcon("Tulips.jpg");imageLabel = new JLabel(image);p1.add(imageLabel);this.setLayout(new FlowLayout());this.setBounds(100, 100, 246, 345);p2.setLayout(new GridLayout(4, 2));p2.add(userName);p2.add(txtUser);p2.add(password);p2.add(txtPwd);p2.add(role);p2.add(cbrole);p3.add(btnLogin);p3.add(btncz);p3.add(btnCancel);this.add(p1);this.add(p2);this.add(p3);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.show();btnLogin.addActionListener(this);cbrole.addItemListener(this);btncz.addActionListener(this);btnCancel.addActionListener(this);}public void connDB() { // 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=student","sa", "123");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void itemStateChanged(ItemEvent e) {if (e.getStateChange() == ItemEvent.SELECTED) {JComboBox jcb = (JComboBox) e.getSource();qxian = jcb.getSelectedIndex();}}public void actionPerformed(ActionEvent e) {Object source = e.getSource();String un = null;String pw = null;boolean success = false;// 用于判断是否登录成功if (source == btnLogin) {if (txtUser.getText().equals("") || txtPwd.getText().equals("")) {// 判断是否输入了用户名和密码JOptionPane.showMessageDialog(null, "登录名和密码不能为空!");} else {this.connDB();try {rs = stmt.executeQuery("select * from unpw where qx="+ qxian);while (rs.next()) {un = rs.getString("un").trim();pw = rs.getString("pw").trim();if (txtUser.getText().equals(un)) {if (txtPwd.getText().equals(pw)) {actionCode = OK;this.setVisible(false);if (qxian == 0) {new ManagerFrane();// 进入管理员界面}if (qxian == 1) {new StudentFrame();// 进入学生界面}success = true;break;} else {JOptionPane.showMessageDialog(null, "密码错误!");txtPwd.setText("");success = true;}}}if (!success) {JOptionPane.showMessageDialog(null, "登录名错误!");txtUser.setText("");txtPwd.setText("");}} catch (SQLException e1) {e1.printStackTrace();}}} else if (source == btncz) {txtUser.setText("");txtPwd.setText("");} else if (source == btnCancel) {System.exit(0);}}public static void main(String[] args){JPanel mainp=new JPanel();DLFrame student=new DLFrame();}}二、管理员界面图片:代码:package li;import java.awt.*;import java.awt.event.*;import javax.swing.*;class ManagerFrane extends JFrame implements ActionListener {// 管理员界面JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton btns = new JButton("学生信息管理");JButton btnc = new JButton("课程信息管理");JButton btnsc = new JButton("选课信息管理");JButton btng = new JButton("成绩信息管理");JButton btnu = new JButton("用户信息管理");JButton btnClose = new JButton("退出管理系统");JLabel l = new JLabel("管理员");ManagerFrane() {// 构造方法super("学生信息管理系统");setSize(350, 200);add("North", p1);add("Center", p2);p1.add(l);p2.add(btns);p2.add(btnc);p2.add(btnsc);p2.add(btng);p2.add(btnu);p2.add(btnClose);btns.addActionListener(this);btnc.addActionListener(this);btnsc.addActionListener(this);btng.addActionListener(this);btnu.addActionListener(this);btnClose.addActionListener(this);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);show();}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "学生信息管理")new SM().display();if (e.getActionCommand() == "课程信息管理") {new CM("课程信息管理").display();}if (e.getActionCommand() == "选课信息管理") {new SCM("选课信息管理").display();}if (e.getActionCommand() == "成绩信息管理") {new GM("成绩信息管理").display();}if (e.getActionCommand() == "用户信息管理") {new PM("用户信息管理").display();}if (e.getActionCommand() == "退出管理系统") {System.exit(0);}}}(一)学生信息管理代码:class SM extends JFrame implements ActionListener {// 学生信息管理JPanel p = new JPanel();JButton btnAdd = new JButton("增加");JButton btnDelete = new JButton("删除");JButton btnAlter = new JButton("修改");JButton btnSearch = new JButton("查询");JButton btnDisplay = new JButton("显示");JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();;JTable sTable;JScrollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs = null;Object[][] playerInfo;SSelect sst;String mxh = null;boolean bstd = false;SM() {// 构造方法super("学生信息管理");add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);SM(SSelect sst) {// 构造方法super("学生信息管理");this.sst = sst;bstd = true;add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(200, 200, 400, 260);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);show();}public void display() {// 显示所有学生的基本信息int i = 0;int j = 0;int k = 0;List al = new ArrayList();try {rs = stmt.executeQuery("select * from s");while (rs.next()) { // 找出表中的记录数赋给ial.add(rs.getString("sno"));al.add(rs.getString("sn"));al.add(rs.getString("ss"));al.add(rs.getInt("sa"));al.add(rs.getString("sd"));i++;}} catch (SQLException e) {e.printStackTrace();}playerInfo = new Object[i][5];String[] columnNames = { "学号", "姓名", "年龄", "性别", "院系" };try {rs = stmt.executeQuery("select * from s order by sno");while (rs.next()) {playerInfo[j][0] = rs.getString("sno");playerInfo[j][1] = rs.getString("sn");playerInfo[j][2] = rs.getInt("sa");playerInfo[j][3] = rs.getString("ss");playerInfo[j][4] = rs.getString("sd");j++;}} catch (SQLException e) {e.printStackTrace();}sTable = new JTable(playerInfo, columnNames);// 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);}public void delete() {// 删除某个学生的基本信息String xh = null;String xm = null;int nl = 0;String xb = null;String yx = null;int row = -1;row = sTable.getSelectedRow();if (row == -1) {// 判断要删除的信息是否被选中JOptionPane.showMessageDialog(null, "请选择要删除的记录!");} else {if (!bstd) {// 判断选择的是不是查询后的结果int j1 = 0;try {rs = stmt.executeQuery("select * from s");while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应xh = rs.getString("sno");xm = rs.getString("sn");nl = rs.getInt("sa");xb = rs.getString("ss");yx = rs.getString("sd");j1++;}} catch (SQLException e) {e.printStackTrace();}int i1 = 0;try {int rs1 = stmt.executeUpdate("delete from s where sno='"+ xh + "'"); // 删除数据库中当前被选中的记录stmt.executeUpdate("delete from unpw where un='" + xh + "'");// 删除对应的用户表中的记录JOptionPane.showMessageDialog(null, "记录删除成功!");this.dispose();new SM().display();} catch (SQLException e) {e.printStackTrace();}} else {try {int rs1 = stmt.executeUpdate("delete from s where sno='"+ mxh + "'");stmt.executeUpdate("delete from unpw where un='" + mxh+ "'");JOptionPane.showMessageDialog(null, "记录删除成功!");this.dispose();new SM().display();} catch (SQLException e) {e.printStackTrace();}}}}public void update() {// 修改某个学生的基本信息String xh = null;String xm = null;int nl = 0;String xb = null;String yx = null;int row = -1;row = sTable.getSelectedRow();if (row == -1) {JOptionPane.showMessageDialog(null, "请选择要修改的记录!");} else {int j1 = 0;try {if (!bstd) {// 判断选择的是不是查询后的结果rs = stmt.executeQuery("select * from s");} else {rs = stmt.executeQuery("select * from s where sno='" + mxh+ "'");}while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应xh = rs.getString("sno");xm = rs.getString("sn");nl = rs.getInt("sa");xb = rs.getString("ss");yx = rs.getString("sd");j1++;}} catch (SQLException e) {e.printStackTrace();}SAdd sadd = new SAdd(xb, yx);sadd.setTitle("修改");sadd.tsno.setText(xh);sadd.tsname.setText(xm);sadd.tsage.setText("" + nl);sadd.tsno.setEnabled(false);this.dispose();}}public void select() {// 显示某个查询的结果mxh = sst.xh;playerInfo = new Object[1][5];String[] columnNames = { "学号", "姓名", "年龄", "性别", "院系" };try {rs = stmt.executeQuery("select * from s where sno='" + mxh + "'");while (rs.next()) {playerInfo[0][0] = rs.getString("sno");playerInfo[0][1] = rs.getString("sn");playerInfo[0][2] = rs.getInt("sa");playerInfo[0][3] = rs.getString("ss");playerInfo[0][4] = rs.getString("sd");}} catch (SQLException e) {e.printStackTrace();}if (playerInfo[0][1] == null) {this.dispose();JOptionPane.showMessageDialog(null, "学号不存在!");new SM().display();} else {sTable = new JTable(playerInfo, columnNames);// 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);}}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "增加") {new SAdd("男", "计科系");this.dispose();}if (e.getActionCommand() == "删除") {this.delete();}if (e.getActionCommand() == "修改") {this.update();}if (e.getActionCommand() == "查询") {sst = new SSelect("学号:");this.dispose();}if (e.getActionCommand() == "显示") {this.dispose();new SM().display();}}}1.用于学生信息管理中增加或修改某条记录的界面图片:代码:class SAdd extends JFrame implements ActionListener, ItemListener {// 用于学生信息管理中增加或修改某条记录的界面JLabel lsno = new JLabel("学号:");JLabel lsname = new JLabel("姓名:");JLabel lssex = new JLabel("性别:");JLabel lsage = new JLabel("年龄:");JLabel lsdept = new JLabel("院系:");JTextField tsno = new JTextField(14);JTextField tsname = new JTextField(14);JComboBox cbssex = new JComboBox();JTextField tsage = new JTextField(14);JComboBox cbsdept = new JComboBox();JButton btnOK = new JButton(" 确定"); JButton btnCancel = new JButton(" 取消"); JPanel p = new JPanel();Connection con = null;Statement stmt = null;ResultSet rs = null;String xb = "男";String yx = "计科系";boolean isNewsm = true;// 用于判断是否显示学生管理的界面public SAdd(String xb, String yx) {// 构造方法this.xb = xb;this.yx = yx;this.setTitle("增加");this.setBounds(200, 200, 220, 210);if (xb.trim().equals("男")) {cbssex.addItem("男");cbssex.addItem("女");} else {cbssex.addItem("女");cbssex.addItem("男");}if (yx.trim().equals("计科系")) {cbsdept.addItem("计科系");cbsdept.addItem("物理系");cbsdept.addItem("数学系");cbsdept.addItem("外语系");}if (yx.trim().equals("物理系")) {cbsdept.addItem("物理系");cbsdept.addItem("计科系");cbsdept.addItem("数学系");cbsdept.addItem("外语系");}if (yx.trim().equals("外语系")) {cbsdept.addItem("外语系");cbsdept.addItem("计科系");cbsdept.addItem("物理系");cbsdept.addItem("数学系");}if (yx.trim().equals("数学系")) {cbsdept.addItem("数学系");cbsdept.addItem("计科系");cbsdept.addItem("物理系");cbsdept.addItem("外语系");}p.setLayout(new FlowLayout(FlowLayout.LEFT));p.add(lsno);p.add(tsno);p.add(lsname);p.add(tsname);p.add(lsage);p.add(tsage);p.add(lssex);p.add(cbssex);p.add(lsdept);p.add(cbsdept);p.add(btnOK);p.add(btnCancel);this.add(p);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);cbssex.addItemListener(this);cbsdept.addItemListener(this);btnOK.addActionListener(this);btnCancel.addActionListener(this);this.show();}public void insertst() { // 插入记录String xh = null;String xm = null;int nl = 0;xh = tsno.getText();xm = tsname.getText();try {nl = Integer.parseInt((String) tsage.getText());if (this.getTitle() == "修改") {// 如果是修改记录,先删除再增加try {this.connDB();int rs1 = stmt.executeUpdate("delete from s where sno='"+ xh + "'");} catch (SQLException e) {e.printStackTrace();}}String str = "insert into s values('" + xh + "','" + xm + "'," + nl+ ",'" + xb + "','" + yx + "')";this.connDB();// 连接数据库try {stmt.executeUpdate(str);JOptionPane.showMessageDialog(null, this.getTitle() + "成功!","提示", RMATION_MESSAGE, new ImageIcon("menu4.gif"));this.setVisible(false);} catch (SQLException e) {JOptionPane.showMessageDialog(null, "学号已存在!");tsno.setText("");}} catch (NumberFormatException e) {// 判断年龄是否为数字JOptionPane.showMessageDialog(null, "年龄必须是整数!");tsage.setText("");isNewsm = false;}if (this.getTitle() == "增加") {// 如果是增加记录,对应的用户表中也增加一条记录try {stmt.executeUpdate("insert into unpw values('" + xh + "','"+ xh + "'," + 1 + ")");} catch (NullPointerException e) {} catch (SQLException e) {// e.printStackTrace();}}}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == " 确定") {this.insertst();if (isNewsm) {new SM().display();}isNewsm = true;}if (e.getActionCommand() == " 取消") {this.setVisible(false);new SM().display();}}public void itemStateChanged(ItemEvent e) { // 下拉框的监听if (e.getStateChange() == ItemEvent.SELECTED) {JComboBox jcb = (JComboBox) e.getSource();if ((jcb.getSelectedItem() == "男")|| (jcb.getSelectedItem() == "女")) {xb = (String) jcb.getSelectedItem();} else {yx = (String) jcb.getSelectedItem();}}}}2.用于学生基本信息管理中查询时输入学号的界面图片:代码:public class SSelect extends JFrame implements ActionListener {// 用于学生基本信息管理中查询时输入学号的界面JLabel ltitle = null;JTextField tsno = new JTextField(8);JButton btnOK = new JButton("确定");JPanel p = new JPanel();String xh = null;public SSelect(String str) {// 构造方法ltitle = new JLabel(str);p.add(ltitle);p.add(tsno);p.add(btnOK);add(p);this.setBounds(300, 280, 200, 160);btnOK.addActionListener(this);this.setResizable(false);this.show();}public void actionPerformed(ActionEvent e) {xh = tsno.getText();// 取得当前输入学号的值if (xh.equals("")) {// 判断是否输入了学号JOptionPane.showMessageDialog(null, "学号不能为空,请重新输入!");} else {this.dispose();new SM(this).select();}}}(二)课程信息管理图片:代码:class CM extends JFrame implements ActionListener {// 课程信息管理JPanel p = new JPanel();JButton btnAdd = new JButton("增加");JButton btnDelete = new JButton("删除");JButton btnAlter = new JButton("修改");JButton btnSearch = new JButton("查询");JButton btnDisplay = new JButton("显示");JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();;JTable sTable;JScrollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs = null;Object[][] playerInfo;CSelect cst;String mkch = null;boolean bstd = false;CM(String title) {// 构造方法super(title);add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);CM(CSelect cst, String title) {// 构造方法super(title);this.cst = cst;bstd = true;add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(200, 200, 400, 260);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);show();}public void display() {// 显示所有的课程信息int i = 0;int j = 0;int k = 0;List al = new ArrayList();try {rs = stmt.executeQuery("select * from c");while (rs.next()) {// 找出表中的记录数赋给ial.add(rs.getString("cno"));al.add(rs.getString("cn"));al.add(rs.getString("pcno"));i++;}} catch (SQLException e) {e.printStackTrace();}playerInfo = new Object[i][3];String[] columnNames = { "课程号", "课程名", "先行课程号" };try {rs = stmt.executeQuery("select * from c order by cno");while (rs.next()) {playerInfo[j][0] = rs.getString("cno");playerInfo[j][1] = rs.getString("cn");playerInfo[j][2] = rs.getString("pcno");j++;}} catch (SQLException e) {e.printStackTrace();}sTable = new JTable(playerInfo, columnNames);// 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);}public void connDB() { // 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=student","sa", "123");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void delete() {// 删除某个课程信息String kch = null;String kcm = null;String xxkch = null;int row = -1;row = sTable.getSelectedRow();if (row == -1) {// 判断要删除的信息是否被选中JOptionPane.showMessageDialog(null, "请选择要删除的记录!");} else {if (!bstd) {// 判断选择的是不是查询后的结果int j1 = 0;try {rs = stmt.executeQuery("select * from c");while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应kch = rs.getString("cno");kcm = rs.getString("cn");xxkch = rs.getString("pcno");j1++;}} catch (SQLException e) {e.printStackTrace();}int i1 = 0;try {int rs1 = stmt.executeUpdate("delete from c where cno='"+ kch + "'");// 删除数据库中当前被选中的记录JOptionPane.showMessageDialog(null, "记录删除成功!");this.dispose();new CM("课程信息管理").display();} catch (SQLException e) {e.printStackTrace();}} else {try {int rs1 = stmt.executeUpdate("delete from c where cno='"+ mkch + "'");// 删除数据库中当前被选中的记录JOptionPane.showMessageDialog(null, "记录删除成功!");this.dispose();new CM("课程信息管理").display();} catch (SQLException e) {e.printStackTrace();}}}}public void update() {// 修改某个课程记录String kch = null;String kcm = null;String xxkch = null;int row = -1;row = sTable.getSelectedRow();if (row == -1) {JOptionPane.showMessageDialog(null, "请选择要修改的记录!");} else {int j1 = 0;try {if (!bstd) {// 判断选择的是不是查询后的结果rs = stmt.executeQuery("select * from c");} else {rs = stmt.executeQuery("select * from c where cno='" + mkch+ "'");}while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应kch = rs.getString("cno");kcm = rs.getString("cn");xxkch = rs.getString("pcno");j1++;}} catch (SQLException e) {e.printStackTrace();}CAdd cadd = new CAdd();cadd.setTitle("修改");cadd.tcno.setText(kch);cadd.tcname.setText(kcm);cadd.tpcno.setText(xxkch);cadd.tcno.setEnabled(false);this.dispose();}}public void select() {// 显示某个查询的结果mkch = cst.kch;playerInfo = new Object[1][3];String[] columnNames = { "课程号", "课程名", "先行课程号" };try {rs = stmt.executeQuery("select * from c where cno='" + mkch + "'");while (rs.next()) {playerInfo[0][0] = rs.getString("cno");playerInfo[0][1] = rs.getString("cn");playerInfo[0][2] = rs.getString("pcno");}} catch (SQLException e) {e.printStackTrace();}if (playerInfo[0][1] == null) {this.dispose();JOptionPane.showMessageDialog(null, "课程号不存在!");new CM("课程信息管理").display();} else {sTable = new JTable(playerInfo, columnNames);// 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);}}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "增加") {new CAdd();this.dispose();}if (e.getActionCommand() == "删除") {this.delete();}if (e.getActionCommand() == "修改") {this.update();}if (e.getActionCommand() == "查询") {cst = new CSelect();this.dispose();}if (e.getActionCommand() == "显示") {this.dispose();new CM("课程信息管理").display();}}}3.用于课程信息管理中增加或修改某条记录的界面图片:代码:class CAdd extends JFrame implements ActionListener{// 用于课程信息管理中增加或修改某条记录的界面JLabel lcno = new JLabel("课程号:");JLabel lcname = new JLabel("课程名:");JLabel lpcno = new JLabel("先行课程号:");JTextField tcno = new JTextField(10);JTextField tcname = new JTextField(10);JTextField tpcno = new JTextField(10);JButton btnOK = new JButton("确定");JButton btnCancel = new JButton("取消");JPanel p = new JPanel();Connection con = null;Statement stmt = null;ResultSet rs = null;boolean isNewsm = true;// 用于判断是否显示课程信息管理的界面public CAdd() {// 构造方法this.setTitle("增加");this.setBounds(200, 200, 146, 235);p.setLayout(new FlowLayout(FlowLayout.LEFT));p.add(lcno);p.add(tcno);p.add(lcname);p.add(tcname);p.add(lpcno);p.add(tpcno);p.add(btnOK);p.add(btnCancel);this.add(p);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btnOK.addActionListener(this);btnCancel.addActionListener(this);this.show();}public void insertst() { // 插入记录String kch = null;String kcm = null;String xxkch=null;kch = tcno.getText();kcm = tcname.getText();xxkch=tpcno.getText();if (this.getTitle() == "修改") {// 如果是修改记录,先删除再增加try {this.connDB();int rs1 = stmt.executeUpdate("delete from c where cno='"+ kch + "'");} catch (SQLException e) {e.printStackTrace();}}String str = "insert into c values('" + kch + "','" + kcm + "','"+ xxkch + "')";public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "确定") {this.insertst();if (isNewsm) {new CM("课程信息管理").display();}isNewsm = true;}if (e.getActionCommand() == "取消") {this.setVisible(false);new CM("课程信息管理").display();}}}4.用于课程信息管理中查询时输入课程号的界面图片:代码:public class CSelect extends JFrame implements ActionListener {// 用于课程信息管理中查询时输入课程号的界面JLabel ltitle = new JLabel("课程号:");JTextField tcno = new JTextField(8);JButton btnOK = new JButton("确定");JPanel p = new JPanel();String kch = null;public CSelect() { // 构造方法p.add(ltitle);p.add(tcno);p.add(btnOK);add(p);this.setBounds(300, 280, 200, 160);btnOK.addActionListener(this);this.setResizable(false);this.show();}public void actionPerformed(ActionEvent e) {kch = tcno.getText();// 取得当前输入课程号的值if (kch.equals("")) {// 判断是否输入了课程号JOptionPane.showMessageDialog(null, "课程号不能为空,请重新输入!");} else {this.dispose();new CM(this, "课程信息管理").select();}}}(三)选课信息管理图片:代码:。