今天为大家分享一个java语言编写的教室管理系统,目前系统功能已经很全面,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步

开发环境

开发语言为Java,开发环境Eclipse或者IDEA都可以,数据为MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。

系统框架

利用JDK自带的SWING框架开发。纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档。

系统介绍

3.1 项目背景

教室信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校各类工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要,基于这个目的我们这次课程设计选择教师管理系统做为我们的题目

3.2 项目目的

教室管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面.对于前者要求建立数据一致性和完整性强,数据安全性好的数据库.而对于后者则要求应用程序功能完备,易使用等特点。在学校,教室信息管理包括教室信息,显然如果以人工的方式对其管理将耗费大量的人力、物力,本系统以此作为开发的目标,用以减轻教室管理人员的负担。

3.3 软件定义

教师管理系统的分两种用户类型:普通老师和系统管理员。其中普老师包括查询,和修改自己的信息,查看教师排课安排等;系统管理员的操作包括老师的增删改、教室排课的增删该查等功能。

系统中需要有4个实体,教室,课程,老师,安排三个实体。

其中教师包括(id,Gonghao,Password,Teachername,Zhicheng,role)

教室实体包括(id,name,device,capacity)

课程的实体包括:(id,coursename,score)

教室安排的实体包括:(id,jiaoshi_id,teacher_id,course_id,week,shijian)

系统运行效果

5.1 用户登录

登陆模块是用户输入用户名和密码,系统对输入的在数据库中进行校验,校验通过则跳转到主界面,不通过则提示原因,返回主界面,如图5.1所示。

5.2 系统主界面

用户登录成功后,跳转到主界面,主界面有4个主要功能:系统退出,老师管理,教室管理,教室安排管理。系统管理员具有所有功能。普通老师只能查看和自己的信息,查看教室,查看安排,不能进行修改。只有管理员才有权利进行修改。

5.3 显示所有教室

进入主界面后,点击教室菜单下的显示所有记录,可以看到系统所有记录,记录显示在Jtable

5.4 新增教室

5.5 修改教室

5.6 显示所有老师信息

5.7 新增教室安排信息

进入主界面后,点击教室安排菜单下的新增教室安排,跳出教室新增安排界面。需要选择教室,老师,上课日期,开始时间,结束时间。系统会检测是否有冲突,如有冲突,则提示需要调整时间。

关键代码

public class Login extends JFrame implements ActionListener{//定义登陆窗口需要的组件JLabel jl1,jl2,jl3;JTextField jtf1;JPasswordField jpf1;JButton jb1,jb2;int width,height;//定义用于连接数据库的组件,也就是com.SqlConnection类下的SqlConn方法SqlConn sqlconn;//定义用于传送SQL语句的变量String sql;//定义一个用于接收登陆验证返回来的记录集ResultSet rs;//声明用于验证登陆用户的模型LoginModel loginModel;int flag;public static void main(String []args){Login login=new Login();}public Login(){//创建登陆所需的组件jl1=new JLabel("账 号:");jl1.setFont(MyFont.f1);jl1.setBounds(50,50,60,25);jl2=new JLabel("密 码:");jl2.setFont(MyFont.f1);jl2.setBounds(50,90,60,25);jtf1=new JTextField(20);jtf1.setBounds(110,50,150,25);//设置文本框下凹,三维效果jtf1.setBorder(BorderFactory.createLoweredBevelBorder());jpf1=new JPasswordField(20);jpf1.setBorder(BorderFactory.createLoweredBevelBorder());jpf1.setBounds(110,90,150,25);jb1=new JButton("登 陆");jb1.setFont(MyFont.f1);jb1.addActionListener(this);jb1.setBounds(95,130,75,25);jb2=new JButton("取消");jb2.setFont(MyFont.f1);jb2.addActionListener(this);jb2.setBounds(185,130,75,25);//添加到窗体//先设置窗体的空布局this.setLayout(null);this.add(jl1);this.add(jtf1);this.add(jl2);this.add(jpf1);this.add(jb1);this.add(jb2);//创建一个BackImage对象BackImage bi=new BackImage();//设定图片的位置bi.setBounds(0,0,350,250);this.add(bi);this.setSize(350,250);this.setTitle("<-教室管理信息系统登陆窗口-->");//设置窗口在屏幕的初始位置width=Toolkit.getDefaultToolkit().getScreenSize().width;height=Toolkit.getDefaultToolkit().getScreenSize().height;this.setLocation(width/2-180, height/2-180);//设置窗口不可改变大小this.setResizable(false);//注意:************设置窗口的背景颜色,由于是继承Swing包,所以必须先得到窗口的一个面板,然后再通过这个面板去设置背景色,否则设置不显示出来//this.getContentPane().setBackground(Color.gray);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}//创建一个内部类,并继承JPanle,用于画背景图片class BackImage extends JPanel{Image im;public BackImage(){try{im=ImageIO.read(new File("Image/login.gif"));}catch(Exception e){e.printStackTrace();}}//要把图片画到JPanle,需要重写一个Paint方法public void paint(Graphics g) //此处的paint中的p是小写,//如果是大写,则就是重写paint方法了,而是一个新的方法了,那么后面的图片是不会输出的{g.drawImage(im,0,0,350,250,this);}}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub//如果说点击了登陆按钮 if(e.getSource()==jb1){//获取输入的用户名和密码String username=jtf1.getText().trim();System.out.println("username="+username);String password=new String(jpf1.getPassword());//此处不能通过getText()来获取,从安全角度考虑,通过getPassword()来获取,即可通过new String这便是数组System.out.println("password="+password);//调用处理登陆用户验证的模型loginModel=new LoginModel();flag=loginModel.checkUser(username,password);//判断用户名和密码是否正确usernameif(flag==0){MyFont.usertype="系统管理员";MyFont.username=username;new ManageView("系统管理员");this.dispose();}if(flag==1){MyFont.usertype="老师";MyFont.username=username;new ManageView("老师");this.dispose();}if(flag==2){System.out.println("slsl");JOptionPane.showMessageDialog(this, "用户名或密码错误!");}}else if(e.getSource()==jb2){System.exit(0);}}
}

