学生信息管理系统-数据库版
广东海洋大学数据库原理及应用课程设计——学生信息管理系统(Java+SQL)

本科生课程设计课程名称数据库原理及应用课程设计课程编号J1670101学号学生姓名所在专业所在班级指导教师成绩教师签字年月日课程设计时间:年月日至年月日目录目录设计总说明 (I)1、需求分析 (3)2、概念结构设计 (3)3、逻辑结构设计 (4)4、物理结构设计 (4)5、系统实现 ....................................................................................... 错误!未定义书签。
5.1前台界面 .................................................................................. 错误!未定义书签。
5.2 后台实现 .................................................................................. 错误!未定义书签。
6、优缺点及自我评价....................................................................... 错误!未定义书签。
7、参考文献 (7)设计总说明(1)系统开发目的学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。
随着在校大学生人数的不断增加,教务系统的数量也不断的上涨。
学校工作繁杂、资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。
并且这种传统的方式存在着很多的弊端,如:保密性差、查询不便、效率低,很难维护和更新等。
然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。
所以如何自动高效地管理信息是这些年来许多人所研究的。
(2)开发内容用数据库和Java相关技术开发一个学生信息管理系统(3)开发要求能够对学生信息进行简单的添加,删除和查询(4)开发环境及工具1、操作系统:Windows 72、数据库软件:SQL Server 20083、Java开发工具:Eclipse(5)系统功能简介一、学生管理1、添加学生信息。
使用access建立学生信息管理数据库系统设计与开发方案

使用access建立学生信息管理数据库系统设计与开发方案目录1. 引言1.1 背景和意义1.2 结构概述1.3 目的2. 学生信息管理数据库系统概述2.1 数据库系统的定义与作用2.2 Access数据库介绍2.3 学生信息管理数据库系统的需求与挑战3. 设计阶段3.1 数据库需求分析与设计原则3.2 实体关系模型(ER模型)的设计3.3 数据表设计与字段定义4. 开发阶段4.1 Access数据库创建与数据导入4.2 表格、查询、报告和表单的设计与使用4.3 安全性和权限设置的考虑5. 结论与展望5.1 总结主要内容和贡献5.2 可能存在的问题和改进方向1. 引言1.1 背景和意义随着信息技术的不断发展,学生信息管理在现代教育中变得越来越重要。
学校、大学和其他教育机构需要有效地管理和维护每个学生的信息,包括个人资料、课程成绩、出勤记录等。
传统的手工管理方式已经无法满足日益增长的数据量和复杂的处理需求,因此建立一个高效、可靠的学生信息管理数据库系统成为当下迫切需要解决的问题。
本文旨在使用Access软件作为开发工具,提出一种学生信息管理数据库系统设计与开发方案,以满足学校和教育机构对于高质量数据管理的需求。
通过该系统,用户可以快速而准确地查询、统计和分析学生相关信息,并能进行灵活且安全地权限控制。
1.2 结构概述本文将分为五个主要部分进行阐述。
首先,在引言部分(第一章),我们将介绍本篇文章的背景意义以及整体结构概述。
接着,在第二部分中,我们将简要概述学生信息管理数据库系统,并介绍数据库系统的定义与作用、Access数据库的特点以及建立该系统所面临的需求与挑战。
然后,在第三部分中,我们将探讨设计阶段的重要内容,包括数据库需求分析与设计原则、实体关系模型(ER模型)的设计以及数据表设计与字段定义。
随后,在第四部分中,我们将详细描述开发阶段的步骤和方法,包括Access数据库创建与数据导入、表格、查询、报告和表单的设计与使用,以及安全性和权限设置的考虑。
原创SQL数据库学生管理系统

原创SQL数据库学生管理系统一、简介SQL数据库学生管理系统是一款用于管理学生信息的数据库系统。
该系统采用结构化查询语言(SQL)作为数据管理和查询的工具,通过对学生信息进行有效的组织和管理,实现了学生基本信息的录入、查询、修改和删除等功能。
本文将介绍该数据库系统的设计思路、功能模块和操作流程。
二、数据库设计1. 数据表设计数据库中包含以下几个数据表:•学生表(students):存储学生的基本信息,包括学生ID、姓名、性别、年龄等字段。
•课程表(courses):存储学生所选课程的信息,包括课程ID、课程名称、学分等字段。
•成绩表(scores):存储学生的成绩信息,包括学生ID、课程ID、成绩等字段。
2. 数据库关系设计学生表与课程表之间的关系是多对多关系,通过中间表(选课表)来建立关联关系。
选课表(selections)包含了学生ID和课程ID两个字段,用于记录学生所选课程的关系。
各个数据表之间的关系如下图所示:+------------+| students |+------------+|| 多对多关系|+------------+| courses |+------------+|| 一对多关系|+------------+| scores |+------------+三、功能模块SQL数据库学生管理系统包含以下几个功能模块:1. 学生信息管理模块该模块实现学生信息的录入、查询、修改和删除功能。
管理员可以通过该模块进行学生信息的管理,包括添加新的学生信息、查询学生信息、修改学生信息和删除学生信息等操作。
2. 课程信息管理模块该模块实现课程信息的录入、查询、修改和删除功能。
管理员可以通过该模块进行课程信息的管理,包括添加新的课程信息、查询课程信息、修改课程信息和删除课程信息等操作。
3. 成绩管理模块该模块实现学生成绩的录入、查询、修改和删除功能。
管理员可以通过该模块进行学生成绩的管理,包括添加学生成绩、查询学生成绩、修改学生成绩和删除学生成绩等操作。
MySql数据库课程设计学生管理系统

