JAVA数据库学生管理系统实训报告

合集下载

Java学生管理系统实验报告

Java学生管理系统实验报告

学生管理系统实验报告学期:2018-2019课程名称:《Java程序设计实验》一、实验目的1.掌握JDK的安装与环境变量的配置,熟练使用Eclipse、WindowBulider插件、navicat和MySql。

2.熟练掌握Java基础语法与程序结构,了解面向对象的编程思想,掌握封装、构造方法和访问权限。

3.理解继承的概念和意义,掌握继承关系。

4.理解接口的概念和意义,掌握实现接口的方法。

5.掌握异常处理的方法。

6.掌握Java Swing,学会创建GUI界面,熟练使用MVC结构,掌握事件处理。

7.掌握MySql基础语句,操作MySql数据库。

二、实验内容a.管理系统功能1.实现登录界面与相应功能。

用户填写正确账号与密码并选择用户身份后即可实现登陆并跳转至主界面。

2.实现主界面与相应功能。

此界面功能包括学生管理、成绩管理、教师管理、系统设置和帮助。

其中系统设置包括修改密码,退出账号和关闭系统。

帮助包括关于作者、版本信息和意见反馈。

3.实现管理学生界面与相应功能。

可对学生信息进行添加、查询、修改和删除的操作。

4.实现管理成绩界面与相应功能。

可查询到学生并对其成绩信息进行编辑。

5.实现管理教师界面与相应功能。

可对教师信息进行添加、查询、修改和删除的操作。

6.实现修改密码界面与相应功能。

7.实现用户权限功能。

管理员权限为最高,可操作本系统所有功能。

学生可查看、修改自己的信息,查看自己的成绩,但不得添加、查询、删除他人信息与成绩。

教师可查看、修改自己的信息,查询、编辑学生的成绩信息,但不得添加、修改、删除学生信息,不得添加、查询、修改、删除其他教师信息。

8.实现退出账号、关闭系统、关于作者、版本信息、意见反馈和显示当前用户信息功能。

b.设计思路1.利用WindowBuilder插件可视化编写GUI界面。

2.利用MySql数据库保存学生、教师和管理员的信息,并用navicat管理数据库。

使用MVC框架,有以下几个包:model包(模型)、view包(视图)、images包(图像)、util包(自己定义的工具)、dao包(面向对象的数据库接口)。

java学生信息管理系统实验报告(共10篇)

java学生信息管理系统实验报告(共10篇)

java学生信息管理系统实验报告(共10篇)JAVA学生信息管理系统实验报告JAVA程序设计实验报告学号:姓名:班级:实验、Java课程设计--------学生信息管理系统一、实验目的1.掌握Java基本语法2.理解面向对象编程特点3.理解Java I/O编程4.掌握Java图形界面编程5.掌握Java与不同数据库进行连接二、预习内容Java的基本语法知识、类和对象、Java Swing图形界面编程、Java I/O处理以及Java与数据库连接操作三、实验设备与环境通过局域网互联,安装Windows 2000/XP操作系统环境的JDK1.6,my eclipse或者EditPlus编程工具。

并安装MySQL数据库四、实验内容编写并调试运行Java程序,进行设计,掌握Java开发的基础。

五、实验任务设计学生信息管理系统。

要求包括1. 登陆模块:设立超级管理员权限,用户可以根据不同的权限登陆系统,超级管理员可以对学生信息进行增、删、改、查操作。

而普通用户只可以查找学生信息。

2. 包括学生添加信息模块、学生信息删除模块、学生信息修改模块和学生信息查询模块3.对于管理员,可以对管理员进行添加、删除以及修改密码等操作。