Java编写的教室管理系统 带详细设计报告 功能非常齐全 完整源码相关推荐

  1. Java 写的通讯录管理系统 带详细设计报告 功能非常齐全 完整源码

    今天为大家分享一个java语言编写的贪吃蛇系统,目前系统功能已经很全面,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发语言 ...

  2. Java编写的公交查询系统 功能非常齐全 完整源码

    今天为大家分享一个java语言编写的教室管理系统,目前系统功能已经很全面,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发语 ...

  3. Java开发的KTV系统 功能非常齐全 完整源码

    今天为大家分享一个java语言编写的KTV系统,目前系统功能已经很全面,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发语言 ...

  4. Java开发的模拟双色球抽奖程序 功能非常齐全 完整源码

    今天为大家分享一个java语言编写的模拟双色球抽奖程序,目前系统功能已经很全面,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 ...

  5. Java开发的飞翔的小鸟小游戏408 功能非常齐全 完整源码

    今天为大家继续分享飞翔的小鸟游戏的开发与制作 408,目前系统已经完成了初步功能,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 ...

  6. Java开发的船体程序 超级玛丽小游戏 411 功能非常齐全 完整源码

    今天为大家继续分享泡泡堂小游戏的开发与制作 410,目前系统已经完成了初步功能,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步!! 开发环 ...

  7. Java开发的超级马里奥小游戏410 相对简单 功能非常齐全 完整源码

    今天为大家继续分享泡泡堂小游戏的开发与制作 410,目前系统已经完成了初步功能,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步!! 开发环 ...

  8. Java 开发的QQ聊天系统 窗体程序 功能非常齐全 完整源码

    今天为大家分享一个java语言编的QQ聊天系统,目前系统已经完成了初步功能,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发 ...

  9. java高校心理测评管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署

    java高校心理测评管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 java高校心理测评管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目 ...

最新文章

  1. EOS与以太坊有哪些区别? 1
  2. Mac OS X 10.9.3 Beta 8升级教程
  3. FPGA篇(十一)modelsim命令行仿真提示“vsim 不是内部或外部命令,也不是可运行的程序或批处理文件”的解决办法 (转)
  4. vuepress侧边栏配置_VuePress搭建静态博客网站
  5. leetcode 54. 螺旋矩阵(递归)
  6. 使用exp导出导入,需要注意的问题。
  7. DB2存储过程分页测试
  8. 互联网搜索 解决问题的心法 找什么 哪里找 怎么找
  9. Java Base64与图片互转操作测试
  10. 三点确定一个圆的计算方法
  11. 18款最佳Bug跟踪管理系统
  12. 微信小程序的推广方案有哪些
  13. Bugzilla系统使用规范
  14. 倾斜摄影超大场景的三维模型的顶层合并的优势浅析
  15. HR 开发技术(abap 转载)
  16. 2021-2022 UCAS PRML 期末回忆
  17. 【Shell】创蓝253云通讯平台国际短信API接口DEMO
  18. 计算机考研是英语一还是英语二,2020考研|我是考英语一还是英语二?如何判断...
  19. linux 看eps文件格式,EPS 文件扩展名: 它是什么以及如何打开它?
  20. 提高电脑运行速度的方法(初级篇)

热门文章

  1. vscode-tab按键失效变为切换控件解决
  2. Linux进程内存分析pmap命令
  3. Navicat导入sql文件报错
  4. ArrayList添加一个元素的过程(中部插入以及尾部添加)
  5. MySQL获取当前时间的各种方式
  6. input输入框事件流程变化
  7. IEEE754转换规则
  8. 5G系统——MICO模式
  9. atof函数(把字符串转换成浮点数)
  10. Mybatis动态sql是做什么的?都有哪些动态sql?简述一下动态sql的执行原理?