编辑界面:输入框、下拉列 表、按钮等,用于修改和添
加数据
查询界面:输入框、下拉列 表、按钮等,用于查询数据
帮助界面:提供系统使用说 明和帮助信息
模块设计
用户模块:用户注册、登录、修改密码等 课程模块:课程添加、修改、删除等 学生模块:学生添加、修改、删除等 成绩模块:成绩添加、修改、删除等 权限管理模块:用户权限分配、角色管理等 系统管理模块:系统设置、日志管理等
系统的功能
学生信息管理: 课程信息管理:
添加、修改、 添加、修改、
删除、查询学 删除、查询课
生信息
程信息
成绩管理:添 加、修改、删 除、查询学生
成绩
教师信息管理: 添加、修改、 删除、查询教
师信息
系统设置:修 改系统参数, 如密码、用户
权限等
报表生成:生 成学生成绩报 表、课程报表
等
系统的用户
管理员:负责系统管理和维护 教师:负责学生信息的录入、修改和查询 学生:负责个人信息的查询和修改 家长:负责学生信息的查询和修改
数据删除:删除表中 的数据
数据备份与恢复:定 期备份数据,确保数 据安全
界面交互实现
用户登录:输入用户 名和密码信 息、功能菜单、系统
状态等信息
功能菜单:包括学生 管理、课程管理、成
绩管理等功能
学生管理:添加、修 改、删除、查询学生
信息
课程管理:添加、修 改、删除、查询课程
定期检查硬件:确保硬件正常运行, 防止硬件故障
添加标题
添加标题
添加标题
添加标题
定期更新系统:确保系统安全,防 止漏洞攻击
定期培训员工:确保员工熟练掌握 系统操作,提高工作效率
系统安全策略
学生信息管理系统 数据库课程设计

目录第一章系统概述 (1)1.1 系统开发的背景 (1)1。
2系统开发的意义 (1)第二章系统需求分析 (2)2.1系统功能要求 (2)2。
2 需求分析概述 (2)2。
3 系统层次划分 (3)2.4 系统数据流图 (3)2。
5 数据字典 (4)第三章系统总体设计目标 (11)3.1 系统总体设计目标 (11)3。
2 系统概念设计 (12)3.2.1 概念模式(E—R 图) (12)3.2.2 关系模式 (14)3。
2.3 关系模式规范化说明 (15)3。
2.4 系统数据库表结构 (15)第四章数据库系统实现 (18)4.1系统实现工具简介 (18)4.2 学生信息管理系统数据库实现 (19)结束语 (32)参考文献 (33)第一章系统概述1.1 系统开发的背景随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增加。
面对庞大的信息量,传统的人工方式管理会导致学生信息管理上的混乱,人力与物力过多浪费,管理费用的增加,从而使学校管理人员的负担过重,影响整个学校的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的学生信息管理系统,对学生信息进行集中统一的管理。
通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。
另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性.提高学生信息管理的工作效率,作到信息的规范管理,科学统计和快速查询,让该系统更好的为学校,社会服务。
1。
2系统开发的意义学生信息管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生信息管理的效率.因此,开发一套能够为用户提供充足的信息和快捷的查询手段的学生信息管理系统,将是非常必要的,也是十分及时的。
学生信息管理系统数据库实训

目录前言 (3)第1章概述 (4)1.1课题开发的背景、目的与意义 (4)1.2可行性分析 (4)1.3系统功能描述 (5)1.4系统运行环境 (5)第2章学生信息管理系统数据库设计 (6)2.1数据需求分析 (6)2.2概念结构设计 (6)2.2.1 实体间的联系: (6)2.2.2 E-R图: (7)2.3逻辑结构设计 (7)第3章学生信息管理系统数据库实施步骤 (9)第4章学生信息管理系统数据库管理及界面设计 (11)4.1功能选择 (11)4.2基本信息的显示 (13)4.3高级搜索 (14)第5章总结 (16)致谢 (17)参考文献 (18)前言随着进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。
传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而数据库的应用已经渗透到社会经济领域的各个方面。
数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。
有效地运用和利用数据库所具有的强大事务处理功能和数据分析能力,可以实现数据处理、数据安全保障、高效数据检索和信息共享。
数据库对我们今天的各个领域都是不可缺少的一部分,随着各个领域的需求,对数据库中的管理信息系统也要求特别的高,特别是在一些学校中,一个学校对学生的管理是不可少的,如果没有一个统一的管理系统那是很难管理的,因而设立一个学生信息管理系统是很有必要的。
学生信息管理系统(SMIS)是大学信息管理系统建设的重要组成部分,是教务管理工作的核心,是提高教学管理的质量和效益乃至建设知名高水平大学的关键环节。
学生信息处理的电脑化、网络化,也是实现学校管理现代化和信息化的重要内容。
作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点。
例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生档案管理的效率,也是进行科学化、正规化管理,与世界接轨的重要条件。
数据库设计教学案例(学生信息管理系统数据库设计)