六、实验报告(要求独立完成参考程序的代码、编译、调试与运行)1、程序清单:1.1程序模块清单package Pan;import java.awt.event.ItemListener;import javax.swing.*;import ponent;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.event.InputEvent;import java.awt.event.ItemListener;import java.awt.event.KeyEvent;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.util.*;import java.awt.Color;import java.text.DecimalFormat;import java.sql.*;import java.sql.Date;import java.awt.*;import java.util.Vector;public class Res{/*** @param args*/public static void main(String[] args){FirstWindow win =new FirstWindow(学生信息管理系统); }}class FirstWindow extends JFrame implements ActionListener {JMenuBar menubar;JMenu menu1,menu2,menu3,menu4;public final JMenuItem a11,a12,a13,a14,a15,a16,a17; public final JMenuItem a21,a22,a23,a24;public final JMenuItem a3;public final JMenuItem a4;public final JButton btn;JPanel pnl;JLabel label;boolean flag;FirstWindow(String s){setTitle(s);setSize(400,400);setLocation(100,100);setVisible(true);setDefaultCloseOperation(3);pnl=new JPanel();this.getContentPane().add(pnl);pnl.setLayout(new BorderLayout());label=new JLabel(欢迎使用学生管理系统,JLabel.CENTER);label.setForeground(Color.red);pnl.add(label,BorderLayout.CENTER);menubar=new JMenuBar();menu1=new JMenu(使用);menu2=new JMenu(用户管理);menu3=new JMenu(帮助);menu4=new JMenu(退出);a11=new JMenuItem(管理员登录);a12=new JMenuItem(查询学生信息);a13=new JMenuItem(更改学生信息);a14=new JMenuItem(删除学生信息);a15=new JMenuItem(添加学生信息);a16=new JMenuItem(超级管理员登录);篇二:java学生成绩管理系统实验报告JAVA课内实验报告学生成绩管理系统一. 实验目的及实验环境实验目的:在如今的高校日常管理当中,学生成绩管理系统就是其中非常重要的一环,特别是当前学生规模大,课程门类多,校区分散等实际情况,学生成绩管理系统更具有非常大的实际应用意义。

学生管理系统JAVA实验报告

学生管理系统JAVA实验报告

实验报告学生信息管理系统学号:XXXXXXXX:XXXXXX班级:XXXXXXXXXXXXXXX摘要本文着重阐述了“学生信息管理系统”的开发过程。

对于设计思想和设计流程也做出了全面的叙述,在数据库创建思想以及各个数据表之间的具体关联等方面也做出了详细说明,并且具体剖析了系统各个功能的实现过程以及详细设计过程,在绘制简单系统功能模块图的同时,力求更加清晰地表明设计思想以及对整个学生模块程序设计的规划及具体实现过程。

本系统具有多方面特点:系统功能完备,用户使用方便简捷,人性化的用户界面,安全保密设置齐全,大大减少了操作人员和用户的工作负担,提高了学生管理的工作效率和学校的信息化的水平。

AbstractThis article focuses on the student information management system---student module for the development process. Introduced a system for environment and development tools, the design concept and design process has also made a comprehensive narrative, in the database to create ideological and various data tables specific links between the areas has also made detailed and specific analysis of the The various functions of the system to achieve process and detailed design process, drawing a simple system function modules map at the same time, to more clearly show that design thinking and the whole process of planning and design of concrete realization.This system has many features: system fully functional, easy to use simple user-friendly user interface, complete security settings, greatly reducing the operators and users of the burden and improve the efficiency of the management of students and school information Level.1.实验目的:编写学生信息管理系统程序:(1)基本要求:学生信息(包括学号、、性别、年龄、家庭住址、电话等)的添加,删除,修改,查询(包括按学号,按姓名等查询)。

基于java的学籍管理系统实训报告

基于java的学籍管理系统实训报告

基于Java的学籍管理系统实训报告一、引言本实训报告旨在详细介绍基于Java的学籍管理系统的设计与实现。

学籍管理系统是一套用于管理学校学生学籍信息的软件系统,能够方便地记录和查询学生的个人信息、学习成绩、奖惩情况等。

二、需求分析为了更好地满足学校对学籍管理的需求,我们分析了用户需求,并根据需求设计了系统的功能模块,包括学生信息管理、课程管理、成绩管理、奖惩管理等。

根据系统需求,我们选择使用Java语言进行开发。

三、系统设计3.1 学生信息管理在学生信息管理模块中,我们设计了以下功能:•添加学生信息:包括学生姓名、性别、年龄等基本信息。

•修改学生信息:可以对学生的基本信息进行修改。

•查询学生信息:可以根据学生的学号或姓名进行查询。

3.2 课程管理课程管理模块包括以下功能:•添加课程:包括课程名称、授课教师、学分等信息。

•修改课程信息:对课程的基本信息进行修改。

•查询课程信息:可以根据课程名称或教师姓名进行查询。

3.3 成绩管理成绩管理模块包括以下功能:•录入学生成绩:包括学生学号、课程名称、成绩等信息。

•修改学生成绩:可以对学生成绩进行修改。

•查询学生成绩:可以根据学生学号或课程名称进行查询。

3.4 奖惩管理奖惩管理模块包括以下功能:•添加奖惩信息:包括学生学号、奖惩类型、奖惩原因等信息。

•修改奖惩信息:可以对奖惩信息进行修改。

•查询奖惩信息:可以根据学生学号进行查询。

四、实现过程为了实现学籍管理系统,我们采用了Java语言和MySQL数据库。

以下是系统实现的步骤:1.设计数据库表结构:根据需求分析,设计了学生表、课程表、成绩表和奖惩表的结构,并创建了相应的表。

2.编写Java类:根据功能模块,编写了学生类、课程类、成绩类和奖惩类的Java类,定义了相应的属性和方法。

3.连接数据库:使用Java的JDBC技术连接MySQL数据库,并编写了数据库操作类,实现对数据库的增删改查操作。

4.编写用户界面:使用Swing组件库,设计了用户界面,包括添加学生信息、查询成绩、修改奖惩信息等操作的界面。

JAVA数据库学生成绩管理系统实验报告

JAVA数据库学生成绩管理系统实验报告

实训报告实训名称:学生成绩管理系统系(部):专业班级:学生姓名:学号:指导教师:完成日期:南京铁道职业技术学院目录……………………………装……………………………………订…………………………………线……………………………Java访问并处理数据库的设计与实现1 实训概述南京铁道职业技术学院浦口校区2013级网络L1301班于大二上学期组织了为期一周的Java实训,本次实训的课题是“学生成绩管理系统”。

通过综合实训,掌握运用Java语言基本知识和技能、JA V A的基本语法与JDBC数据库技术的应用;进一步熟悉Oracle数据库的数据库管理(数据库的创建、应用)。

表的创建、修改、删除,约束及关系等、数据的查询处理(insert、update、delete、select语句等技术。

2 Java访问并处理数据库的课题描述课题简介经过分析,我们使用Java开发工具,利用其提供的各种面向对象的开发工具,Java?技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

使用的数据库是Oracle,Oracle数据库功能强大,学习起来也不难,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。

通过实训,我们掌握运用Java语言知识和技能,运用JA V A的基本语法与JDBC数据库技术的应用,完成对甲骨文数据库的数据库管理、例如表的设计(表的创建、修改、删除,字段的默认值、约束及关系等)、数据的查询处理(insert、update、delete、select语句的应用)等技术;并能结合数据库应用技术和jdbc进行小型数据库管理系统的开发。

模块简介管理员模块功能需求:管理员身份登陆系统后,可以对学生信息进行添加、修改和查询等操作,对学生进行添加、修改和查询功能操作,还可以修改管理员的登录密码。

JAVA学生信息管理系统实验报告

JAVA学生信息管理系统实验报告

JAVA学生信息管理系统实验报告一、实验目的1. 掌握Java面向对象编程思想;2. 熟悉Java GUI编程基本知识;3. 熟悉Java文件读写操作;4.培养实际问题分析及解决能力。

二、实验要求设计并实现一个Java学生信息管理系统,具备以下功能:1.界面要简洁、美观,方便用户操作;2.能够实现学生信息的录入、查询、修改、删除和展示功能;3.学生信息至少包括学号、姓名、性别、年龄、院系等基本信息;4.学生信息的存储要求使用文件保存。

三、实验设计1. 界面设计:使用Java Swing库设计界面,包括菜单栏、工具栏、按钮、文本框等组件,通过布局管理器实现界面的合理布局;2. 文件读写操作:使用Java的文件读写类实现学生信息的读取、保存和更新,例如使用FileReader、FileWriter等类;3. 数据结构设计:定义一个学生类,包含学号、姓名、性别、年龄、院系等成员变量,实现get和set方法;4.功能实现:根据用户的操作,实现学生信息的录入、查询、修改、删除等功能。

四、实验步骤1.创建项目并导入相关库文件;2.创建学生类,定义学生的基本信息和操作方法;3.创建主界面,包括菜单栏、工具栏、按钮等组件,并设置布局管理器;4.编写界面事件监听器,实现按钮的点击响应;5.实现学生信息录入功能,包括将信息写入文件;6.实现学生信息查询功能,读取文件中的学生信息并展示;7.实现学生信息修改和删除功能,更新文件中的学生信息;8.编写实验报告。

五、实验结果成功实现了Java学生信息管理系统,具备录入、查询、修改和删除功能。

主界面简洁美观,用户操作便捷。

学生信息存储在文件中,可以进行读写操作。

六、实验心得通过这次实验,我进一步熟悉了Java面向对象编程思想和GUI编程基本知识。

实践中,我遇到了一些问题,例如界面布局、事件监听和文件读写等方面,但通过查找资料和反复调试,最终解决了这些问题。

通过这个实验,我对Java的掌握程度更加深入了解,提高了实际问题分析及解决能力。

学生管理系统的JAVA实验报告.doc

学生管理系统的JAVA实验报告.doc

学生管理系统的JA V A实验报告。

实验报告学生信息管理系统学生编号:XXXXXXXX姓名: XXXXXX级:本文重点介绍了“学生信息管理系统”的开发过程。

详细描述了设计思想和设计过程,详细说明了数据库创建思想和各数据表之间的具体关联,并详细分析了系统各功能的实现过程和详细设计过程。

在绘制简单的系统功能模块图的同时,力图更清晰地展示整个学生模块程序设计的设计思想、规划和具体实现过程。

这个系统有许多特点:该系统功能齐全,用户界面方便简单,安全保密设置齐全,大大减轻了操作人员和用户的工作量,提高了学生管理的工作效率和学校的信息化水平。

姓名:XXXXXX级:本文重点介绍了“学生信息管理系统”的开发过程。

详细描述了设计思想和设计过程,详细说明了数据库创建思想和各数据表之间的具体关联,并详细分析了系统各功能的实现过程和详细设计过程。

在绘制简单的系统功能模块图的同时,力图更清晰地展示整个学生模块程序设计的设计思想、规划和具体实现过程。

这个系统有许多特点:该系统功能齐全,用户界面方便简单,安全保密设置齐全,大大减轻了操作人员和用户的工作量,提高了学生管理的工作效率和学校的信息化水平。

(1)基本要求:学生信息(包括学生编号、姓名、性别、年龄、家庭住址、电话号码等)的添加、删除、修改和查询。

)。

(2)提出要求(根据你自己的情况):可以添加类信息(也可以删除或修改类)。

学生信息包括班级信息,学生可以按班级统计。

简单的统计、按性别统计等。

描述: 这个程序需要一个图形界面来实现。

2.系统-学生信息的添加、删除、修改和查询(包括学生编号、姓名、性别、年龄、家庭地址、电话号码等)。

)(包括按学生编号、姓名等查询。

)。

(2)提出要求(根据你自己的情况):可以添加类信息(也可以删除或修改类)。

学生信息包括班级信息,学生可以按班级统计。

简单的统计、按性别统计等。

描述: 这个程序需要一个图形界面来实现。

2.系统:\ \ \ ');int n=scanner . Nextint();while(n!=6) { if(n==1) stu。

java学生管理系统实训报告

java学生管理系统实训报告

Java学生管理系统实训报告学号:姓名:班级:指导老师:一、项目计划(1)项目名称:学生信息管理系统(2)实训地点:(3)小组成员:二、系统总体设计(1)需求分析学生信息管理系统,是对学生的个人信息,课程信息,成绩信息以信息化的方式进行管理,最大限度地减少各个环节可能出现的错误,有效减少因人力资源局限性导致的存储信息量大,信息存储错误,混淆等问题,合理进行信息存储,使学校能够合理录入学生的个人资料,学期成绩情况,以及课程安排,为学校师生的工作提供后方面。

通过实际调查,要求学生信息管理系统具有以下功能:1.界面设计美观大方,方便,快捷,操作灵活。

2.实现强大的学生个人信息,课程信息,成绩信息的查询,修改,录入,删除管理。

3.实现强大的联系人信息及其类别的查询,录入,删除管理。

4.能够在不同的的操作系统下运行,不局限于特定的平台。

5.提供数据库备份与恢复功能。

6.提供友情平台,例如:计算机,方便对成绩的操作;(2)项目计划安排一项任务的成功完成,必须依靠合理的计划安排以及各种资源的有效利用。

有计划、有步骤地进行软件开发,除了可以提高开发进度外,更能明确项目组各成员之间的职责及任务。

项目进度表要安排每个成员的任务,并要求成员每天修改自己的进度,保证项目管理人员可以随时查看整个项目的进度,以及时发现问题,调整工作策略。

(3)概要设计概要设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。

概要设计要坚持以下几个原则:1:细分原则2:提高代码重用性:3:从上而下层层分析4:一致性原则5:提高独立性6:模块的大小要尽量适中。

由于概要设计是整个设计的重中之重,牵一发而动全身,所以要努力做一个好的概要设计,才能在今后软件开发过程中不再反复。

现在软件行业流行模式化驱动设计,将一些市场上比较成功的模式拿来用在自己的设计中。

(4)详细设计概要设计是为了明确开发人员的工作步骤和工作目标。

详细设计使开发人员可以轻松地完成代码的编写,并熟悉所编写的业务流程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

J A V A数据库学生管理系统实训报告标准化工作室编码[XX968T-XX89628-XJ668-XT689N]实训报告实训名称:学生成绩管理系统实训系(部):软件与艺术学院专业班级:网络L1301学生姓名:刘鑫学号:指导教师:戎小群完成日期: 2015/1/20南京铁道职业技术学院目 录……………………………装……………………………………订…………………………………线……………………………Java访问并处理数据库的设计与实现1 实训概述南京铁道职业技术学院浦口校区2013级网络L1301班于大二上学期组织了为期一周的Java实训,本次实训的课题是“学生成绩管理系统”。

通过综合实训,掌握运用Java语言基本知识和技能、 JAVA的基本语法与JDBC数据库技术的应用;进一步熟悉Oracle数据库的数据库管理(数据库的创建、应用)。

表的创建、修改、删除,约束及关系等、数据的查询处理(insert、update、delete、select语句等技术。

2 Java访问并处理数据库的课题描述2.1 课题简介经过分析,我们使用Java开发工具,利用其提供的各种面向对象的开发工具,Java?技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

使用的数据库是Oracle,Oracle数据库功能强大,学习起来也不难,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。

通过实训,我们掌握运用Java语言知识和技能,运用JAVA的基本语法与JDBC数据库技术的应用,完成对甲骨文数据库的数据库管理、例如表的设计(表的创建、修改、删除,字段的默认值、约束及关系等)、数据的查询处理(insert、update、delete、select语句的应用)等技术;并能结合数据库应用技术和jdbc进行小型数据库管理系统的开发。

2.2 模块简介管理员模块功能需求:管理员身份登陆系统后,可以对学生信息进行添加、修改和查询等操作,对学生进行添加、修改和查询功能操作,还可以修改管理员的登录密码。

学生模块功能需求:学生信息管理系统中需要在学生登录或验证身份后,,可以自行完成学生个人信息的查询,也可以进行修改和删除个人信息、修改学生密码等操作。

2.3 数据库结构设计数据表设计定义每个表的数据类型以及字段限制,使数据库达到一定的完整性.每个表的物理设计如下:1.表admin保存用户的个人信息用户信息表主要是用来保存管理员用户的基本信息,包括管理员的ID和管理员的登录密码,只有符合这两个字段的格式要求,才能登录成功,结构表如下:表4-2管理员信息表2.表student保存学生基本信息,结构表如下:表4-5学生信息表逻辑结构是独立于任何一种数据模型的信息结构。

逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。

流程图层次设计图的格式如下所示:图1 管理员对学生信息管理系统局部E-R图数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表现系统的逻辑处理功能。

2.4系统功能层次图学生信息管理系统是一个典型的数据库开发应用程序,系统是和数据库相结合.,进入系统,有两个用户,分别是普通学生、和管理员。

3 系统模块的详细设计本学生信息管理系统主要模块,即用户登录模块、用户操作模块。

用户操作模块又分为学生操作模块、管理员操作模块。

下面将显示系统的主要功能模块。

3.1登录模块设计学生信息管理系统前台登陆模块可以勾选管理员身份信息,代表以管理员身份进入。

不勾选即为普通学生身份登录。

3.2管理员模块设计学生信息管理系统前台登陆模块只有一个登陆窗口分为学生、管理员两个级别登陆,系统在后台程序有自动限制设置,可以自动识别登陆者的限制。

其系统登陆模块算法如下:1 判断是否勾选管理员身份;2 输入用户名和密码;3 判断用户名和密码是否匹配;(1)若提示输入信息错误,则重新输入;(2)否则以管理员身份进入系统。

添加学生信息功能学生信息管理系统对学生信息的管理非常重要,其中对信息的录入是系统最为关键的地方,以往我们管理学生信息的时候都是手工操作,而随社会不断发展的今天计算机的应用已全部取带了手工操作的方法,利用计算机可以方便的录入各类信息,进行高效的管理.学生信息的录入就是利用计算机通过程序读入数据库,录入学生信息模块算法描述如下:1.管理员登陆后,录入学生信息管理界面;2.单击增加学生按钮,键入学生ID;3.当录入学号已经存在,提示该学生信息已存在,请重新输入;4.否则学生信息添加成功。

查找学生信息功能学生信息管理系统对查询学生信息管理也很重要,方法和增添学生信息类似,也同样是利用计算机通过程序读入数据库,查询学生信息模块算法描述如下:1.管理员登陆后,点击查询学生;2.当录入学生信息不存在时,提示没有该学生信息,重新输入;3.当录入学生ID已经存在,提示该学生信息存在,显示学生信息;删除学生信息功能学生选课模块主要是给删除学生信息的功能,本功能主要由管理员进入数据库,然后学生管理系统,其删除学生信息模块算法描述如下:1.管理员成功登陆;2.点击删除学生;3.输入学生相关信息,如学生ID;4. 如该学生不存在,则提示信息不存在,否则删除该学生。

修改学生信息功能此信息修改模块主要是给学生和管理员建立信息库,方便管理员查询操作,信息修改模块算法描述如下:1.管理员成功登陆;2.点击修改学生信息;3.输入学生的编号;4.编号为空,重新输入;5.输入不为数字,重新输入;6.输入正确,进入修改页面进行相关修改。

3.3学生模块设计查看学生个人信息功能学生信息管理系统方便了学生查看自己的学籍信息,如果学校由于疏忽输入了错误信息,自己可以查看并且及时通知学校管理员,及时修改,减少不必要的麻烦.此信息查询模块主要是方便学生查询操作,信息查询模块算法描述如下:1 学生成功登陆;2.点击查询学生信息;3.输入学生的编号;4.编号为空,重新输入;5.输入不为数字,重新输入;6.输入正确,进入信息查询页面进行相关修改。

修改学生登录密码功能学生可以进入学生管理系统进行登录密码的修改1. 学生成功登陆;2.单击修改密码;3.输入旧密码、新密码确认后,若旧密码正确则修改成功,则提示重新输入旧密码;4.提交修改完成修改。

4 程序运行与测试import java.awt.*;import javax.swing.*;//登录窗口public class LoginFrame extends JFrame{private JCheckBox c;private JButton loginBtn,resetBtn;private JTextField nameInput;private JPasswordField pwdInput;private AdminDao adminDao=new AdminDao();private StudentDao studentDao=new StudentDao();public LoginFrame(){//初始化窗口本身Dimension d=Toolkit.getDefaultToolkit().getScreenSize();int width=d.width;int height=d.height;//设置坐标为400-400 宽为300 高为200setBounds(width/2-200, height/2-100, 400, 200);setTitle("登录界面");//设置窗口为不可缩放setResizable(false);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);init();event(); }private void event() {//为按钮添加事件处理resetBtn.addMouseListener(new MouseAdapter() {//监听鼠标单击事件@Overridepublic void mouseClicked(MouseEvent e) {System.exit(0); } });loginBtn.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {//获取用户输入的值String username=nameInput.getText().trim();String password=pwdInput.getText().trim();//判断是否勾选了管理员多选框if(c.isSelected()){//从管理员表中检测数据Admina=adminDao.findAdminByName(username);//如果a不为null说明用户输入的管理员是存在的if(a==null){//说明此管理员不存在JOptionPane.showMessageDialog(null, "用户名或密码不正确", "提示信息", JOptionPane.WARNING_MESSAGE);}else{//管理员存在 //密码正确//密码不正确if(a.getPassword().equals(password)){//后台保存的密码和用户从客户端输入的密码是一样的JOptionPane.showMessageDialog(null, "登录成功", "提示信息", JOptionPane.WARNING_MESSAGE);//关闭当前的登录窗口//开启管理员界面newAdminFrame(a.getUsername()).go();}else{JOptionPane.showMessageDialog(null, "用户名或密码不正确", "提示信息", JOptionPane.WARNING_MESSAGE);} }}else{//从普通用户表中检测数据Students=studentDao.findStudentByStudentId(username);if(s==null){JOptionPane.showMessageDialog(null, "用户名或密码不正确", "提示信息", JOptionPane.WARNING_MESSAGE);}else{if(s.getPassword().equals(password)){JOptionPane.showMessageDialog(null, "登录成功", "提示信息", JOptionPane.WARNING_MESSAGE);newStudentFrame(s,null).go();}else{JOptionPane.showMessageDialog(null, "用户名或密码不正确", "提示信息", JOptionPane.WARNING_MESSAGE);} } } } });}public void init(){//初始化窗口内部的组件Container container=getContentPane();//组件放到哪个位置由用户自己来制定container.setLayout(null);JLabel title=new JLabel("用户登录");title.setFont(new Font("楷体",0,32));title.setBounds(110,5,200,33);container.add(title);JLabel nameLabel=new JLabel("用户名:");nameLabel.setBounds(70, 55, 60, 30);container.add(nameLabel);nameInput=new JTextField();nameInput.setBounds(130,60,150,20);//设置提示内容nameInput.setToolTipText("此处写登录用户名");container.add(nameInput);JLabel pwdLabel=new JLabel("密码:");pwdLabel.setBounds(70, 80, 60, 30);container.add(pwdLabel);pwdInput=new JPasswordField();pwdInput.setBounds(130,85,150,20);pwdInput.setToolTipText("此处写密码");container.add(pwdInput);c=new JCheckBox("管理员");c.setBounds(68, 115, 70, 30);container.add(c);loginBtn=new JButton("登录");loginBtn.setBounds(140, 115, 60, 30);container.add(loginBtn);resetBtn=new JButton("取消");resetBtn.setBounds(215, 115, 60, 30);container.add(resetBtn);}public void go(){setVisible(true); }public static void main(String[] args) {new LoginFrame().go(); }}//和管理员相关的数据库操作public class AdminDao {//根据用户名查找指定管理员public Admin findAdminByName(String username){Admin admin=null;Connection conn=null;PreparedStatement pstat=null;ResultSet rs=null;try {conn=ConnectionFactory.getConnection();String sql="select username,password from admin where username=";pstat=conn.prepareStatement(sql);pstat.setString(1, username);rs=pstat.executeQuery();//如果查不到任何数据下方while内部的代码不会执行while(rs.next()){//如果能执行到这个地方说明指定管理员是存在的admin=new Admin();admin.setUsername(username);admin.setPassword(rs.getString("password"));}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{ConnectionFactory.close(rs, pstat, conn); }return admin; }public static void main(String[] args) {AdminDao().findAdminByName("admi").getPassword()); }}//添加学生public class AddStudentFrame extends JFrame{private AdminFrame admin;private JPanel p1,p2,p3,p4,p5;private JLabel idLbl,nameLbl,ageLbl,genderLbl;private JTextField idInput,nameInput,ageInput,genderInput;private JButton submitBtn,cancelBtn;private StudentDao studentDao=new StudentDao();public AddStudentFrame(AdminFrame admin){this.admin=admin;setTitle("添加学生");setResizable(false);setBounds(400, 100, 300, 400);init();event();}private void init(){Container container=getContentPane();container.setLayout(new GridLayout(5, 1));p1=new JPanel();p1.setLayout(null);idLbl=new JLabel("学籍号:");idLbl.setBounds(50, 30, 50, 20);idInput=new JTextField();idInput.setBounds(100, 30, 120, 20);p1.add(idLbl);p1.add(idInput);container.add(p1);p2=new JPanel();p2.setLayout(null);nameLbl=new JLabel("姓名:");nameLbl.setBounds(50, 10, 50, 20);nameInput=new JTextField();nameInput.setBounds(100, 10, 120, 20);p2.add(nameLbl);p2.add(nameInput);container.add(p2);p3=new JPanel();p3.setLayout(null);ageLbl=new JLabel("年龄:");ageLbl.setBounds(50, 10, 50, 20);ageInput=new JTextField();ageInput.setBounds(100, 10, 120, 20);p3.add(ageLbl);p3.add(ageInput);container.add(p3);p4=new JPanel();p4.setLayout(null);genderLbl=new JLabel("性别:");genderLbl.setBounds(50, 10, 50, 20);genderInput=new JTextField();genderInput.setBounds(100, 10, 120, 20);p4.add(genderLbl);p4.add(genderInput);container.add(p4);p5=new JPanel();p5.setLayout(null);submitBtn=new JButton("确定");submitBtn.setBounds(130, 10, 60, 20);cancelBtn=new JButton("取消");cancelBtn.setBounds(195, 10, 60, 20);p5.add(submitBtn);p5.add(cancelBtn);container.add(p5);}private void event(){//设置当前窗口的关闭操作//此处可自定义窗口关闭时所作操作this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {//将之前传递过来的那个管理窗口设置为可用if(admin!=null){admin.setEnabled(true); }//释放当前窗口} });//取消按钮的操作cancelBtn.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {if(admin!=null){admin.setEnabled(true); }} });//确定按钮的操作submitBtn.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {//接受用户在客户端输入的值//正则表达式String studentId=idInput.getText().trim();String studentName=nameInput.getText().trim();String age=ageInput.getText().trim();String gender=genderInput.getText().trim();Student s=new Student();//注意别输入了已存在的学籍号s.setStudentid(Long.parseLong(studentId));s.setStudentName(studentName);s.setPassword(studentId);s.setAge(Integer.parseInt(age));s.setGender(gender);//将获得值封装成Student对象调用指定方法存储到数据库boolean result=studentDao.addStudent(s);if(result){JOptionPane.showMessageDialog(null, "添加成功!");if(admin!=null){admin.setEnabled(true); }}else{JOptionPane.showMessageDialog(null, "添加失败,请检查学籍号是否已存在!"); } } });} public void go(){setVisible(true);}public static void main(String[] args) {new AddStudentFrame(null).go();}};public class FindStudentFrame extends JFrame{private StudentDao studentDao=new StudentDao();private JLabel idLbl,nameLbl;private JTextField idInput,nameInput;private JButton findBtn,cancelBtn;public FindStudentFrame(){setTitle("查找学生");setBounds(405, 100, 200, 390);setResizable(false);init();event(); }private void init(){Container container=getContentPane();container.setLayout(new GridLayout(3, 1));JPanel p1=new JPanel();p1.setLayout(null);idLbl=new JLabel("学籍号:");idLbl.setBounds(20, 55, 50, 20);idInput=new JTextField();idInput.setBounds(73, 55, 100, 20);p1.add(idLbl);p1.add(idInput);container.add(p1);JPanel p2=new JPanel();p2.setLayout(null);nameLbl=new JLabel("姓名:");nameLbl.setBounds(20, 55, 50, 20);nameInput=new JTextField();nameInput.setBounds(73, 55, 100, 20);p2.add(nameLbl);p2.add(nameInput);container.add(p2);JPanel p3=new JPanel();p3.setLayout(null);findBtn=new JButton("搜索");findBtn.setBounds(60,30,60,20);cancelBtn=new JButton("取消");cancelBtn.setBounds(123,30,60,20);p3.add(findBtn);p3.add(cancelBtn);container.add(p3); }private void event(){this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {}});findBtn.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {String idStr=idInput.getText().trim();String nameStr=nameInput.getText().trim();Long studentId=null;String studentName=null;if(idStr.length()!=0){ //如果id有值studentId=Long.parseLong(idStr); }if(nameStr.length()!=0){studentName=nameStr; }List<Student>students=studentDao.findStudentByConditions(studentId, studentName);//将查询的结果传递给显示界面new ShowResultFrame(students).go() } }); }public void go(){setVisible(true); }public static void main(String[] args) {new FindStudentFrame().go();////// }}public class ShowResultFrame extends JFrame {private List<Student> students;private StudentDao studentDao=new StudentDao();public ShowResultFrame(List<Student> students) {setTitle("查询结果");if (students.size() > 0) {setBounds(100, 100, 300, 60 * students.size());} else {setBounds(100, 100, 300, 150); }this.students = students;init();}private void init() {Container container = getContentPane();container.setLayout(new GridLayout(students.size(), 2));// 遍历集合将集合中的每一条数据显示到当前容器里面if (students.size() == 0) {container.add(new JLabel("暂无记录!"));} else {for (Student stu : students) {JLabel l = new JLabel(stu.getStudentName());final Student s = stu;l.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {if(e.getClickCount()>=2){new StudentFrame(s, null).go(); } }});l.setBorder(BorderFactory.createLineBorder(new Color(253, 253,187)));JButton b = new JButton("删除");final Long studentId = stu.getStudentid();b.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {intchoose=JOptionPane.showConfirmDialog(null, "确定删除");//判断用户点击的是否是确定按钮if(choose==JOptionPane.OK_OPTION){students.remove(s);newShowResultFrame(students).go();studentDao.deleteStudentById(studentId);}} });container.add(l); container.add(b); } } } private void event() {this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {} }); }public void go() { setVisible(true); }public static void main(String[] args) {}}public class StudentFrame extends JFrame{private JPanel p1,p2,p3,p4,p5,p6;private JLabel idLbl,pwdLbl,nameLbl,ageLbl,genderLbl;private JTextField idInput,nameInput,ageInput,genderInput;private JPasswordField pwdInput;private Student student;private JButton modifyPwdBtn,submitBtn,exitBtn;private String nPassword;private StudentDao dao=new StudentDao();//student记录当前登录的用户 nPassword记录修改以后的密码public StudentFrame(Student s,String nPassword){this.student=s;this.nPassword=nPassword;//初始化的时候获取当前用户的密码setTitle("学生信息");setResizable(false);setBounds(400, 100, 300, 400);//默认关闭行为setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);init();event(); }public void go(){setVisible(true);}private void init(){Container container=getContentPane();container.setLayout(new GridLayout(6, 1));p1=new JPanel();p1.setLayout(null);idLbl=new JLabel("学籍号:");idLbl.setBounds(50, 30, 50, 20);idInput=new JTextField();//需要将数字类型转换为字符串类型 +""//字符串类型---》数字类型 parseInt parseLongidInput.setText(student.getStudentid()+"");//设置学籍号不可修改// idInput.setEnabled(false);idInput.setEditable(false);// idInput.setDisabledTextColor(new Color(255, 255, 255));idInput.setDisabledTextColor(Color.black);idInput.setBounds(100, 30, 120, 20);p1.add(idLbl);p1.add(idInput);container.add(p1);p2=new JPanel();p2.setLayout(null);pwdLbl=new JLabel("密码:");pwdLbl.setBounds(50, 30, 50, 20);pwdInput=new JPasswordField();if(nPassword==null){//代表从登录界面过来的pwdInput.setText(student.getPassword());}else{//如果有新密码说明是从修改密码那个窗口跳回来的pwdInput.setText(nPassword);}pwdInput.setEditable(false);pwdInput.setDisabledTextColor(Color.black); pwdInput.setBounds(100, 30, 120, 20);modifyPwdBtn=new JButton("修改");modifyPwdBtn.setBounds(225, 30, 60, 20);p2.add(pwdLbl);p2.add(pwdInput);p2.add(modifyPwdBtn);container.add(p2);p3=new JPanel();p3.setLayout(null);nameLbl=new JLabel("姓名:");nameLbl.setBounds(50, 30, 50, 20);nameInput=new JTextField();nameInput.setText(student.getStudentName()); nameInput.setBounds(100, 30, 120, 20);p3.add(nameLbl);p3.add(nameInput);container.add(p3);p4=new JPanel();p4.setLayout(null);ageLbl=new JLabel("年龄:");ageLbl.setBounds(50, 30, 50, 20);ageInput=new JTextField();ageInput.setText(student.getAge()+"");ageInput.setBounds(100, 30, 120, 20);p4.add(ageLbl);p4.add(ageInput);container.add(p4);p5=new JPanel();p5.setLayout(null);genderLbl=new JLabel("性别:");genderLbl.setBounds(50, 30, 50, 20);genderInput=new JTextField();genderInput.setText(student.getGender());genderInput.setBounds(100, 30, 120, 20);p5.add(genderLbl);p5.add(genderInput);container.add(p5);p6=new JPanel();p6.setLayout(null);submitBtn=new JButton("确认");submitBtn.setBounds(150, 30, 60, 20);exitBtn=new JButton("取消");exitBtn.setBounds(215, 30, 60, 20);p6.add(submitBtn);p6.add(exitBtn);container.add(p6); }private void event(){modifyPwdBtn.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {//设置之前的窗口无效//弹出修改密码窗口new ModifyPwdFrame(StudentFrame.this).go();}});exitBtn.addMouseListener(new MouseAdapter() {//关闭当前窗口返回登录窗口});submitBtn.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {String newPassword=pwdInput.getText().trim();String newName=nameInput.getText().trim();String newAgeStr=ageInput.getText().trim();String newGender=genderInput.getText().trim();//获取用户修改的信息Student newStudent=new Student();newStudent.setAge(Integer.parseInt(newAgeStr));newStudent.setPassword(newPassword);newStudent.setStudentName(newName);newStudent.setStudentid(student.getStudentid());newStudent.setGender(newGender);//newStudent里面存储着修改以后的学生信息dao.updateStudentById(newStudent);if(student.getPassword().equals(newPassword)){new StudentFrame(newStudent,null).go();}else{//如果旧密码和新密码不相同就重新登录JOptionPane.showMessageDialog(null, "密码已被更改,请重新登录!");new LoginFrame().go();}}});}public Student getStudent(){return student; }public static void main(String[] args) {// new StudentFrame().go();}}5 实训总结本系统是采用Java技术开发的,由于在这个阶段中,基本是处于边学习边实践的状态,基础知识还不是很牢靠,加之自身水平原因,程序还是有许多不足之处。

相关文档
最新文档