(完整版)学生信息管理系统数据库java

合集下载

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代码以下是一个简单的学生信息管理系统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课程设计——学生信息管理系统

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功能模块,包括以下几个方面:用户登录与权限管理、学生信息录入与查询、成绩管理、课程管理以及数据统计与报表生成。

用户登录与权限管理用户登录用户登录是系统的入口,通过输入用户名和密码进行身份验证。

在Java中,可以使用Swing或JavaFX等图形界面库创建一个登录界面,用户输入用户名和密码后,通过数据库验证用户身份。

权限管理不同用户可能具有不同的权限,例如管理员可以对系统进行全面管理,而普通教师只能查看和编辑自己所负责的班级或课程。

在Java中,可以使用角色-权限模型来实现权限管理。

每个用户被分配到一个或多个角色,并且每个角色具有一组特定的权限。

通过为每个操作配置相应的权限,并在代码中进行权限检查,可以确保只有具备相应权限的用户才能执行该操作。

学生信息录入与查询学生信息录入学生信息包括个人基本信息、家庭背景、学习成绩等。

在Java中,可以使用面向对象的思想,创建一个学生类,包含各种属性和方法。

通过用户界面,可以输入学生的各项信息,并将其保存到数据库中。

学生信息查询学生信息查询是系统的核心功能之一。

用户可以通过多种方式进行查询,例如按照学号、姓名、班级等进行精确查询,或者按照年级、性别等进行模糊查询。

在Java中,可以使用SQL语句来实现数据库查询操作,并将结果显示在用户界面上。

成绩管理成绩录入成绩管理是学生信息管理系统的重要组成部分。

教师可以根据课程安排录入学生成绩,并将其与相应的学生和课程关联起来。

在Java中,可以使用面向对象的思想,创建一个成绩类,包含相关属性和方法。

通过用户界面,教师可以输入学生成绩,并将其保存到数据库中。

(完整)JAVA课程设计,基于mysql的学生信息管理系统

(完整)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编程语言开发一个基本的学生管理系统,并将其与数据库进行连接,以实现数据的持久化。

环境准备
在开始编写学生管理系统之前,我们需要准备以下环境:
•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完整版

学生信息管理系统数据库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代码写的连接数据库学生信息管理系统

用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();//加载驱动,创建链接。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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();}}}(三)选课信息管理图片:代码:。

相关文档
最新文档