数据库分析与设计案例(一)案例名称:学生信息管理系统数据库设计学院: XX学院适用课程:实例数据库分析与设计设计时间: 20XX年XX月设计者: XXX20XX年XX月制前言数据库实践类课程主要包括《实例数据库分析与设计》、《数据库系统实验》、《数据库原理及应用》等相关课程,一般在大二下学期或大三上学期开设。
它们均是以数据库系统基本原理为基础,通过大量上机实践,培养学生专业实践能力,旨在深入理解和掌握在特定应用环境中分析、设计、实施数据库数据建设与运维为目标的重要专业实践课程。
为适应学校应用型办学转型,加强实践课程教学,提升教学效果,增强学生专业核心竞争力。
针对实践类数据库课程教学特点,结合学生实际,特设计本数据库设计教学案例应用于指导教学实践。
本案例以大学生最熟悉的应用背景,学生信息管理系统,进行分析设计数据库。
本案例设计成果也将成为日常上机教学主要素材之一。
案例设计虽然不复杂,但将进一步深挖数据库操作实践技能点,赋予更多内涵。
本设计采用MYSQL5.7作为实验平台。
一、需求分析经数据库分析设计开发小组调查,结合教学实际,整理得到如下基本语义:1、某学生信息管理系统主要负责管理学生基本信息、课程信息和学生选修情况。
学生基本信息主要包括学生学号,姓名,性别,年龄和所在系。
其中本系统中没有过多关于“系”的操作需求,故“所在系”降格为学生一个属性。
学生实体可以下属性来刻画:学生(学号,姓名,性别,年龄,所在系);2、课程实体主要包括课程号,课程名,先行课和学分属性,其中“先行课”是指要选修某门课程之前必须选选修的课程。
为了简化模式省去了很多细节属性,仅保留课程的基本信息。
鉴于此,课程可以下属性来刻画:课程:课程号,课程名,先行课,学分;3、经调查,每名学生可选修多门课程,每门课程也可以被多名同学选修。
另外,选课问题还涉及到一个基本问题,那就是同一门课程同一学生可否多次重修选修的问题。
为了简化问题描述,本案例规定同一门课程学生只能选修一次,如果考核没有通过,将进入重修环节。
[工学]学生信息管理系统完整源码
![[工学]学生信息管理系统完整源码](https://img.taocdn.com/s3/m/3483296b26284b73f242336c1eb91a37f1113291.png)
学生信息管理系统完整源代码注:本系统采用C/S结构,运用Java GUI知识编写,数据库为SQL SERVER 2005,没有采用典型的三级框架结构,所以代码有冗余,仅供参考。
一、数据表及数据源首先创建数据库,包含数据表如下:数据库创建完成后,新建一个名为SIMS的数据源,不会建数据源的同学可以在去搜索创建数据源的详细步骤,这里的数据名称一定要为SIMS,否则在以后程序连接数据库的语句中会出现错误。
二、操作演示三、代码部分创建Java工程,创建名称为SIMS的包,一下Java类均包含在一个包内。
1.登录界面package SIMS;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import java.text.SimpleDateFormat;import java.util.*;import java.util.Date;public class login extends JFrame implements ActionListener{String userID; //保留用户输入IDString password; //保留用户输入passwordJLabel jlID=new JLabel("用户ID:"); //使用文本创建标签对象 JLabel jlPwd=new JLabel("密码:");JTextField jtID=new JTextField(); //创建ID输入框JPasswordField jpPwd=new JPasswordField(); //创建密码输入框ButtonGroup bg=new ButtonGroup(); //创建ButtonGroup组件对象JPanel jp=new JPanel(); //创建Panel容器JLabel jl=new JLabel();JRadioButton jrb1=new JRadioButton("管理员");JRadioButton jrb2=new JRadioButton("教师");JRadioButton jrb3=new JRadioButton("学生",true);JButton jb1=new JButton("登录");JButton jb2=new JButton("重置");public login(){this.setLayout(null); //设置窗口布局管理器this.setTitle("学生信息管理系统"); //设置窗口标题this.setBounds(200,150,500,300); //设置主窗体位置大小和可见性this.setVisible(true); //设置窗口的可见性this.setResizable(false);jlID.setBounds(150,60,100,20); //设置ID框属性jtID.setBounds(220,60,100,20); //设置ID输入框属性jlPwd.setBounds(150,90,100,20); //设置密码框属性jpPwd.setBounds(220,90,100,20); //设置密码输入框属性jp.setBounds(35,120,400,250); //设置JPanel容器属性jb1.setBounds(160,170,60,20); //设置登录按钮属性jb2.setBounds(250,170,60,20); //设置取消按钮属性jb1.addActionListener(this); //设置登录按钮监听器jb2.addActionListener(this); //设置取消按钮监听器jl.setBounds(340,75,130,20); //设置提示框属性bg.add(jrb1); //将所有空间加入窗体bg.add(jrb2);bg.add(jrb3);this.add(jlID);this.add(jlPwd);this.add(jtID);this.add(jpPwd);this.add(jb1);this.add(jb2);this.add(jl);jp.add(jrb1);jp.add(jrb2);jp.add(jrb3);this.add(jp);centerShell(this);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}private void centerShell(JFrame shell) //窗口在屏幕中间显示{//得到屏幕的宽度和高度int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;//得到Shell窗口的宽度和高度int shellHeight = shell.getBounds().height;int shellWidth = shell.getBounds().width;//如果窗口大小超过屏幕大小,让窗口与屏幕等大if(shellHeight > screenHeight)shellHeight = screenHeight;if(shellWidth > screenWidth)shellWidth = screenWidth;//让窗口在屏幕中间显示shell.setLocation(( (screenWidth - shellWidth) / 2),((screenHeight - shellHeight) / 2) );}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(userID);}return false;}public void actionPerformed(ActionEvent e){userID=jtID.getText(); //获取用户输入IDpassword=jpPwd.getText(); //获取用户输入密码if(e.getSource()==jb1){ //处理登录事件if(userID.equals("") || password.equals("")){jl.setFont(new Font("red",Font.BOLD,12)); //设置提示字体jl.setForeground(Color.red);jl.setText("请输入用户ID和密码");}else{Connection con=null;try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"","");//获取连接字符串Statement stat=con.createStatement();if(jrb1.isSelected())//如果登录选中的管理员{ResultSet rs=stat.executeQuery("select * from Admin"); //判断输入用户名是否存在int flag=0;while(rs.next()){if(rs.getString(1).equals(userID)){flag=1;break;}}if(flag==0){jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("用户ID不存在");}if(flag==1){ResultSet rss=stat.executeQuery("selectAdmin_Pwd,Admin_Name from Admin where Admin_ID='"+userID+"'");//从表Admin获取信息while(rss.next()){String str=rss.getString(1);if(str.equals(password)){new admin(rss.getString(2));//创建admin窗口this.dispose(); //释放窗体}else{jl.setFont(new Font("red",Font.BOLD,12)); //设置提示字体jl.setForeground(Color.red);jl.setText("密码错误");}}}}else if(jrb2.isSelected()){ResultSet rs=stat.executeQuery("select * from Teacher_Info"); //判断输入用户名是否存在int flag=0;while(rs.next()){if(rs.getString(1).equals(userID)){flag=1;break;}}if(flag==0){jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("用户ID不存在");}if(flag==1){ResultSet rss=stat.executeQuery("selectTea_Pwd,Tea_Names from Teacher_Info where Tea_ID='"+userID+"'");//从表Teacher_Info获取信息while(rss.next()){String str=rss.getString(1);if(str.equals(password)){new teacher(rss.getString(2),userID);//创建admin窗口this.dispose(); //释放窗体}else{jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("密码错误");}}}}else if(jrb3.isSelected()){ResultSet rs=stat.executeQuery("select * from Student_Info"); //判断输入用户名是否存在int flag=0;while(rs.next()){if(rs.getString(1).equals(userID)){flag=1;break;}}if(flag==0){jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("用户ID不存在");}if(flag==1){ResultSet rsss=stat.executeQuery("selectStu_Pwd,Stu_Name from Student_Info where Stu_ID='"+userID+"'");//从表Student_Info获取信息while(rsss.next()){String str=rsss.getString(1);if(str.equals(password)){new student(rsss.getString(2),userID);//创建admin窗口this.dispose(); //释放窗体}else{jl.setFont(new Font("red",Font.BOLD,12));//设置提示字体jl.setForeground(Color.red);jl.setText("密码错误");}}}}}catch(Exception ex){ex.getStackTrace();}finally{try{con.close();}catch(Exception exc){exc.printStackTrace();}}}}else if(e.getSource()==jb2){ //处理登录事件jtID.setText("");jpPwd.setText("");jrb3.setSelected(true);jl.setText("");}}public static void main(String[] args){new login();}}2.添加课程package SIMS;import javax.swing.*;import java.sql.*;import java.awt.*;import java.awt.event.*;public class add_course extends JFrame implements ActionListener{ static add_course ss;String courseID=""; //课程名String coursename=""; //课程名String count=""; //课时JLabel warning=new JLabel(); //输入信息提示框JLabel title=new JLabel();JLabel note1=new JLabel("*");JLabel note2=new JLabel("*");JLabel jlcourseID=new JLabel("课程号:"); //使用文本框创建标签对象JLabel jlcoursename=new JLabel("课程名:");JLabel jlcount=new JLabel("课时:");JTextField jtcourseID=new JTextField(); //创建文本框对象JTextField jtcoursename=new JTextField();JTextField jtcount=new JTextField();JButton submit=new JButton("添加"); //创建按钮对象JButton reset=new JButton("重置");public add_course(){ //添加教师账号信息this.setTitle("添加课程信息"); //设置窗口标题this.setLayout(null); //设置窗口布局管理器this.add(jlcourseID); //将控件添加到窗体this.add(title);this.add(jlcoursename);this.add(jlcount);this.add(jtcourseID);this.add(jtcoursename);this.add(jtcount);this.add(note1);this.add(note2);this.add(submit);this.add(reset);this.add(warning);title.setFont(new Font("red",Font.BOLD,15)); //设置提示字体title.setForeground(Color.red);note1.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note1.setForeground(Color.red);note2.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note2.setForeground(Color.red);warning.setFont(new Font("red",Font.BOLD,12)); //设置提示字体warning.setForeground(Color.red);title.setText("添加课程信息"); //设置控件及窗体位置大小title.setBounds(222,20,150,20);jlcourseID.setBounds(180,80,100,20);jlcoursename.setBounds(180,140,100,20);jlcount.setBounds(180,200,100,20);jtcourseID.setBounds(250,80,140,20);jtcoursename.setBounds(250,140,140,20);jtcount.setBounds(250,200,140,20);note1.setBounds(400,80,140,20);note2.setBounds(400,140,140,20);submit.setBounds(200,270,60,20);reset.setBounds(300,270,60,20);warning.setBounds(420,140,150,20); //设置提示框位置大小submit.addActionListener(this); //添加监听器reset.addActionListener(this);this.setSize(600,400); //设置窗体大小centerShell(this); //设置窗口位置在屏幕中央this.setResizable(false); //设置窗体不可变大小this.setVisible(true); //设置窗口可见性this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(courseID);}return false;}public void actionPerformed(ActionEvent e){courseID=jtcourseID.getText(); //获取用户输入内容coursename=jtcoursename.getText();count=jtcount.getText();int temp=0,flag=0;Connection con=null;if(e.getSource()==submit){ //判断是否已输入必填信息if(courseID.equals("") || coursename.equals("")){warning.setText("请输入必填信息");}else{try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"",""); //获取连接字符串Statement stat=con.createStatement();ResultSet rs=stat.executeQuery("select Course_ID from Course");while(rs.next()){if(rs.getString(1).equals(courseID)){warning.setText("课程ID已存在");flag=1; //判断用户名唯一break;}}if(flag!=1){if(!count.equals("")){temp=stat.executeUpdate("insert intoCourse(Course_ID,Course_Name,Course_Count)values('"+courseID+"','"+coursename+"','"+count+"')");}else{temp=stat.executeUpdate("insert intoCourse(Course_ID,Course_Name) values('"+courseID+"','"+coursename+"')");}}if(temp==1){JOptionPane.showMessageDialog(ss,"添加成功");warning.setText("");}else{JOptionPane.showMessageDialog(ss,"添加失败");}}catch(Exception ex){ex.getStackTrace();}}}else if(e.getSource()==reset){warning.setText("");jtcourseID.setT ext("");jtcoursename.setText("");jtcount.setText("");}}private void centerShell(JFrame shell) //窗口在屏幕中间显示{//得到屏幕的宽度和高度int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;//得到Shell窗口的宽度和高度int shellHeight = shell.getBounds().height;int shellWidth = shell.getBounds().width;//如果窗口大小超过屏幕大小,让窗口与屏幕等大if(shellHeight > screenHeight)shellHeight = screenHeight;if(shellWidth > screenWidth)shellWidth = screenWidth;//让窗口在屏幕中间显示shell.setLocation(((screenWidth - shellWidth)/ 2),((screenHeight - shellHeight)/2));}}3.添加学生package SIMS;import javax.swing.*;import java.sql.*;import java.awt.*;import java.awt.event.*;public class add_student extends JFrame implements ActionListener{static add_teacher ss;String userID=""; //用户名String pwd1=""; //密码String pwd2=""; //确认密码String getsdept=""; //院系String name=""; //姓名JLabel warning=new JLabel(); //输入信息提示框JLabel title=new JLabel();JLabel note1=new JLabel("*");JLabel note2=new JLabel("*");JLabel note3=new JLabel("*");JLabel jlID=new JLabel("学号:"); //创建文本框对象 JLabel jlName=new JLabel("姓名:");JLabel jlPwd=new JLabel("密码:");JLabel jlPwd2=new JLabel("确认密码:");JLabel sdept=new JLabel("学院:");JTextField jtID=new JTextField();JTextField jtName=new JTextField();JPasswordField jtPwd=new JPasswordField ();JPasswordField jtPwd2=new JPasswordField ();JTextField jtsdept=new JTextField();JButton submit=new JButton("添加"); //创建按钮对象JButton reset=new JButton("重置");public add_student(){this.setTitle("添加学生账号信息"); //设置窗口标题this.setLayout(null); //设置窗口布局管理器this.add(jlID); //将控件添加到窗体this.add(title);this.add(jlName);this.add(jlPwd);this.add(jlPwd2);this.add(sdept);this.add(jtID);this.add(jtName);this.add(jtPwd);this.add(jtPwd2);this.add(jtsdept);this.add(note1);this.add(note2);this.add(note3);this.add(submit);this.add(reset);this.add(warning);title.setFont(new Font("red",Font.BOLD,15)); //设置提示字体title.setForeground(Color.red);note1.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note1.setForeground(Color.red);note2.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note2.setForeground(Color.red);note3.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note3.setForeground(Color.red);warning.setFont(new Font("red",Font.BOLD,12)); //设置提示字体warning.setForeground(Color.red);title.setText("添加学生账号信息");title.setBounds(222,20,150,20);jlID.setBounds(180,60,100,20);jlName.setBounds(180,100,100,20);jlPwd.setBounds(180,140,100,20);jlPwd2.setBounds(180,180,100,20);sdept.setBounds(180,220,100,20);jtID.setBounds(250,60,140,20);jtName.setBounds(250,100,140,20);jtPwd.setBounds(250,140,140,20);jtPwd2.setBounds(250,180,140,20);jtsdept.setBounds(250,220,140,20);note1.setBounds(400,60,140,20);note2.setBounds(400,140,140,20);note3.setBounds(400,180,140,20);submit.setBounds(200,270,60,20);reset.setBounds(300,270,60,20);warning.setBounds(420,100,150,20);submit.addActionListener(this);reset.addActionListener(this);this.setSize(600,400);centerShell(this);this.setVisible(true);this.setResizable(false); //设置窗体不可变大小this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(pwd1);}return false;}public void actionPerformed(ActionEvent e){userID=jtID.getText(); //获取用户输入内容pwd1=jtPwd.getText();pwd2=jtPwd2.getText();getsdept=jtsdept.getText();name=jtName.getText();int temp=0,flag=0;Connection con=null;if(e.getSource()==submit){if(userID.equals("") || pwd1.equals("") || pwd2.equals("")){ //判断是否已输入必填信息warning.setText("请输入必填信息");}else if(!pwd1.equals(pwd2)){ //判断两次输入密码是否相同warning.setText("两次输入密码不相同");}else{try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"",""); //获取连接字符串Statement stat=con.createStatement();ResultSet rs=stat.executeQuery("select Stu_ID from Student_Info");while(rs.next()){if(rs.getString(1).equals(userID)){warning.setText("用户ID已存在");flag=1; //判断用户名唯一break;}}if(flag!=1){if(!name.equals("") && !getsdept.equals("")){temp=stat.executeUpdate("insert intoStudent_Info(Stu_ID,Stu_Name,Stu_Pwd,Depart)values('"+userID+"','"+name+"','"+pwd1+"','"+getsdept+"')");}else if(!name.equals("") && getsdept.equals("")){temp=stat.executeUpdate("insert intoStudent_Info(Stu_ID,Stu_Name,Stu_Pwd) values('"+userID+"','"+name+"','"+pwd1+"')");}else if(name.equals("") && !getsdept.equals("")){temp=stat.executeUpdate("insert intoStudent_Info(Stu_ID,Stu_Pwd,Depart) values('"+userID+"','"+pwd1+"','"+getsdept+"')");}else{temp=stat.executeUpdate("insert intoStudent_Info(Stu_ID,Stu_Pwd) values('"+userID+"','"+pwd1+"')");}}if(temp==1){JOptionPane.showMessageDialog(ss,"添加成功");}else{JOptionPane.showMessageDialog(ss,"添加失败");}}catch(Exception ex){ex.getStackTrace();}}}else if(e.getSource()==reset){ //重置所有控件warning.setText("");jtID.setText("");jtName.setText("");jtPwd.setText("");jtPwd2.setText("");jtsdept.setText("");}}private void centerShell(JFrame shell) //窗口在屏幕中间显示{//得到屏幕的宽度和高度int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;//得到Shell窗口的宽度和高度int shellHeight = shell.getBounds().height;int shellWidth = shell.getBounds().width;//如果窗口大小超过屏幕大小,让窗口与屏幕等大if(shellHeight > screenHeight)shellHeight = screenHeight;if(shellWidth > screenWidth)shellWidth = screenWidth;//让窗口在屏幕中间显示shell.setLocation(((screenWidth - shellWidth)/ 2),((screenHeight - shellHeight)/2));}//public static void main(String args[]){// new add_student();//}}4.添加教师package SIMS;import javax.swing.*;import java.sql.*;import java.awt.*;import java.awt.event.*;public class add_teacher extends JFrame implements ActionListener{static add_teacher ss;String userID=""; //用户名String pwd1=""; //密码String pwd2=""; //确认密码String getsdept=""; //院系String name=""; //姓名JLabel warning=new JLabel(); //输入信息提示框JLabel title=new JLabel();JLabel note1=new JLabel("*");JLabel note2=new JLabel("*");JLabel note3=new JLabel("*");JLabel jlID=new JLabel("教工号:"); //使用文本框创建标签对象 JLabel jlName=new JLabel("姓名:");JLabel jlPwd=new JLabel("密码:");JLabel jlPwd2=new JLabel("确认密码:");JLabel sdept=new JLabel("学院:");JTextField jtID=new JTextField(); //创建文本框对象JTextField jtName=new JTextField();JPasswordField jtPwd=new JPasswordField ();JPasswordField jtPwd2=new JPasswordField ();JTextField jtsdept=new JTextField();JButton submit=new JButton("添加"); //创建按钮对象JButton reset=new JButton("重置");public add_teacher(){ //添加教师账号信息this.setTitle("添加教师账号信息"); //设置窗口标题this.setLayout(null); //设置窗口布局管理器this.add(jlID); //将控件添加到窗体this.add(title);this.add(jlName);this.add(jlPwd);this.add(jlPwd2);this.add(sdept);this.add(jtID);this.add(jtName);this.add(jtPwd);this.add(jtPwd2);this.add(jtsdept);this.add(note1);this.add(note2);this.add(note3);this.add(submit);this.add(reset);this.add(warning);title.setFont(new Font("red",Font.BOLD,15)); //设置提示字体title.setForeground(Color.red);note1.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note1.setForeground(Color.red);note2.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note2.setForeground(Color.red);note3.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note3.setForeground(Color.red);warning.setFont(new Font("red",Font.BOLD,12)); //设置提示字体warning.setForeground(Color.red);title.setText("添加教师账号信息"); //设置控件及窗体位置大小title.setBounds(222,20,150,20);jlID.setBounds(180,60,100,20);jlName.setBounds(180,100,100,20);jlPwd.setBounds(180,140,100,20);jlPwd2.setBounds(180,180,100,20);sdept.setBounds(180,220,100,20);jtID.setBounds(250,60,140,20);jtName.setBounds(250,100,140,20);jtPwd.setBounds(250,140,140,20);jtPwd2.setBounds(250,180,140,20);jtsdept.setBounds(250,220,140,20);note1.setBounds(400,60,140,20);note2.setBounds(400,140,140,20);note3.setBounds(400,180,140,20);submit.setBounds(200,270,60,20);reset.setBounds(300,270,60,20);warning.setBounds(420,100,150,20); //设置提示框位置大小submit.addActionListener(this); //添加监听器reset.addActionListener(this);this.setSize(600,400); //设置窗体大小centerShell(this); //设置窗口位置在屏幕中央this.setResizable(false); //设置窗体不可变大小this.setVisible(true); //设置窗口可见性this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(pwd1);}return false;}public void actionPerformed(ActionEvent e){userID=jtID.getText(); //获取用户输入内容pwd1=jtPwd.getText();pwd2=jtPwd2.getText();getsdept=jtsdept.getText();name=jtName.getText();int temp=0,flag=0;Connection con=null;if(e.getSource()==submit){ //判断是否已输入必填信息if(userID.equals("") || pwd1.equals("") || pwd2.equals("")){warning.setText("请输入必填信息");}else if(!pwd1.equals(pwd2)){ //判断两次输入密码是否一致warning.setText("两次输入密码不相同");}else{try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"",""); //获取连接字符串Statement stat=con.createStatement();ResultSet rs=stat.executeQuery("select Tea_ID from Teacher_Info");while(rs.next()){if(rs.getString(1).equals(userID)){warning.setText("用户ID已存在");flag=1; //判断用户名唯一break;}}if(flag!=1){if(!name.equals("") && !getsdept.equals("")){temp=stat.executeUpdate("insert intoTeacher_Info(Tea_ID,Tea_Names,T ea_Pwd,Depart)values('"+userID+"','"+name+"','"+pwd1+"','"+getsdept+"')");}else if(!name.equals("") && getsdept.equals("")){temp=stat.executeUpdate("insert intoTeacher_Info(Tea_ID,Tea_Names,T ea_Pwd)values('"+userID+"','"+name+"','"+pwd1+"')");}else if(name.equals("") && !getsdept.equals("")){temp=stat.executeUpdate("insert intoTeacher_Info(Tea_ID,Tea_Pwd,Depart) values('"+userID+"','"+pwd1+"','"+getsdept+"')");}else{temp=stat.executeUpdate("insert intoTeacher_Info(Tea_ID,Tea_Pwd) values('"+userID+"','"+pwd1+"')");}}if(temp==1){JOptionPane.showMessageDialog(ss,"添加成功");}else{JOptionPane.showMessageDialog(ss,"添加失败");}}catch(Exception ex){ex.getStackTrace();}}}else if(e.getSource()==reset){warning.setText("");jtID.setText("");jtName.setText("");jtPwd.setText("");jtPwd2.setText("");jtsdept.setText("");}}private void centerShell(JFrame shell) //窗口在屏幕中间显示{//得到屏幕的宽度和高度int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;//得到Shell窗口的宽度和高度int shellHeight = shell.getBounds().height;int shellWidth = shell.getBounds().width;//如果窗口大小超过屏幕大小,让窗口与屏幕等大if(shellHeight > screenHeight)shellHeight = screenHeight;if(shellWidth > screenWidth)shellWidth = screenWidth;//让窗口在屏幕中间显示shell.setLocation(((screenWidth - shellWidth)/ 2),((screenHeight - shellHeight)/2));}// public static void main(String[] args){// new add_teacher();// }}5.添加授课信息package SIMS;import javax.swing.*;import java.sql.*;import java.awt.*;import java.awt.event.*;public class add_tc extends JFrame implements ActionListener{static add_tc ss;String courseID=""; //课程名String teachername=""; //课程名JLabel warning=new JLabel(); //输入信息提示框JLabel title=new JLabel();JLabel note1=new JLabel("*");JLabel note2=new JLabel("*");JLabel jlcourseID=new JLabel("课程号:"); //使用文本框创建标签对象JLabel jlteachername=new JLabel("教师号:");JTextField jtcourseID=new JTextField(); //创建文本框对象JTextField jtteachername=new JTextField();JButton submit=new JButton("添加"); //创建按钮对象JButton reset=new JButton("重置");public add_tc(){ //添加授课信息this.setTitle("添加授课信息"); //设置窗口标题this.setLayout(null); //设置窗口布局管理器this.add(jlcourseID); //将控件添加到窗体this.add(jlteachername);this.add(title);this.add(jtcourseID);this.add(jtteachername);this.add(note1);this.add(note2);this.add(submit);this.add(reset);this.add(warning);title.setFont(new Font("red",Font.BOLD,15)); //设置提示字体title.setForeground(Color.red);note1.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note1.setForeground(Color.red);note2.setFont(new Font("red",Font.BOLD,20)); //设置提示字体note2.setForeground(Color.red);warning.setFont(new Font("red",Font.BOLD,12)); //设置提示字体warning.setForeground(Color.red);title.setText("添加授课信息"); //设置控件及窗体位置大小title.setBounds(222,20,150,20);jlcourseID.setBounds(180,80,100,20);jlteachername.setBounds(180,140,100,20);jtcourseID.setBounds(250,80,140,20);jtteachername.setBounds(250,140,140,20);note1.setBounds(400,80,140,20);note2.setBounds(400,140,140,20);submit.setBounds(200,250,60,20);reset.setBounds(300,250,60,20);warning.setBounds(420,140,150,20); //设置提示框位置大小submit.addActionListener(this); //添加监听器reset.addActionListener(this);this.setSize(600,400); //设置窗体大小centerShell(this); //设置窗口位置在屏幕中央this.setResizable(false); //设置窗体不可变大小this.setVisible(true); //设置窗口可见性this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public boolean equals(Object obj){ //重写equals方法判断字符串相等if(obj==null)return false;if(this == obj){return true;}if(obj instanceof String) {String str = (String)obj;return str.equals(courseID);}return false;}public void actionPerformed(ActionEvent e){courseID=jtcourseID.getText(); //获取用户输入内容teachername=jtteachername.getText();int temp=0,flag1=0,flag2=0,flag3=0;Connection con=null;if(e.getSource()==submit){ //判断是否已输入必填信息if(courseID.equals("") || teachername.equals("")){warning.setText("请输入必填信息");}else{try{String url="jdbc:odbc:SIMS"; //连接数据库con=DriverManager.getConnection(url,"",""); //获取连接字符串Statement stat=con.createStatement();ResultSet rs=stat.executeQuery("select Course_ID from Course");while(rs.next()){if(rs.getString(1).equals(courseID)){flag1=1; //判断课程ID存在break;}}ResultSet rss=stat.executeQuery("select Tea_ID fromTeacher_Info");while(rss.next()){if(rss.getString(1).equals(teachername)){flag2=1; //判断教师ID存在break;}}if(flag1!=1){warning.setText("课程ID不存在");}else if(flag2!=1){warning.setText("教师ID不存在");}ResultSet rsss=stat.executeQuery("select Course_ID,T ea_ID from tc");while(rsss.next()){if(rsss.getString(1).equals(courseID) &&rsss.getString(2).equals(teachername)){flag3=1;warning.setText("授课信息重复");。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
2.MainFrame类://主界面类,处理程序各种功能
//作者信息
public void jMenuItem1_actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,"学生:周子杰\n"+
"学院:计算机学院\n"+
queryDataSet1.saveChanges();
}
}}
三.测试实例:
1.后台Access数据库:
2.连接数据库界面:
3.主界面:
4.卡片形式查看学生记录:可以修改
5.查询学生记录:
6.插入学生记录:
插入结果:
7.删除Байду номын сангаас三记录:
删除结果:
8..查看作者信息:
9.处理后的后台Access数据库:
this.setVisible(false);
new MainFrame();
con.close();
} catch (Exception e1) {
JOptionPane.showMessageDialog(null, "数据库连接出错!请检查参数!", "系统提示",
JOptionPane.
INFORMATION_MESSAGE);
"专业:计算机科学与技术03级02班\n"+
"学号:3103003157\n"+
"指导老师:杨劲涛","作者信息",RMATION_MESSAGE);
}
//版本信息
public void jMenuItem5_actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,"学生管理系统数据库版本1.0"
,"版本信息",RMATION_MESSAGE);
}
//退出系统
public void jMenuItem2_actionPerformed(ActionEvent e) {
学生信息管理系统
----数据库版本
学院:计算机学院
班级:03级计算机科学与技术02班
姓名:周子杰
学号:57
班级:03级计科2班
日期:2007年3月22日
广东工业大学
一.系统功能流程图:
二.程序主要功能实现代码:
1.ConnectionFrame类://连接数据库函数
/**
*进行参数检查,进行数据库连接
Object ob=JOptionPane.showConfirmDialog(null,"真的要退出本系统吗?","系统提示",JOptionPane.YES_NO_OPTION);
if(ob.equals(JOptionPane.OK_OPTION))
{
this.setVisible(false);
System.exit(0);
}
}
//按学号查询
public void jButton1_actionPerformed(ActionEvent e) {
Column col=queryDataSet1.getColumn("sno");
sno=jTextField1.getText();
formatter=col.getFormatter();
choice=1;
queryDataSet1.refilter();//表刷新
}
public void jButton2_actionPerformed(ActionEvent e) {
choice=2;
queryDataSet1.refilter();//表刷新
}
//刷新表
public void queryDataSet1_filterRow(ReadRow readRow,
* @param e ActionEvent
*/
public void jButton1_actionPerformed(ActionEvent e) {
driver=jTextField1.getText();
URL=jTextField2.getText();
table=jTextField3.getText();
name=jTextField4.getText();
password=jTextField5.getText();
try{
Class.forName(driver); //加载驱动程序
con = DriverManager.getConnection(URL, name,password); //创建连接
RowFilterResponse rowFilterResponse) {
switch(choice)
{
case 1:
if (formatter == null || sno.length() == 0)
rowFilterResponse.add();
else {
String v;
v = readRow.getString("sno");
Object ob=JOptionPane.showConfirmDialog(null,"永久性删除数据,真的要删除吗?","警告",JOptionPane.YES_NO_OPTION);
if(ob.equals(JOptionPane.OK_OPTION))
{
queryDataSet1.deleteRow();
if (v.equals(sno))
rowFilterResponse.add();
else
rowFilterResponse.ignore();
}
break;
case 2:
rowFilterResponse.add();
break;
}
}
public void jButton3_actionPerformed(ActionEvent e) {
new CheckDialog();
}
//增加数据
public void jButton5_actionPerformed(ActionEvent e) {
queryDataSet1.insertRow(true);
new InsertDialog();
}
//删除一行数据
public void jButton4_actionPerformed(ActionEvent e) {